{"_id":"@activeadmin-plugins/active_admin_filters_visibility","_rev":"2-eef5db02e41c9a38b98d6238c1ba84e5","name":"@activeadmin-plugins/active_admin_filters_visibility","dist-tags":{"latest":"1.2.0"},"versions":{"1.2.0":{"name":"@activeadmin-plugins/active_admin_filters_visibility","version":"1.2.0","keywords":["active","admin","filters","visibility"],"author":{"name":"Gena M.","email":"workgena@gmail.com"},"license":"MIT","_id":"@activeadmin-plugins/active_admin_filters_visibility@1.2.0","maintainers":[{"name":"gigorok","email":"igor.g@didww.com"},{"name":"skumring","email":"denys.m@didww.com"}],"homepage":"https://github.com/activeadmin-plugins/active_admin_filters_visibility#readme","bugs":{"url":"https://github.com/activeadmin-plugins/active_admin_filters_visibility/issues"},"dist":{"shasum":"8a3f13a1ec4a57b67216add2668a034c6254c3d7","tarball":"https://registry.npmjs.org/@activeadmin-plugins/active_admin_filters_visibility/-/active_admin_filters_visibility-1.2.0.tgz","fileCount":4,"integrity":"sha512-YJ+4XvKiRJlKRu5NtiMSZm3C9O7jPqrLIeZomnYKHMDFGpIk5WIDQBkleJAPxo+fZUtwRmG1+MeKSiw83OxdvQ==","signatures":[{"sig":"MEYCIQCWoU29CoaWzf5q0Xwgm9gk+WJ5VtkQOafbvTD9JfJjCgIhAMqPTFoNYAxlnrz03FN889GF4Y18J/9KjcQPGE7oaObO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijfSyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpPdg/+KSLlWQWDEchj7uhsovJVL/9lNa/ktvV0W65zEQj463To6pkN\r\nT8CAuePI64I9oV22JBqd21LjFsC139/oQW15UCFbrVX93x8O7slVUKFOA6fX\r\nmg08FmK7pe1UJpcMCto4xxawpmtfBXzvwVZtJJBfsYlsEwcGqFaQgifrv1Zj\r\n+QVm5FcdYEnmc6++Vwn+UyDUJ3B2nAc+Uz+pVK7gfZs458kZECs07lSiJio7\r\ncC6VonkDadG/j0BcXGs3PhK/iQvjnINA7CDHElZVabzRnpYPqYuiPBxPnq0p\r\nlyeSZLONfmmsHymVp3Mqew7fcaXMFjpLwuEz52xWGmxZ1yS+ge0EiGziyV6N\r\nT94VJOMzldxqKV7C8+bt/kSnZXOipy1Gg5vmP6IAFL99aPRq9y9bY8d+/3tl\r\nUPr2Izbf6CW49b6ZnSNYR/bv2XwuwBUFu1sl3DRb9hDtjRZ8eqPVG0MZ1raV\r\npdsVHTE/sZzRejQNLGADsy0ljP24zzSULR1NE49b29o9oNOfbswu55PKLAfk\r\nBcpp/RkfB/cAD2GuQSc/7zIJUmBNwj+Jacz/O8D3KT0nzIMeAI7gz1cbDJt7\r\nLcmT5SzHXJXhkaYRxyb40ihvVmY6TYZWXh0m9i4HTTjs9McqJnqwuiepjl/w\r\nheko230Gge7lE6yOP9w4TiqC5SrlyCtb7FA=\r\n=q5yu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/active_admin_filters_visibility.js","gitHead":"7f3a827a1870996320040274dff10c3a13d7c4f9","private":false,"scripts":{"prepublishOnly":"rm -rf src && cp -R app/assets/javascripts/ src"},"_npmUser":{"name":"skumring","email":"denys.m@didww.com"},"repository":{"url":"git+https://github.com/activeadmin-plugins/active_admin_filters_visibility.git","type":"git"},"_npmVersion":"8.10.0","description":"Extension for activeadmin gem to hide any filters from sidebar-filters panel","directories":{},"_nodeVersion":"16.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/active_admin_filters_visibility_1.2.0_1653470385843_0.14592946443484545","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-05-25T09:19:45.765Z","modified":"2026-04-07T16:54:46.027Z","1.2.0":"2022-05-25T09:19:46.060Z"},"bugs":{"url":"https://github.com/activeadmin-plugins/active_admin_filters_visibility/issues"},"author":{"name":"Gena M.","email":"workgena@gmail.com"},"license":"MIT","homepage":"https://github.com/activeadmin-plugins/active_admin_filters_visibility#readme","keywords":["active","admin","filters","visibility"],"repository":{"url":"git+https://github.com/activeadmin-plugins/active_admin_filters_visibility.git","type":"git"},"description":"Extension for activeadmin gem to hide any filters from sidebar-filters panel","maintainers":[{"email":"denys.m@didww.com","name":"skumring"},{"email":"igor.g@didww.com","name":"gigorok"},{"email":"fedoronchuk@gmail.com","name":"igor_fedoronchuk"}],"readme":"[![Gem Version](https://badge.fury.io/rb/active_admin_filters_visibility.svg)](https://badge.fury.io/rb/active_admin_filters_visibility)\n[![NPM Version](https://badge.fury.io/js/@activeadmin-plugins%2Factive_admin_filters_visibility.svg)](https://badge.fury.io/js/@activeadmin-plugins%2Factive_admin_filters_visibility)\n![npm](https://img.shields.io/npm/dm/@activeadmin-plugins/active_admin_filters_visibility)\n\n# ActiveAdminFiltersVisibility\n\nActiveAdmin plugin allows to hide any filter from Filters Sidebar.\nUseful when page has many filters, but admin user needs only some of them.\nEvery filter saves its state using browser's LocalStorage.\n\n![Demonstration](https://raw.githubusercontent.com/activeadmin-plugins/active_admin_filters_visibility/master/screen/example_aa_filters_visibility.gif \"Visibility example\")\n\nAlso you can use drag&drop to change filters order\n\n![Demonstration](https://raw.githubusercontent.com/activeadmin-plugins/active_admin_filters_visibility/master/screen/example_aa_filters_ordering.gif \"Ordering example\")\n\n## Install\n\nIn Gemfile add\n\n```ruby\n  gem 'active_admin_filters_visibility', git: 'https://github.com/activeadmin-plugins/active_admin_filters_visibility'\n```\n\n##### Using assets via Sprockets\nin the\n```\n  app/assets/javascript/active_admin.coffee\n```\n\nand\n\n```coffeescript\n  #= require active_admin_filters_visibility\n```\n\n##### Using assets via Webpacker (or any other assets bundler) as a NPM module (Yarn package)\n\nExecute:\n\n    $ npm i @activeadmin-plugins/active_admin_filters_visibility\n\nOr\n\n    $ yarn add @activeadmin-plugins/active_admin_filters_visibility\n\nOr add manually to `package.json`:\n\n```json\n\"dependencies\": {\n  \"@activeadmin-plugins/active_admin_filters_visibility\": \"1.2.0\"\n}\n```\nand execute:\n\n    $ yarn\n\nAdd the following line into `app/assets/javascripts/active_admin.js`:\n\n```javascript\nimport '@activeadmin-plugins/active_admin_filters_visibility';\n```\n\n##### Initialization:\n\n```javascript\n  $(document).ready(function() {\n    $('#filters_sidebar_section').activeAdminFiltersVisibility();\n  });\n```\n\n## Customization\n\n```coffeescript\n  $('.jquery-selector').activeAdminFiltersVisibility(options)\n```\n\nActiveAdminFiltersVisibility is a standard jQuery Plugin, and accepts some \"options\" as a hash.\nDefault is:\n\n```javascript\n{\n    sidebarUniqId: function() {\n      return window.location.pathname;\n    },\n    icon: '&#9782;',\n    iconClass: '',\n    iconStyle: '',\n    skipDefaultCss: false,\n    title: 'Visibility:',\n    ordering: false,\n    orderHint: 'Drag&Drop to reorder filters',\n    resetButtonTitle: 'Reset'\n}\n```\n\nYou can change icon - this is a HTML text or symbol. You can pass empty string and customize it with your CSS.\nOr you can set class(\"iconClass\") for icon or inline styles(\"iconStyle\").\n\nThis plugin has minimal CSS styling.\nIn case you want to use custom CSS, default styling can be ignored:\nset ```skipDefaultCss``` to ```true```\n\n\n### Ordering\n\nBy default ordering is disabled. You can turn it: set option ```ordering``` to ```true```.\n\n\n### Texts\nChange text in options: ```title```, ```orderHint``` and ```resetButtonTitle```\n\n\n### Dont hide filters which has selected value\n\nIf filter has selected value - that filter will not be hidden on page reload. Even if \"visibility checkbox\" is unchecked.\nThis was made for preventing unpredictable filtering: for example when user came to page by some link with predefined filtering params.\nAll default filters types(string, numeric, date range, etc.) are implemented.\nBut if you have some specific filter, you need to add custom handler.\n\nFor example you have customized filter by ID.\nAnd you want to consider \"1\" as default value and allow hiding it.\nIn this case you should add uniq class to wrapper.\n\n```ruby\nfilter :id, wrapper_html: { class: 'filter_customized_id' }\n```\n\n```javascript\n    // return TRUE if this filter has value\n    // elWrapper is jQuery element \"div.filter_form_field.filter_customized_id\"\n    // if not \"1\" then consider this filter as active, and return TRUE to prevent hiding\n    $.fn.activeAdminFiltersVisibility.registerFilterType('customized_id', function(elWrapper) {\n        var inputValue = elWrapper.find('input').val();\n        return inputValue != '1';\n    });\n```\n\n\n### Saving state\n\nPlugin saves list of hidden filters in LocalStorage, using jQuery plugin \"Lockr\" https://github.com/tsironis/lockr\nIf you need to save this in cookies or user profile, you should write your own implementation - rewrite \"$.fn.activeAdminFiltersVisibility.storage\".\nFor example:\n\n```javascript\n$.fn.activeAdminFiltersVisibility.storage = function(storageUniqId) {\n    // initialize storage with \"storageUniqId\"\n    // every page(sidebar filters) must has its uniq storageUniqId\n    var myStorage = new MyCustomizedStorage(storageUniqId);\n\n    return {\n        add: function(labelText) {\n            // add hidden filter \"labelText\" to storage myStorage\n            myStorage.add(labelText);\n        },\n        remove: function(labelText) {\n            // drop hidden filter \"labelText\" to storage myStorage\n            // makes filter visible again\n            myStorage.remove(labelText);\n        },\n        has: function(labelText) {\n            // check if labelText already hidden(in storage)\n            // should return true if exists\n            return myStorage.find(labelText) ? true : false;\n        },\n        all: function() {\n            // return array of hidden labels(filters)\n            return myStorage.getAll(); // ['Id', 'Name', 'Created At']\n        },\n        any: function() {\n            // check if current Sidebar Filter has some hidden elements\n            return this.all().length > 0;\n        }\n    }\n};\n```\n","readmeFilename":"README.md"}