Files
iTop/js/object/object-worker.js
bdalsass de35d941c1 N°6154 N°6219 - Relations Read - tooltip, confirmation title and message (#486)
N°6154 - n:n Read - tooltip, confirmation title and message on Add-Edit-Remove
N°6219 - 1:n Read: tooltip, modal title and message on Add-Edit-Remove-Delete
2023-04-28 14:43:53 +02:00

108 lines
2.5 KiB
JavaScript

const iTopObjectWorker = new function(){
// defines
const ROUTER_BASE_URL = '../pages/ajax.render.php';
const ROUTE_CREATE_OBJECT = 'object.new';
const ROUTE_MODIFY_OBJECT = 'object.modify';
const ROUTE_GET_OBJECT = 'object.get';
/**
* CallAjaxCreateObject.
*
* @param {string} sTitle
* @param {string} sClass
* @param oOnModalCloseCallback
* @param oOnFormSubmittedCallback
* @param {Object} aAdditionalData
* @constructor
*/
const CallAjaxCreateObject = function(sTitle, sClass, oOnModalCloseCallback = null, oOnFormSubmittedCallback = null, aAdditionalData = []){
let aData = $.extend(
{
class: sClass,
},
aAdditionalData
);
let oOptions = {
title: sTitle,
content: {
endpoint: `${ROUTER_BASE_URL}?route=${ROUTE_CREATE_OBJECT}`,
data: aData
},
extra_options: {
callback_on_modal_close: oOnModalCloseCallback
},
}
const oModal = CombodoModal.OpenModal(oOptions);
if(oOnFormSubmittedCallback !== null){
oModal.on('itop.form.submitted', 'form', oOnFormSubmittedCallback);
}
};
/**
* CallAjaxModifyObject.
*
* @param {string} sTitle
* @param {string} sObjectClass
* @param {string} sObjectKey
* @param oOnModalCloseCallback
* @param oOnFormSubmittedCallback
* @param {Object} aAdditionalData
* @constructor
*/
const CallAjaxModifyObject = function(sTitle, sObjectClass, sObjectKey, oOnModalCloseCallback, oOnFormSubmittedCallback, aAdditionalData = []){
let aData = $.extend(
{
class: sObjectClass,
id: sObjectKey,
},
aAdditionalData
);
let oOptions = {
title: sTitle,
content: {
endpoint: `${ROUTER_BASE_URL}?route=${ROUTE_MODIFY_OBJECT}`,
data: aData,
},
extra_options: {
callback_on_modal_close: oOnModalCloseCallback
},
}
const oModal = CombodoModal.OpenModal(oOptions);
if(oOnFormSubmittedCallback !== null){
oModal.on('itop.form.submitted', 'form', oOnFormSubmittedCallback);
}
};
/**
* CallAjaxGetObject.
*
* @param {string} sObjectClass
* @param {string} sObjectId
* @param oOnResponseCallback
* @param {Object} aAdditionalData
* @constructor
*/
const CallAjaxGetObject = function(sObjectClass, sObjectId, oOnResponseCallback, aAdditionalData = []){
let aData = $.extend(
{
object_class: sObjectClass,
object_key: sObjectId,
},
aAdditionalData
)
$.post(`${ROUTER_BASE_URL}?route=${ROUTE_GET_OBJECT}`, aData, oOnResponseCallback);
};
return {
CreateObject: CallAjaxCreateObject,
ModifyObject: CallAjaxModifyObject,
GetObject: CallAjaxGetObject
}
};