(function () { 'use strict'; angular .module('saz') .provider('storylineLesson', storylineLesson); function storylineLesson () { var storylineLesson = null; return { setStorylineLessonData: setStorylineLessonData, $get: ['_', storylineLessonFactory] }; function setStorylineLessonData(storylineLessonData) { storylineLesson = storylineLessonData; } function storylineLessonFactory(_) { var currentStorylineLessons = null; var activityTypes = { read: { name: "read", displayName: "Read", iconClass: "icon-readC", selected: true, id: 2, displayOrder: 1 }, listen: { name: "listen", displayName: "Listen", iconClass: "icon-listenC", selected: true, id: 1, displayOrder: 2 }, quiz: { name: "quiz", displayName: "Quiz", iconClass: "icon-quizC", selected: true, id: 3, displayOrder: 3 }, watch: { name: "watch", displayName: "Watch", iconClass: "icon-watchC", selected: true, id: 33, displayOrder: 4 }, interactive_lesson: { name: "interactive_lesson", displayName: "Interactive Science Lesson", iconClass: "icon-scienceInteractiveC", selected: true, id: 36, displayOrder: 5 }, interactive_component: { name: "interactive_component", displayName: "Interactive Science Lesson", iconClass: "icon-scienceInteractiveC", selected: true, id: 43, displayOrder: 6 }, formative_worksheet: { name: "formative_worksheet", displayName: "Quiz", iconClass: "icon-quizC", selected: true, id: 45, displayOrder: 7 } }; return { getLessonsForStoryline: getLessonsForStoryline, getActivitiesForCurrentStorylineLessons: getActivitiesForCurrentStorylineLessons, getActivitiesForResources: getActivitiesForResources, getAssignableResources: getAssignableResources, getReadingLevels: getReadingLevels }; function getLessonsForStoryline(id) { currentStorylineLessons = _.reduce(storylineLesson, function(memo, lesson) { if(lesson.lesson_number == id && lesson.material !== null && ((lesson.material.typeId==102 && lesson.material.worksheetResourceDeploymentId) || lesson.available_in_kaz || lesson.investigation_pack_material_id || lesson.landing_page_material_id)) { memo.push(lesson); } return memo; }, []); return currentStorylineLessons; } function getActivitiesForCurrentStorylineLessons() { return _.sortBy(_.reduce(currentStorylineLessons, function(memo, lesson) { if(lesson.material.readResourceDeploymentId && !memo.includes(activityTypes['read'])) { memo.push(activityTypes['read']); } if(lesson.material.listenResourceDeploymentId && !memo.includes(activityTypes['listen'])) { memo.push(activityTypes['listen']); } if(lesson.material.quizResourceDeploymentId && !memo.includes(activityTypes['quiz'])) { memo.push(activityTypes['quiz']); } if(lesson.material.watchResourceDeploymentId && !memo.includes(activityTypes['watch'])) { memo.push(activityTypes['watch']); } if(lesson.material.interactiveLessonResourceDeploymentId && !memo.includes(activityTypes['interactive_lesson'])) { memo.push(activityTypes['interactive_lesson']); } if(lesson.material.interactiveComponentResourceDeploymentId && !memo.includes(activityTypes['interactive_component'])) { memo.push(activityTypes['interactive_component']); } if(lesson.material.worksheetResourceDeploymentId && !memo.includes(activityTypes['formative_worksheet'])) { memo.push(activityTypes['formative_worksheet']); } return memo; }, []), function(activityType) { return activityType.displayOrder; }); } function getActivitiesForResources(resources) { return _.reduce(resources, function(memo, material) { if(material.readResourceDeploymentId && !memo.includes('read')) { memo.push(activityTypes['read'].name); } if(material.listenResourceDeploymentId && !memo.includes('listen')) { memo.push(activityTypes['listen'].name); } if(material.quizResourceDeploymentId && !memo.includes('quiz')) { memo.push(activityTypes['quiz'].name); } if(material.watchResourceDeploymentId && !memo.includes('watch')) { memo.push(activityTypes['watch'].name); } if(material.interactiveLessonResourceDeploymentId && !memo.includes('interactive_lesson')) { memo.push(activityTypes['interactive_lesson'].name); } if(material.interactiveComponentResourceDeploymentId && !memo.includes('interactive_component')) { memo.push(activityTypes['interactive_component'].name); } if(material.worksheetResourceDeploymentId && !memo.includes('formative_worksheet')) { memo.push(activityTypes['formative_worksheet'].name); } return memo; }, []); } function getAssignableResources() { return _.reduce(currentStorylineLessons, function(memo, lesson) { if(lesson.material.rkResourceId) { lesson.selected = true; memo.push(lesson); } return memo; }, []); } function getReadingLevels() { var hasMultiLevelResource = _.filter(getAssignableResources(), function(resource) { return resource.landing_page_material_id !== null && resource.landing_page_material_id !== 0; }).length >= 1; if(hasMultiLevelResource) { return ['low', 'mid', 'high']; } else if(hasSitNResource()) { return ['Low/Mid', 'High']; } return []; } function hasSitNResource() { return _.filter(getAssignableResources(), function(resource) { return resource.material.typeId === null; }).length >= 1; } } } })();