(function() { "use strict"; angular.module('shared') .component('showMeOnly', { templateUrl: '/shared/js/angular/book-grid/show-me-only.html', controller: 'showMeOnlyController' }) .controller('showMeOnlyController', ['messageHandler','ResourceList','_','constantValues','resourceSorting','resourceFilter', function showMeOnlyController(messageHandler,ResourceList,_,constantValues,resourceSorting,resourceFilter) { var ctrl = this; ctrl.selectedFilters = {}; ctrl.selectedSort = function(newSort) { if (newSort) { resourceSorting.setSelectedSort(newSort.key); } var foundSort = null; if (resourceSorting.getSelectedSort()) { foundSort = _.find(constantValues.SORT_OPTIONS, function(oneSort) { return oneSort.key === resourceSorting.getSelectedSort(); }); } return foundSort ? foundSort : constantValues.SORT_OPTIONS[0]; }; ctrl.setView = function(view) { if (view === constantValues.LIST_VIEW) { ResourceList.setView(constantValues.LIST_VIEW); } else { ResourceList.setView(constantValues.GRID_VIEW); } }; ctrl.isGridView = function() { return ResourceList.getView() === constantValues.GRID_VIEW; }; ctrl.isListView = function() { return ResourceList.getView() === constantValues.LIST_VIEW; }; ctrl.getLevelBarLevel = function(key) { return ResourceList.getLevelBarLevels()[key]; }; ctrl.getLevelBarLevelKeys = function() { return Object.keys(ResourceList.getLevelBarLevels()); }; ctrl.getFilteredBooksCount = function() { return ResourceList.getFilteredBooksCount(); }; ctrl.getAllBooksCount = function() { return ResourceList.getAllBooksCount(); }; function buildFilterList() { var filterList = []; _.each(Object.keys(ctrl.selectedFilters), function(filterKey) { if (ctrl.selectedFilters[filterKey] === true) { filterList.push(filterKey); } }); return filterList; } ctrl.checkedBox = function() { resourceFilter.setShowMeOnlyFilters(buildFilterList()); }; ctrl.anyFilters = function() { return buildFilterList().length > 0; }; ctrl.clearAllFilters = function() { ctrl.selectedFilters = {}; resourceFilter.setShowMeOnlyFilters(buildFilterList()); }; ctrl.getSortOptions = function() { return constantValues.SORT_OPTIONS; }; }]); }());