SmartIT_Extensions/BMC/smart-it-full/scripts/app/layout-configuration/layout-configuration-servic...

62 lines
3.2 KiB
JavaScript

"use strict";
/**
* Created by Abhranil Naha on 7/10/2017.
*/
(function () {
'use strict';
angular.module('layoutConfigModule').service('layoutConfigurationService', ['$resource', '$http', '$q', function ($resource, $http, $q) {
var resource = $resource('/smartit/rest/customization', {}, {
loadLayout: {
url: '/smartit/rest/v2/customization/screenlayout',
method: 'GET',
transformResponse: [
$http.defaults.transformResponse[0],
function (data) {
return [].concat(data);
}
],
isArray: true
},
updateLayout: {
url: '/smartit/rest/customization/save/layout',
method: 'POST'
}
});
/**
* Public functions
*/
/**
* Loads screen layout
*
* @param {Object} params
* @returns {*}
*/
this.loadLayout = function (params) {
return resource.loadLayout(params).$promise.then(function (response) {
var layouts = response;
return layouts.map(function (layout) {
var layoutVO = new LayoutConfigurationVO().build(layout);
// Remove empty additional info section
var additionalInfo = _.find(layoutVO.panels, { name: "additionalInfo" });
if (additionalInfo) {
var additionalData1Index = _.findIndex(additionalInfo.panels, { name: "additionalData" });
var additionalData2Index = _.findIndex(additionalInfo.panels, { name: "additionalData2" });
var additionalData3Index = _.findIndex(additionalInfo.panels, { name: "additionalData3" });
var additionalData4Index = _.findIndex(additionalInfo.panels, { name: "additionalData4" });
if ((additionalData1Index === -1 || !additionalInfo.panels[additionalData1Index].children || additionalInfo.panels[additionalData1Index].children.length === 0)
&& (additionalData2Index === -1 || !additionalInfo.panels[additionalData2Index].children || additionalInfo.panels[additionalData2Index].children.length === 0)
&& (additionalData3Index === -1 || !additionalInfo.panels[additionalData3Index].children || additionalInfo.panels[additionalData3Index].children.length === 0)
&& (additionalData4Index === -1 || !additionalInfo.panels[additionalData4Index].children || additionalInfo.panels[additionalData4Index].children.length === 0)) {
additionalInfo.emptyPanel = true;
}
}
return layoutVO;
});
});
};
this.updateScreenLayout = function (screenName, layout) {
return resource.updateLayout({ screen: screenName }, layout).$promise;
};
}]);
})();