(function(){ 'use strict'; angular.module('raz') .component('lcmAllLearners', { templateUrl: '/js/angular/literacy-curriculum-map/components/lcm-all-learners.html', controller: 'LCMAllLearnersController', bindings: { items: '<' } }) .controller('LCMAllLearnersController', LCMAllLearnersController); LCMAllLearnersController.$inject = ['SITE_ID', 'SiteHelper', 'lazAccessRestrictionService', 'lcmGradeService', 'assignTargetedResource', 'HAS_ELL_SUBSCRIPTION', '_', '$sce']; function LCMAllLearnersController (SITE_ID, SiteHelper, lazAccessRestrictionService, lcmGradeService, assignTargetedResource, HAS_ELL_SUBSCRIPTION, _, $sce) { var ctrl = this; ctrl.$onInit = function() { ctrl.learnerFolders = ctrl.items; var currentGradeId = lcmGradeService.getCurrentGradeId(); ctrl.currentGradeIndex = currentGradeId === 'k' ? 1 : parseInt(currentGradeId) + 1; ctrl.page = '/literacy-curriculum-map/'; ctrl.isRazPlus = parseInt(SITE_ID) === SiteHelper.RAZ_PLUS_SITE_ID; }; ctrl.isAuthorized = function() { return lazAccessRestrictionService.isAuthorized(); }; ctrl.trustAsHtml = function(html) { return $sce.trustAsHtml(html); }; ctrl.showAssignButton = function(resources) { var isAssignable = function (resource) { return resource.is_assignable; }; return ctrl.isRazPlus && ctrl.isAuthorized() && _.some(resources, isAssignable); }; ctrl.canViewContent = function(learnerFolder) { var name = learnerFolder['name']; var isEllFolder = name.indexOf('English Language Learners') > -1; if (isEllFolder) { return HAS_ELL_SUBSCRIPTION; } return true; }; ctrl.showAssignModal = function($event) { var element = $event.currentTarget; assignTargetedResource.show(element.getAttribute('data-action'), element.getAttribute('data-resourceid'), element.getAttribute('data-translationid'), element.getAttribute('data-bookroomcollectionid'), element.getAttribute('data-title') || element.getAttribute('data-collectiontitle')) } ctrl.getResourceName = function(resource) { var title = resource['title']; var level = resource['level']; var category = resource['category']; var parentCategory = resource['parent_category']; if (level) { title += ' - Level ' + level; } if (category && parentCategory && parentCategory.length > 0) { category += ', ' + parentCategory; } if (!category && parentCategory) { category = parentCategory; } if (category) { title += '
' + category + ''; } return title; } ctrl.belowGradeRange = function(resource) { var resourceGradeIndex = chooseResourceGradeIndex(resource['grade_range']); return resourceGradeIndex && resourceGradeIndex < parseInt(ctrl.currentGradeIndex); } ctrl.atGradeRange = function(resource) { var resourceGradeIndex = chooseResourceGradeIndex(resource['grade_range']); return !resourceGradeIndex || resourceGradeIndex === parseInt(ctrl.currentGradeIndex); } ctrl.aboveGradeRange = function(resource) { var resourceGradeIndex = chooseResourceGradeIndex(resource['grade_range']); return resourceGradeIndex && resourceGradeIndex > parseInt(ctrl.currentGradeIndex); } function chooseResourceGradeIndex(gradeRange) { if (!gradeRange) { return null; } if (gradeRange.indexOf('K') > -1) { return 1; } if (gradeRange.indexOf('1') > -1) { return 2; } if (gradeRange.indexOf('2') > -1) { return 3; } if (gradeRange.indexOf('3') > -1) { return 4; } if (gradeRange.indexOf('4') > -1) { return 5; } if (gradeRange.indexOf('5') > -1) { return 6; } return null; } } })();