Guest User

Untitled

a guest
Nov 17th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. const CHECKED_FILTER_CLASS='btn-warning'; //имя класса, наличие которого у кнопки определяет нажата она или нет / нужно её учитывать или нет
  2. const SESSION_STORAGE_ACTIVE_FILTERS_NAME='active_filters'; //имя ключа в сессионном хранилище js с json массивом нажатых кнопок фильтров
  3.  
  4.  
  5. let active_filters=load_from_session(SESSION_STORAGE_ACTIVE_FILTERS_NAME); //Получаем данные из сессии страницы о нажатых кнопках
  6.  
  7. //Если есть данные, то восстанавливаем кнопки и перезапускаем фильтр.
  8. if (active_filters.length>0){
  9. restore_pushed_filter_buttons(active_filters);
  10. //apply_filter();
  11. }
  12.  
  13. /**
  14. * Делает указанные кнопки нажатыми
  15. *
  16. * @param buttons - массив с id кнопок
  17. * @returns {boolean}
  18. */
  19. function restore_pushed_filter_buttons(buttons) {
  20. for (i = buttons.length - 1; i >= 0; i--) {
  21. jQuery('#'+buttons[i]).addClass(CHECKED_FILTER_CLASS);
  22. }
  23.  
  24. return true;
  25. }
  26.  
  27. /**
  28. * Сохраняет переданные данные в сессию вкладки
  29. *
  30. * @param key - имя ключа, под которым данные будут сохранены в сессии
  31. * @param data - данные, которые будут сохранены в сессии
  32. * @returns {boolean}
  33. */
  34. function save_in_session(key, data) {
  35. if (Array.isArray(data)){
  36. data=JSON.stringify(data);
  37. }
  38. sessionStorage.setItem(key, data);
  39.  
  40. return true;
  41. }
  42.  
  43. /**
  44. * Получает из сессии вкладки данные по ключу
  45. *
  46. * @param key - имя ключа в сесси
  47. * @return {boolean}
  48. */
  49. function load_from_session(key) {
  50. let data=sessionStorage.getItem(key);
  51. if (data) {
  52. return JSON.parse(data);
  53. }
  54.  
  55. return false;
  56. }
  57.  
  58. function load_from_session(key) {
  59. let data=sessionStorage.getItem(key);
  60. save_in_session(SESSION_STORAGE_ACTIVE_FILTERS_NAME, data); //костыль, который не работает.
  61. if (data) {
  62. return JSON.parse(data);
  63. }
  64.  
  65. return false;
  66. }
Add Comment
Please, Sign In to add comment