praiadeseselle/wire/modules/Process/ProcessTemplate/ProcessTemplateFieldCreator.js

84 lines
3.3 KiB
JavaScript
Raw Permalink Normal View History

2022-03-08 15:55:41 +01:00
// made by adrian
function TemplateFieldAddDialog() {
var $a = $(this);
var fieldReady = false;
var $iframe = pwModalWindow($a.attr('href'), {}, 'large');
$iframe.load(function() {
var $button;
var buttons = [];
var $icontents = $iframe.contents();
var n = 0;
// hide things we don't need in a modal context
$icontents.find('#breadcrumbs ul.nav, #Inputfield_submit_save_field_copy').hide();
// copy buttons in iframe to dialog
$icontents.find("#content form button.ui-button[type=submit]").each(function() {
var text = $(this).text();
var skip = false;
$button = $(this);
// avoid duplicate buttons
for(var i = 0; i < buttons.length; i++) {
if(buttons[i].text == text || text.length < 1) skip = true;
}
if(!skip) {
buttons[n] = {
'text': text,
'class': ($button.hasClass('ui-priority-secondary') ? 'ui-priority-secondary' : ''),
'click': function() {
$button.click();
fieldReady = true;
}
};
n++;
}
$button.hide();
});
// if field has been saved once, now offer a Close & Add button
if(fieldReady) {
buttons[n] = {
'text': $('#fieldgroup_fields').attr('data-closeAddLabel'),
'class': ($button && $button.hasClass('ui-priority-secondary') ? 'ui-priority-secondary' : ''),
'click': function() {
setTimeout(function() {
var newFieldId = $icontents.find("#Inputfield_id:last").val();
$iframe.dialog('close');
var $options = $('#fieldgroup_fields option');
var numOptions = $options.length;
$options.eq(1).before($("<option></option>").val(newFieldId).text($icontents.find("#Inputfield_name").val()));
$('#fieldgroup_fields option[value="'+newFieldId+'"]')
.attr('id', 'asm0option'+numOptions)
.attr('data-desc', ($icontents.find("#field_label").val()))
.attr('data-status', ($icontents.find("#Inputfield_type option:selected").text()));
$("#asmSelect0 option").eq(1).before($("<option></option>")
.val(newFieldId).text($icontents.find("#Inputfield_name").val()));
$("#asmSelect0").find('option:selected').removeAttr("selected");
$('#asmSelect0 option[value="'+newFieldId+'"]')
.attr('rel', 'asm0option'+numOptions)
.attr('selected', 'selected')
.addClass('asmOptionDisabled')
.attr('disabled', 'disabled')
.trigger('change')
.removeAttr("selected");
}, 500);
}
};
}
$iframe.setButtons(buttons);
});
return false;
}
$(document).ready(function() {
$('#wrap_fieldgroup_fields p.description a').click(TemplateFieldAddDialog);
});