(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;
}
}
})();