mirror of
https://github.com/VTECRM/vtenext.git
synced 2026-02-26 16:18:47 +00:00
192 lines
5.7 KiB
JavaScript
192 lines
5.7 KiB
JavaScript
/*************************************
|
|
* SPDX-FileCopyrightText: 2009-2020 Vtenext S.r.l. <info@vtenext.com>
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
************************************/
|
|
|
|
/* crmv@168103 */
|
|
|
|
/**
|
|
* Generic uitype popup selection handler
|
|
*/
|
|
function vtlib_setvalue_from_popup(recordid,value,target_fieldname) {
|
|
//crmv@29190
|
|
var formName = getReturnFormName();
|
|
var form = getReturnForm(formName);
|
|
if (form) {
|
|
//crmv@29190e
|
|
var domnode_id = form.elements[target_fieldname];
|
|
var domnode_display = form.elements[target_fieldname+'_display'];
|
|
if (typeof(domnode_display) == 'undefined' && target_fieldname == 'parent_id') domnode_display = form.elements['parent_name'];
|
|
if (domnode_id) domnode_id.value = recordid;
|
|
if (domnode_display) domnode_display.value = value.replace(/&/g, '&');
|
|
parent.disableReferenceField(domnode_display,domnode_id,form.elements[target_fieldname+'_mass_edit_check']); //crmv@29190 crmv@112297
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Show the vte field help if available.
|
|
*/
|
|
function vtlib_field_help_show(basenode, fldname, helpcontent) { // crmv@191909
|
|
var domnode = document.getElementById('vtlib_fieldhelp_div');
|
|
|
|
// crmv@191909
|
|
if (typeof(helpcontent) == 'undefined' || helpcontent === null) {
|
|
if(typeof(fieldhelpinfo) == 'undefined') return;
|
|
helpcontent = fieldhelpinfo[fldname];
|
|
if(typeof(helpcontent) == 'undefined') return;
|
|
}
|
|
// crmv@191909e
|
|
|
|
if(!domnode) {
|
|
domnode = document.createElement('div');
|
|
domnode.id = 'vtlib_fieldhelp_div';
|
|
domnode.className = 'small layerPopup'; // crmv@27520
|
|
domnode.style.position = 'absolute';
|
|
domnode.style.width = '150px';
|
|
domnode.style.padding = '4px';
|
|
domnode.style.fontWeight = 'normal';
|
|
document.body.appendChild(domnode);
|
|
|
|
jQuery(domnode).on('mouseover', function() {
|
|
jQuery('#vtlib_fieldhelp_div').show();
|
|
});
|
|
jQuery(domnode).on('mouseout', function() {
|
|
jQuery('#vtlib_fieldhelp_div').hide();
|
|
});
|
|
} else {
|
|
jQuery('#vtlib_fieldhelp_div').show();
|
|
}
|
|
domnode.innerHTML = helpcontent;
|
|
|
|
// crmv@171132
|
|
var pos = jQuery(basenode).offset(); // crmv@191909
|
|
jQuery(domnode).css({
|
|
top: pos.top+'px',
|
|
left: pos.left+'px',
|
|
}).show();
|
|
// crmv@171132e
|
|
}
|
|
|
|
|
|
/**
|
|
* Listview Javascript Event handlers API
|
|
*
|
|
* Example:
|
|
* vtlib_listview.register('cell.onmouseover', function(evtparams, moreparams) { console.log(evtparams); }, [10,20]);
|
|
* vtlib_listview.register('cell.onmouseout', function(evtparams) {console.log(evtparams); });
|
|
*/
|
|
var vtlib_listview = {
|
|
/**
|
|
* Callback function handlers that needs to be triggered for an event
|
|
*
|
|
* _handlers = {
|
|
* 'event1' : [ [handlerfn11, handlerfn11_moreparams], [handlerfn2, handlerfn12_moreparams] ],
|
|
* 'event2' : [ [handlerfn21, handlerfn21_moreparams], [handlerfn2, handlerfn22_moreparams] ]
|
|
* }
|
|
*/
|
|
_handlers : {},
|
|
|
|
/**
|
|
* Register handler function for the event
|
|
*/
|
|
register : function(evttype, handler, callback_params) {
|
|
if(typeof(callback_params) == 'undefined') callback_params = false;
|
|
if(typeof(vtlib_listview._handlers[evttype]) == 'undefined') {
|
|
vtlib_listview._handlers[evttype] = [];
|
|
}
|
|
// Event handlerinfo is an array having (function, optional_more_parameters)
|
|
vtlib_listview._handlers[evttype].push([handler, callback_params]);
|
|
},
|
|
|
|
/**
|
|
* Invoke handler function based on event type
|
|
*/
|
|
invoke_handler : function(evttype, event_params) {
|
|
var evthandlers = vtlib_listview._handlers[evttype];
|
|
if(typeof(evthandlers) == 'undefined') return;
|
|
for(var index = 0; index < evthandlers.length; ++index) {
|
|
var evthandlerinfo = evthandlers[index];
|
|
// Event handlerinfo is an array having (function, optional_more_parameters)
|
|
var evthandlerfn = evthandlerinfo[0];
|
|
if(typeof(evthandlerfn) == 'function') {
|
|
evthandlerfn(event_params, evthandlerinfo[1]);
|
|
}
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Trigger handler function for the event
|
|
*/
|
|
trigger : function(evttype, node) {
|
|
if(evttype == 'cell.onmouseover' || evttype == 'cell.onmouseout') {
|
|
// Catch hold of DOM element which has meta inforamtion.
|
|
var innerNodes = node.getElementsByTagName('span');
|
|
if(typeof(innerNodes) != 'undefined') {
|
|
var cellhandler = false;
|
|
for(var index = 0; index < innerNodes.length; ++index) {
|
|
var innerNodeAttrs = innerNodes[index].attributes;
|
|
if(typeof(innerNodeAttrs) != 'undefined' && typeof(innerNodeAttrs.type) != 'undefined' && innerNodeAttrs['type'].nodeValue == 'vtlib_metainfo') {
|
|
cellhandler = innerNodes[index];
|
|
break;
|
|
}
|
|
}
|
|
if(cellhandler == false) return;
|
|
var event_params = {
|
|
'event' : evttype,
|
|
'domnode': node,
|
|
'module' : cellhandler.attributes['vtmodule'].nodeValue,
|
|
'fieldname': cellhandler.attributes['vtfieldname'].nodeValue,
|
|
'recordid': cellhandler.attributes['vtrecordid'].nodeValue
|
|
}
|
|
vtlib_listview.invoke_handler(evttype, event_params);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/** END **/
|
|
|
|
/**
|
|
* DetailView widget loader API
|
|
*/
|
|
function vtlib_loadDetailViewWidget(urldata, target, indicator, callback) { //crmv@52912
|
|
|
|
if (typeof(target) == 'undefined') {
|
|
target = false;
|
|
} else {
|
|
target = document.getElementById(target);
|
|
}
|
|
|
|
if (typeof(indicator) == 'undefined') {
|
|
indicator = false;
|
|
} else {
|
|
indicator = document.getElementById(indicator);
|
|
}
|
|
|
|
if (target && target.style.display != 'none') {
|
|
return false;
|
|
} else {
|
|
jQuery(target).show();
|
|
}
|
|
|
|
if (indicator) jQuery(indicator).show();
|
|
|
|
//crmv@31360
|
|
jQuery.ajax({
|
|
url: 'index.php?'+urldata,
|
|
type: 'POST',
|
|
dataType: 'html',
|
|
success: function(data){
|
|
if (target) {
|
|
jQuery(target).html(data);
|
|
if (indicator) jQuery(indicator).hide();
|
|
if (typeof callback == "function") callback(); //crmv@52912
|
|
}
|
|
}
|
|
});
|
|
//crmv@31360e
|
|
|
|
return false; // To stop event propogation
|
|
} |