$(document).ready(function() { /* Set action to up when in last actions. */ $(".moreActions").click(function() { var height = $(this).offset().top - $('#actionListTable').offset().top + $(this).parent().parent().height() + $(this).next(".dropdown-menu").height(); var maxHeight = $('#actionListTable').parent().css('max-height').replace("px", ""); if(height > maxHeight) { $(this).next(".dropdown-menu").addClass('dropup'); } }); $(document).on('hide.zui.modal', '#triggerModal.layout-modal', function() { var action = $(this).data('action'); $('#actionList tr[data-action=' + action + '] .select-action' ).click(); }); $('#actionList').on('sort.sortable', function(e, data) { $.post(createLink('workflowaction', 'sort'), data.orders, function(response) { if(response.result == 'success') { return location.reload(); } else { bootbox.alert(response.message); } }, 'json'); }); $('#actionList .select-action').click(function() { $('#actionList tr.checked').removeClass('checked row-check-begin row-check-end'); var $tr = $(this).parents('tr').addClass('checked row-check-begin row-check-end'); var data = $tr.data(); $('#previewArea .panel-heading').html('' + data.name + ''); if(data.buildin && data.extensiontype != 'override') { $('.layout-buildin-tip').show(); $('.layout-empty-tip').hide(); $('.layout-no-tip').hide(); $('.layout-preview').hide(); } else if(data.open != 'none') { if(data.virtual) { var nextModule = data.action.substring(0, data.action.lastIndexOf('_')); var nextAction = data.action.substring(data.action.lastIndexOf('_') + 1); var previewLink = createLink('workflowaction', 'ajaxPreview', 'module=' + nextModule + '&action=' + nextAction); } else { var previewLink = createLink('workflowaction', 'ajaxPreview', 'module=' + window.moduleName + '&action=' + data.action); } $('#previewArea .layout-preview').load(previewLink, function(response) { if(!response) { var setLayoutLink = createLink('workflowlayout', 'admin', 'module=' + window.moduleName + '&action=' + data.action); var setLayoutButton = "" + window.setLayout + ''; $('.layout-buildin-tip').hide(); $('.layout-empty-tip').find('.setLayout').remove(); $('.layout-empty-tip').append(setLayoutButton).show(); $('.layout-no-tip').hide(); $('.layout-preview').hide(); return false; } $('.preview-content .chosen').chosen(); $('.example-text-holder').each(function() { $(this).attr('data-size', Math.floor(Math.random() * 8) + 2); }); $('.btn-group').fixInputGroup(); }); $('.layout-buildin-tip').hide(); $('.layout-empty-tip').hide(); $('.layout-no-tip').hide(); $('.layout-preview').show(); } else { $('.layout-buildin-tip').hide(); $('.layout-empty-tip').hide(); $('.layout-no-tip').show(); $('.layout-preview').hide(); } }); $('#actionList .select-action:first').click(); /* Action */ $(document).on('change', '#actionTable #type', function() { $('#batchMode').parents('tr').toggle($(this).val() == 'batch'); $('#position, #show').parents('tr').toggle($(this).val() == 'single'); $('#open option[value=modal]').toggle($(this).val() == 'single'); if($(this).val() == 'batch' && $('#open').val() == 'modal') { $('#open').val('normal'); } }); /* Condition */ $(document).on('change', '#conditionTable #conditionType', function() { $('.sqlTR').toggle($(this).val() == 'sql'); $('.dataTR').toggle($(this).val() == 'data'); }); $(document).on('click', '#conditionTable .addCondition', function() { $(this).parents('tr').after(window.itemRow.replace(/KEY/g, window.conditionKey)); $(this).parents('tr').next().find('[name*=field]').chosen(); window.conditionKey++; }); $(document).on('click', '#conditionTable .delCondition', function() { $(this).parents('tr').remove(); }); $(document).on('change', '#conditionTable [name*=field]', function() { var $tr = $(this).parents('tr'); var key = $tr.data('key'); var name = window.btoa(encodeURI('param[' + key + ']')); var link = createLink('workflowfield', 'ajaxGetFieldControl', 'module=' + window.moduleName + '&field=' + $(this).val() + '&value=&elementName=' + name); $tr.find('#paramTD').load(link, function() { $tr.find('select.chosen').chosen(); $tr.find('.form-date').datetimepicker(dateOptions); $tr.find('.form-datetime').datetimepicker(datetimeOptions); initSelect($tr.find('#paramTD .picker-select')); }); }); /* Linkage */ $(document).on('change', '#linkageTable [name^=source]', function() { processField(); var $tr = $(this).parents('tr'); var $td = $tr.find('td.value'); var field = $(this).find('option:selected').val(); var $value = $(this).parents('tr').find('[name^=value]'); var value = $value.val(); var name = $value.attr('name'); var id = $value.attr('id'); value = window.btoa(encodeURI(value)); name = window.btoa(encodeURI(name)); $td.load(createLink('workflowfield', 'ajaxGetFieldControl', 'module=' + window.moduleName + '&field=' + field + '&value=' + value + '&elementName=' + name + '&elementID=' + id), function() { $td.find('select.chosen').chosen(); $tr.find('.form-date').datetimepicker(dateOptions); $tr.find('.form-datetime').datetimepicker(datetimeOptions); initSelect($td.find('.picker-select')); }); }); $(document).on('click', '#linkageTable .addTarget', function() { var $rowspan = parseInt($('th.target').attr('rowspan')); $rowspan++; $('th.target').attr('rowspan', $rowspan); $(this).parents('tr').after(window.targetRow.replace(/KEY/g, window.targetIndex)); $(this).parents('tr').next().find('.chosen').chosen(); window.targetIndex++; processField(); }) $(document).on('click', '#linkageTable .delTarget', function() { if($('.delTarget').length == 1) { $(this).parents('tr').find('input,select').val(''); $(this).parents('tr').find('.chosen').trigger('chosen:updated'); return false; } var rowspan = parseInt($('th.target').attr('rowspan')); rowspan--; if($(this).parents('tr').find('th').length) { $(this).parents('tr').next().prepend(window.th.replace(/ROWSPAN/g, rowspan)); } else { $('th.target').attr('rowspan', rowspan); } $(this).parents('tr').remove(); processField(); }) $(document).on('change', '#linkageTable [name^=target]', function() { processField(); }); $(document).on('change', '#linkageTable [name^=source], #linkageTable [name^=operator], #linkageTable [name^=value]', function() { $('#sourceLabel').remove(); }); $(document).on('change', '#linkageTable [name^=target], #linkageTable [name^=status]', function() { $('#targetLabel').remove(); }); /* Verification */ $(document).on('change', '#verificationTable [name*=\\[field\\]], #verificationTable [name*=paramType]', function() { var $tr = $(this).closest('tr'); var $td = $tr.find('.paramTD'); var $paramType = $tr.find('[name*=paramType]'); var module = window.moduleName; var key = $tr.data('key'); var name = 'param[' + key + ']'; if($tr.hasClass('dataTR')) name = 'verifications[param][' + key + ']'; loadParam($tr, $td, $paramType, module, name); }); $(document).on('click', '#verificationTable .addVerification, #verificationTable .addVar', function() { var $tr = $(this).parents('tr'); if($(this).hasClass('addVar')) { $tr.after(window.varRow.replace(/KEY/g, window.verificationVarKey)); window.verificationVarKey++; } else if($(this).hasClass('addVerification')) { $tr.after(window.verificationRow.replace(/KEY/g, window.verificationDataKey)); window.verificationDataKey++; } $tr.next().find('.chosen').chosen(); }); $(document).on('click', '#verificationTable .delVerification, #verificationTable .delVar', function() { if($(this).hasClass('delVar')) { $('#sql').val($('#sql').val().replace("'$" + $(this).parents('tr').find('#varName').val() + "'", '')); if($('.delVar').size() == 1) { $(this).parents('tr').find('input,select').val('').find('.chosen').trigger('chosen:updated'); $(this).parents('tr').find('.chosen-single span').html(''); return; } } $(this).parents('tr').remove(); }); $(document).on('change', '#verificationTable [name*=varName]', function() { if($(this).val() != '') $('#sql').val($('#sql').val() + "'$" + $(this).val() + "'"); }); /* Hook */ $(document).on('change', '.hookForm #conditionType', function() { $('.sqlTR').toggle($(this).val() == 'sql'); $('.dataTR').toggle($(this).val() == 'data'); }); $(document).on('change', '.hookForm #action, .hookForm #table', function() { $('.fieldTR').toggle($('#action').val() != 'delete'); if($('#action').val() == 'insert') { $('.whereTR').hide().find('input,select').attr('disabled', 'disabled'); } else { $('.whereTR').show().find('input,select').removeAttr('disabled'); } if($(this).attr('id') == 'table') { var link = createLink('workflowhook', 'ajaxGetTableFields', 'table=' + $(this).val()); $('.field').load(link, function() { $('.field').trigger('chosen:updated'); }); } loadTarget(); }); $(document).on('click', '.hookForm .toggleCondition', function() { var val = $('#condition').val() == 1 ? 0 : 1; $('#condition').val(val); $('#conditionDIV').toggle(); }); $(document).on('change', '.hookForm [name*=\\[field\\]], .hookForm [name*=paramType]', function() { var $tr = $(this).closest('tr'); var $td = $tr.find('.paramTD'); var $paramType = $tr.find('[name*=paramType]'); var module = $('#table').val(); var key = $tr.data('key'); var name = 'param[' + key + ']'; if($tr.hasClass('dataTR')) module = window.moduleName; if($tr.hasClass('dataTR')) name = 'conditions[param][' + key + ']'; if($tr.hasClass('fieldTR')) name = 'fields[param][' + key + ']'; if($tr.hasClass('whereTR')) name = 'wheres[param][' + key + ']'; loadParam($tr, $td, $paramType, module, name); }); $(document).on('click', '.hookForm .addVar, .hookForm .addCondition, .hookForm .addField, .hookForm .addWhere', function() { var $tr = $(this).parents('tr'); if($(this).hasClass('addVar')) { $tr.after(window.varRow.replace(/KEY/g, window.hookVarKey)); window.hookVarKey++; } else if($(this).hasClass('addCondition')) { $tr.after(window.conditionRow.replace(/KEY/g, window.hookDataKey)); window.hookDataKey++; } else if($(this).hasClass('addField')) { $tr.after(window.fieldRow.replace(/KEY/g, window.hookFieldKey)); window.hookFieldKey++; var link = createLink('workflowhook', 'ajaxGetTableFields', 'table=' + $('#table').val()); $tr.next('tr').find('.field').load(link, function() { $(this).trigger('chosen:updated'); }); } else if($(this).hasClass('addWhere')) { $tr.after(window.whereRow.replace(/KEY/g, window.hookWhereKey)); window.hookWhereKey++; var link = createLink('workflowhook', 'ajaxGetTableFields', 'table=' + $('#table').val()); $tr.next('tr').find('.field').load(link, function() { $(this).trigger('chosen:updated'); }); } $tr.next().find('.chosen').chosen(); $tr.next().find('#param_chosen').hide(); }); $(document).on('click', '.hookForm .delVar, .hookForm .delCondition, .hookForm .delField, .hookForm .delWhere', function() { if($(this).hasClass('delVar')) { $('#sql').val($('#sql').val().replace("'$" + $(this).parents('tr').find('#varName').val() + "'", '')); if($('.delVar').size() == 1) { $(this).parents('tr').find('input,select').val('').find('.chosen').trigger('chosen:updated'); $(this).parents('tr').find('.chosen-single span').html(''); return; } } $(this).parents('tr').remove(); }); $(document).on('change', '.hookForm [name*=varName]', function() { if($(this).val() != '') $('#sql').val($('#sql').val() + "'$" + $(this).val() + "'"); }); $panelHeadingHeight = $('.panel-heading').outerHeight(true); $panelMarginBottom = $('.panel').css('margin-bottom').replace('px', ''); $editorNavHeight = $('#editorNav').outerHeight(true); $editorMenuHeight = $('#editorMenu').outerHeight(); $spaceHeight = $('.space.space-sm').outerHeight(true); $maxHeight = $(window).height() - $panelHeadingHeight - $panelMarginBottom - $editorNavHeight - $editorMenuHeight - $spaceHeight; $('.panel-body').css('max-height', $maxHeight + 'px'); $(document).on('click', '.addBlock', function() { $(this).parents('li').after($('.blockData').html().replace(/blockKey/g, window.blockKey)); window.blockKey++; return false; }); $(document).on('click', '.addTab', function() { if($(this).parents('li').find('ul').length > 0) { $(this).parents('li').find('ul').append($('.tabData').html().replace(/tabKey/g, window.tabKey)); } else { $(this).parents('li').append("