201 lines
8.9 KiB
JavaScript
201 lines
8.9 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('templateModule').service('ticketTemplateService', ['$resource', function ($resource) {
|
|
var smartRecorderResource = $resource('/smartit/rest/smartrecord/templates', {}, {
|
|
getTemplates: {
|
|
method: 'POST',
|
|
isArray: true
|
|
}
|
|
}), incidentTemplateResource = $resource('', {}, {
|
|
GetIncidentTemplateList: {
|
|
url: '/smartit/rest/incident/templates',
|
|
method: 'GET',
|
|
isArray: true
|
|
},
|
|
GetIncidentTemplateTierOptions: {
|
|
url: '/smartit/rest/category/incidentTemplate/template/templateCategoryTier:id',
|
|
method: 'GET',
|
|
isArray: true
|
|
},
|
|
GetIncidentTemplateListByCategory: {
|
|
url: '/smartit/rest/incident/templates/category',
|
|
method: 'GET',
|
|
isArray: true
|
|
}
|
|
}), servicerequestTemplateResource = $resource('', {}, {
|
|
GetServicerequestTemplateList: {
|
|
url: '/smartit/rest/request/templates',
|
|
method: 'GET',
|
|
isArray: true
|
|
},
|
|
GetServicerequestDynamicOptions: {
|
|
url: '/smartit/rest/request/:srdId/questionoptions/:questionId',
|
|
method: 'GET',
|
|
isArray: true
|
|
}
|
|
}), taskTemplateResource = $resource('', {}, {
|
|
GetTaskTemplateMetadata: {
|
|
url: '/smartit/rest/task/template/metadata',
|
|
method: 'GET',
|
|
isArray: true
|
|
},
|
|
GetTaskTemplateList: {
|
|
url: '/smartit/rest/task/templates',
|
|
method: 'GET',
|
|
isArray: true
|
|
},
|
|
GetTaskGroupPreview: {
|
|
url: '/smartit/rest/task/templates/preview/:groupId',
|
|
method: 'GET',
|
|
isArray: true
|
|
}
|
|
}), workorderTemplateResource = $resource('', {}, {
|
|
GetWorkorderTemplateList: {
|
|
url: '/smartit/rest/workorder/templates',
|
|
method: 'GET',
|
|
isArray: true
|
|
}
|
|
}), changeTemplateResource = $resource('', {}, {
|
|
GetChangeTemplateList: {
|
|
url: '/smartit/rest/change/templates',
|
|
method: 'GET',
|
|
isArray: true
|
|
}
|
|
}), releaseTemplateResource = $resource('', {}, {
|
|
GetReleaseTemplateList: {
|
|
url: '/smartit/rest/release/templates',
|
|
method: 'GET',
|
|
isArray: true
|
|
}
|
|
}), activityTemplateResource = $resource('', {}, {
|
|
GetActivityTemplateList: {
|
|
url: '/smartit/rest/activity/templates',
|
|
method: 'GET',
|
|
isArray: true
|
|
}
|
|
});
|
|
this.getTemplatesForSmartRecorder = function (params) {
|
|
return smartRecorderResource.getTemplates(params, {}).$promise.then(function (result) {
|
|
return _.chain(result[0].items[0].objects)
|
|
.sortBy('type')
|
|
.map(function (template) {
|
|
return new SmartRecorderTemplateVO().build(template);
|
|
}).value();
|
|
});
|
|
};
|
|
this.getIncidentTemplateList = function (searchQuery, companyName) {
|
|
return incidentTemplateResource.GetIncidentTemplateList({
|
|
input: searchQuery,
|
|
companyName: companyName,
|
|
isName: true
|
|
}).$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
// params = {
|
|
// 'incidentTemplateCategoryTierX' : 'tierName', // where X in (1,2,3)
|
|
// 'incidentTemplateCompanyName' : 'companyName',
|
|
// 'searchText' : 'templateName'
|
|
// }
|
|
this.getIncidentTemplateListByCategory = function (params) {
|
|
// filter empty params
|
|
var queryArgs = _.transform(params, function (res, v, k) {
|
|
if (k && v) {
|
|
res[k] = v;
|
|
}
|
|
});
|
|
return incidentTemplateResource.GetIncidentTemplateListByCategory(queryArgs)
|
|
.$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
this.getIncidentTemplateTierOptions = function (tier, dependency) {
|
|
var params = {
|
|
id: tier
|
|
};
|
|
if (!_.isUndefined(dependency)) {
|
|
params.criteria = dependency;
|
|
}
|
|
return incidentTemplateResource.GetIncidentTemplateTierOptions(params).$promise;
|
|
};
|
|
this.getServicerequestTemplateList = function (searchQuery, companyName, customerId) {
|
|
return servicerequestTemplateResource.GetServicerequestTemplateList({
|
|
input: searchQuery,
|
|
companyName: companyName,
|
|
user: customerId
|
|
}).$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
this.getServicerequestDynamicOptions = function (queryParams) {
|
|
return servicerequestTemplateResource.GetServicerequestDynamicOptions(queryParams).$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
this.getTaskTemplateMetadata = function () {
|
|
return taskTemplateResource.GetTaskTemplateMetadata().$promise;
|
|
};
|
|
this.getTaskTemplateList = function (term, companyName) {
|
|
return taskTemplateResource.GetTaskTemplateList({ input: term, companyName: companyName }).$promise;
|
|
};
|
|
this.getTaskGroupPreview = function (groupId) {
|
|
return taskTemplateResource.GetTaskGroupPreview({ groupId: groupId }).$promise;
|
|
};
|
|
this.getWorkorderTemplateList = function (searchQuery, companyName) {
|
|
return workorderTemplateResource.GetWorkorderTemplateList({
|
|
input: searchQuery,
|
|
companyName: companyName,
|
|
isName: true
|
|
}).$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
this.getAllWorkorderTemplateList = function (company) {
|
|
return workorderTemplateResource.GetWorkorderTemplateList({
|
|
input: '%',
|
|
companyName: (company && company.name) ? company.name : (_.isString(company) ? company : ''),
|
|
isName: true,
|
|
chunkInfo: { startIndex: 0, chunkSize: 200 }
|
|
}).$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
this.getChangeTemplateList = function (searchQuery, companyName) {
|
|
return changeTemplateResource.GetChangeTemplateList({
|
|
input: searchQuery,
|
|
companyName: companyName,
|
|
isName: true
|
|
}).$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
this.getReleaseTemplateList = function (searchQuery, companyName) {
|
|
return releaseTemplateResource.GetReleaseTemplateList({
|
|
input: searchQuery,
|
|
companyName: companyName,
|
|
isName: true
|
|
}).$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
this.getActivityTemplateList = function (searchQuery, companyName) {
|
|
return activityTemplateResource.GetActivityTemplateList({
|
|
input: searchQuery,
|
|
companyName: companyName
|
|
}).$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
this.getAllActivityTemplateList = function (company) {
|
|
return activityTemplateResource.GetActivityTemplateList({
|
|
input: '%',
|
|
companyName: company.name || null,
|
|
chunkInfo: { startIndex: 0, chunkSize: 200 }
|
|
}).$promise.then(function (result) {
|
|
return result[0].items[0];
|
|
});
|
|
};
|
|
}]);
|
|
}());
|