From 1a4c3051495293043a753162aaaa8b956c267259 Mon Sep 17 00:00:00 2001 From: Bohung Date: Thu, 8 Apr 2021 13:20:01 +0800 Subject: [PATCH] Fix all tab bug. --- app/assets/javascripts/bulletin/wpex.min.js | 27 +++++++++++++++++---- app/controllers/announcements_controller.rb | 19 +++++---------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/app/assets/javascripts/bulletin/wpex.min.js b/app/assets/javascripts/bulletin/wpex.min.js index ccee41d..a8eea40 100644 --- a/app/assets/javascripts/bulletin/wpex.min.js +++ b/app/assets/javascripts/bulletin/wpex.min.js @@ -2376,15 +2376,32 @@ var wpex = {}; if ($filter.length) { var $filterLinks = $filter.find(window.wpexAnimsition.filter_option); activeItems = ''; + if($filterLinks.length != 0){ + var filter_constraint = $filterLinks.eq(0).attr(window.wpexAnimsition.filter_attr); + if(filter_constraint == "all"){ + filter_constraint = "["+window.wpexAnimsition.filter_attr+"]"; + }else{ + if(window.wpexAnimsition.use_attr_filter){ + filter_constraint = "["+window.wpexAnimsition.filter_attr+"=\""+filter_constraint+"\"]"; + } + } + if($filterLinks.eq(0).data("count_limit") != undefined){ + filter_constraint = filter_constraint+":nth-child(-n+"+$filterLinks.eq(0).data("count_limit")+")"; + } + activeItems = filter_constraint; + } $filterLinks.click(function () { var filter_constraint = $(this).attr(window.wpexAnimsition.filter_attr); if(filter_constraint == "all"){ - filter_constraint = undefined; + filter_constraint = "["+window.wpexAnimsition.filter_attr+"]"; }else{ - if(window.wpexAnimsition.use_attr_filter){ - filter_constraint = "["+window.wpexAnimsition.filter_attr+"=\""+filter_constraint+"\"]"; - } - } + if(window.wpexAnimsition.use_attr_filter){ + filter_constraint = "["+window.wpexAnimsition.filter_attr+"=\""+filter_constraint+"\"]"; + } + } + if($(this).data("count_limit") != undefined){ + filter_constraint = filter_constraint+":nth-child(-n+"+$(this).data("count_limit")+")"; + } $grid.isotope({ filter: filter_constraint}); self.equalHeights(); return false; diff --git a/app/controllers/announcements_controller.rb b/app/controllers/announcements_controller.rb index 7aa6d55..9a6f270 100644 --- a/app/controllers/announcements_controller.rb +++ b/app/controllers/announcements_controller.rb @@ -148,9 +148,6 @@ class AnnouncementsController < ApplicationController if @tab_option == 1 cats = ["all"] + cats anns = anns.sort{|v1,v2| v2["postdate"]<=>v1["postdate"]} - if @all_setting_option == 0 - anns = anns.deep_dup.map{|a| a["category"] = "All";a}[0...OrbitHelper.widget_data_count] + anns - end end cats = cats.uniq cats_translations = cats.map{|cat_id| @@ -163,11 +160,7 @@ class AnnouncementsController < ApplicationController }.to_h cats_relations = cats_translations.map{|cat_id,t| if cat_id == "all" - if @all_setting_option == 0 - t = "All" - else - t = "all" - end + t = "all" end [cat_id,t] }.to_h @@ -178,6 +171,7 @@ class AnnouncementsController < ApplicationController if all_cats.count == 0 all_cats = ["all"] end + max_all_count = [OrbitHelper.widget_data_count,anns.count].min if @tab_option != 0 OrbitHelper.set_widget_title(OrbitHelper.widget_title + "
" + @@ -193,7 +187,7 @@ class AnnouncementsController < ApplicationController nil end end - "
  • #{cats_translations[cat]}
  • " + "
  • #{cats_translations[cat]}
  • " }.join("") + "" ) @@ -327,7 +321,6 @@ class AnnouncementsController < ApplicationController end extra_after_html = "" if @all_setting_option == 0 && @tab_option == 1 - max_all_count = [OrbitHelper.widget_data_count,anns.count / 2].min extra_after_html = "