(function () { 'use strict'; var app = angular.module('courses'); var templatePath = modulesSharedResourcesUrl + 'Modules/Courses/Views/'; app.directive('courseManager', ['config', 'coursesDataContext', 'common', '$modal', 'OrganisationAdminService', 'myUsersDataContext', '$rootScope', function (config, coursesDataContext, common, $modal, OrganisationAdminService, myUsersDataContext, $rootScope) { return { restrict: 'E', templateUrl: templatePath + 'courses.html', link: link }; function link($scope, elem, attrs) { var getLogFn = common.logger.getLogFn; var log = getLogFn('branding'); var logSuccess = getLogFn('branding', "success"); $scope.loaded = false; $scope.topLevelOrg = ""; activate(); function activate() { getCourses(); } function getCourses() { OrganisationAdminService.getCurrentOrg().then(function (data) { $scope.topLevelOrg = data.id; return coursesDataContext.getCourses(data.id).then(function (courses) { log('Got courses'); $scope.courses = courses; console.log(courses); $scope.loaded = true; }); }); } $scope.addCourse = function () { showCreateUpdateUi(null); }; $scope.editCourse = function (course) { showCreateUpdateUi(course); }; $scope.deleteCourse = function (course) { coursesDataContext.deleteCourse(course.id).then(function (result) { getCourses(); }); }; function showCreateUpdateUi(course, parentId, notOriginal) { $modal.open({ templateUrl: templatePath + 'createupdatecourse.html', controller: createCourseController, size: 'lg', backdrop: 'static', resolve: { course: function () { return course; }, orgId: function () { return $scope.organisationId; }, topLevelOrg: function () { return $scope.topLevelOrg; }, notOriginal: function () { return notOriginal; } } }); } //controller to handle the create job role modal view var createCourseController = function ($scope, $modalInstance, course, orgId, topLevelOrg, notOriginal) { $scope.organisationId = orgId; $scope.topLevelOrg = topLevelOrg; function getorganisations() { myUsersDataContext.getOrganisationsFullFlat(0).then(function (data) { $scope.organisations = data; }); } getorganisations(); $scope.status = [ { name: "Active", value: 0 }, { name: "Archived", value: 1 } ]; $scope.categories = [ { name: "NSAN Endorsed Programme", value: 0 }, { name: "Qualification", value: 1 }, { name: "Other", value: 2 } ]; $scope.expiryPeriodUnit = [ { name: "Day", value: 0 }, { name: "Month", value: 1 }, { name: "Year", value: 2 } ]; if (course) { //must be updating //coursesDataContext.getCourse(course.id).then(function (data) { $scope.course = course; $scope.loaded = true; //}); $scope.isEdit = true; } else { //must be adding a new job role $scope.course = {}; $scope.isEdit = false; $scope.loaded = true; } //ok clicked - save the new group $scope.ok = function () { saveCourse(); }; function saveCourse() { $scope.saving = true; if ($scope.course.id) { coursesDataContext.updateCourse($scope.course.id, $scope.course).then(function (result) { logSuccess("Successfully updated"); getCourses(); $modalInstance.dismiss(); }); } else { coursesDataContext.createCourse($scope.course).then(function (result) { logSuccess("Successfully created"); getCourses(); $modalInstance.dismiss(); }); } } $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; }; $scope.$on('UpdateCourses', function () { activate(); }); } }]); })();