SmartIT_Extensions/BMC/smart-it-full-helix/scripts/app/innovation-studio/studio-model.js

64 lines
3.0 KiB
JavaScript

'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;
}
]);
}());