(function() { "use strict"; angular.module('shared') .component('readingLevels', { templateUrl: '/shared/js/angular/book-grid/reading-levels.html', controller: 'readingLevelsController' }) .controller('readingLevelsController', ['messageHandler','ResourceList','_','languageConstants','resourceFilter','FeatureCheck', function readingLevelsController(messageHandler,ResourceList,_,languageConstants,resourceFilter,FeatureCheck) { var ctrl = this; ctrl.getLevelBarLevels = function() { return ResourceList.getLevelBarLevels(); }; ctrl.displayLevelAsActive = function(readingLevel) { return !anyActiveLevels() || isActiveLevel(readingLevel); } ctrl.toggleLevelPopout = function(readingLevel) { readingLevel.showPopout = !readingLevel.showPopout; }; ctrl.getTop = function() { if (ctrl.isSpanish()) { return ctrl.showLexile() ? -120 : -100; } return -220; }; ctrl.isSpanish = function() { return ResourceList.getLanguageId() === languageConstants.SPANISH_LANGUAGE_ID; }; ctrl.showLexile = function() { return !ctrl.isSpanish() || FeatureCheck.isFeatureEnabled('SPANISH_LEVEL_CORRELATION_CHART'); }; ctrl.clickedLevel = function(readingLevel) { var newActiveLevelList = null; if (isActiveLevel(readingLevel)) { // clicked level off newActiveLevelList = _.filter(ResourceList.getReadingLevels(),function(level) { return readingLevel['level'] !== level['level']; }); } else { // clicked level on newActiveLevelList = ResourceList.getReadingLevels() == null ? [] : ResourceList.getReadingLevels(); newActiveLevelList.push(readingLevel); } resourceFilter.setReadingLevels(newActiveLevelList); }; function isActiveLevel(readingLevel) { var foundLevel = undefined; if (ResourceList.getReadingLevels() != null) { foundLevel = _.find(ResourceList.getReadingLevels(), function (level) { return level['level'] === readingLevel['level']; }); } return foundLevel !== undefined; } function anyActiveLevels() { var oneSelectedLevel = _.find(ctrl.getLevelBarLevels(), function(readingLevel) { return isActiveLevel(readingLevel); }); return oneSelectedLevel !== undefined; } }]); }());