(function() { "use strict"; angular.module('shared') .component('manageStudents', { templateUrl: '/shared/js/angular/main-navigation/manage-students.html', controller: 'ManageStudentsController', transclude: { unauthorized: '?unauthorized' }, bindings: { isAuthenticated: '<' } }) .controller('ManageStudentsController', ['memberInfo', 'loggedInInfo', 'AuthGo', 'SiteHelper', 'SITE_ID', 'classroomInfo', 'FeatureCheck', 'classroomListItemAmbassador', 'responsiveSiteService', function ManagerStudentsController(memberInfo, loggedInInfo, AuthGo, SiteHelper, SITE_ID, classroomInfo, FeatureCheck, classroomListItemAmbassador, responsiveSiteService) { var ctrl = this; var hasMultipleClassrooms = classroomInfo.activeClassrooms && Object.keys(classroomInfo.activeClassrooms).length > 1 && FeatureCheck.isFeatureEnabled('MULTIPLE_CLASSROOMS_MODEL'); var isKaz = parseInt(SITE_ID) === SiteHelper.KAZ_SITE_ID; ctrl.isVaz = parseInt(SITE_ID) === SiteHelper.VAZ_SITE_ID; ctrl.isManageStudentsRedesignEnabled = FeatureCheck.isFeatureEnabled('MANAGE_STUDENTS_REDESIGN'); ctrl.buttonLabel = isKaz ? 'My Classroom' : 'Manage Students'; ctrl.ariaLive = !loggedInInfo.hasManageRosterPrivilege ? 'polite' : 'off'; ctrl.isMainNavigationResponsive = responsiveSiteService.isMainNavigationResponsive(); ctrl.responsiveWidthLimit = responsiveSiteService.getResponsiveWidthLimit(); ctrl.setPopover = function(popoverCtrl) { ctrl.popoverCtrl = popoverCtrl; }; ctrl.close = function() { ctrl.popoverCtrl.close(); }; ctrl.onOpenChanged = function(open) { if (!open) { classroomListItemAmbassador.setInitFirstClassroomOpen(false); } }; ctrl.contentKeyDown = function(event) { if (typeof modalKeyDown == 'function') { modalKeyDown(event, ctrl.close, 'js-manageStudentsTarget'); } }; ctrl.getKazUrl = function(url) { return isKaz ? url : AuthGo.getUrl('kaz', url); }; ctrl.initFirstClassroomOpen = function() { classroomListItemAmbassador.setInitFirstClassroomOpen(true); }; ctrl.showClassroomList = function() { return showStudents() && !hasMultipleClassrooms; }; ctrl.showMultipleClassroomsList = function() { return showStudents() && hasMultipleClassrooms; }; ctrl.showAddStudents = function() { return ctrl.isAuthenticated && !memberInfo.hasStudents && loggedInInfo.hasManageRosterPrivilege; }; ctrl.showUnauthorized = function() { return !ctrl.isAuthenticated || !loggedInInfo.hasManageRosterPrivilege; }; ctrl.requireLogin = function() { return ctrl.isManageStudentsRedesignEnabled && ctrl.isAuthenticated; }; function showStudents() { return ctrl.isAuthenticated && memberInfo.hasStudents && loggedInInfo.hasManageRosterPrivilege; } } ]) })();