summaryrefslogtreecommitdiff
path: root/plugins/div/dialogs/div.js
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/div/dialogs/div.js')
-rwxr-xr-xplugins/div/dialogs/div.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/plugins/div/dialogs/div.js b/plugins/div/dialogs/div.js
new file mode 100755
index 0000000..c7c25ec
--- /dev/null
+++ b/plugins/div/dialogs/div.js
@@ -0,0 +1,43 @@
+(function() {
+ function t(a, m, r) { m.is && m.getCustomData("block_processed") || (m.is && CKEDITOR.dom.element.setMarker(r, m, "block_processed", !0), a.push(m)) } function q(a, m) {
+ function r() { this.foreach(function(a) { /^(?!vbox|hbox)/.test(a.type) && (a.setup || (a.setup = function(c) { a.setValue(c.getAttribute(a.id) || "", 1) }), a.commit || (a.commit = function(c) { var g = this.getValue(); if ("dir" != a.id || c.getComputedStyle("direction") != g) g ? c.setAttribute(a.id, g) : c.removeAttribute(a.id) })) }) } var q = function() {
+ var f = CKEDITOR.tools.extend({},
+ CKEDITOR.dtd.$blockLimit); a.config.div_wrapTable && (delete f.td, delete f.th); return f
+ }(), u = CKEDITOR.dtd.div, n = {}, p = []; return {
+ title: a.lang.div.title, minWidth: 400, minHeight: 165, contents: [{
+ id: "info", label: a.lang.common.generalTab, title: a.lang.common.generalTab, elements: [{
+ type: "hbox", widths: ["50%", "50%"], children: [{
+ id: "elementStyle", type: "select", style: "width: 100%;", label: a.lang.div.styleSelectLabel, "default": "", items: [[a.lang.common.notSet, ""]], onChange: function() {
+ var f = ["info:elementStyle", "info:class",
+ "advanced:dir", "advanced:style"], c = this.getDialog(), g = c._element && c._element.clone() || new CKEDITOR.dom.element("div", a.document); this.commit(g, !0); for (var f = [].concat(f), b = f.length, k, e = 0; e < b; e++)(k = c.getContentElement.apply(c, f[e].split(":"))) && k.setup && k.setup(g, !0)
+ }, setup: function(f) { for (var c in n) n[c].checkElementRemovable(f, !0, a) && this.setValue(c, 1) }, commit: function(f) { var c; (c = this.getValue()) ? n[c].applyToObject(f, a) : f.removeAttribute("style") }
+ }, {
+ id: "class", type: "text", requiredContent: "div(cke-xyz)",
+ label: a.lang.common.cssClass, "default": ""
+ }]
+ }]
+ }, {
+ id: "advanced", label: a.lang.common.advancedTab, title: a.lang.common.advancedTab, elements: [{
+ type: "vbox", padding: 1, children: [{ type: "hbox", widths: ["50%", "50%"], children: [{ type: "text", id: "id", requiredContent: "div[id]", label: a.lang.common.id, "default": "" }, { type: "text", id: "lang", requiredContent: "div[lang]", label: a.lang.common.langCode, "default": "" }] }, {
+ type: "hbox", children: [{
+ type: "text", id: "style", requiredContent: "div{cke-xyz}", style: "width: 100%;", label: a.lang.common.cssStyle,
+ "default": "", commit: function(a) { a.setAttribute("style", this.getValue()) }
+ }]
+ }, { type: "hbox", children: [{ type: "text", id: "title", requiredContent: "div[title]", style: "width: 100%;", label: a.lang.common.advisoryTitle, "default": "" }] }, { type: "select", id: "dir", requiredContent: "div[dir]", style: "width: 100%;", label: a.lang.common.langDir, "default": "", items: [[a.lang.common.notSet, ""], [a.lang.common.langDirLtr, "ltr"], [a.lang.common.langDirRtl, "rtl"]] }]
+ }]
+ }], onLoad: function() {
+ r.call(this); var f = this, c = this.getContentElement("info",
+ "elementStyle"); a.getStylesSet(function(g) { var b, k; if (g) for (var e = 0; e < g.length; e++)k = g[e], k.element && "div" == k.element && (b = k.name, n[b] = k = new CKEDITOR.style(k), a.filter.check(k) && (c.items.push([b, b]), c.add(b, b))); c[1 < c.items.length ? "enable" : "disable"](); setTimeout(function() { f._element && c.setup(f._element) }, 0) })
+ }, onShow: function() { "editdiv" == m && this.setupContent(this._element = CKEDITOR.plugins.div.getSurroundDiv(a)) }, onOk: function() {
+ if ("editdiv" == m) p = [this._element]; else {
+ var f = [], c = {}, g = [], b, k = a.getSelection(),
+ e = k.getRanges(), n = k.createBookmarks(), h, l; for (h = 0; h < e.length; h++)for (l = e[h].createIterator(); b = l.getNextParagraph();)if (b.getName() in q && !b.isReadOnly()) { var d = b.getChildren(); for (b = 0; b < d.count(); b++)t(g, d.getItem(b), c) } else { for (; !u[b.getName()] && !b.equals(e[h].root);)b = b.getParent(); t(g, b, c) } CKEDITOR.dom.element.clearAllMarkers(c); e = []; h = null; for (l = 0; l < g.length; l++)b = g[l], d = a.elementPath(b).blockLimit, d.isReadOnly() && (d = d.getParent()), a.config.div_wrapTable && d.is(["td", "th"]) && (d = a.elementPath(d.getParent()).blockLimit),
+ d.equals(h) || (h = d, e.push([])), b.getParent() && e[e.length - 1].push(b); for (h = 0; h < e.length; h++)if (e[h].length) {
+ d = e[h][0]; g = d.getParent(); for (b = 1; b < e[h].length; b++)g = g.getCommonAncestor(e[h][b]); g || (g = a.editable()); l = new CKEDITOR.dom.element("div", a.document); for (b = 0; b < e[h].length; b++) { for (d = e[h][b]; d.getParent() && !d.getParent().equals(g);)d = d.getParent(); e[h][b] = d } for (b = 0; b < e[h].length; b++)d = e[h][b], d.getCustomData && d.getCustomData("block_processed") || (d.is && CKEDITOR.dom.element.setMarker(c, d, "block_processed",
+ !0), b || l.insertBefore(d), l.append(d)); CKEDITOR.dom.element.clearAllMarkers(c); f.push(l)
+ } k.selectBookmarks(n); p = f
+ } f = p.length; for (c = 0; c < f; c++)this.commitContent(p[c]), !p[c].getAttribute("style") && p[c].removeAttribute("style"); this.hide()
+ }, onHide: function() { "editdiv" == m && this._element.removeCustomData("elementStyle"); delete this._element }
+ }
+ } CKEDITOR.dialog.add("creatediv", function(a) { return q(a, "creatediv") }); CKEDITOR.dialog.add("editdiv", function(a) { return q(a, "editdiv") })
+})(); \ No newline at end of file