'use strict'; (function () { 'use strict'; angular.module('innovationStudio') .factory('studioModel', ['authModel', 'session', '$window', '$q', '$rootScope', 'AUTH_EVENTS', 'systemAlertService', '$filter', 'metadataModel', function (authModel, session, $window, $q, $rootScope, AUTH_EVENTS, systemAlertService, $filter, metadataModel) { var studioModel = {}; studioModel.ccsFetched = false; studioModel.enableISCalendar = false; studioModel.enableSharedConsole = false; studioModel.baseUrlForIS = ''; studioModel.enableISAssetConsole = false; studioModel.init = function () { return metadataModel.getMetadataByType(EntityVO.TYPE_GLOBAL).then(function (metadata) { setAllCCS(metadata); return studioModel; }); }; studioModel.calendarEnabledPromise = function () { if (!studioModel.ccsFetched) { return metadataModel.getMetadataByType(EntityVO.TYPE_GLOBAL).then(function (metadata) { setAllCCS(metadata); return studioModel.enableISCalendar; }); } else { return $q.when(studioModel.enableISCalendar); } }; studioModel.sharedConsoleEnabledPromise = function () { if (!studioModel.ccsFetched) { return metadataModel.getMetadataByType(EntityVO.TYPE_GLOBAL).then(function (metadata) { setAllCCS(metadata); return studioModel.enableSharedConsole; }); } else { return $q.when(studioModel.enableSharedConsole); } }; studioModel.assetConsoleEnabledPromise = function () { if (!studioModel.ccsFetched) { return metadataModel.getMetadataByType(EntityVO.TYPE_GLOBAL).then(function (metadata) { setAllCCS(metadata); return studioModel.enableISAssetConsole; }); } else { return $q.when(studioModel.enableISAssetConsole); } }; function setAllCCS(metadata) { studioModel.ccsFetched = true; studioModel.enableISCalendar = metadata.configurationParameters['enableISCalendar'] === "true"; studioModel.enableSharedConsole = metadata.configurationParameters.enableSharedTicketConsole === "true"; studioModel.baseUrlForIS = metadata.configurationParameters['innovationSuiteBaseURL']; studioModel.smartITUrl = metadata.configurationParameters['smartit.url']; studioModel.enableISAssetConsole = metadata.configurationParameters['enableISAssetConsole'] === "true"; } return studioModel; } ]); }());