vtenext/Smarty/templates/com_workflow/taskforms/VTCreateEntityTask.tpl
2021-04-28 20:10:26 +02:00

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>