2021-04-28 20:10:26 +02:00

2933 lines
116 KiB
JavaScript

/*************************************
* SPDX-FileCopyrightText: 2009-2020 Vtenext S.r.l. <info@vtenext.com>
* SPDX-License-Identifier: AGPL-3.0-only
************************************/
/* crmv@92272 crmv@96450 crmv@108078 crmv@115268 crmv@118977 crmv@127048 crmv@153321_5 crmv@160843 */
if (typeof(ActionTaskScript) == 'undefined') {
ActionTaskScript = {
enable_cache: true,
log_time: false, // log in console the time of loading pages
// internal variables
__cache: {},
__describe_object_cache:{},
//__describeObjectCount: 0,
__overwriteCache: false,
init: function(id){
var context = jQuery('form[shape-id="'+id+'"]');
var newTaskPopup = NewTaskPopup(jQuery,context);
jQuery("#new_task",context).click(function(){
newTaskPopup.show();
});
},
// crmv@102879
changeActionType: function(self) {
var value = jQuery(self).val();
jQuery('#new_task_cycle').hide();
jQuery('#new_task_inserttablerow').hide();
jQuery('#new_task_insertproductrow').hide(); // crmv@195745
jQuery('#new_task_cycle_related').hide();
jQuery('#new_task_inserttablerow_related').hide();
jQuery('#new_task_insertproductrow_related').hide(); // crmv@195745
if (value == 'Cycle' ) {
jQuery('#new_task_cycle').show();
this.changeCycleField(document.getElementById('table_fields')); // crmv@195745
}
//crmv@203075
else if(value == 'CycleRelated')
{
jQuery('#new_task_cycle_related').show();
this.changeCycleField(document.getElementById('table_fields_related')); // crmv@195745
}
//crmv@203075e
else if (value == 'InsertTableRow') {
jQuery('#new_task_inserttablerow').show();
// crmv@195745
} else if (value == 'InsertProductRow') {
jQuery('#new_task_insertproductrow').show();
}
// crmv@195745e
},
// crmv@195745
changeCycleField: function(self) {
var value = jQuery(self).val(),
valueExp = value.split(':'),
relmod = valueExp[2],
target = jQuery('#cycle_action_type');
// delete or hide the Delete*Row action
if (relmod === 'ProductsBlock') {
target.find('option[value=DeleteTableRow]').hide();
target.find('option[value=DeleteProductRow]').show();
} else {
target.find('option[value=DeleteTableRow]').show();
target.find('option[value=DeleteProductRow]').hide();
}
},
// crmv@195745e
changeCycleActionType: function(self) {
var value = jQuery(self).val();
// crmv@195745
if (value == 'InsertTableRow') {
jQuery('#cycle_inserttablerow').show();
jQuery('#cycle_insertpblockrow').hide();
} else if (value == 'InsertProductRow') {
jQuery('#cycle_inserttablerow').hide();
jQuery('#cycle_insertpblockrow').show();
} else {
jQuery('#cycle_inserttablerow').hide();
jQuery('#cycle_insertpblockrow').hide();
}
// crmv@195745e
},
editaction: function(processid,id,action_type,action_id, cycle_field, cycle_action, inserttablerow_field, insertproductrow_inventory_fields){ // popolare i nuovi campi dal tpl crmv@195745
var me = this;
if (!ProcessMakerScript.sessionCheck()) return false; // crmv@189903
jQuery.fancybox.showLoading();
ProcessMakerScript.saveMetadata(processid,id,'Action',function(){
if (action_type.indexOf('SDK:') == 0) {
var meta_action = {'action_type':'SDK','function':action_type.substring(4)};
me.saveaction(processid,id,action_type,action_id,'',meta_action,function(){
jQuery.fancybox.hideLoading();
});
} else {
var url = 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=editaction&id='+processid+'&elementid='+id+'&action_type='+action_type+'&action_id='+action_id;
if (action_type == 'Cycle') {
// get cycle field and subaction
url += '&cycle_field='+encodeURIComponent(cycle_field || jQuery('#table_fields').val());
url += '&cycle_action='+encodeURIComponent(cycle_action || jQuery('#cycle_action_type').val());
url += '&inserttablerow_field='+encodeURIComponent(inserttablerow_field || jQuery('#cycle_inserttablerow_table_fields').val());
url += '&insertproductrow_inventory_fields='+encodeURIComponent(insertproductrow_inventory_fields || jQuery('#cycle_insertpblockrow_table_fields').val()); // crmv@195745
}
//crmv@203075
else if (action_type == 'CycleRelated') {
// get cycle field and subaction
url += '&cycle_field='+encodeURIComponent(cycle_field || jQuery('#table_fields_related').val());
url += '&cycle_action='+encodeURIComponent(cycle_action || jQuery('#cycle_action_type_related').val());
url += '&inserttablerow_field='+encodeURIComponent(inserttablerow_field || jQuery('#cycle_inserttablerow_table_fields_related').val());
url += '&insertproductrow_inventory_fields='+encodeURIComponent(insertproductrow_inventory_fields || jQuery('#cycle_insertpblockrow_table_fields_related').val()); // crmv@195745
}
//crmv@203075e
else if (action_type == 'InsertTableRow') {
url += '&inserttablerow_field='+encodeURIComponent(inserttablerow_field || jQuery('#inserttablerow_table_fields').val());
// crmv@195745
} else if (action_type == 'InsertProductRow') {
url += '&insertproductrow_inventory_fields='+encodeURIComponent(insertproductrow_inventory_fields || jQuery('#insertproductrow_inventory_fields').val());
}
// crmv@195745e
window.location.href = url;
jQuery.fancybox.hideLoading();
}
});
},
// crmv@102879e
// crmv@104180
saveaction: function(processid,id,action_type,action_id,action_title,meta_action,callback){
if (!ProcessMakerScript.sessionCheck()) return false; // crmv@189903
var context = top.jQuery('form[shape-id="'+id+'"]');
if (typeof(meta_action) == 'undefined') var meta_action = {};
jQuery.each(jQuery('#actionform').serializeArray(), function(){
//crmv@166678
if (this.name.indexOf('[]') > -1) {
if (typeof(meta_action[this.name.replace('[]','')]) == 'undefined') meta_action[this.name.replace('[]','')] = [];
meta_action[this.name.replace('[]','')].push(this.value);
} else {
meta_action[this.name] = this.value;
}
//crmv@166678e
});
if (typeof(CKEDITOR) != "undefined" && CKEDITOR.instances != undefined) {
jQuery.each(CKEDITOR.instances,function(fldName,obj){
var textObj = CKEDITOR.instances[fldName];
meta_action[obj.element.getAttribute('name')] = textObj.getData();
});
}
if (jQuery('#editForm').length > 0) {
meta_action['form'] = {};
jQuery.each(jQuery('#editForm').find('form[name="EditView"]').serializeArray(), function(){
//crmv@166678
if (this.name.indexOf('[]') > -1) {
if (typeof(meta_action['form'][this.name.replace('[]','')]) != 'object') meta_action['form'][this.name.replace('[]','')] = []; // crmv@191206
meta_action['form'][this.name.replace('[]','')].push(this.value);
} else {
meta_action['form'][this.name] = this.value;
}
//crmv@166678e
});
// crmv@204530
if (typeof(CKEDITOR) != "undefined" && CKEDITOR.instances != undefined) {
jQuery.each(CKEDITOR.instances,function(fldName,obj){
var textObj = CKEDITOR.instances[fldName];
meta_action['form'][obj.element.getAttribute('name')] = textObj.getData();
});
}
// crmv@204530e
}
var object = jQuery('#actionform');
if (jQuery('#save_conditions',object).length > 0) {
var conditions = GroupConditions.getJson(jQuery, 'save_conditions', jQuery(object));
meta_action['conditions'] = conditions;
}
// crmv@147433
if (action_type == 'CallExtWS') {
if (!ActionCallWSScript.validate(meta_action)) {
if (typeof callback == 'function') callback();
return false;
}
}
// crmv@147433e
var postdata = {
meta_action: meta_action
};
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=saveaction&id='+processid+'&elementid='+id+'&action_id='+action_id,
'type': 'POST',
'data': postdata,
success: function(data) {
ProcessMakerScript.reloadMetadata(processid,id);
if (typeof callback == 'function') callback();
}
});
},
// crmv@104180e
deleteaction: function(processid,id,action_id){
if (!ProcessMakerScript.sessionCheck()) return false; // crmv@189903
vteconfirm(alert_arr.ARE_YOU_SURE, function(yes) {
if (yes) {
jQuery.fancybox.showLoading();
ProcessMakerScript.saveMetadata(processid,id,'Action',function(){
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=deleteaction&id='+processid+'&elementid='+id+'&action_id='+action_id,
'type': 'POST',
success: function(data) {
ProcessMakerScript.reloadMetadata(processid,id);
jQuery.fancybox.hideLoading();
}
});
});
}
});
},
//crmv@106856
openAdvancedFieldAssignment: function(processid,elementid,actionid,fieldname,form_module,open,reload_session){
var url = 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=open_advanced_field_assignment&processid='+processid+'&elementid='+elementid+'&actionid='+actionid+'&form_module='+form_module+'&fieldname='+fieldname;
if (open == 'popup') {
url += '&storage='+jQuery('#advanced_field_assignment_button_'+fieldname).attr('storage');
openPopup(url);
} else if (open == 'parent') {
jQuery.fancybox.showLoading();
url += '&storage='+parent.parent.jQuery('#advanced_field_assignment_button_'+fieldname).attr('storage');
parent.window.location.href = url;
} else if (open == 'current') {
jQuery.fancybox.showLoading();
url += '&storage='+parent.jQuery('#advanced_field_assignment_button_'+fieldname).attr('storage');
window.location.href = url;
}
},
saveAdvancedFieldAssignment: function(processid,elementid,actionid,fieldname){
var me = this;
me.saveAdvancedFieldAssignmentValues(fieldname, function(){
closePopup();
});
},
closeAdvancedFieldAssignment: function(processid,elementid,actionid,fieldname){
if (typeof(parent.jQuery('#advanced_field_assignment_button_'+fieldname).attr('restore-storage-db')) != 'undefined' && parent.jQuery('#advanced_field_assignment_button_'+fieldname).attr('restore-storage-db') == 'true') parent.jQuery('#advanced_field_assignment_button_'+fieldname).attr('storage','db');
closePopup();
},
editAdvancedFieldAssignment: function(processid,elementid,actionid,fieldname,form_module,ruleid){
var me = this;
me.saveAdvancedFieldAssignmentValues(fieldname, function(){
openPopup('index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=open_advanced_field_assignment_condition&processid='+processid+'&elementid='+elementid+'&actionid='+actionid+'&form_module='+form_module+'&fieldname='+fieldname+'&ruleid='+ruleid);
});
},
deleteAdvancedFieldAssignment: function(processid,elementid,actionid,fieldname,form_module,ruleid){
var me = this;
me.saveAdvancedFieldAssignmentValues(fieldname, function(){
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=delete_advanced_field_assignment&processid='+processid+'&elementid='+elementid+'&actionid='+actionid+'&fieldname='+fieldname+'&ruleid='+ruleid,
'type': 'POST',
success: function(data) {
me.openAdvancedFieldAssignment(processid,elementid,actionid,fieldname,form_module,'current',false);
}
});
});
},
saveAdvancedFieldAssignmentValues: function(fieldname,callback){ // update values in session
var form = {};
jQuery.each(jQuery('form[name="EditView"]').serializeArray(), function(){
form[this.name] = this.value;
});
var postdata = {
form: JSON.stringify(form)
}
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=save_advanced_field_assignment_values&fieldname='+fieldname,
'type': 'POST',
'data': postdata,
success: function(data) {
if (parent.jQuery('#advanced_field_assignment_button_'+fieldname).length > 0) {
var advanced_field_assignment_button = parent.jQuery('#advanced_field_assignment_button_'+fieldname);
} else if (parent.parent.jQuery('#advanced_field_assignment_button_'+fieldname) > 0) {
var advanced_field_assignment_button = parent.parent.jQuery('#advanced_field_assignment_button_'+fieldname);
}
if (typeof(advanced_field_assignment_button) != 'undefined') {
(jQuery(advanced_field_assignment_button).attr('storage') == 'db') ? jQuery(advanced_field_assignment_button).attr('restore-storage-db','true') : jQuery(advanced_field_assignment_button).attr('restore-storage-db','false');
jQuery(advanced_field_assignment_button).attr('storage','session');
}
callback();
}
});
},
openAdvancedFieldAssignmentCondition: function(processid,elementid,actionid,fieldname,form_module){
var me = this;
me.saveAdvancedFieldAssignmentValues(fieldname, function(){
openPopup('index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=open_advanced_field_assignment_condition&processid='+processid+'&elementid='+elementid+'&actionid='+actionid+'&form_module='+form_module+'&fieldname='+fieldname);
});
},
closeAdvancedFieldAssignmentCondition: function(){
closePopup();
},
saveAdvancedFieldAssignmentCondition: function(processid,elementid,actionid,fieldname,form_module,ruleid){
var me = this;
var postdata = {
meta_record: jQuery('[name="moduleName"]').val(),
conditions: GroupConditions.getJson(jQuery,'save_conditions',jQuery('form[shape-id="'+elementid+'"]'))
};
if (postdata.meta_record == '') {
alert(alert_arr.LBL_PM_SELECT_ENTITY);
return false;
}
if (postdata.conditions == '') {
alert(alert_arr.LBL_LEAST_ONE_CONDITION);
return false;
}
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=save_advanced_field_assignment_condition&fieldname='+fieldname+'&ruleid='+ruleid,
'type': 'POST',
'data': postdata,
success: function(data) {
me.openAdvancedFieldAssignment(processid,elementid,actionid,fieldname,form_module,'parent',false);
me.closeAdvancedFieldAssignmentCondition();
}
});
},
//crmv@106856e
//crmv@113527 [deprecated]
showSdkParamsInput: function(field, fieldname){
if (jQuery('#other_'+fieldname).val() != '' && jQuery('#other_'+fieldname).val().indexOf('$sdk:') > -1 && jQuery('#sdk_params_'+fieldname).val() != '') {
jQuery('#other_'+fieldname).val(jQuery('#other_'+fieldname).val().replace('()','('+jQuery('#sdk_params_'+fieldname).val()+')'));
jQuery('#sdk_params_'+fieldname).val('');
}
},
//crmv@113527e
calendarDateOptions: function(value,field) {
if (value == '' || value == null) {
jQuery('[name="'+field+'"]').hide();
jQuery('#jscal_trigger_'+field).hide();
jQuery('#'+field+'_adv_options').hide();
jQuery('.editoptions[fieldname="'+field+'_opt_num"]').hide();
} else if (value == 'custom') {
jQuery('[name="'+field+'"]').show();
jQuery('#jscal_trigger_'+field).show();
jQuery('#'+field+'_adv_options').hide();
jQuery('.editoptions[fieldname="'+field+'_opt_num"]').hide();
} else {
jQuery('[name="'+field+'"]').hide();
jQuery('#jscal_trigger_'+field).hide();
jQuery('#'+field+'_adv_options').show();
}
},
calendarTimeOptions: function(value,field) {
if (value == '' || value == null) {
jQuery('#'+field+'_custom').hide();
jQuery('#'+field+'_adv_options').hide();
jQuery('.editoptions[fieldname="'+field+'_opt_num"]').hide();
} else if (value == 'custom') {
jQuery('#'+field+'_custom').show();
jQuery('#'+field+'_adv_options').hide();
jQuery('.editoptions[fieldname="'+field+'_opt_num"]').hide();
} else {
jQuery('#'+field+'_custom').hide();
jQuery('#'+field+'_adv_options').show();
}
},
//crmv@113775
loadPotentialRelations: function(record) {
if (record == '') {
jQuery('#record2_container').html('');
} else {
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=load_potential_relations&record1='+record+'&id='+jQuery('[name="id"]').val()+'&elementid='+jQuery('[name="elementid"]').val(),
'type': 'POST',
success: function(data) {
jQuery('#record2_container').html(data);
}
});
}
},
//crmv@113775e
//crmv@185548
loadEntityRelations: function(record,mode) {
jQuery('#modules_list_container').html('');
jQuery('#linkRecordSelect2').html('');
if (record == '') {
jQuery('#record2_container').html('');
} else {
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=load_entity_relations&record1='+record+'&id='+jQuery('[name="id"]').val()+'&elementid='+jQuery('[name="elementid"]').val(),
'type': 'POST',
success: function(data) {
if(mode == 'create'){
jQuery('#record2_container').html(data);
}
else{
jQuery('#record_container2').html(data);
}
}
});
}
},
reloadModuleList: function(record,entity_mode) {
if (record == '') {
jQuery('#modules_list_container').html('');
} else {
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&entity_mode='+entity_mode+'&mode=reload_module_list&record1='+jQuery('#linkRecordSelect1').val()+'&record2='+record+'&id='+jQuery('[name="id"]').val()+'&elementid='+jQuery('[name="elementid"]').val(),
'type': 'POST',
success: function(data) {
console.log("OK:"); console.log(data);
jQuery('#modules_list_container').html('');
jQuery('#record3_container').html(data);
}
});
}
},
//crmv@185548e
//crmv@122245
toggleFieldEditOptions: function(fieldname) {
//jQuery('[name="'+fieldname+'"]').toggle();
jQuery('.editoptions[fieldname="'+fieldname+'"]').toggle();
jQuery('#'+fieldname+'_editoptions_more').toggle();
//jQuery('#'+fieldname+'_editoptions_cancel').toggle();
/*
jQuery('[name="'+fieldname+'"]').change(function(){
var fieldname = jQuery(this).attr('name');
var tagField = jQuery('.editoptions[fieldname="'+fieldname+'"]');
restorePopulateFieldGroup(tagField);
tagField.hide();
});*/
},
//crmv@122245e
// crmv@126184
loadRelationsNtoN: function(record) {
if (record == '') {
jQuery('#record2_container').html('');
} else {
jQuery.ajax({
url: 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=load_relation_nton&record1='+record+'&id='+jQuery('[name="id"]').val()+'&elementid='+jQuery('[name="elementid"]').val(),
type: 'POST',
success: function(data) {
jQuery('#record2_container').html(data);
}
});
}
},
refreshStaticRelatedRecords: function(record, relmodule) {
jQuery.ajax({
url: 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=load_static_related&record1='+record+'&relmodule='+relmodule+'&id='+jQuery('[name="id"]').val()+'&elementid='+jQuery('[name="elementid"]').val(),
data: {
sel_static_records: jQuery('#sel_static_records').val(),
},
type: 'POST',
success: function(data) {
jQuery('#record3_container').html(data);
}
});
},
loadStaticRelatedRecords: function(record, relmodule) {
var me = this;
jQuery('#sel_static_records').val('');
if (record == '' || relmodule == '') {
jQuery('#record3_container').html('');
} else {
me.refreshStaticRelatedRecords(record, relmodule);
}
},
removeStaticLinkedRecord: function(self) {
var crmid = jQuery(self).data('crmid') + '',
list = jQuery('#sel_static_records').val(),
row = jQuery(self).closest('tr');
row.remove();
list = list.split(',');
var idx = list.indexOf(crmid);
if (idx > -1) {
list.splice(idx, 1);
jQuery('#sel_static_records').val(list.join(','));
}
},
quickClosePopup: function(listid) {
jQuery('.fancybox-close').click();
},
addStaticRelatedRecord: function(module, crmid, entityname) {
var me = this;
me.quickClosePopup();
me.addStaticRecords([crmid]);
},
addStaticRelatedRecords: function(listid) {
var me = this,
crmids = [],
frame = jQuery('.fancybox-iframe')[0];
if (frame) {
var win = frame.contentWindow;
crmids = win.SLV.add_selected(listid);
}
me.quickClosePopup();
me.addStaticRecords(crmids);
},
addStaticRecords: function(crmids) {
var me = this,
list = jQuery('#sel_static_records').val();
list += ','+crmids.join(',');
jQuery('#sel_static_records').val(list);
var record = jQuery('#linkRecordSelect1').val();
var relmodule = jQuery('#linkRecordSelect2').val();
me.refreshStaticRelatedRecords(record, relmodule);
},
// crmv@126184e
//crmv@139690
fieldGroup: {},
populateSelectBox: function(element,type) {
var me = this,
selectBox = jQuery('#task-'+type);
switch(type) {
case 'fieldnames':
case 'smownerfieldnames':
case 'referencefieldnames':
case 'pickfieldnames':
var populateFieldGroup = jQuery(element),
populateField = jQuery(populateFieldGroup).next();
if (jQuery(populateFieldGroup).find('option').length > 1) return;
// populate populateFieldGroup
// disable cache in config ws
if (jQuery(me.fieldGroup[type]).length == 0 || ActionCallWSScript.wsinfo) { // crmv@147433
var str = '';
str += '<option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option>';
// crmv@147433
// append values for ExtWS
var fieldname = populateFieldGroup.closest('div').attr('fieldname');
if (ActionCallWSScript.wsinfo) {
var defparams = ActionCallWSScript.wsinfo.params;
var defresults = ActionCallWSScript.wsinfo.results;
if (fieldname.match(/^param_[0-9]+/) && defparams && defparams.length > 0) {
str += '<option value="!DEFAULT!">'+alert_arr.Default+'</option>';
str += '<option value="!DONTUSE!">'+alert_arr.LBL_DONT_USE+'</option>';
}
if (fieldname.match(/^result_[0-9]+/) && defresults && defresults.length > 0) {
str += '<option value="!DEFAULT!">'+alert_arr.Default+'</option>';
str += '<option value="!DONTUSE!">'+alert_arr.LBL_DONT_USE+'</option>';
}
}
selectBox.find('optgroup').each(function(){
str += '<option value="'+this.label+'">'+this.label+'</option>';
});
me.fieldGroup[type] = str;
}
// init populateFieldGroup events
jQuery(populateFieldGroup).html(me.fieldGroup[type]).change(function(event){
// crmv@147433
var val = jQuery(this).val();
if (val == '!DEFAULT!' || val == '!DONTUSE!') {
ActionCallWSScript.handleSpecialValue(this);
return;
}
// crmv@147433e
jQuery(populateFieldGroup).hide();
populateField.find('optgroup').hide();
populateField.find('optgroup[label="'+this.value+'"]').show();
jQuery(populateField).show();
populateField.val(populateField.find("option:first").val());
});
// populate populateField
jQuery(populateField).html(selectBox.html());
break;
}
},
//crmv@139690e
/*
* inizializzo tutte le picklist di compilazione dei tag
* in base al tipo (campo testo, picklist, reference, owner) cambia la modalità di compilazione dei tag
* es. i campi testo hanno la picklist dei tag in alto a destra, mentre per le picklist i tag vengono aggiunti ai valori della picklist stessa
*/
initPopulateFields(element,object,module,params) {
switch(element) {
case 'task-fieldnames':
jQuery('#editForm .editoptions[optionstype="fieldnames"]').each(function(){
jQuery(this).html('<select class="populateFieldGroup" onfocus="ActionTaskScript.populateSelectBox(this,\'fieldnames\')"><option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option></select><select style="display:none" class="populateField" onchange="'+object.objectName+'.populateField(this)"></select>'); //crmv@112299 crmv@139690
});
break;
case 'task-pickfieldnames':
jQuery('#editForm .editoptions[optionstype="pickfieldnames"]').each(function(){
jQuery(this).html('<select class="populateFieldGroup" onfocus="ActionTaskScript.populateSelectBox(this,\'pickfieldnames\')"><option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option></select><select style="display:none" class="populateField" onchange="'+object.objectName+'.populateField(this)"></select>'); //crmv@112299 crmv@139690
});
break;
case 'task-smownerfieldnames':
/*
var form_data = params['form_data'],
reference_users_values = params['reference_users_values'] || {};
*/
jQuery('#editForm .editoptions[optionstype="smownerfieldnames"]').each(function(){
jQuery(this).html('<select class="populateFieldGroup" onfocus="ActionTaskScript.populateSelectBox(this,\'smownerfieldnames\')"><option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option></select><select style="display:none" class="populateField" onchange="'+object.objectName+'.populateField(this)"></select>'); //crmv@112299 crmv@139690
var fieldname = jQuery(this).attr('fieldname').replace('other_','');
if (jQuery('#other_'+fieldname).length > 0) ActionTaskScript.showSdkParamsInput(jQuery('#other_'+fieldname),fieldname); //crmv@106856 crmv@113527
});
break;
case 'task-referencefieldnames':
var form_data = params['form_data'],
reference_values = params['reference_values'] || {};
jQuery('#editForm .editoptions[optionstype="referencefieldnames"]').each(function(){
jQuery(this).html('<select class="populateFieldGroup" onfocus="ActionTaskScript.populateSelectBox(this,\'referencefieldnames\')"><option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option></select><select style="display:none" class="populateField" onchange="'+object.objectName+'.populateField(this)"></select>'); //crmv@112299 crmv@139690
});
jQuery.each(reference_values, function(name,value){
if ((module == 'Calendar' || module == 'Events') && name == 'parent_id') var field_type = 'parent_type'; else var field_type = name+'_type';
if (jQuery('#'+field_type).val() == 'Other' && form_data[name] != undefined) {
jQuery('#other_'+name).val(form_data[name]);
}
});
break;
case 'task-booleanfieldnames':
var boolean_values = params['boolean_values'] || {};
jQuery.each(boolean_values, function(name,value){
jQuery('[name="'+name+'"]').append(jQuery('#task-booleanfieldnames').html());
if (value != null) jQuery('[name="'+name+'"]').val(value);
});
break;
case 'task-datefieldnames':
var date_values = params['date_values'] || {};
//crmv@120769
jQuery.each(date_values, function(name,value){
jQuery('[name="'+name+'_options"]').append(jQuery('#task-datefieldnames').html());
if (value != null && value != '') {
try {
value = jQuery.parseJSON(value);
jQuery('[name="'+name+'_options"]').val(value['options']);
jQuery('[name="'+name+'"]').val(getDisplayDate(value['custom'])); //crmv@131239
jQuery('[name="'+name+'_opt_operator"]').val(value['operator']);
jQuery('[name="'+name+'_opt_num"]').val(value['num']);
jQuery('[name="'+name+'_opt_unit"]').val(value['unit']);
if (name == 'time_start' || name == 'time_end')
ActionTaskScript.calendarTimeOptions(value['options'],name);
else
ActionTaskScript.calendarDateOptions(value['options'],name);
} catch(err) { // old mode
jQuery('[name="'+name+'_options"]').val(getDisplayDate('custom')); //crmv@131239
jQuery('[name="'+name+'"]').val(value);
ActionTaskScript.calendarDateOptions('custom',name);
}
}
});
//crmv@120769e
break;
}
},
loadFormEditOptions: function(object,module,params, callback) { // crmv@147433
var me = this,
i = 0,
processid = params['processid'],
involved_records = params['involved_records'],
elements_actors = params['elements_actors'],
extws_options = params['extws_options'] || {}, // crmv@146671
dynaform_options = params['dynaform_options'],
processmaker_entity_options;
if (ActionTaskScript.log_time) var start = Date.now();
ActionTaskScript.getCache('processmaker_entity_options_'+processid, function(processmaker_entity_options){
if (processmaker_entity_options) {
jQuery.each(processmaker_entity_options,function(element,optgroups){
var append = '';
jQuery.each(optgroups,function(optgrouplabel,options){
if (!checkSelectBoxDuplicates(jQuery('#'+element),optgrouplabel)) {
if (optgrouplabel != '') append += '<optgroup label="'+optgrouplabel+'">';
jQuery.each(options,function(key,value){
append += '<option value="'+key+'">'+value+'</option>';
});
if (optgrouplabel != '') append += '</optgroup>';
}
});
jQuery('#'+element).append(append);
me.initPopulateFields(element,object,module,params);
});
me.afterLastIteration();
if (typeof callback == 'function') callback(); // crmv@147433
if (ActionTaskScript.log_time) {
var end = Date.now();
var total_time = end - start;
console.log('ends ActionTaskScript > loadFormEditOptions with cache in ',total_time);
}
} else {
var vtinst = new VtenextWebservices("webservice.php",undefined,undefined,true);
vtinst.extendSession(handleError(function(result){
vtinst.listTypes(handleError(function(accessibleModules) {
accessibleModulesInfo = accessibleModules;
if (jQuery.isEmptyObject(involved_records)) { //crmv@179315 check if there are involved records
me.afterLastIteration();
return false;
}
ActionTaskScript.getCache('processmaker_describe_modules_'+processid, function(){
jQuery.each(involved_records,function(key,involved_record){
var moduleName = involved_record.module;
if (moduleName == '' || moduleName == null) { // check if there are involved records
i++;
if (i == jQuery(involved_records).length) me.afterLastIteration(); // check last
return;
}
getDescribeObjects(vtinst, accessibleModules, moduleName, processid, involved_record, handleError(function(describeObjectResult){
modules = describeObjectResult[0];
moduleName = describeObjectResult[1];
involved_record = describeObjectResult[2];
i++;
if (object.objectName == 'ActionCreateScript') {
fillSelectBox('task-fieldnames', modules, moduleName, involved_record, null);
} else {
fillSelectBox('task-fieldnames', modules, moduleName, involved_record);
}
fillSelectBox('task-pickfieldnames', modules, moduleName, involved_record, function(e){return (e['type']['name']=='picklist' || e['type']['name']=='multipicklist');});
fillSelectBox('task-smownerfieldnames', modules, moduleName, involved_record, function(e){return (e['type']['name']=='reference' && e['type']['refersTo'][0]=='Users');});
fillSelectBox('task-referencefieldnames', modules, moduleName, involved_record, function(e){return (e['type']['name']=='reference' && e['type']['refersTo'][0]!='Users' && e['type']['refersTo'][0]!='Currency');});
fillSelectBox('task-booleanfieldnames', modules, moduleName, involved_record, function(e){return (e['type']['name']=='boolean');});
fillSelectBox('task-datefieldnames', modules, moduleName, involved_record, function(e){return (e['type']['name']=='date' || e['type']['name']=='datetime' || e['type']['name']=='time');}); //crmv@128159
// last
if (i == jQuery(involved_records).length) {
//if (ActionTaskScript.__describeObjectCount == 0) {
if (ActionTaskScript.log_time) {
var getDescribeObjects_time_end = Date.now();
var getDescribeObjects_time = getDescribeObjects_time_end - start;
console.log('ends ActionTaskScript > getDescribeObjects in ',getDescribeObjects_time);
}
// text
appendDynaformOptions(jQuery('#task-fieldnames'),dynaform_options,'all');
appendExtWSOptions(jQuery('#task-fieldnames'),extws_options); // crmv@146671 TODO add ws options to other field types
me.initPopulateFields('task-fieldnames',object,module,params);
// picklist
appendDynaformOptions(jQuery('#task-pickfieldnames'),dynaform_options,'picklist');
me.initPopulateFields('task-pickfieldnames',object,module,params);
// owner
appendDynaformOptions(jQuery('#task-smownerfieldnames'),dynaform_options,'user');
//crmv@100591
if (jQuery(elements_actors).length > 0 && !checkSelectBoxDuplicates(jQuery('#task-smownerfieldnames'),alert_arr.LBL_PM_ELEMENTS_ACTORS)) {
var append = '<optgroup label="'+alert_arr.LBL_PM_ELEMENTS_ACTORS+'">';
jQuery.each(elements_actors, function(fieldvalue, fieldlabel){
append += '<option value="'+fieldvalue+'">'+fieldlabel+'</value>';
});
append += '</optgroup>';
jQuery('#task-smownerfieldnames').append(append);
}
//crmv@100591e
me.initPopulateFields('task-smownerfieldnames',object,module,params);
// reference
appendDynaformOptions(jQuery('#task-referencefieldnames'),dynaform_options,'reference');
me.initPopulateFields('task-referencefieldnames',object,module,params);
// boolean
appendDynaformOptions(jQuery('#task-booleanfieldnames'),dynaform_options,'boolean');
me.initPopulateFields('task-booleanfieldnames',object,module,params);
// date
appendDynaformOptions(jQuery('#task-datefieldnames'),dynaform_options,'date');
//crmv@128159
appendDynaformOptions(jQuery('#task-datefieldnames'),dynaform_options,'datetime');
appendDynaformOptions(jQuery('#task-datefieldnames'),dynaform_options,'time');
//crmv@128159e
me.initPopulateFields('task-datefieldnames',object,module,params);
//crmv@112299 crmv@139690: removed filterPopulateField()
if (me.enable_cache) {
me.cacheSelectBoxOptions(processid);
if (me.__overwriteCache) me.setCache('processmaker_describe_modules_'+processid,me.__cache['processmaker_describe_modules_'+processid]);
}
me.afterLastIteration();
if (typeof callback == 'function') callback(); // crmv@147433
if (ActionTaskScript.log_time) {
var end = Date.now();
var display_time = end - getDescribeObjects_time_end;
var total_time = end - start;
console.log('ends ActionTaskScript > loadFormEditOptions : display:',display_time,' total:',total_time);
}
}
}));
});
});
}));
}));
}
});
},
cacheSelectBoxOptions: function(processid) {
var processmaker_entity_options = {};
var elements = ['task-fieldnames','task-pickfieldnames','task-smownerfieldnames','task-referencefieldnames','task-booleanfieldnames','task-datefieldnames'];
jQuery(elements).each(function(k,element){
processmaker_entity_options[element] = {};
/* skip options without optgroup because are drawn in Create.tpl and Update.tpl
processmaker_entity_options[element][''] = {};
jQuery("#"+element+" > option").each(function(){
processmaker_entity_options[element][''][jQuery(this).val()] = jQuery(this).text();
});
*/
// options in optgroup
jQuery("#"+element+" > optgroup").each(function(i,optgroup){
processmaker_entity_options[element][jQuery(optgroup).attr('label')] = {};
jQuery(optgroup).find('option').each(function(){
processmaker_entity_options[element][jQuery(optgroup).attr('label')][jQuery(this).val()] = jQuery(this).text();
});
});
});
ActionTaskScript.setCache('processmaker_entity_options_'+processid,processmaker_entity_options);
},
getCache: function(item, callback) {
var me = this;
if (me.__cache[item]) {
if (typeof callback == 'function') callback(me.__cache[item]);
} else {
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=get_cache&item='+item,
'type': 'POST',
success: function(data) {
if (data != null && data != "null") data = JSON.parse(data); else data = null;
me.__cache[item] = data;
if (typeof callback == 'function') callback(data);
}
});
}
},
setCache: function(item,value) {
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=set_cache&item='+item,
'type': 'POST',
'data': {'value':JSON.stringify(value)},
success: function(data) {}
});
},
afterLastIteration: function() {
jQuery.fancybox.hideLoading();
}
}
}
if (typeof(ActionCreateScript) == 'undefined') {
ActionCreateScript = {
objectName: 'ActionCreateScript',
loadForm: function(module,processid,id,action_type,action_id,tablerow_mode,load_editview) { //crmv@182148
var me = ActionCreateScript;
if (typeof(tablerow_mode) == 'undefined') var tablerow_mode = false;
if (typeof(load_editview) == 'undefined') var load_editview = true; //crmv@182148
if (load_editview && module == '') { //crmv@182148
jQuery('#editForm').html('');
} else {
jQuery.fancybox.showLoading();
// crmv@102879
var url = 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker/actions/CreateForm&mod='+module+'&id='+processid+'&elementid='+id+'&action_id='+action_id;
url += '&cycle_field='+encodeURIComponent(jQuery('input[name=cycle_field]').val() || '');
url += '&cycle_action='+encodeURIComponent(jQuery('input[name=cycle_action]').val() || '');
url += '&cycle_fieldname='+encodeURIComponent(jQuery('input[name=cycle_fieldname]').val() || '');//crmv@203075 add fieldname to check in CreateForm and not retrieve prod blocks in cycle related
if (tablerow_mode) url += '&tablerow_mode=1'; else url += '&tablerow_mode=0';
// crmv@102879e
jQuery.ajax({
'url': url,
'type': 'POST',
success: function(data) {
var res = data.split('|&|&|&|');
if (res[0] != '') var involved_records = JSON.parse(res[0]); else var involved_records = {};
if (res[1] != '') var form_data = JSON.parse(res[1]); else var form_data = {};
if (res[2] != '') var picklist_values = JSON.parse(res[2]); else var picklist_values = {};
if (res[3] != '') var reference_values = JSON.parse(res[3]); else var reference_values = {};
if (res[4] != '') var reference_users_values = JSON.parse(res[4]); else var reference_users_values = {};
if (res[5] != '') var boolean_values = JSON.parse(res[5]); else var boolean_values = {};
if (res[6] != '') var date_values = JSON.parse(res[6]); else var date_values = {};
if (res[7] != '') var dynaform_options = JSON.parse(res[7]); else var dynaform_options = {};
if (res[8] != '') var elements_actors = JSON.parse(res[8]); else var elements_actors = {}; //crmv@100591
if (res[9] != '') var extws_options = JSON.parse(res[9]); else var extws_options = {}; // crmv@146671
//crmv@182148
if (load_editview) {
try {
jQuery('#editForm').html(res[10]); // crmv@146671
} catch(err) {
console.error(err.message);
}
}
//crmv@182148e
var params = {
'processid':processid,
'involved_records':involved_records,
'form_data':form_data,
'picklist_values':picklist_values,
'reference_values':reference_values,
'reference_users_values':reference_users_values,
'boolean_values':boolean_values,
'date_values':date_values,
'dynaform_options':dynaform_options,
'elements_actors':elements_actors,
'extws_options':extws_options, // crmv@146671
}
ActionTaskScript.loadFormEditOptions(me,module,params);
}
});
}
},
//crmv@106857
populateField: function(field, value){ //crmv@OPER10174
var tagField = jQuery(field);
var fieldname = jQuery(field).parent().attr('fieldname');
var field = jQuery('#editForm [name="'+fieldname+'"]');
if (typeof(value) == 'undefined') value = jQuery(tagField).val(); //crmv@OPER10174
var tablefields_fieldname = fieldname.replace('other_','');
//crmv@112299
if (value == 'back') {
restorePopulateFieldGroup(tagField);
//crmv@112299e
} else if (value.indexOf('::') != -1) {
// show table fields options
if (jQuery('#actionform [name="cycle_action"]').val() != '') {
// check if I am in a cycle
//crmv@182891
var cycle_field = jQuery('#actionform [name="cycle_field"]').val().split(':');
if (value.indexOf('$'+cycle_field[0]+'-'+cycle_field[3]+'::') == 0
|| (value.indexOf('$'+cycle_field[0]+'-(') == 0 && value.indexOf(' '+cycle_field[3]+'::') > -1)
|| value.indexOf('$DF'+cycle_field[0]+'-'+cycle_field[1]+'::') == 0) {
//crmv@182891e
jQuery("#tablefields_options_"+tablefields_fieldname+" .cycle_opt").show();
} else {
jQuery("#tablefields_options_"+tablefields_fieldname+" .cycle_opt").hide();
}
}
jQuery(field).parent().parent().find('.editoptions .populateField').css('max-width','300px');
jQuery("#tablefields_options_"+tablefields_fieldname+" option:eq(0)").prop('selected', true);
jQuery("#tablefields_options_"+tablefields_fieldname).show();
} else {
// hide table fields options
jQuery(field).parent().parent().find('.editoptions .populateField').css('max-width','400px');
jQuery("#tablefields_options_"+tablefields_fieldname).hide();
jQuery('#tablefields_seq_'+tablefields_fieldname).hide();
jQuery('#tablefields_seq_btn_'+tablefields_fieldname).hide();
// end
if (value != '') insertAtCursor(field.get(0), value);
}
},
changeTableFieldOpt: function(obj, fieldname){
var me = this,
value = obj.value;
if (value == 'seq') {
jQuery('#tablefields_seq_'+fieldname).show().focus();
jQuery('#tablefields_seq_btn_'+fieldname).show();
} else {
jQuery('#tablefields_seq_'+fieldname).hide();
jQuery('#tablefields_seq_btn_'+fieldname).hide();
if (value != '') me.insertTableFieldValue(obj, fieldname, value);
}
},
insertTableFieldValue: function(obj, fieldname, value){
var tagField = jQuery(obj).parent().parent().find('.editoptions .populateField');
var parent_value = jQuery(tagField).val();
var target_fieldname = jQuery(obj).parent().parent().find('.editoptions').attr('fieldname');
var field = jQuery('#editForm [name="'+target_fieldname+'"]');
if (value == 'seq') {
var sequence = parseInt(jQuery('#tablefields_seq_'+fieldname).val());
if (isNaN(sequence) || sequence <= 0) return false;
else value += ':'+sequence;
}
insertAtCursor(field.get(0), parent_value+':'+value);
}
//crmv@106857e
}
}
if (typeof(ActionUpdateScript) == 'undefined') {
ActionUpdateScript = {
objectName: 'ActionUpdateScript',
loadForm: function(record_involved,processid,id,action_type,action_id) {
var me = ActionUpdateScript;
if (record_involved == '') {
jQuery('#editForm').html('');
} else {
jQuery.fancybox.showLoading();
//crmv@135190
var tmp = record_involved.split(':'),
module = tmp[1],
url = 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker/actions/UpdateForm&record_involved='+record_involved+'&id='+processid+'&elementid='+id+'&action_id='+action_id;
url += '&cycle_fieldname='+encodeURIComponent(jQuery('input[name=cycle_fieldname]').val() || '');//crmv@203075 add fieldname to check in CreateForm and not retrieve prod blocks in cycle related
//crmv@135190e
jQuery.ajax({
'url': url,
'type': 'POST',
success: function(data) {
var res = data.split('|&|&|&|');
if (res[0] != '') var involved_records = JSON.parse(res[0]); else var involved_records = {};
if (res[1] != '') var form_data = JSON.parse(res[1]); else var form_data = {};
if (res[2] != '') var picklist_values = JSON.parse(res[2]); else var picklist_values = {};
if (res[3] != '') var reference_values = JSON.parse(res[3]); else var reference_values = {};
if (res[4] != '') var reference_users_values = JSON.parse(res[4]); else var reference_users_values = {};
if (res[5] != '') var boolean_values = JSON.parse(res[5]); else var boolean_values = {};
if (res[6] != '') var date_values = JSON.parse(res[6]); else var date_values = {};
if (res[7] != '') var dynaform_options = JSON.parse(res[7]); else var dynaform_options = {};
if (res[8] != '') var elements_actors = JSON.parse(res[8]); else var elements_actors = {}; //crmv@100591
if (res[9] != '') var extws_options = JSON.parse(res[9]); else var extws_options = {}; // crmv@146671
try {
jQuery('#editForm').html(res[10]); // crmv@146671
} catch(err) {
console.error(err.message);
}
var params = {
'processid':processid,
'involved_records':involved_records,
'form_data':form_data,
'picklist_values':picklist_values,
'reference_values':reference_values,
'reference_users_values':reference_users_values,
'boolean_values':boolean_values,
'date_values':date_values,
'dynaform_options':dynaform_options,
'elements_actors':elements_actors,
'extws_options':extws_options, // crmv@146671
}
ActionTaskScript.loadFormEditOptions(me,module,params);
jQuery('#editForm form[name="EditView"] :input').bind('change onchange',function(e){
var name = jQuery(this).attr('name');
if (name == 'other_assigned_user_id') name = 'assigned_user_id';
ActionUpdateScript.setMasseditCheck(name);
});
jQuery.each(form_data,function(name,value){
ActionUpdateScript.setMasseditCheck(name);
});
}
});
}
},
//crmv@106857
populateField: function(field){
var tagField = jQuery(field);
var fieldname = jQuery(field).parent().attr('fieldname');
var field = jQuery('#editForm [name="'+fieldname+'"]');
var value = jQuery(tagField).val();
var tablefields_fieldname = fieldname.replace('other_','');
//crmv@112299
if (value == 'back') {
restorePopulateFieldGroup(tagField);
//crmv@112299e
} else if (value.indexOf('::') != -1) {
// show table fields options
jQuery(field).parent().parent().find('.editoptions .populateField').css('max-width','300px');
jQuery("#tablefields_options_"+tablefields_fieldname+" option:eq(0)").prop('selected', true);
jQuery("#tablefields_options_"+tablefields_fieldname).show();
} else {
// hide table fields options
jQuery(field).parent().parent().find('.editoptions .populateField').css('max-width','400px');
jQuery("#tablefields_options_"+tablefields_fieldname).hide();
jQuery('#tablefields_seq_'+tablefields_fieldname).hide();
jQuery('#tablefields_seq_btn_'+tablefields_fieldname).hide();
// end
if (value != '') insertAtCursor(field.get(0), value);
ActionUpdateScript.setMasseditCheck(fieldname);
}
},
setMasseditCheck: function(fieldname){
if (fieldname.indexOf('[]') > -1) fieldname = fieldname.replace('[]',''); //crmv@166678
// crmv@191206
if (fieldname.indexOf('other_') == 0) {
var tmp_fieldname = fieldname.replace('other_','');
if (jQuery('#'+tmp_fieldname+'_mass_edit_check').length > 0) fieldname = tmp_fieldname;
}
// crmv@191206e
// crmv@204994
if (fieldname.indexOf('_opt_num') > -1) {
var tmp_fieldname = fieldname.replace('_opt_num','');
if (jQuery('#'+tmp_fieldname+'_mass_edit_check').length > 0) fieldname = tmp_fieldname;
}
// crmv@204994e
jQuery('#editForm form[name="EditView"] #'+fieldname+'_mass_edit_check').prop('checked',true);
},
changeTableFieldOpt: function(obj, fieldname){
var me = this,
value = obj.value;
if (value == 'seq') {
jQuery('#tablefields_seq_'+fieldname).show().focus();
jQuery('#tablefields_seq_btn_'+fieldname).show();
} else {
jQuery('#tablefields_seq_'+fieldname).hide();
jQuery('#tablefields_seq_btn_'+fieldname).hide();
if (value != '') me.insertTableFieldValue(obj, fieldname, value);
}
},
insertTableFieldValue: function(obj, fieldname, value){
var tagField = jQuery(obj).parent().parent().find('.editoptions .populateField');
var parent_value = jQuery(tagField).val();
var target_fieldname = jQuery(obj).parent().parent().find('.editoptions').attr('fieldname');
var field = jQuery('#editForm [name="'+target_fieldname+'"]');
if (value == 'seq') {
var sequence = parseInt(jQuery('#tablefields_seq_'+fieldname).val());
if (isNaN(sequence) || sequence <= 0) return false;
else value += ':'+sequence;
}
insertAtCursor(field.get(0), parent_value+':'+value);
ActionUpdateScript.setMasseditCheck(fieldname);
}
//crmv@106857e
}
}
if (typeof(ActionEmailScript) == 'undefined') {
ActionEmailScript = {
loadForm: function(processid,id,action_type,action_id,involved_records,dynaform_options,elements_actors,extws_options) { // crmv@100591 crmv@147433
if (involved_records != '') involved_records = JSON.parse(involved_records); else involved_records = {}; //crmv@179315
dynaform_options = JSON.parse(dynaform_options);
elements_actors = JSON.parse(elements_actors); //crmv@100591
extws_options = JSON.parse(extws_options); //crmv@147433
var me = this,
i = 0,
vtinst = new VtenextWebservices("webservice.php",undefined,undefined,true)
last = function(){
jQuery('#task-fieldnames-busyicon').hide();
jQuery('#task-subjectfields-busyicon').hide();
jQuery('#task-emailfields-busyicon').hide();
jQuery('#task-emailfields_sender-busyicon').hide();
jQuery('#task-emailfieldscc-busyicon').hide();
jQuery('#task-emailfieldsbcc-busyicon').hide();
jQuery('#task-emailfieldsreplyto-busyicon').hide(); // crmv@200330
//crmv@140599
//time_changes
jQuery('#task_timefields').unbind('change');
jQuery('#task_timefields').change(function(){
var value = jQuery(this).val();
if (value.indexOf('crmdetailviewurl') > -1 || value.indexOf('portaldetailviewurl') > -1) {
jQuery('#task_timefields_metavars').parent().show();
jQuery('#task_timefields_metavars').val('');
} else {
jQuery('#task_timefields_metavars').parent().hide();
var textarea = CKEDITOR.instances.save_content;
textarea.insertHtml(value);
}
});
jQuery('#task_timefields_metavars').unbind('change');
jQuery('#task_timefields_metavars').change(function(){
var textarea = CKEDITOR.instances.save_content;
var value = jQuery(this).val();
var pieces = value.split(':');
var metaid = pieces[0];
var module = pieces[1];
value = jQuery('#task_timefields').val().replace('$','$'+metaid+'-');
textarea.insertHtml(value);
});
//crmv@140599e
filterPopulateField(); //crmv@112299
}
vtinst.extendSession(handleError(function(result){
vtinst.listTypes(handleError(function(accessibleModules) {
accessibleModulesInfo = accessibleModules;
if (jQuery.isEmptyObject(involved_records)) { //crmv@179315 check if there are involved records
last();
return false;
}
jQuery.each(involved_records,function(key,involved_record){
var moduleName = involved_record.module;
if (moduleName == '' || moduleName == null) { // check if there are involved records
i++;
if (i == jQuery(involved_records).length) last(); // check last
return;
}
ActionTaskScript.getCache('processmaker_describe_modules_'+processid, function(){
getDescribeObjects(vtinst, accessibleModules, moduleName, processid, involved_record, handleError(function(describeObjectResult){
modules = describeObjectResult[0];
moduleName = describeObjectResult[1];
involved_record = describeObjectResult[2];
i++;
fillSelectBox('task-fieldnames', modules, moduleName, involved_record);
jQuery('#task-fieldnames').prev('.populateFieldGroup').show();
fillSelectBox('task-subjectfields', modules, moduleName, involved_record, function(e){return (e['type']['name']!='file' && e['type']['name']!='text');});
jQuery('#task-subjectfields').prev('.populateFieldGroup').show();
fillSelectBox('task-emailfields', modules, moduleName, involved_record, function(e){return e['type']['name']=='email';});
if (i == jQuery(involved_records).length) {
appendDynaformOptions(jQuery('#task-fieldnames'),dynaform_options,'all');
jQuery('#task-fieldnames').unbind('change');
jQuery('#task-fieldnames').change(function(){
me.populateField('append_textarea',CKEDITOR.instances.save_content,this,'content'); //crmv@106857
});
appendDynaformOptions(jQuery('#task-subjectfields'),dynaform_options,'all');
jQuery('#task-subjectfields').unbind('change');
jQuery('#task-subjectfields').change(function(){
me.populateField('append_input_space',jQuery(jQuery('#save_subject').get()),this,'subject'); //crmv@106857
});
appendDynaformOptions(jQuery('#task-emailfields'),dynaform_options,'email');
//crmv@100591
if (jQuery(elements_actors).length > 0 && !checkSelectBoxDuplicates(jQuery('#task-emailfields'),alert_arr.LBL_PM_ELEMENTS_ACTORS)) {
var append = '<optgroup label="'+alert_arr.LBL_PM_ELEMENTS_ACTORS+'">';
jQuery.each(elements_actors, function(fieldvalue, fieldlabel){
append += '<option value="'+fieldvalue+'">'+fieldlabel+'</value>';
});
append += '</optgroup>';
jQuery('#task-emailfields').append(append);
}
//crmv@100591e
jQuery('#task-emailfields').unbind('change');
jQuery('#task-emailfields').change(function(){
me.populateField('append_input_comma',jQuery(jQuery('#save_recepient').get()),this,'recepient'); //crmv@106857
});
jQuery('#task-emailfields').show();
jQuery('#task-emailfields_sender').html(jQuery('#task-emailfields').html());
jQuery('#task-emailfields_sender').unbind('change');
jQuery('#task-emailfields_sender').change(function(){
me.populateField('overwrite_input',jQuery(jQuery('#save_sender').get()),this,'sender'); //crmv@106857
});
jQuery('#task-emailfields_sender').show();
jQuery('#task-emailfieldscc').html(jQuery('#task-emailfields').html());
jQuery('#task-emailfieldscc').unbind('change');
jQuery('#task-emailfieldscc').change(function(){
me.populateField('append_input_comma',jQuery(jQuery('#save_emailcc').get()),this,'emailcc'); //crmv@106857
});
jQuery('#task-emailfieldscc').show();
jQuery('#task-emailfieldsbcc').html(jQuery('#task-emailfields').html());
jQuery('#task-emailfieldsbcc').unbind('change');
jQuery('#task-emailfieldsbcc').change(function(){
me.populateField('append_input_comma',jQuery(jQuery('#save_emailbcc').get()),this,'emailbcc'); //crmv@106857
});
jQuery('#task-emailfieldsbcc').show();
// crmv@200330
jQuery('#task-emailfieldsreplyto').html(jQuery('#task-emailfields').html());
jQuery('#task-emailfieldsreplyto').unbind('change');
jQuery('#task-emailfieldsreplyto').change(function(){
me.populateField('append_input_comma',jQuery(jQuery('#save_emailreplyto').get()),this,'emailbcc'); //crmv@106857
});
jQuery('#task-emailfieldsreplyto').show();
// crmv@200330e
// crmv@147433
appendExtWSOptions(jQuery('#task-subjectfields'),extws_options);
appendExtWSOptions(jQuery('#task-fieldnames'),extws_options);
// crmv@147433e
last();
}
}));
});
});
}));
}));
},
//crmv@106857
populateField: function(mode,target,field,fieldname){
var me = this,
value = jQuery(field).val();
//crmv@112299
if (value == 'back') {
restorePopulateFieldGroup(field);
//crmv@112299e
} else if (value.indexOf('::') != -1) {
// show table fields options
if (jQuery('#actionform [name="cycle_action"]').val() != '') {
// check if I am in a cycle
//crmv@182891
var cycle_field = jQuery('#actionform [name="cycle_field"]').val().split(':');
if (value.indexOf('$'+cycle_field[0]+'-'+cycle_field[3]+'::') == 0
|| (value.indexOf('$'+cycle_field[0]+'-(') == 0 && value.indexOf(' '+cycle_field[3]+'::') > -1)
|| value.indexOf('$DF'+cycle_field[0]+'-'+cycle_field[1]+'::') == 0) {
//crmv@182891e
jQuery("#tablefields_options_"+fieldname+" .cycle_opt").show();
} else {
jQuery("#tablefields_options_"+fieldname+" .cycle_opt").hide();
}
}
//jQuery(field).parent().parent().find('.editoptions .populateField').css('max-width','300px');
jQuery("#tablefields_options_"+fieldname+" option:eq(0)").prop('selected', true);
jQuery("#tablefields_options_"+fieldname).show();
} else {
// hide table fields options
//jQuery(field).parent().parent().find('.editoptions .populateField').css('max-width','400px');
jQuery("#tablefields_options_"+fieldname).hide();
jQuery('#tablefields_seq_'+fieldname).hide();
jQuery('#tablefields_seq_btn_'+fieldname).hide();
// end
me.insertAtCursor(mode,target,value);
}
},
changeTableFieldOpt: function(mode,target,fieldname,dropdownid,obj){
var me = this,
value = obj.value;
if (value == 'seq') {
jQuery('#tablefields_seq_'+fieldname).show().focus();
jQuery('#tablefields_seq_btn_'+fieldname).show();
} else {
jQuery('#tablefields_seq_'+fieldname).hide();
jQuery('#tablefields_seq_btn_'+fieldname).hide();
if (value != '') me.insertTableFieldValue(mode,target,fieldname,dropdownid,value);
}
},
insertTableFieldValue: function(mode,target,fieldname,dropdownid,value){
var me = this,
parent_value = jQuery('#'+dropdownid).val();
if (value == 'seq') {
var sequence = parseInt(jQuery('#tablefields_seq_'+fieldname).val());
if (isNaN(sequence) || sequence <= 0) return false;
else value += ':'+sequence;
}
me.insertAtCursor(mode,target,parent_value+':'+value);
},
insertAtCursor: function(mode,target,value) {
if (mode == 'append_textarea') {
target.insertHtml(value);
} else if (mode == 'append_input_space') {
target.val(target.val()+' '+value);
} else if (mode == 'append_input_comma') {
var oldvalue = target.val().trim();
target.val((oldvalue ? oldvalue+',' : '')+value);
} else if (mode == 'overwrite_input') {
target.val(value);
}
}
//crmv@106857e
}
}
// crmv@126696
if (typeof(ActionNewsletterScript) == 'undefined') {
ActionNewsletterScript = {
loadForm: function(processid,id,action_type,action_id,involved_records,dynaform_options,elements_actors,extws_options) { //crmv@100591 crmv@147433
if (involved_records != '') involved_records = JSON.parse(involved_records); else involved_records = {}; //crmv@179315
dynaform_options = JSON.parse(dynaform_options);
elements_actors = JSON.parse(elements_actors); //crmv@100591
extws_options = JSON.parse(extws_options); //crmv@147433
var me = this,
i = 0,
vtinst = new VtenextWebservices("webservice.php",undefined,undefined,true)
last = function(){
jQuery('#task-fieldnames-busyicon').hide();
jQuery('#task-subjectfields-busyicon').hide();
jQuery('#task-emailfields-busyicon').hide();
jQuery('#task-emailfields_sendername-busyicon').hide();
jQuery('#task-emailfields_sender-busyicon').hide();
jQuery('#task-emailfields_recipients-busyicon').hide();
//crmv@140599
//time_changes
jQuery('#task_timefields').unbind('change');
jQuery('#task_timefields').change(function(){
var value = jQuery(this).val();
if (value.indexOf('crmdetailviewurl') > -1 || value.indexOf('portaldetailviewurl') > -1) {
jQuery('#task_timefields_metavars').parent().show();
jQuery('#task_timefields_metavars').val('');
} else {
jQuery('#task_timefields_metavars').parent().hide();
var textarea = CKEDITOR.instances.save_content;
textarea.insertHtml(value);
}
});
jQuery('#task_timefields_metavars').unbind('change');
jQuery('#task_timefields_metavars').change(function(){
var textarea = CKEDITOR.instances.save_content;
var value = jQuery(this).val();
var pieces = value.split(':');
var metaid = pieces[0];
var module = pieces[1];
value = jQuery('#task_timefields').val().replace('$','$'+metaid+'-');
textarea.insertHtml(value);
});
//crmv@140599e
jQuery('#recipients_selects').show(); //crmv@181281
filterPopulateField(); //crmv@112299
}
vtinst.extendSession(handleError(function(result){
vtinst.listTypes(handleError(function(accessibleModules) {
accessibleModulesInfo = accessibleModules;
if (jQuery.isEmptyObject(involved_records)) { //crmv@179315 check if there are involved records
last();
return false;
}
jQuery.each(involved_records,function(key,involved_record){
var moduleName = involved_record.module;
if (moduleName == '' || moduleName == null) { // check if there are involved records
i++;
return;
}
ActionTaskScript.getCache('processmaker_describe_modules_'+processid, function(){
getDescribeObjects(vtinst, accessibleModules, moduleName, processid, involved_record, handleError(function(describeObjectResult){
modules = describeObjectResult[0];
moduleName = describeObjectResult[1];
involved_record = describeObjectResult[2];
i++;
fillSelectBox('task-fieldnames', modules, moduleName, involved_record);
jQuery('#task-fieldnames').prev('.populateFieldGroup').show();
fillSelectBox('task-subjectfields', modules, moduleName, involved_record, function(e){return (e['type']['name']!='file' && e['type']['name']!='text');});
jQuery('#task-subjectfields').prev('.populateFieldGroup').show();
fillSelectBox('task-emailfields_sendername', modules, moduleName, involved_record, function(e){return (e['type']['name']!='file' && e['type']['name']!='text');});
jQuery('#task-emailfields_sendername').prev('.populateFieldGroup').show();
fillSelectBox('task-emailfields', modules, moduleName, involved_record, function(e){return e['type']['name']=='email';});
if (i == jQuery(involved_records).length) {
appendDynaformOptions(jQuery('#task-fieldnames'),dynaform_options,'all');
jQuery('#task-fieldnames').unbind('change');
jQuery('#task-fieldnames').change(function(){
me.populateField('append_textarea',CKEDITOR.instances.save_content,this,'content'); //crmv@106857
});
appendDynaformOptions(jQuery('#task-subjectfields'),dynaform_options,'all');
jQuery('#task-subjectfields').unbind('change');
jQuery('#task-subjectfields').change(function(){
me.populateField('append_input_space',jQuery(jQuery('#save_subject').get()),this,'subject'); //crmv@106857
});
appendDynaformOptions(jQuery('#task-emailfields_sendername'),dynaform_options,'all');
jQuery('#task-emailfields_sendername').unbind('change');
jQuery('#task-emailfields_sendername').change(function(){
me.populateField('append_input_space',jQuery(jQuery('#save_sendername').get()),this,'sendername'); //crmv@106857
});
appendDynaformOptions(jQuery('#task-emailfields'),dynaform_options,'email');
//crmv@100591
if (jQuery(elements_actors).length > 0 && !checkSelectBoxDuplicates(jQuery('#task-emailfields'),alert_arr.LBL_PM_ELEMENTS_ACTORS)) {
var append = '<optgroup label="'+alert_arr.LBL_PM_ELEMENTS_ACTORS+'">';
jQuery.each(elements_actors, function(fieldvalue, fieldlabel){
append += '<option value="'+fieldvalue+'">'+fieldlabel+'</value>';
});
append += '</optgroup>';
jQuery('#task-emailfields').append(append);
}
//crmv@100591e
jQuery('#task-emailfields').unbind('change');
jQuery('#task-emailfields').change(function(){
me.populateField('append_input_comma',jQuery(jQuery('#save_sender').get()),this,'sender'); //crmv@106857
});
jQuery('#task-emailfields').show();
//crmv@181281 removed code
// crmv@147433
appendExtWSOptions(jQuery('#task-emailfields_sendername'),extws_options);
appendExtWSOptions(jQuery('#task-subjectfields'),extws_options);
appendExtWSOptions(jQuery('#task-fieldnames'),extws_options);
// crmv@147433e
last();
}
}));
});
});
}));
}));
},
changeCampaignType: function() {
var ctype = jQuery('#campaign_type').val();
if (ctype == 'process') {
jQuery('#campaign_proc_cont').show();
} else {
jQuery('#campaign_proc_cont').hide();
}
if (ctype == 'existing') {
jQuery('#campaign_id_cont').show();
} else {
jQuery('#campaign_id_cont').hide();
}
},
setReturnCampaign: function(campaignid, entityname, fieldname) {
var form = document.actionform;
if (form) {
var domnode_id = form.elements[fieldname];
var domnode_display = form.elements[fieldname+'_display'];
if (domnode_id) domnode_id.value = campaignid;
if(domnode_display) domnode_display.value = entityname.replace(/&amp;/g, '&');
}
},
openSelectRecipients: function() {
var url = "index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=select_nl_recipients";
openPopup(url,"NewsletterWizard","width=750,height=602,menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=yes");
},
popupSelectRecipients: function() {
var list = nlwGetRecipients();
// populate the parent list
jQuery.each(list, function(module, item) {
// find the entityname
//jQuery.each(item, function(idx, ))
if (item.ids) {
jQuery.each(item.ids, function(idx, crmid) {
var spanid = 'nlw_item_'+module+'_'+crmid;
var ename = jQuery('#'+spanid).find('td').first().text();
parent.ActionNewsletterScript.addRecipient(module, crmid, ename, ename);
});
}
});
// and close the popup
closePopup();
},
addProcessRecipient: function() {
var me = this,
value = jQuery('#recipient_proc_record').val();
label = jQuery('#recipient_proc_record option:selected').text();
if (!value) return;
var pieces = value.split(':');
var crmid = pieces[0];
var module = pieces[1];
// shorten the label
if (label.length > 20) {
var shortlabel = label.substr(0,17) + '...';
} else {
var shortlabel = label;
}
me.addRecipient(module, value, shortlabel, label);
},
loadRecipients: function(boxlist) {
var me = this;
boxlist = JSON.parse(boxlist);
jQuery.each(boxlist, function(idx, box) {
me.addRecipient(box.module, box.crmid, box.ename, box.entityname, true);
});
},
// ename is already the complete name for the box
addRecipient: function(module, crmid, ename, fullname, initial) {
var box = jQuery('#recipients_boxes');
spanid = 'nlw_item_'+module+'_'+crmid,
existing = document.getElementById(spanid);
/*singlelabel = jQuery('#SLVContainer_'+listid).find('#mod_singlelabel').val(),
shortname = (entityname.length > 20 ? entityname.substr(0,10) + '...' : entityname),
ename = singlelabel+': '+shortname;
*/
if (existing) return;
// create a box
var span = '<span id="'+spanid+'" class="addrBubble" title="'+fullname.replace('"', '&quot;')+'">'
+'<table cellpadding="3" cellspacing="0" class="small">'
+'<tr>'
+ '<td>'+ename+'</td>'
+ '<td rowspan="2" align="right" valign="top"><div class="ImgBubbleDelete" onClick="ActionNewsletterScript.removeRecipient(\''+spanid+'\', \''+crmid+'\');"><i class="vteicon small">clear</i></div></td>'
+'</tr>'
+'</table>'
+'</span>';
box.append(span);
if (!initial) {
// add it to the hidden field
var listid = ''+crmid,
list = jQuery('#save_recipients').val().split(';');
if (list.indexOf(crmid) < 0) {
list.push(crmid);
jQuery('#save_recipients').val(list.join(';'));
}
}
},
removeRecipient: function(spanid, crmid) {
var box = jQuery('#recipients_boxes'),
span = document.getElementById(spanid);
if (span) {
jQuery(span).remove();
}
// remove it from the hidden field
var listid = ''+crmid,
list = jQuery('#save_recipients').val().split(';'),
listidx = list.indexOf(crmid);
if (listidx >= 0) {
list.splice(listidx, 1);
jQuery('#save_recipients').val(list.join(';'));
}
},
openSelectTemplate: function() {
var url = "index.php?module=Newsletter&action=NewsletterAjax&file=widgets/TemplateEmailList&record=0&mode=processmaker";
openPopup(url,"TemplateEmailList","width=750,height=602,menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=yes");
},
selectTemplate: function(nlid, templateid, templatename) {
parent.jQuery('#templatename').val(templatename);
parent.jQuery('#save_template').val(templateid);
closePopup();
parent.ActionNewsletterScript.loadTemplate();
},
loadTemplate: function() {
var me = this,
templateid = jQuery('#save_template').val();
jQuery.ajax({
url: "index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=load_nl_template&templateid="+templateid,
type: 'GET',
success: function(data) {
try {
data = JSON.parse(data);
} catch (e) {
// error!
return;
}
jQuery('#save_subject').val(data.subject);
CKEDITOR.instances.save_content.setData(data.body);
}
});
},
//crmv@106857
populateField: function(mode,target,field,fieldname){
var me = this,
value = jQuery(field).val();
//crmv@112299
if (value == 'back') {
restorePopulateFieldGroup(field);
//crmv@112299e
} else if (value.indexOf('::') != -1) {
// show table fields options
if (jQuery('#actionform [name="cycle_action"]').val() != '') {
// check if I am in a cycle
//crmv@182891
var cycle_field = jQuery('#actionform [name="cycle_field"]').val().split(':');
if (value.indexOf('$'+cycle_field[0]+'-'+cycle_field[3]+'::') == 0
|| (value.indexOf('$'+cycle_field[0]+'-(') == 0 && value.indexOf(' '+cycle_field[3]+'::') > -1)
|| value.indexOf('$DF'+cycle_field[0]+'-'+cycle_field[1]+'::') == 0) {
//crmv@182891e
jQuery("#tablefields_options_"+fieldname+" .cycle_opt").show();
} else {
jQuery("#tablefields_options_"+fieldname+" .cycle_opt").hide();
}
}
//jQuery(field).parent().parent().find('.editoptions .populateField').css('max-width','300px');
jQuery("#tablefields_options_"+fieldname+" option:eq(0)").prop('selected', true);
jQuery("#tablefields_options_"+fieldname).show();
} else {
// hide table fields options
//jQuery(field).parent().parent().find('.editoptions .populateField').css('max-width','400px');
jQuery("#tablefields_options_"+fieldname).hide();
jQuery('#tablefields_seq_'+fieldname).hide();
jQuery('#tablefields_seq_btn_'+fieldname).hide();
// end
me.insertAtCursor(mode,target,value);
}
},
changeTableFieldOpt: function(mode,target,fieldname,dropdownid,obj){
var me = this,
value = obj.value;
if (value == 'seq') {
jQuery('#tablefields_seq_'+fieldname).show().focus();
jQuery('#tablefields_seq_btn_'+fieldname).show();
} else {
jQuery('#tablefields_seq_'+fieldname).hide();
jQuery('#tablefields_seq_btn_'+fieldname).hide();
if (value != '') me.insertTableFieldValue(mode,target,fieldname,dropdownid,value);
}
},
insertTableFieldValue: function(mode,target,fieldname,dropdownid,value){
var me = this,
parent_value = jQuery('#'+dropdownid).val();
if (value == 'seq') {
var sequence = parseInt(jQuery('#tablefields_seq_'+fieldname).val());
if (isNaN(sequence) || sequence <= 0) return false;
else value += ':'+sequence;
}
me.insertAtCursor(mode,target,parent_value+':'+value);
},
insertAtCursor: function(mode,target,value) {
if (mode == 'append_textarea') {
target.insertHtml(value);
} else if (mode == 'append_input_space') {
target.val(target.val()+' '+value);
} else if (mode == 'append_input_comma') {
var oldvalue = target.val().trim();
target.val((oldvalue ? oldvalue+',' : '')+value);
} else if (mode == 'overwrite_input') {
target.val(value);
}
}
}
}
// crmv@126696e
//crmv@146671 crmv@OPER10174
if (typeof(ActionCallWSScript) == 'undefined') {
ActionCallWSScript = {
objectName: 'ActionCallWSScript',
wsinfo: null, // crmv@147433
loadForm: function(processid,id,action_type,action_id) {
var me = this,
extwsid = jQuery('#extwsid').val();
if (!extwsid) {
jQuery('#editForm').html('');
return;
}
jQuery.fancybox.showLoading();
var url = 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker/actions/CallExtWSForm&id='+processid+'&elementid='+id+'&action_id='+action_id+'&extwsid='+extwsid;
jQuery.ajax({
url: url,
method: 'POST',
success: function(data) {
// crmv@147433
var res = data.split('|&|&|&|');
if (res[0] != '') var involved_records = JSON.parse(res[0]); else var involved_records = {};
if (res[1] != '') var wsinfo = JSON.parse(res[1]); else var wsinfo = {};
if (res[2] != '') var metadata = JSON.parse(res[2]); else var metadata = {};
if (res[3] != '') var dynaform_options = JSON.parse(res[3]); else var dynaform_options = {};
if (res[4] != '') var elements_actors = JSON.parse(res[4]); else var elements_actors = {}; //crmv@100591
if (res[5] != '') var extws_options = JSON.parse(res[5]); else var extws_options = {};
if (res[6] != '') var wsinitfields = JSON.parse(res[6]); else var wsinitfields = {};
try {
jQuery('#editForm').html(res[7]);
} catch(err) {
console.error(err.message);
}
me.wsinfo = wsinfo;
var params = {
'processid':processid, //crmv@164486
'involved_records':involved_records,
/*'form_data':form_data,
'picklist_values':picklist_values,
'reference_values':reference_values,
'reference_users_values':reference_users_values,
'boolean_values':boolean_values,
'date_values':date_values,*/
'dynaform_options':dynaform_options,
'elements_actors':elements_actors,
'extws_options':extws_options
}
ActionTaskScript.loadFormEditOptions(me,'',params,function(){
jQuery.each(wsinitfields, function(k,field){
if (field[2] == '!DEFAULT!' || field[2] == '!DONTUSE!') {
jQuery('.editoptions[fieldname="'+field[0]+'"] .populateFieldGroup').focus().val(field[2]).change();
} else if (field[2] != '') {
me.populateFieldValue(field[0], field[2]);
}
});
});
// crmv@147433e
if (metadata.extra_params && Object.prototype.toString.call(metadata.extra_params) == '[object Object]') {
for (var pname in metadata.extra_params) {
me.addParam(pname, metadata.extra_params[pname]);
}
}
if (metadata.extra_results && Object.prototype.toString.call(metadata.extra_results) == '[object Object]') {
for (var rname in metadata.extra_results) {
me.addResult(rname, metadata.extra_results[rname]);
}
}
}
});
},
// crmv@147433
handleSpecialValue: function(self) {
var me = this,
val = jQuery(self).val(),
fieldname = jQuery(self).closest('div.editoptions').attr('fieldname'),
type = (fieldname.match(/^param_/) ? 'params' : 'results'),
fieldid = parseInt(fieldname.replace('param_', '').replace('result_', ''));
if (val == '!DEFAULT!' || val == '!DONTUSE!') {
// find the original value
var oval = me.wsinfo[type][fieldid].value;
var $field = jQuery('#'+fieldname),
cont = $field.closest('div');
// put it back in readonly
var newinput = $field.clone().attr('type', 'hidden').val(val);
cont.removeClass('dvtCellInfo').addClass('dvtCellInfoOff').html(newinput).append(oval);
if (val == '!DONTUSE!') {
// strike it
cont.css('text-decoration', 'line-through');
} else {
cont.css('text-decoration', '');
}
}
},
populateField: function(field){
var me = this;
var tagField = jQuery(field);
var fieldname = jQuery(field).parent().attr('fieldname');
var $field = jQuery('#editForm [name="'+fieldname+'"]');
var value = jQuery(tagField).val();
// first make the field rw if it was ro
if ($field.attr('type') == 'hidden') {
var newinput = $field.clone().attr('type', 'text').val('');
$field.closest('div').removeClass('dvtCellInfoOff').addClass('dvtCellInfo').html(newinput);
}
// then populate it!
ActionCreateScript.populateField.call(ActionCreateScript, field);
},
populateFieldValue: function(fieldname, fieldvalue){
var field = jQuery('.editoptions[fieldname="'+fieldname+'"] .populateField'),
$field = jQuery('#editForm [name="'+fieldname+'"]');
// first make the field rw if it was ro
if ($field.attr('type') == 'hidden') {
var newinput = $field.clone().attr('type', 'text').val('');
$field.closest('div').removeClass('dvtCellInfoOff').addClass('dvtCellInfo').html(newinput);
}
//crmv@182561
if (fieldname == 'auth_password' && jQuery('#auth_password').prop('type') == 'password' && value != 'back') {
jQuery('#auth_password').val('');
jQuery('#auth_password').prop('type','text');
}
//crmv@182561e
// then populate it!
ActionCreateScript.populateField.call(ActionCreateScript, field, fieldvalue);
},
// crmv@147433e
addAuth: function() {
var me = this;
jQuery('#table_auth').show();
jQuery('#button_auth').hide();
},
addParam: function(name, value) {
var me = this,
lastid = parseInt(jQuery('#last_param_id').val()),
newid = lastid+1,
header = jQuery('#header_custom_params'),
table = jQuery('#table_custom_params'),
tpl = jQuery('#param_row_tpl');
var newrow = tpl.clone().attr('id', null).show();
// fix id and name
newrow.find('input[name=param_name]').attr('name', 'param_name_'+newid).attr('id', 'param_name_'+newid);
newrow.find('input[name=param_value]').attr('name', 'param_value_'+newid).attr('id', 'param_value_'+newid);
newrow.find('div.editoptions[fieldname=param_name]').attr('fieldname', 'param_name_'+newid);
newrow.find('div.editoptions[fieldname=param_value]').attr('fieldname', 'param_value_'+newid);
// set the value also
if (name) {
newrow.find('input[name=param_name_'+newid+']').val(name);
newrow.find('input[name=param_value_'+newid+']').val(value);
}
table.append(newrow);
table.show();
header.show();
jQuery('#last_param_id').val(newid);
},
delParam: function(self) {
var me = this,
header = jQuery('#header_custom_params'),
table = jQuery('#table_custom_params');
jQuery(self).closest('tr').remove();
if (table.find('tr').length <= 1) {
table.hide();
header.hide();
}
},
addResult: function(name, value) {
var me = this,
lastid = parseInt(jQuery('#last_result_id').val()),
newid = lastid+1,
header = jQuery('#header_custom_results'),
table = jQuery('#table_custom_results'),
tpl = jQuery('#result_row_tpl');
var newrow = tpl.clone().attr('id', null).show();
// fix id and name
newrow.find('input[name=result_name]').attr('name', 'result_name_'+newid).attr('id', 'result_name_'+newid);
newrow.find('input[name=result_value]').attr('name', 'result_value_'+newid).attr('id', 'result_value_'+newid);
newrow.find('div.editoptions[fieldname=result_name]').attr('fieldname', 'result_name_'+newid);
newrow.find('div.editoptions[fieldname=result_value]').attr('fieldname', 'result_value_'+newid);
// set the value also
if (name) {
newrow.find('input[name=result_name_'+newid+']').val(name);
newrow.find('input[name=result_value_'+newid+']').val(value);
}
table.append(newrow);
table.show();
header.show();
jQuery('#last_result_id').val(newid);
},
delResult: function(self) {
var me = this,
header = jQuery('#header_custom_results'),
table = jQuery('#table_custom_results');
jQuery(self).closest('tr').remove();
if (table.find('tr').length <= 1) {
table.hide();
header.hide();
}
},
// crmv@147433
validate: function(values) {
var me = this;
var retlist = [];
// add the standard names
if (me.wsinfo && me.wsinfo.results.length > 0) {
for (var i=0; i<me.wsinfo.results.length; ++i) {
retlist.push(me.wsinfo.results[i].name);
}
}
// check the additional ones
for (var key in values) {
var value = values[key];
if (key.match(/^result_name_/)) {
var rid = parseInt(key.replace('result_name_', ''));
var rval = values['result_value_'+rid];
// check if value is empty
if (rval == '') {
vtealert(alert_arr.LBL_EXTWS_EMPTY_RETURN_FIELD)
return false;
}
// check if name is duplicate
if (retlist.indexOf(value) >= 0) {
vtealert(alert_arr.LBL_EXTWS_DUP_RETURN_FIELDS)
return false;
}
retlist.push(value);
}
}
return true;
}
// crmv@147433e
}
}
// crmv@146671e crmv@OPER10174e
//crmv@183346
if (typeof(ActionModNotificationScript) == 'undefined') {
ActionModNotificationScript = {
objectName: 'ActionModNotificationScript',
loadForm: function(module,processid,id,action_type,action_id,tablerow_mode) {
var me = ActionModNotificationScript;
if (typeof(tablerow_mode) == 'undefined') var tablerow_mode = false;
jQuery.fancybox.showLoading();
var url = 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker/actions/ModNotificationForm&mod='+module+'&id='+processid+'&elementid='+id+'&action_id='+action_id;
url += '&cycle_field='+encodeURIComponent(jQuery('input[name=cycle_field]').val() || '');
url += '&cycle_action='+encodeURIComponent(jQuery('input[name=cycle_action]').val() || '');
url += '&cycle_fieldname='+encodeURIComponent(jQuery('input[name=cycle_fieldname]').val() || '');//crmv@203075 add fieldname to check in CreateForm and not retrieve prod blocks in cycle related
if (tablerow_mode) url += '&tablerow_mode=1'; else url += '&tablerow_mode=0';
jQuery.ajax({
'url': url,
'type': 'POST',
success: function(data) {
var res = data.split('|&|&|&|');
if (res[0] != '') var involved_records = JSON.parse(res[0]); else var involved_records = {};
if (res[1] != '') var form_data = JSON.parse(res[1]); else var form_data = {};
if (res[2] != '') var picklist_values = JSON.parse(res[2]); else var picklist_values = {};
if (res[3] != '') var reference_values = JSON.parse(res[3]); else var reference_values = {};
if (res[4] != '') var reference_users_values = JSON.parse(res[4]); else var reference_users_values = {};
if (res[5] != '') var boolean_values = JSON.parse(res[5]); else var boolean_values = {};
if (res[6] != '') var date_values = JSON.parse(res[6]); else var date_values = {};
if (res[7] != '') var dynaform_options = JSON.parse(res[7]); else var dynaform_options = {};
if (res[8] != '') var elements_actors = JSON.parse(res[8]); else var elements_actors = {}; //crmv@100591
if (res[9] != '') var extws_options = JSON.parse(res[9]); else var extws_options = {}; // crmv@146671
var params = {
'processid':processid,
'involved_records':involved_records,
'form_data':form_data,
'picklist_values':picklist_values,
'reference_values':reference_values,
'reference_users_values':reference_users_values,
'boolean_values':boolean_values,
'date_values':date_values,
'dynaform_options':dynaform_options,
'elements_actors':elements_actors,
'extws_options':extws_options, // crmv@146671
}
// TODO check if is string
jQuery('#other_related_to').val(form_data['related_to']);
ActionTaskScript.loadFormEditOptions(me,module,params);
}
});
},
//crmv@106857
populateField: function(field, value){ //crmv@OPER10174
ActionCreateScript.populateField(field, value);
},
changeTableFieldOpt: function(obj, fieldname){
ActionCreateScript.changeTableFieldOpt(obj, fieldname);
},
insertTableFieldValue: function(obj, fieldname, value){
ActionCreateScript.insertTableFieldValue(obj, fieldname, value);
}
//crmv@106857e
}
}
//crmv@183346e
//crmv@187729
if (typeof(ActionCreatePDFScript) == 'undefined') {
ActionCreatePDFScript = {
objectName: 'ActionCreatePDFScript',
loadForm: function(module,processid,id,action_type,action_id,tablerow_mode,mode) {
var me = ActionCreatePDFScript;
if (typeof(tablerow_mode) == 'undefined') var tablerow_mode = false;
jQuery.fancybox.showLoading();
var url = 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker/actions/CreatePDFForm&mode='+mode+'&mod='+module+'&id='+processid+'&elementid='+id+'&action_id='+action_id;
url += '&cycle_field='+encodeURIComponent(jQuery('input[name=cycle_field]').val() || '');
url += '&cycle_action='+encodeURIComponent(jQuery('input[name=cycle_action]').val() || '');
url += '&cycle_fieldname='+encodeURIComponent(jQuery('input[name=cycle_fieldname]').val() || '');//crmv@203075 add fieldname to check in CreateForm and not retrieve prod blocks in cycle related
if (tablerow_mode) url += '&tablerow_mode=1'; else url += '&tablerow_mode=0';
jQuery.ajax({
'url': url,
'type': 'POST',
success: function(data) {
var res = data.split('|&|&|&|');
if (res[0] != '') var involved_records = JSON.parse(res[0]); else var involved_records = {};
if (res[1] != '') var form_data = JSON.parse(res[1]); else var form_data = {};
if (res[2] != '') var picklist_values = JSON.parse(res[2]); else var picklist_values = {};
if (res[3] != '') var reference_values = JSON.parse(res[3]); else var reference_values = {};
if (res[4] != '') var reference_users_values = JSON.parse(res[4]); else var reference_users_values = {};
if (res[5] != '') var boolean_values = JSON.parse(res[5]); else var boolean_values = {};
if (res[6] != '') var date_values = JSON.parse(res[6]); else var date_values = {};
if (res[7] != '') var dynaform_options = JSON.parse(res[7]); else var dynaform_options = {};
if (res[8] != '') var elements_actors = JSON.parse(res[8]); else var elements_actors = {}; //crmv@100591
if (res[9] != '') var extws_options = JSON.parse(res[9]); else var extws_options = {}; // crmv@146671
var params = {
'processid':processid,
'involved_records':involved_records,
'form_data':form_data,
'picklist_values':picklist_values,
'reference_values':reference_values,
'reference_users_values':reference_users_values,
'boolean_values':boolean_values,
'date_values':date_values,
'dynaform_options':dynaform_options,
'elements_actors':elements_actors,
'extws_options':extws_options, // crmv@146671
}
// TODO check if is string
jQuery('#other_related_to_entity').val(form_data['related_to_entity']);
ActionTaskScript.loadFormEditOptions(me,module,params);
}
});
},
reload_createpdf_form: function(module,processid,id,action_type,action_id,tablerow_mode,load_editview) {
jQuery('#block_0').css("display", "none");
jQuery('#block_1').css("display", "none");
jQuery('#error_container').empty();
var pdf_entity = jQuery('[name="pdf_entity"]').val();
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=reload_create_pdf&pdf_entity='+jQuery('[name="pdf_entity"]').val()+'&entity_mode='+load_editview+'&id='+jQuery('[name="id"]').val()+'&elementid='+jQuery('[name="elementid"]').val(),
'type': 'POST',
success: function(data) {
if(data != ''){
try {
data = JSON.parse(data);
} catch (e) {
// error!
return;
}
jQuery("#templatename").empty();
jQuery("#foldername").empty();
jQuery("#other_templatename").val("");
jQuery("#other_foldername").val("");
for(ct = 0; ct < data.templates.length; ct++){
var option = jQuery('<option></option>').attr("value", data.templates[ct]).text(data.templates[ct]);
jQuery("#templatename").append(option);
}
for(ct = 0; ct < data.folders.length; ct++){
var option = jQuery('<option></option>').attr("value", data.folders[ct]).text(data.folders[ct]);
jQuery("#foldername").append(option);
}
if(data.templates.length > 0 && data.folders.length > 0){
jQuery('#block_0').css("display", "block");
jQuery('#block_1').css("display", "block");
}
else{
jQuery('#error_container').text(data.error);
}
}
}
});
},
//crmv@106857
populateField: function(field, value){ //crmv@OPER10174
ActionCreateScript.populateField(field, value);
},
changeTableFieldOpt: function(obj, fieldname){
ActionCreateScript.changeTableFieldOpt(obj, fieldname);
},
insertTableFieldValue: function(obj, fieldname, value){
ActionCreateScript.insertTableFieldValue(obj, fieldname, value);
}
//crmv@106857e
}
}
// crmv@187729e
if (typeof(ProcessHelperScript) == 'undefined') {
ProcessHelperScript = {
initPopulateFields(element,elements_actors,form_data) {
switch(element) {
case 'task-fieldnames':
//crmv@100591
if (jQuery(elements_actors).length > 0 && !checkSelectBoxDuplicates(jQuery('#task-fieldnames'),alert_arr.LBL_PM_ELEMENTS_ACTORS)) {
var append = '<optgroup label="'+alert_arr.LBL_PM_ELEMENTS_ACTORS+'">';
jQuery.each(elements_actors, function(fieldvalue, fieldlabel){
append += '<option value="'+fieldvalue+'">'+fieldlabel+'</value>';
});
append += '</optgroup>';
jQuery('#task-fieldnames').append(append);
}
//crmv@100591e
//crmv@109685
jQuery('#editForm .editoptions[optionstype="fieldnames"]').each(function(){
jQuery(this).html('<select class="populateFieldGroup" onfocus="ActionTaskScript.populateSelectBox(this,\'fieldnames\')"><option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option></select><select style="display:none" class="populateField" onchange="ActionUpdateScript.populateField(this)"></select>'); //crmv@112299 crmv@139690
});
//crmv@109685e
break;
case 'task-pickfieldnames':
jQuery('#editForm .editoptions[optionstype="pickfieldnames"]').each(function(){
jQuery(this).html('<select class="populateFieldGroup" onfocus="ActionTaskScript.populateSelectBox(this,\'pickfieldnames\')"><option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option></select><select style="display:none" class="populateField" onchange="ActionUpdateScript.populateField(this)"></select>'); //crmv@112299 crmv@139690
});
break;
case 'task-smownerfieldnames':
//crmv@100591
if (jQuery(elements_actors).length > 0 && !checkSelectBoxDuplicates(jQuery('#task-smownerfieldnames'),alert_arr.LBL_PM_ELEMENTS_ACTORS)) {
var append = '<optgroup label="'+alert_arr.LBL_PM_ELEMENTS_ACTORS+'">';
jQuery.each(elements_actors, function(fieldvalue, fieldlabel){
append += '<option value="'+fieldvalue+'">'+fieldlabel+'</value>';
});
append += '</optgroup>';
jQuery('#task-smownerfieldnames').append(append);
}
//crmv@100591e
jQuery('#editForm .editoptions[optionstype="smownerfieldnames"]').each(function(){
jQuery(this).html('<select class="populateFieldGroup" onfocus="ActionTaskScript.populateSelectBox(this,\'smownerfieldnames\')"><option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option></select><select style="display:none" class="populateField" onchange="ActionUpdateScript.populateField(this)"></select>'); //crmv@112299 crmv@139690
});
if (jQuery('#assigned_user_id_type').val() == 'O' && form_data['assigned_user_id'] != undefined) {
jQuery('#other_assigned_user_id').val(form_data['assigned_user_id']);
}
//crmv@106856
if (form_data['assigned_user_id'] == 'advanced_field_assignment') {
jQuery('#assigned_user_id_type').val('A');
jQuery('.editoptions[fieldname="other_assigned_user_id"]').hide();
jQuery("#other_assigned_user_id").hide();
jQuery('#advanced_field_assignment_button_assigned_user_id').show();
}
if (jQuery('#other_assigned_user_id').length > 0) ActionTaskScript.showSdkParamsInput(jQuery('#other_assigned_user_id'),'assigned_user_id'); //crmv@113527
//crmv@106856e
break;
case 'task-referencefieldnames':
jQuery('#editForm .editoptions[optionstype="referencefieldnames"]').each(function(){
jQuery(this).html('<select class="populateFieldGroup" onfocus="ActionTaskScript.populateSelectBox(this,\'referencefieldnames\')"><option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option></select><select style="display:none" class="populateField" onchange="ActionUpdateScript.populateField(this)"></select>'); //crmv@112299 crmv@139690
});
jQuery('#related_to').parent().hide();
jQuery('#div_other_related_to').show();
jQuery('.editoptions[fieldname="other_related_to"]').show();
jQuery('#other_related_to').val(jQuery('#related_to').val());
break;
}
},
initPopulateField: function(processid,involved_records,dynaform_options,elements_actors,form_data) {
var me = this,
i = 0,
involved_records = JSON.parse(involved_records),
dynaform_options = JSON.parse(dynaform_options),
elements_actors = JSON.parse(elements_actors); //crmv@100591
if (ActionTaskScript.log_time) var start = Date.now();
if (typeof(form_data) != 'undefined') form_data = JSON.parse(form_data); else var form_data = {};
jQuery.fancybox.showLoading();
ActionTaskScript.getCache('processmaker_entity_options_'+processid, function(processmaker_entity_options){
if (processmaker_entity_options) {
jQuery.each(processmaker_entity_options,function(element,optgroups){
var append = '';
jQuery.each(optgroups,function(optgrouplabel,options){
if (!checkSelectBoxDuplicates(jQuery('#'+element),optgrouplabel)) {
if (optgrouplabel != '') append += '<optgroup label="'+optgrouplabel+'">';
jQuery.each(options,function(key,value){
append += '<option value="'+key+'">'+value+'</option>';
});
if (optgrouplabel != '') append += '</optgroup>';
}
});
jQuery('#'+element).append(append);
me.initPopulateFields(element,elements_actors,form_data);
});
filterPopulateField(); //crmv@112299
me.afterLastIteration();
if (ActionTaskScript.log_time) {
var end = Date.now();
var total_time = end - start;
console.log('ends ProcessHelperScript > initPopulateField with cache in ',total_time);
}
} else {
var vtinst = new VtenextWebservices("webservice.php",undefined,undefined,true);
vtinst.extendSession(handleError(function(result){
vtinst.listTypes(handleError(function(accessibleModules) {
accessibleModulesInfo = accessibleModules;
if (jQuery.isEmptyObject(involved_records)) { //crmv@179315 check if there are involved records
me.afterLastIteration();
return false;
}
ActionTaskScript.getCache('processmaker_describe_modules_'+processid, function(){
jQuery.each(involved_records,function(key,involved_record){
var moduleName = involved_record.module;
if (moduleName == '' || moduleName == null) { // check if there are involved records
i++;
if (i == jQuery(involved_records).length) me.afterLastIteration(); // check last
return;
}
getDescribeObjects(vtinst, accessibleModules, moduleName, processid, involved_record, handleError(function(describeObjectResult){
modules = describeObjectResult[0];
moduleName = describeObjectResult[1];
involved_record = describeObjectResult[2];
i++;
fillSelectBox('task-fieldnames', modules, moduleName, involved_record);
fillSelectBox('task-pickfieldnames', modules, moduleName, involved_record, function(e){return (e['type']['name']=='picklist' || e['type']['name']=='multipicklist');});
fillSelectBox('task-smownerfieldnames', modules, moduleName, involved_record, function(e){return (e['type']['name']=='reference' && e['type']['refersTo'][0]=='Users');});
fillSelectBox('task-referencefieldnames', modules, moduleName, involved_record, function(e){return (e['type']['name']=='reference' && e['type']['refersTo'][0]!='Users' && e['type']['refersTo'][0]!='Currency');});
// last
if (i == jQuery(involved_records).length) {
if (ActionTaskScript.log_time) {
var getDescribeObjects_time_end = Date.now();
var getDescribeObjects_time = getDescribeObjects_time_end - start;
console.log('ends ProcessHelperScript > getDescribeObjects in ',getDescribeObjects_time);
}
// text
appendDynaformOptions(jQuery('#task-fieldnames'),dynaform_options,'all');
me.initPopulateFields('task-fieldnames',elements_actors,form_data);
// picklist
appendDynaformOptions(jQuery('#task-pickfieldnames'),dynaform_options,'all');
me.initPopulateFields('task-pickfieldnames',elements_actors,form_data);
// owner
appendDynaformOptions(jQuery('#task-smownerfieldnames'),dynaform_options,'user');
me.initPopulateFields('task-smownerfieldnames',elements_actors,form_data);
// reference
appendDynaformOptions(jQuery('#task-referencefieldnames'),dynaform_options,'reference');
me.initPopulateFields('task-referencefieldnames',elements_actors,form_data);
filterPopulateField(); //crmv@112299
if (ActionTaskScript.enable_cache && ActionTaskScript.__overwriteCache) ActionTaskScript.setCache('processmaker_describe_modules_'+processid, ActionTaskScript.__cache['processmaker_describe_modules_'+processid]);
me.afterLastIteration();
if (ActionTaskScript.log_time) {
var end = Date.now();
var display_time = end - getDescribeObjects_time_end;
var total_time = end - start;
console.log('ends ProcessHelperScript > initPopulateField : display:',display_time,' total:',total_time);
}
}
}));
});
});
}));
}));
}
});
},
afterLastIteration: function() {
jQuery.fancybox.hideLoading();
},
loadPopulateField: function(fieldinfo) {
// TODO load the correct interface using uitype of the field "fieldprop_default" and populateFieldOptions with the relative field
jQuery('#fieldprop_default').val(fieldinfo['default']);
jQuery('#defaultValueContainer').html('<select class="populateFieldGroup" onfocus="ActionTaskScript.populateSelectBox(this,\'fieldnames\')"><option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option></select><select style="display:none" class="populateField" onchange="ProcessHelperScript.populateField(this)"></select>'); //crmv@112299 crmv@139690
filterPopulateField(); //crmv@112299
},
populateField: function(field){
var tagField = jQuery(field);
var field = jQuery('#fieldprop_default');
var value = jQuery(tagField).val();
//crmv@112299
if (value == 'back') {
restorePopulateFieldGroup(tagField);
//crmv@112299e
} else if (value != '') insertAtCursor(field.get(0), value);
},
openImportDynaformBlocks: function(){
if (!ProcessMakerScript.sessionCheck()) return false; // crmv@189903
var processid = jQuery('.form-helper-shape #processid').val();
var id = jQuery('.form-helper-shape #elementid').val();
//crmv@160837 some code removed
openPopup('index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=openimportdynaformblocks&id='+processid+'&elementid='+id); //crmv@160837
},
checkAllDynaformBlocks: function(elementid,checked){
jQuery('[id^="import_'+elementid+'"]').prop('checked',checked);
},
importDynaformBlocks: function(processmakerid,elementid){
//crmv@160837
var mmaker = {};
jQuery.each(parent.jQuery('#module_maker_form').serializeArray(), function(){
mmaker[this.name] = this.value;
});
//crmv@160837e
var dynaformblocks = [];
jQuery.each(jQuery('[id^="import_"]').serializeArray(), function(){
dynaformblocks.push(this.value);
});
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=importdynaformblocks&id='+processmakerid+'&elementid='+elementid,
'type': 'POST',
'data': jQuery.param({'dynaformblocks':dynaformblocks,'mmaker':mmaker}), //crmv@160837
success: function(data) {
if (data != '') parent.jQuery('#mmaker_div_allblocks').html(data);
closePopup();
}
});
},
//crmv@160837
openImportModuleBlocks: function(){
if (!ProcessMakerScript.sessionCheck()) return false; // crmv@189903
var processid = jQuery('.form-helper-shape #processid').val();
var id = jQuery('.form-helper-shape #elementid').val();
openPopup('index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=openimportmoduleblocks&id='+processid+'&elementid='+id);
},
loadModuleBlocks: function(processmakerid,elementid,record_involved){
var me = this;
_load = function() {
jQuery.fancybox.showLoading();
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=loadmoduleblocks&id='+processmakerid+'&record_involved='+record_involved,
'type': 'POST',
success: function(data) {
jQuery('#blocks_container').html(data);
jQuery.fancybox.hideLoading();
}
});
}
if (jQuery('[id^="import_"]').serializeArray().length > 0) {
vteconfirm('Vuoi importare i blocchi selezionati?', function(yes) {
if (yes) {
me.importModuleBlocks(processmakerid,elementid,function(){
_load();
})
} else {
_load();
}
});
} else {
_load();
}
},
importModuleBlocks: function(processmakerid,elementid,callback){
var mmaker = {};
jQuery.each(parent.jQuery('#module_maker_form').serializeArray(), function(){
mmaker[this.name] = this.value;
});
var module_mmaker = {};
var import_blocks = [];
jQuery.each(jQuery('[id^="import_"]').serializeArray(), function(){
import_blocks.push(this.value);
var import_block = this.value;
jQuery.each(jQuery('#module_maker_form').serializeArray(), function(){
if (this.name.indexOf('block'+import_block+'_') > -1 || this.name.indexOf('field'+import_block+'_') > -1) {
module_mmaker[this.name] = this.value;
}
});
});
jQuery.ajax({
'url': 'index.php?module=Settings&action=SettingsAjax&file=ProcessMaker&mode=importmoduleblocks&id='+processmakerid+'&elementid='+elementid,
'type': 'POST',
'data': jQuery.param({'mmaker':mmaker,'module_mmaker':module_mmaker,'import_blocks':import_blocks}),
success: function(data) {
if (data != '') parent.jQuery('#mmaker_div_allblocks').html(data);
if (typeof callback == 'function') {
callback(data);
} else {
closePopup();
}
}
});
}
//crmv@160837e
}
}
//crmv@112299
function filterPopulateField() {
jQuery('.populateFieldGroup').each(function(){
var obj = this,
str = '';
str += '<option value="">'+alert_arr.LBL_SELECT_OPTION_DOTDOTDOT+'</option>';
if (jQuery(obj).next('.populateField').length > 0) {
var populateField = jQuery(obj).next('.populateField');
populateField.find('optgroup').each(function(){
str += '<option value="'+this.label+'">'+this.label+'</option>';
});
jQuery(obj).html(str).change(function(){
jQuery(obj).hide();
populateField.find('optgroup').hide();
populateField.find('optgroup[label="'+this.value+'"]').show();
jQuery(populateField).show();
populateField.val(populateField.find("option:first").val());
});
}
});
}
function restorePopulateFieldGroup(tagField) {
jQuery(tagField).hide();
var populateFieldGroup = jQuery(tagField).prev('.populateFieldGroup');
populateFieldGroup.show();
populateFieldGroup.val(populateFieldGroup.find("option:first").val());
}
//crmv@112299e
function NewTaskPopup($,context){
function close(){
$('#new_task_div',context).css('display', 'none');
}
function show(module){
$('#new_task_div',context).css('display', 'block');
}
$('#new_task_div_close',context).click(close);
$('#new_task_div_cancel',context).click(close);
return {
close:close,show:show
};
}
function insertAtCursor(element, value){
//http://alexking.org/blog/2003/06/02/inserting-at-the-cursor-using-javascript
if (document.selection) {
element.focus();
var sel = document.selection.createRange();
sel.text = value;
element.focus();
}else if (element.selectionStart || element.selectionStart == '0') {
var startPos = element.selectionStart;
var endPos = element.selectionEnd;
var scrollTop = element.scrollTop;
element.value = element.value.substring(0, startPos)
+ value
+ element.value.substring(endPos,
element.value.length);
element.focus();
element.selectionStart = startPos + value.length;
element.selectionEnd = startPos + value.length;
element.scrollTop = scrollTop;
} else {
element.value += value;
element.focus();
}
}
function getDescribeObjects(vtinst, accessibleModules, moduleName, processid, involved_record, callback){
var me = this,
processmaker_describe_modules;
if (ActionTaskScript.__cache['processmaker_describe_modules_'+processid]) processmaker_describe_modules = ActionTaskScript.__cache['processmaker_describe_modules_'+processid]; else processmaker_describe_modules = {};
processDescribeObject = function(moduleName,involved_record,result,callback){
var parent = referencify(result);
var fields = parent['fields'];
var referenceFields = filter(function(e){return e['type']['name']=='reference';}, fields);
var referenceFieldModules =
map(function(e){ return e['type']['refersTo'];},
referenceFields
);
function union(a, b){
var newfields = filter(function(e){return !contains(a, e);}, b);
return a.concat(newfields);
}
var relatedModules = reduceR(union, referenceFieldModules, []); //skip duplicate call
if (relatedModules.length == 0) relatedModules = [moduleName]; //crmv@113775 force module even if there aren't fields in order to prevent error
if (!(moduleName in ActionTaskScript.__describe_object_cache)) ActionTaskScript.__describe_object_cache[moduleName] = result;
// Remove modules that is no longer accessible
relatedModules = diff(accessibleModules, relatedModules);
// crmv@195745
if (result.isInventory) {
relatedModules.push('ProductsBlock');
}
// crmv@195745e
function executer(parameters){
var failures = filter(function(e){return e[0]==false;}, parameters);
if(failures.length!=0){
var firstFailure = failures[0];
callback(false, firstFailure[1]);
}else{
var moduleDescriptions = map(function(e){return e[1];}, parameters);
var modules = dict(map(function(e){return [e['name'], referencify(e)];}, moduleDescriptions));
modules[moduleName] = ActionTaskScript.__describe_object_cache[moduleName]; //skip duplicate call
jQuery.each(modules, function(k,v){
if (!(k in ActionTaskScript.__describe_object_cache)) ActionTaskScript.__describe_object_cache[k] = v;
});
callback(true, [modules, moduleName, involved_record]);
}
}
var p = parallelExecuter(executer, relatedModules.length);
jQuery.each(relatedModules, function(i, v){
if (!(v in ActionTaskScript.__describe_object_cache)) {
p(function(c){
if (!ActionTaskScript.enable_cache || typeof(processmaker_describe_modules[v]) == 'undefined') {
// if cache is not set call the describeObject and cache the result
//ActionTaskScript.__describeObjectCount++;
vtinst.describeObject(v,handleError(function(relatedResult){
//ActionTaskScript.__describeObjectCount--;
processmaker_describe_modules[v] = relatedResult;
if (ActionTaskScript.enable_cache) {
// save result in the object ActionTaskScript.__cache and save it at the end
ActionTaskScript.__overwriteCache = true; // to overwrite the cache after all the describe
if (!ActionTaskScript.__cache['processmaker_describe_modules_'+processid]) ActionTaskScript.__cache['processmaker_describe_modules_'+processid] = {};
ActionTaskScript.__cache['processmaker_describe_modules_'+processid][v] = processmaker_describe_modules[v];
}
c(true,processmaker_describe_modules[v]);
}));
} else {
c(true,processmaker_describe_modules[v]);
}
});
} else {
p(function(c){
c(true,ActionTaskScript.__describe_object_cache[v]);
});
}
});
}
if (!ActionTaskScript.enable_cache || typeof(processmaker_describe_modules[moduleName]) == 'undefined') {
// if cache is not set call the describeObject and cache the result
//ActionTaskScript.__describeObjectCount++;
vtinst.describeObject(moduleName, handleError(function(result){
//ActionTaskScript.__describeObjectCount--;
processmaker_describe_modules[moduleName] = result;
if (ActionTaskScript.enable_cache) {
// save result in the object ActionTaskScript.__cache and save it at the end
ActionTaskScript.__overwriteCache = true; // to overwrite the cache after all the describe
if (!ActionTaskScript.__cache['processmaker_describe_modules_'+processid]) ActionTaskScript.__cache['processmaker_describe_modules_'+processid] = {};
ActionTaskScript.__cache['processmaker_describe_modules_'+processid][moduleName] = processmaker_describe_modules[moduleName];
}
processDescribeObject(moduleName,involved_record,result,callback);
}));
} else {
processDescribeObject(moduleName,involved_record,processmaker_describe_modules[moduleName],callback);
}
}
function checkSelectBoxDuplicates(field, label) {
var optgroups = jQuery(field).find('optgroup');
var check_duplicate = function(){
var check = false;
jQuery(field).find('optgroup').each(function(){
if (this.label == label) {
check = true;
return true;
}
});
return check;
}();
return check_duplicate;
}
function fillSelectBox(id, modules, parentModule, involved_record, filterPred){
if(filterPred==null){
filterPred = function(){
return true;
};
}
var select = jQuery('#'+id);
if (select.length == 0) select = jQuery('[name="'+id+'"]');
if (checkSelectBoxDuplicates(select, involved_record.label)) return true;
var parent = modules[parentModule];
var fields = parent['fields'];
function filteredFields(fields){
return filter(
function(e){
var fieldCheck = !contains(['autogenerated', 'owner', 'multipicklist', 'password'], e.type.name); //reference
var predCheck = filterPred(e);
return fieldCheck && predCheck;
},
fields
);
}
var parentFields = map(function(e){return[e['name'],e['label']];}, filteredFields(parent['fields']));
var referenceFieldTypes = filter(function(e){
return (e['type']['name']=='reference');
},parent['fields']
);
var moduleFieldTypes = {};
jQuery.each(modules, function(k, v){
moduleFieldTypes[k] = dict(map(function(e){return [e['name'], e['type']];},filteredFields(v['fields'])));
}
);
function getFieldType(fullFieldName){
var group = fullFieldName.match(/(\w+) : \((\w+)\) (\w+)/);
if(group==null){
var fieldModule = parentModule;
var fieldName = fullFieldName;
}else{
var fieldModule = group[2];
var fieldName = group[3];
}
return moduleFieldTypes[fieldModule][fieldName];
}
function fieldReferenceNames(referenceField){
var name = referenceField['name'];
var label = referenceField['label'];
function forModule(parentModule){
// If module is not accessible return no field information
if(!contains(accessibleModulesInfo, parentModule)) return [];
if (typeof(modules[parentModule]) == 'undefined') return []; //crmv@131239
return map(function(field){
return ['('+name+' : '+'('+parentModule+') '+field['name']+')',label+' : '+'('+modules[parentModule]['label']+') '+field['label']]; //crmv@42329
},
filteredFields(modules[parentModule]['fields']));
}
return reduceR(concat,map(forModule,referenceField['type']['refersTo']),[]);
}
//crmv@36510
if (id == 'task-emailfields_sender'){
var accessibleModulesInfo_backup = accessibleModulesInfo;
accessibleModulesInfo = ['Users'];
}
var referenceFields = reduceR(concat,map(fieldReferenceNames,referenceFieldTypes), []);
if (id == 'task-emailfields_sender'){
accessibleModulesInfo = accessibleModulesInfo_backup;
}
//crmv@36510 e
var referenceFields = reduceR(concat,map(fieldReferenceNames,referenceFieldTypes), []);
var fieldLabels = dict(parentFields.concat(referenceFields));
var optionClass = id+'_option';
var append = '';
append += '<optgroup label="'+involved_record.label+'">';
if (typeof(involved_record.meta_processid) == 'undefined') var rk = involved_record.seq; else rk = involved_record.meta_processid+':'+involved_record.seq;
if (id == 'task-fieldnames' || id == 'task-referencefieldnames' || id == 'task-subjectfields') {
append += '<option class="'+optionClass+'" '+ 'value="$'+rk+'-crmid">ID</option>';
}
jQuery.each(fieldLabels, function(k, v){
append += '<option class="'+optionClass+'" '+ 'value="$'+rk+'-'+k+'">' + v + '</option>';
});
append += '</optgroup>';
select.append(append);
}
//crmv@146187
function appendDynaformOptions(field,options,type) {
var string = '';
var optgroup_exists = false;
var optgroup = null;
if (typeof(options[type]) == "object") {
jQuery.each(options[type], function(grouplabel, fields){
if (checkSelectBoxDuplicates(field, grouplabel)) {
optgroup_exists = true;
jQuery(field).find('optgroup').each(function(){
if (this.label == grouplabel) optgroup = this;
});
}
if (!optgroup_exists) string += '<optgroup label="'+grouplabel+'">';
jQuery.each(fields, function(fieldvalue, fieldlabel){
string += '<option value="'+fieldvalue+'">'+fieldlabel+'</value>'; // TODO check duplicates?
});
if (!optgroup_exists) string += '</optgroup>';
});
}
if (string != '') {
if (optgroup_exists)
jQuery(optgroup).append(string);
else
jQuery(field).append(string);
}
}
//crmv@146187e
// crmv@146671
function appendExtWSOptions(jfield,options) {
var string = '';
if (options && options.length > 0) {
jQuery.each(options, function(index, group){
if (group && group.fields && group.fields.length > 0) {
string += '<optgroup label="'+group.label+'">';
jQuery.each(group.fields, function(index2, field){
string += '<option value="'+field.value+'">'+field.label+'</value>';
});
string += '</optgroup>';
}
});
}
if (string != '') jQuery(jfield).append(string);
}
// crmv@146671e
function id(v){
return v;
}
function map(fn, list){
var out = [];
jQuery.each(list, function(i, v){
out[out.length]=fn(v);
});
return out;
}
function field(name){
return function(object){
if(typeof(object) != 'undefined') {
return object[name];
}
};
}
function zip(){
var out = [];
var lengths = map(field('length'), arguments);
var min = reduceR(function(a,b){return a<b?a:b;},lengths,lengths[0]);
for(var i=0; i<min; i++){
out[i]=map(field(i), arguments);
}
return out;
}
function dict(list){
var out = {};
jQuery.each(list, function(i, v){
out[v[0]] = v[1];
});
return out;
}
function filter(pred, list){
var out = [];
jQuery.each(list, function(i, v){
if(pred(v)){
out[out.length]=v;
}
});
return out;
}
function diff(reflist, list) {
var out = [];
jQuery.each(list, function(i, v) {
if(contains(reflist, v)) {
out.push(v);
}
});
return out;
}
function reduceR(fn, list, start){
var acc = start;
jQuery.each(list, function(i, v){
acc = fn(acc, v);
});
return acc;
}
function contains(list, value){
var ans = false;
jQuery.each(list, function(i, v){
if(v==value){
ans = true;
return false;
}
});
return ans;
}
function concat(lista,listb){
return lista.concat(listb);
}
function errorDialog(message){
alert(message);
}
function handleError(fn){
return function(status, result){
if(status){
fn(result);
}else{
errorDialog('Failure:'+result);
}
};
}
function implode(sep, arr){
var out = "";
jQuery.each(arr, function(i, v){
out+=v;
if(i<arr.length-1){
out+=sep;
}
});
return out;
}
function mergeObjects(obj1, obj2){
var res = {};
for(var k in obj1){
res[k] = obj1[k];
}
for(var k in obj2){
res[k] = obj2[k];
}
return res;
}
function referencify(desc){
var fields = desc['fields'];
for(var i=0; i<fields.length; i++){
var field = fields[i];
var type = field['type'];
if(type['name']=='owner'){
type['name']='reference';
type['refersTo']=['Users'];
}
}
return desc;
}