mirror of
https://github.com/VTECRM/vtenext.git
synced 2026-02-26 16:18:47 +00:00
291 lines
8.7 KiB
Smarty
291 lines
8.7 KiB
Smarty
{*
|
|
/*************************************
|
|
* SPDX-FileCopyrightText: 2009-2020 Vtenext S.r.l. <info@vtenext.com>
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
************************************/
|
|
*}
|
|
<script type="text/javascript" charset="utf-8">
|
|
{literal}
|
|
function editexpressionscript($){
|
|
function errorDialog(message){
|
|
alert(message);
|
|
}
|
|
|
|
|
|
function jsonget(operation, params, callback){
|
|
var obj = {
|
|
module:'com_workflow',
|
|
action:'com_workflowAjax',
|
|
file:operation, ajax:'true'};
|
|
$.each(params,function(key, value){
|
|
obj[key] = value;
|
|
});
|
|
$.get('index.php', obj,
|
|
function(result){
|
|
callback(result);
|
|
});
|
|
}
|
|
|
|
format = fn.format;
|
|
var moduleName
|
|
function editpopup(){
|
|
function close(){
|
|
$('#editpopup').css('display', 'none');
|
|
$('#editpopup_expression').text('');
|
|
}
|
|
|
|
function show(module){
|
|
$('#editpopup').css('display', 'block');
|
|
}
|
|
|
|
$('#editpopup_close').bind('click', close);
|
|
$('#editpopup_save').bind('click', function(){
|
|
var expression = $('#editpopup_expression').val();
|
|
var fieldName = $('#editpopup_field').val();
|
|
var moduleName = $('#pick_module').val();
|
|
$.get('index.php', {
|
|
module:'com_autofillfields',
|
|
action:'com_autofillfieldsAjax',
|
|
file:'saveexpressionjson', ajax:'true',
|
|
modulename: moduleName, fieldname:fieldName,
|
|
expression:expression
|
|
},
|
|
function(result){
|
|
if(!result){
|
|
errorDialog('save failed ');
|
|
}
|
|
});
|
|
close();
|
|
});
|
|
|
|
$('#editpopup_cancel').bind('click', close);
|
|
|
|
$('#editpopup_fieldnames').bind('change', function(){
|
|
var textarea = $('#editpopup_expression').get(0);
|
|
var value = $(this).val();
|
|
//http://alexking.org/blog/2003/06/02/inserting-at-the-cursor-using-javascript
|
|
if (document.selection) {
|
|
textarea.focus();
|
|
var sel = document.selection.createRange();
|
|
sel.text = value;
|
|
textarea.focus();
|
|
}else if (textarea.selectionStart || textarea.selectionStart == '0') {
|
|
var startPos = textarea.selectionStart;
|
|
var endPos = textarea.selectionEnd;
|
|
var scrollTop = textarea.scrollTop;
|
|
textarea.value = textarea.value.substring(0, startPos)
|
|
+ value
|
|
+ textarea.value.substring(endPos,
|
|
textarea.value.length);
|
|
textarea.focus();
|
|
textarea.selectionStart = startPos + value.length;
|
|
textarea.selectionEnd = startPos + value.length;
|
|
textarea.scrollTop = scrollTop;
|
|
} else {
|
|
textarea.value += value;
|
|
textarea.focus();
|
|
}
|
|
|
|
});
|
|
|
|
return {
|
|
create: show,
|
|
edit: function(field, expression){
|
|
$("#editpopup_field").val(field);
|
|
$("#editpopup_expression").val(expression);
|
|
show();
|
|
},
|
|
close:close,
|
|
changeModule: function(moduleName, exprFields, moduleFields){
|
|
var field = $('#editpopup_field');
|
|
field.children().remove();
|
|
$.each(exprFields, function(fieldName, fieldLabel){
|
|
field.append(format('<option value="%s">%s</option>', fieldName, fieldLabel));
|
|
})
|
|
|
|
var fieldNames = $('#editpopup_fieldnames');
|
|
fieldNames.children().remove();
|
|
$.each(moduleFields, function(fieldName, fieldLabel){
|
|
fieldNames.append(format('<option value="%s">%s</option>', fieldName, fieldLabel));
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
$(document).ready(function(){
|
|
var ep = editpopup();
|
|
|
|
function setModule(moduleName){
|
|
$('#module_info').text(format('Map to "%s" Module',moduleName));
|
|
$.get('index.php', {
|
|
module:'com_autofillfields',
|
|
action:'com_autofillfieldsAjax',
|
|
file:'getfieldsjson', ajax:'true',
|
|
modulename:moduleName},
|
|
function(result){
|
|
var parsed = result;
|
|
ep.changeModule($(this).val(), parsed['exprFields'], parsed['moduleFields']);
|
|
if(parsed['exprFields'].length!=0){
|
|
$('#new_field_expression').prop('disabled', false);
|
|
$('#new_field_expression').bind('click', function(){
|
|
ep.create();
|
|
});
|
|
$('#status_message').html('');
|
|
}else{
|
|
$('#new_field_expression').prop('disabled', true);
|
|
$('#new_field_expression').unbind('click');
|
|
$('#status_message').html('You need to add a <a href="">Custom Field</a>');
|
|
}
|
|
});
|
|
jsonget('getexpressionlistjson',
|
|
{modulename:moduleName},
|
|
function(result){
|
|
$('.expressionlistrow').remove();
|
|
$.each(result, function(fieldName, expression){
|
|
editLink = format('<img border="0" title="Edit" alt="Edit" \
|
|
style="cursor: pointer;" id="expressionlist_editlink_%s" \
|
|
src="{"editfield.gif"|resourcever}"/>', fieldName);
|
|
deleteLink = format('<img border="0" title="Delete" alt="Delete"\
|
|
src="{"delete.gif"|resourcever}" \
|
|
style="cursor: pointer;" id="expressionlist_deletelink_%s"/>', fieldName);
|
|
row = format('<tr class="expressionlistrow" id="expressionlistrow_%s"> \
|
|
<td class="listTableRow small" valign="top" nowrap="">%s</td>\
|
|
<td class="listTableRow small" valign="top" nowrap="">%s</td>\
|
|
<td class="listTableRow small" valign="top" nowrap="">%s | %s</td>\
|
|
</tr>', fieldName, fieldName, expression, editLink, deleteLink);
|
|
$('#expressionlist').append(row);
|
|
$(format('#expressionlist_deletelink_%s', fieldName)).click(function(){
|
|
jsonget('deleteexpressionjson',
|
|
{modulename:moduleName, fieldname:fieldName},
|
|
function(result){
|
|
if(result.status=='success'){
|
|
$(format('expressionlist_deletelink_%s', fieldName)).remove();
|
|
}else{
|
|
errorDialog(result.message);
|
|
}
|
|
}
|
|
);
|
|
});
|
|
$(format('#expressionlist_editlink_%s', fieldName)).click(function(){
|
|
ep.edit(fieldName, expression);
|
|
});
|
|
});
|
|
}
|
|
);
|
|
ep.close();
|
|
|
|
|
|
}
|
|
|
|
$('#pick_module').bind('change', function(){
|
|
var moduleName = $(this).val();
|
|
setModule(moduleName);
|
|
});
|
|
setModule($('#pick_module').val());
|
|
|
|
|
|
|
|
});
|
|
}
|
|
editexpressionscript(jQuery);
|
|
{/literal}
|
|
</script>
|
|
|
|
|
|
<div id='editpopup' class='editpopup' style='display:none;'>
|
|
<table width="100%" cellspacing="0" cellpadding="5" border="0" class="layerHeadingULine">
|
|
<tr>
|
|
<td width="60%" align="left" class="layerPopupHeading">
|
|
Create Custom Field
|
|
</td>
|
|
<td width="40%" align="right">
|
|
<a href="javascript:void;" id="editpopup_close">
|
|
<img border="0" align="absmiddle" src="{'close.gif'|resourcever}"/>
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" bgcolor="white" align="center" border="0" cellspacing="0" cellpadding="5">
|
|
<tr>
|
|
<td>
|
|
<p>
|
|
Field:
|
|
<select id='editpopup_field'>
|
|
|
|
<option></option>
|
|
|
|
</select>
|
|
</p>
|
|
<p>Expression:</p>
|
|
<textarea name="Name" rows="8" cols="40" id='editpopup_expression'></textarea>
|
|
</td>
|
|
<td width="50%">
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr>
|
|
<td class="datalabel" nowrap="nowrap" align="right">
|
|
<b>Fields: </b>
|
|
</td>
|
|
<td align="left">
|
|
<select id='editpopup_fieldnames'></select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="datalabel" nowrap="nowrap" align="right">
|
|
<b>Functions: </b>
|
|
</td>
|
|
<td align="left">
|
|
<select></select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" cellspacing="0" cellpadding="5" border="0" class="layerPopupTransport">
|
|
<tr><td align="center">
|
|
<input type="button" class="crmButton small save" value="Save" name="save" id='editpopup_save'/>
|
|
<input type="button" class="crmButton small cancel" value="Cancel " name="cancel" id='editpopup_cancel'/>
|
|
</td></tr>
|
|
</table>
|
|
</div>
|
|
<div id="view">
|
|
<table class="tableHeading" width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr>
|
|
<td class="big" nowrap="">
|
|
<strong><span id="module_info"></span></strong>
|
|
</td>
|
|
<td class="small" align="right">
|
|
<b>Select Module: </b>
|
|
<select class="importBox" name="pick_module" id='pick_module'>
|
|
{foreach item=MODULE from=$MODULES}
|
|
<option value="{$MODULE}" >
|
|
{$APP.$MODULE}
|
|
</option>
|
|
{/foreach}
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table class="listTableTopButtons" width="100%" border="0" cellspacing="0" cellpadding="5">
|
|
<tr>
|
|
<td class="small"> <span id="status_message"></span> </td>
|
|
<td class="small" align="right">
|
|
<input type="button" class="crmButton create small"
|
|
value="New Field Expression" id='new_field_expression'/>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table class="listTable" width="100%" border="0" cellspacing="0" cellpadding="5" id='expressionlist'>
|
|
<tr>
|
|
<td class="colHeader small" width="20%">
|
|
Field
|
|
</td>
|
|
<td class="colHeader small" width="65">
|
|
Expression
|
|
</td>
|
|
<td class="colHeader small" width="15%">
|
|
Tools
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div> |