Editing: dialog.js
var scnDialogHelper = { needsPreview: false, setUpButtons: function () { var a = this; jQuery("#scn-btn-cancel").click(function () { a.closeDialog() }); jQuery("#scn-btn-insert").click(function () { a.insertAction() }); jQuery("#scn-btn-preview").click(function () { a.previewAction() }) }, loadShortcodeDetails: function () { if (scnSelectedShortcodeType) { var a = this; jQuery.getScript(avia_framework_globals.frameworkUrl + "php/avia_shortcodes/sc/" + scnSelectedShortcodeType + ".js", function () { a.initializeDialog() }) } }, initializeDialog: function () { if (typeof scnShortcodeMeta == "undefined") jQuery("#scn-options").append("<p>Error loading details for shortcode: " + scnSelectedShortcodeType + "</p>"); else { if (scnShortcodeMeta.disablePreview) { jQuery("#scn-preview").remove(); jQuery("#scn-btn-preview").remove() } var a = scnShortcodeMeta.attributes, b = jQuery("#scn-options-table"); for (var c in a) { var f = "scn-value-" + a[c].id, d = a[c].isRequired ? "scn-required" : "", g = jQuery('<th valign="top" scope="row"></th>'); jQuery("<label/>").attr("for", f).attr("class", d).html(a[c].label).appendTo(g); f = jQuery("<td/>"); d = (d = a[c].controlType) ? d : "text-control"; switch (d) { case "column-control": this.createColumnControl(a[c], f, c == 0); break; case "icon-control": case "color-control": case "link-control": case "text-control": this.createTextControl(a[c], f, c == 0); break case "select-control": this.createSelectControl(a[c], f, c == 0); break; case "tab-control": this.createTabControl(a[c], f, c == 0); break; case "table-control": this.createTableControl(a[c], f, c == 0); break; case "sidebar-tab-control": this.createsbTabControl(a[c], f, c == 0); break; } jQuery("<tr/>").append(g).append(f).appendTo(b) } jQuery(".scn-focus-here:first").focus() } }, createsbTabControl: function (a, b, c) { new scnSBTabMaker(b, 20, c ? "scn-focus-here" : null); b.addClass("scn-marker-sidebar-tab-control") }, createColumnControl: function (a, b, c) { new ScnColumnMaker(b, 5, c ? "scn-focus-here" : null); b.addClass("scn-marker-column-control") }, createTableControl: function (a, b, c) { new ScnTableMaker(b, 5, c ? "scn-focus-here" : null); b.addClass("scn-marker-table-control") }, createTextControl: function (a, b, c) { var f = a.validatelink ? "scn-validation-marker" : "", d = a.isRequired ? "scn-required" : "", g = "scn-value-" + a.id; jQuery('<input type="text">').attr("id", g).attr("name", g).addClass(f).addClass(d).addClass(c ? "scn-focus-here" : "").appendTo(b); if (a = a.help) { jQuery("<br/>").appendTo(b); jQuery("<span/>").addClass("scn-input-help").html(a).appendTo(b) } var h = this; b.find("#" + g).bind("keydown focusout", function (e) { if (e.type == "keydown" && e.which != 13 && e.which != 9 && !e.shiftKey) h.needsPreview = true; else if (h.needsPreview && (e.type == "focusout" || e.which == 13)) { h.previewAction(e.target); h.needsPreview = false } }) }, createSelectControl: function (a, b, c) { var f = a.validatelink ? "scn-validation-marker" : "", d = a.isRequired ? "scn-required" : "", g = "scn-value-" + a.id; var selectNode = jQuery('<select>').attr("id", g).attr("name", g).addClass(f).addClass(d).addClass('select input-select').addClass(c ? "scn-focus-here" : ""); b.addClass('scn-marker-select-control'); var selectBoxValues = a.selectValues; for (v in selectBoxValues) { var value = selectBoxValues[v]; var label = selectBoxValues[v]; var selected = ''; if (value == '') { if (a.defaultValue == value) { label = a.defaultText; } // End IF Statement } else { if (value == a.defaultValue) { label = a.defaultText; } // End IF Statement } // End IF Statement if (value == a.defaultValue) { selected = ' selected="selected"'; } // End IF Statement selectNode.append('<option value="' + value + '"' + selected + '>' + label + '</option>'); } // End FOREACH Loop selectNode.appendTo(b); if (a = a.help) { jQuery("<br/>").appendTo(b); jQuery("<span/>").addClass("scn-input-help").html(a).appendTo(b) } var h = this; b.find("#" + g).bind("change", function (e) { if ((e.type == "change" || e.type == "focusout") || e.which == 9) { h.needsPreview = true; } if (h.needsPreview) { h.previewAction(e.target); h.needsPreview = false } }) }, createTabControl: function (a, b, c) { new scnTabMaker(b, 6, c ? "scn-focus-here" : null); b.addClass("scn-marker-tab-control") }, getTextKeyValue: function (a) { var b = a.find("input"); if (!b.length) return null; if (b.attr("id") == undefined) return null; a = b.attr("id").substring(10); b = b.val(); return { key: a, value: b } }, getColumnKeyValue: function (a) { var b = a.find("#scn-column-text").text(); if (a = Number(a.find("select option:selected").val())) return { key: "data", value: { content: b, numColumns: a } } }, getSelectKeyValue: function (a) { var b = a.find("select"); if (!b.length) return null; a = b.attr("id").substring(10); b = b.val(); return { key: a, value: b } }, getTabKeyValue: function (a) { var b = a.find("#scn-tab-text").text(); if (a = Number(a.find("select option:selected").val())) return { key: "data", value: { content: b, numTabs: a } } }, getsidebarTabKeyValue: function (a) { var b = a.find("#scn-tab-text").text(); var x = a.parents('#scn-options-table').find("select[name='scn_tab_icon']"); if (a = Number(a.find("select option:selected").val())) return { key: "data", value: { content: b, icons: x, numTabs: a } } }, getTableKeyValue: function (a) { var table_data = a.parents('#TB_window:eq(0)').find('#top .avia_table'); table_data.find('table').removeClass('undefined scn-generated-table'); if (table_data.length) return { key: "data", value: { table: table_data, html: table_data.html() } } }, makeShortcode: function () { var a = {}, b = this; jQuery("#scn-options-table td").each(function () { var h = jQuery(this), e = null; if (e = h.hasClass("scn-marker-column-control") ? b.getColumnKeyValue(h) : b.getTextKeyValue(h)) a[e.key] = e.value if (e = h.hasClass("scn-marker-select-control") ? b.getSelectKeyValue(h) : b.getTextKeyValue(h)) a[e.key] = e.value if (e = h.hasClass("scn-marker-tab-control") ? b.getTabKeyValue(h) : b.getTextKeyValue(h)) a[e.key] = e.value if (e = h.hasClass("scn-marker-sidebar-tab-control") ? b.getsidebarTabKeyValue(h) : b.getTextKeyValue(h)) a[e.key] = e.value if (e = h.hasClass("scn-marker-table-control") ? b.getTableKeyValue(h) : b.getTextKeyValue(h)) a[e.key] = e.value }); if (scnShortcodeMeta.customMakeShortcode) return scnShortcodeMeta.customMakeShortcode(a); var c = a.content ? a.content : scnShortcodeMeta.defaultContent, f = ""; for (var d in a) { var g = a[d]; if (g && d != "content") f += " " + d + '="' + g + '"' } return "[" + scnShortcodeMeta.shortcode + f + "]" + (c ? c + "[/" + scnShortcodeMeta.shortcode + "] " : " ") }, insertAction: function () { if (typeof scnShortcodeMeta != "undefined") { var a = this.makeShortcode(); tinyMCE.activeEditor.execCommand("mceInsertContent", false, a); this.closeDialog() } }, closeDialog: function () { this.needsPreview = false; tb_remove(); jQuery("#scn-dialog").remove() }, previewAction: function (a) { var nonce = avia_shortcode_preview || false; if(!nonce) return; jQuery(a).hasClass("scn-validation-marker") && this.validatelinkFor(a); jQuery("#scn-preview h3:first").addClass("scn-loading"); jQuery("#scn-preview-iframe").attr("src", avia_framework_globals.frameworkUrl + "php/avia_shortcodes/av-prev.php?nonce="+nonce+"&shortcode=" + encodeURIComponent(this.makeShortcode())) }, validatelinkFor: function (a) { var b = jQuery(a); b.removeClass("scn-validation-error"); b.removeClass("scn-validated"); if (a = b.val()) { b.addClass("scn-validating"); jQuery.ajax({ url: ajaxurl, dataType: "json", data: { action: "scn_check_url_action", url: a }, error: function () { b.removeClass("scn-validating") }, success: function (c) { b.removeClass("scn-validating"); c.error || b.addClass(c.exists ? "scn-validated" : "scn-validation-error") } }) } } }; scnDialogHelper.setUpButtons(); scnDialogHelper.loadShortcodeDetails();
Save
Back