芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/optimyar/wp-content/plugins/wpdiscuz/assets/js/wpdiscuz-custom-form.js
var $ = jQuery.noConflict(); $(document).ready(function ($) { var currentContainer; var currentRowId; var currentColumnType; $('.icp-auto').iconpicker(); $('body').on('click', '#wpdiscuz_form_add_row', function () { wpdiscuzForm.addRow('#wpd-form-sortable-rows'); wpdFormFieldSortable(); }); $('body').on('click', '.wpd-form-row-wrap .wpd-form-row-actions .fa-columns', function () { wpdiscuzForm.formTwoColumn($(this)); wpdFormFieldSortable(); }); $('body').on('click', '.wpd-form-row-wrap .wpd-form-row-actions .fa-trash-alt', function () { if($(this).parents('.wpd-form-row-wrap').find('.wpd-default-field').length){ alert(wpdFormAdminOptions.can_not_delete_field); return; } if (confirm(wpdFormAdminOptions.confirm_delete_message)) { $(this).parents('.wpd-form-row-wrap').remove(); } }); $('body').on('click', '.wpd-form-add-filed', function () { currentRowId = $(this).parents('.wpd-form-row-wrap').attr('id'); currentColumnType = 'full'; if ($(this).parents('.wpd-form-col').hasClass('left-col')) { currentColumnType = 'left'; } else if ($(this).parents('.wpd-form-col').hasClass('right-col')) { currentColumnType = 'right'; } currentContainer = $(this).parents('.wpd-form-col').find('.col-body'); tb_show(wpdFormAdminOptions.wpd_form_fields, ajaxurl + "?action=wpdiscuzCustomFields&width=700&height=400"); return false; }); $('body').on('click', '.wpd-field .fa-trash-alt', function () { if (confirm(wpdFormAdminOptions.confirm_delete_message)) { $(this).parents('.wpd-field').remove(); } }); $('body').on('click', '.wpd-field .fa-pencil-alt', function () { $(this).parents('.wpd-field').find('.wpd-field-body').toggle(500); }); $('body').on('click', '.wpd-field-button', function () { var fieldType = $(this).attr('id'); var fieldTitle = $(this).text(); var defaultField = '0'; if ($(this).hasClass('wpdDefaultField')) { defaultField = 1; } wpdFieldLoad(); $.ajax({ type: 'POST', url: ajaxurl, data: { action: 'adminFieldForm', fieldType: fieldType, row: currentRowId, col: currentColumnType, defaultField: defaultField } }).done(function (response) { $('#TB_ajaxWindowTitle').text(fieldTitle); $('#TB_ajaxContent').html(response); $('.icp-auto').iconpicker(); }); }); $('body').on('click', '#wpd-add-field-button', function () { var tbForm = $('#TB_ajaxContent_form'); tbForm.submit(function (event) { event.preventDefault(); }); if (tbForm[0].checkValidity()) { var fieldName = $(this).parents('#TB_ajaxContent').find('.wpd-field-body .wpd-field-name').val(); var dialogFieldHtml = $(this).parents('#TB_ajaxContent').find('.wpd-field-body'); var dynamicFiledCont = $('
' + '
' + fieldName + '
' + '
|' + '
' + '
'); dialogFieldHtml.hide(); dialogFieldHtml.appendTo(dynamicFiledCont); dynamicFiledCont.appendTo(currentContainer); wpdFormFieldSortable(); tb_remove(); } }); wpdFormRowSortable(); wpdFormFieldSortable(); /*========================= FUNCTIONS ==================================== */ function wpdFormRowSortable() { $('#wpd-form-sortable-rows').sortable({ containment: '.wpd-form', cancel: '.wpd-form-row-body,.fa-columns, .fa-trash-alt', update: function (event, ui) { ui.item.find('.row_order').val(ui.item.index()); wpdiscuzForm.rebuildRowsData('#wpd-form-sortable-rows', '.wpd-form-row-wrap', 'wpd-form-row-wrap'); } }); } function wpdFormFieldSortable() { $('.col-body').sortable({ connectWith: '.col-body', containment: '.wpd-form', cancel: '.fas, .wpd-field-body', update: function (event, ui) { wpdiscuzForm.afterFieldDrag(ui.item); } }); } function wpdFieldLoad() { $('#TB_ajaxContent').html('
'); } $('body').on('click', '.wpd-advaced-options-title', function(){ $(this).next('.wpd-advaced-options-cont').toggle(); }); }); //===================== OBJECT ========================== // var wpdiscuzForm = { /** * @param {string} selector Container where should be added row */ addRow: function (selector) { $(selector).append('
' + '
' + '
' + '
' + '
' + '
|' + '
|' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
'); wpdiscuzForm.rebuildRowsData(selector, '.wpd-form-row-wrap', 'wpd-form-row-wrap'); }, rebuildRowsData: function (container, selector, idPrefix) { $(container + ' ' + selector).each(function (index, element) { var dynamicId = idPrefix + '_' + index; $(this).attr('id', dynamicId); $(this).find('.column_type').attr('name', wpdFormAdminOptions.wpdiscuz_form_structure + '[' + dynamicId + '][column_type]'); $(this).find('.row_order').attr('name', wpdFormAdminOptions.wpdiscuz_form_structure + '[' + dynamicId + '][row_order]'); $(this).find('.row_order').attr('value', index); $('input , textarea', $(this)).each(function () { var oldRowName = $(this).attr('name'); if (oldRowName) { var newRowName = oldRowName.replace(new RegExp(wpdFormAdminOptions.wpdiscuz_form_structure + '\\[[^\\]]+\\]' ,'g'), wpdFormAdminOptions.wpdiscuz_form_structure + '[' + dynamicId + ']'); $(this).attr('name', newRowName); } }); }); }, formTwoColumn: function (obj) { var rowWrap = obj.parents('.wpd-form-row-wrap'); var row = rowWrap.find('.wpd-form-row>.wpd-form-row-body'); var colNewName = 'full'; var colNewType = 'full'; if (row.hasClass('two-col')) { var rigthColumnHtml = $('.right-col>.col-body', row).html(); var leftColumn = $('.left-col', row); $('.right-col', row).remove(); $('.col-body', leftColumn).append(rigthColumnHtml); leftColumn.removeClass('left-col'); leftColumn.addClass('full-col'); } else { var fullColumn = $('.full-col', row); fullColumn.removeClass('full-col'); fullColumn.addClass('left-col'); fullColumn.after('
' + '
' + '
' + '
' + '
'); colNewName = 'left'; colNewType = 'two'; } obj.toggleClass("wpd-form-columns-two"); row.toggleClass("two-col"); rowWrap.find('.column_type').val(colNewType); wpdiscuzForm.replaceColName(colNewName, rowWrap.attr('id'), row); }, replaceColName: function (colNewName, parentRowId, obj) { $('input , textarea', obj).each(function () { var oldRowName = $(this).attr('name'); if (oldRowName) { var newRowName = oldRowName.replace(new RegExp(wpdFormAdminOptions.wpdiscuz_form_structure + '\\[[^\\]]+\\]\\[[^\\]]+\\]' ,'g'), wpdFormAdminOptions.wpdiscuz_form_structure + '[' + parentRowId + '][' + colNewName + ']'); $(this).attr('name', newRowName); } }); }, afterFieldDrag: function (obj) { var parentRowId = obj.parents('.wpd-form-row-wrap').attr('id'); var parentColName = 'full'; if (obj.parents('.wpd-form-col').hasClass('left-col')) { parentColName = 'left'; } else if (obj.parents('.wpd-form-col').hasClass('right-col')) { parentColName = 'right'; } wpdiscuzForm.replaceColName(parentColName, parentRowId, obj); } };