88 lines
5.6 KiB
JavaScript
88 lines
5.6 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('myitsmApp')
|
|
.factory('configurationModel', ['appConfiguration', '$rootScope', 'metadataModel', 'AUTH_EVENTS', function (appConfiguration, $rootScope, metadataModel, AUTH_EVENTS) {
|
|
var configurationModel = {}, enabledServerApplications, config = appConfiguration;
|
|
configurationModel.get = function (segment) {
|
|
return $rootScope.$eval('config.' + segment, { config: config }) || {};
|
|
};
|
|
configurationModel.set = function (segment, data) {
|
|
//creating shotcurt
|
|
if (segment === 'enabledServerApplications') {
|
|
enabledServerApplications = data;
|
|
}
|
|
appConfiguration[segment] = data;
|
|
};
|
|
configurationModel.getWeekStartingDay = function () {
|
|
return (!window.isRtl) ? 1 : 0;
|
|
};
|
|
configurationModel.isServerApplicationEnabled = function (appName) {
|
|
return _.contains(enabledServerApplications, appName);
|
|
};
|
|
configurationModel.isFileExtensionAllowed = function (fileExt) {
|
|
var asc = configurationModel.get('attachmentSecurityConfiguration');
|
|
if (asc) {
|
|
if (asc.ruleType === 'whiteListExtensions' && _.contains(asc.fileExtensions, fileExt)) {
|
|
return true;
|
|
}
|
|
var fileExtensions = _(asc.fileExtensions).map(function (val) { return val.toLowerCase(); }).value();
|
|
if (asc.ruleType === 'blackListExtensions' && !_.contains(fileExtensions, fileExt.toLowerCase())) {
|
|
return true;
|
|
}
|
|
if (asc.ruleType === 'allowAll') {
|
|
return true;
|
|
}
|
|
if (asc.ruleType === 'allowNone') {
|
|
return false;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
function loadGlobalMetadata() {
|
|
metadataModel.getMetadataByType(EntityVO.TYPE_GLOBAL).then(function (metadata) {
|
|
if (metadata.configurationParameters) {
|
|
var cp = metadata.configurationParameters;
|
|
configurationModel.companyChunkSize = cp.assignmentCompanyChunkSize ? parseInt(cp.assignmentCompanyChunkSize) : 80;
|
|
configurationModel.organizationChunkSize = cp.assignmentSupportOrganizationChunkSize ? parseInt(cp.assignmentSupportOrganizationChunkSize) : 80;
|
|
configurationModel.supportGroupChunkSize = cp.assignmentSupportGroupChunkSize ? parseInt(cp.assignmentSupportGroupChunkSize) : 80;
|
|
configurationModel.supportPersonChunkSize = cp.assignmentSupportPersonChunkSize ? parseInt(cp.assignmentSupportPersonChunkSize) : 80;
|
|
configurationModel.locationSiteChunkSize = cp.locationSiteChunkSize ? parseInt(cp.locationSiteChunkSize) : 80;
|
|
if (cp.explicitStatsRefresh) {
|
|
var explicitStatsRefresh = cp.explicitStatsRefresh;
|
|
configurationModel.explicitStatsRefresh = typeof explicitStatsRefresh === 'string' ? explicitStatsRefresh === 'true' : explicitStatsRefresh;
|
|
}
|
|
if (cp.disableCollisionManagement) {
|
|
var disableCollisionManagement = cp.disableCollisionManagement;
|
|
configurationModel.disableCollisionManagement = typeof disableCollisionManagement === 'string' ? disableCollisionManagement === 'true' : disableCollisionManagement;
|
|
}
|
|
if (cp.disableImpactAnalysis) {
|
|
var disableImpactAnalysis = cp.disableImpactAnalysis;
|
|
configurationModel.disableImpactAnalysis = typeof disableImpactAnalysis === 'string' ? disableImpactAnalysis === 'true' : disableImpactAnalysis;
|
|
}
|
|
if (cp.showNameInSmartRecorderCreateTicket) {
|
|
var showNameInSmartRecorderCreateTicket = cp.showNameInSmartRecorderCreateTicket;
|
|
configurationModel.showNameInSmartRecorderCreateTicket = typeof showNameInSmartRecorderCreateTicket === 'string' ? showNameInSmartRecorderCreateTicket === 'true' : showNameInSmartRecorderCreateTicket;
|
|
}
|
|
if (cp.dateTimeStyleProperty) {
|
|
configurationModel.dateTimeStyleProperty = cp.dateTimeStyleProperty;
|
|
}
|
|
if (cp.socialWorklogAccessSetting) {
|
|
var socialWorklogAccessSetting = cp.socialWorklogAccessSetting;
|
|
configurationModel.socialWorklogAccessSetting = typeof socialWorklogAccessSetting === 'string' ? socialWorklogAccessSetting === 'true' : (typeof socialWorklogAccessSetting === 'boolean') ? socialWorklogAccessSetting : false;
|
|
}
|
|
var searchByCompanyFlag = cp.smartRecorderSearchByCompany;
|
|
configurationModel.smartRecorderSearchByCompany = typeof searchByCompanyFlag === 'string' ? searchByCompanyFlag === 'true' : searchByCompanyFlag;
|
|
}
|
|
});
|
|
}
|
|
$rootScope.$on(AUTH_EVENTS.LOGIN_SUCCESS, function () {
|
|
loadGlobalMetadata();
|
|
});
|
|
$rootScope.$on(AUTH_EVENTS.SESSION_ACTIVE, function () {
|
|
loadGlobalMetadata();
|
|
});
|
|
return configurationModel;
|
|
}]);
|
|
}());
|