"use strict"; angular.module("vocabulary") .component("premadeLessonListing", { templateUrl: "/js/redesign-angular/premadeLessons/premadeListings/premade-lesson-listing.html", controller: "PremadeLessonListing", bindings: { listingData: "<", showPopover: "<", onSelectListing: "&" } }) .controller("PremadeLessonListing", [ "premadeNavigationService", "messageBoxService", "scrollService", "drawerService", "partsOfSpeechService", "accessRestriction", "FeatureCheck", function PremadeLessonListingController(premadeNavigationService, messageBoxService, scrollService, drawerService, partsOfSpeechService, accessRestriction, FeatureCheck){ var ctrl = this; this.$onInit = init; function init() { if(ctrl.isTopic()){ ctrl.listingId = ctrl.listingData.topicId; } else{ ctrl.listingId = ctrl.listingData.lessonId; } if (parseInt(premadeNavigationService.getSelectedPremadeLessonId()) === parseInt(ctrl.listingId)) { premadeNavigationService.setSelectedPremadeLessonId(null); ctrl.toggleLessonCard(); } } function isDataPresent(metaData){ return metaData !== null && metaData !== undefined && metaData.length > 0 } ctrl.toggleLessonCard = function(event){ killEvent(event); drawerService.closeOpenDrawers("js-lesson-drawer", 300, "linear") .then(enforceAccessRestriction) .then(proceedIfTeacherIsAuthorized) .catch(function(e) {}); }; function killEvent(event) { if(event){ event.preventDefault(); event.stopPropagation(); } } function enforceAccessRestriction() { return accessRestriction.enforceRestriction({lid: ctrl.listingId}); } function proceedIfTeacherIsAuthorized() { return premadeNavigationService.isTeacherAuthorized() .then(function (isAuthorized) { if (isAuthorized) { onSelectListing(); } else { messageBoxService.showSubscriptionRequiredMessageBox(); } }); } function onSelectListing() { ctrl.onSelectListing({ $event: { listingId: ctrl.listingId } }); } ctrl.closeLesson = onSelectListing; ctrl.lessonName = function (){ var lessonName = ctrl.listingData.title; if(premadeNavigationService.isBasalSelectedCategory() || premadeNavigationService.isSazSelectedCategory()){ lessonName = ctrl.listingData.lessonName; if(!FeatureCheck.isFeatureEnabled('VAZ_TOPIC_LESSON_NAMES')) { if (premadeNavigationService.isSazSelectedCategory()) { lessonName = lessonName + " Unit"; } } } return lessonName; }; ctrl.hasImage = function(){ return ctrl.listingData.imagePath !== null && ctrl.listingData.imagePath !== undefined && ctrl.listingData.imagePath.length > 0; }; ctrl.showSecondary = function(){ return ctrl.showWordsWithPartOfSpeech() || ctrl.showContentArea() || ctrl.showTextType() || ctrl.showMultiLevel() || ctrl.showVocabLevelName() || ctrl.showELLVocabBookLevelName(); }; ctrl.showWordsWithPartOfSpeech = function(){ return (ctrl.isTopic() && !ctrl.hasImage()) || ctrl.isBasal(); }; ctrl.getWordsWithPartOfSpeech = function(){ return ctrl.listingData.words; }; ctrl.getWords = function(){ return ctrl.listingData.words.join((", ")); }; ctrl.isTopic = function(){ return premadeNavigationService.isRazEllLanguagePackSelectedCategory() || premadeNavigationService.isRazEllPowerPackSelectedCategory(); }; ctrl.isBasal = function(){ return premadeNavigationService.isBasalSelectedCategory(); }; ctrl.isGraphic = function(){ return premadeNavigationService.isRazGraphicSelectedCategory(); }; ctrl.isPortrait = function(){ return ctrl.listingData.orientation === 'portrait'; }; ctrl.isScience = function(){ return premadeNavigationService.isSazSelectedCategory(); }; ctrl.showAreaName = function(){ return premadeNavigationService.isRazEllLanguagePackSelectedCategory() && (ctrl.getAreaName().length > 0); }; ctrl.getAreaName = function(){ var display = ""; if(isDataPresent(ctrl.listingData.areaName)){ display = ctrl.listingData.areaName; } return display; }; ctrl.showContentArea = function(){ return ctrl.isTopic() && (ctrl.getContentArea().length > 0); }; ctrl.getContentArea = function(){ var display = ""; if(isDataPresent(ctrl.listingData.contentArea)){ display = ctrl.listingData.contentArea; } return display; }; ctrl.showLevelName = function(){ return !ctrl.showContentArea() && !ctrl.isBasal() && !ctrl.isGraphic() && !ctrl.showVocabLevelName() && !ctrl.showELLVocabBookLevelName() && ((ctrl.getLevelName() !== null && ctrl.getLevelName() !== undefined) && ctrl.getLevelName().length > 0); }; ctrl.getLevelName = function() { var display = ""; if (premadeNavigationService.isSazSelectedCategory()){ if(isDataPresent(ctrl.listingData.categoryName)){ display = "Grades " + ctrl.listingData.categoryName; } } else if (premadeNavigationService.isRazSharedReadingSelectedCategory()){ if(isDataPresent(ctrl.listingData.levelName)){ display = ctrl.listingData.levelName.charAt(ctrl.listingData.levelName.length - 1); } } else{ if(isDataPresent(ctrl.listingData.levelName)){ display = ctrl.listingData.levelName; } } return display; }; ctrl.isRazEllPowerPackSelectedCategory = function(){ return premadeNavigationService.isRazEllPowerPackSelectedCategory(); }; ctrl.isRazLeveledBooksSelectedCategory = function(){ return premadeNavigationService.isRazLeveledBooksSelectedCategory(); }; ctrl.showVocabLevelName = function(){ return premadeNavigationService.isRazVocabSelectedCategory() && (ctrl.getLevelName().length > 0); }; ctrl.showELLVocabBookLevelName = function(){ return premadeNavigationService.isRazEllVocabBookSelectedCategory() && (ctrl.getLevelName().length > 0); }; ctrl.showTextType = function(){ return premadeNavigationService.isRazSelectedCategory(); }; ctrl.getTextType = function(){ var type = 'Nonfiction'; if(ctrl.listingData.fiction === true) { type = 'Fiction'; } return type; }; ctrl.showMultiLevel = function(){ return premadeNavigationService.isRazLeveledBooksSelectedCategory() && (ctrl.getMultiLevel().length > 0); }; ctrl.getMultiLevel = function(){ var display = ""; if(ctrl.listingData.multiset === true){ display = "Multilevel Set"; } return display; }; ctrl.showLexile = function(){ return premadeNavigationService.isRazLeveledBooksSelectedCategory() && (ctrl.getLexile().length > 0); }; ctrl.getLexile = function(){ var display = ""; if(isDataPresent(ctrl.listingData.lexile)) { display = "Lexile " + ctrl.listingData.lexile; } return display; }; ctrl.hasAbbreviationForPartOfSpeech = partsOfSpeechService.hasAbbreviation; ctrl.abbreviatePartOfSpeech = partsOfSpeechService.abbreviate; ctrl.dataRetrieved = function(){ premadeNavigationService.isTeacherAuthorized() .then(function (authorized) { if (authorized) { scrollService.scrollToTopOfElement("premade_lesson_listing_" + ctrl.listingId, 300, "linear").then(openThisDrawer); } }); }; function openThisDrawer() { drawerService.openSingleDrawer("drawer_" + ctrl.listingId, 300, "linear"); } }]);