Filter for step 3

Filter by type in step 3

当前为 2018-02-17 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Filter for step 3
  3. // @namespace tequila_j-script
  4. // @description Filter by type in step 3
  5. // @include http://bgg.activityclub.org/olwlg/viewlist.cgi?*
  6. // @require https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
  7. // @version 0.1
  8. // @grant none
  9. // ==/UserScript==
  10. //hide lines that are associated with dummy itens
  11.  
  12. console.log("start");
  13. (function() {
  14.  
  15. var cssList = "want";
  16. var allRows = $('table#geeklist > tbody > tr');
  17. allRows.each(function(){
  18. var $gameName = $(this).find('td:nth-child(2) > a:first');
  19. var cssClasses = $gameName.attr("class");
  20. $(this).addClass(cssClasses);
  21. });
  22. //add checkboxes to select items
  23. var $filters = $("#pleasewait").nextUntil("img").filter("span");
  24. var $divFilters = $("<div/>");
  25. $divFilters.append($("<span class='col1'>Uncategorized</span>"));
  26. $divFilters.append($filters);
  27. $("#pleasewait").after($divFilters);
  28.  
  29. //add no category:
  30. $filters = $divFilters.find("span");
  31.  
  32. $filters.wrap("<div/>");
  33. $filters.each(function() {
  34. var $this = $(this);
  35. var $checkBox = $("<input type='checkbox' checked='true'/>");
  36. $(this).after($checkBox);
  37. $checkBox.on("click",function() {
  38. if ($checkBox.is(':checked'))
  39. show($this.attr('class'));
  40. else
  41. hide($this.attr('class'));
  42. })
  43. });
  44. function show(cssClass) {
  45. console.log("Showing:" + cssClass)
  46. if (cssClass == "all") {
  47. allRows.show();
  48. return;
  49. }
  50. allRows.each(function() {
  51. if ($(this).hasClass(cssClass)) $(this).show();
  52. });
  53. }
  54. function hide(cssClass) {
  55. console.log("Hiding:" + cssClass)
  56. if (cssClass == "all") {
  57. allRows.hide();
  58. return;
  59. }
  60. allRows.each(function() {
  61. if ($(this).hasClass(cssClass)) $(this).hide();
  62. });
  63. }
  64. })();
  65. console.log("end");
  66.