summaryrefslogtreecommitdiff
path: root/plugins/forms/dialogs/select.js
blob: 22afbb7a2ea5e711c9067e382193d2a6805e79f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
 Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
CKEDITOR.dialog.add("select", function(c) {
	function h(a, b, e, d, c) { a = f(a); d = d ? d.createElement("OPTION") : document.createElement("OPTION"); if (a && d && "option" == d.getName()) CKEDITOR.env.ie ? (isNaN(parseInt(c, 10)) ? a.$.options.add(d.$) : a.$.options.add(d.$, c), d.$.innerHTML = 0 < b.length ? b : "", d.$.value = e) : (null !== c && c < a.getChildCount() ? a.getChild(0 > c ? 0 : c).insertBeforeMe(d) : a.append(d), d.setText(0 < b.length ? b : ""), d.setValue(e)); else return !1; return d } function p(a) {
		a = f(a); for (var b = g(a), e = a.getChildren().count() - 1; 0 <=
			e; e--)a.getChild(e).$.selected && a.getChild(e).remove(); k(a, b)
	} function q(a, b, e, d) { a = f(a); if (0 > b) return !1; a = a.getChild(b); a.setText(e); a.setValue(d); return a } function m(a) { for (a = f(a); a.getChild(0) && a.getChild(0).remove();); } function l(a, b, e) { a = f(a); var d = g(a); if (0 > d) return !1; b = d + b; b = 0 > b ? 0 : b; b = b >= a.getChildCount() ? a.getChildCount() - 1 : b; if (d == b) return !1; var d = a.getChild(d), c = d.getText(), r = d.getValue(); d.remove(); d = h(a, c, r, e ? e : null, b); k(a, b); return d } function g(a) { return (a = f(a)) ? a.$.selectedIndex : -1 }
	function k(a, b) { a = f(a); if (0 > b) return null; var e = a.getChildren().count(); a.$.selectedIndex = b >= e ? e - 1 : b; return a } function n(a) { return (a = f(a)) ? a.getChildren() : !1 } function f(a) { return a && a.domId && a.getInputElement().$ ? a.getInputElement() : a && a.$ ? a : !1 } return {
		title: c.lang.forms.select.title, minWidth: CKEDITOR.env.ie ? 460 : 395, minHeight: CKEDITOR.env.ie ? 320 : 300, onShow: function() {
			delete this.selectBox; this.setupContent("clear"); var a = this.getParentEditor().getSelection().getSelectedElement(); if (a && "select" == a.getName()) {
				this.selectBox =
				a; this.setupContent(a.getName(), a); for (var a = n(a), b = 0; b < a.count(); b++)this.setupContent("option", a.getItem(b))
			}
		}, onOk: function() { var a = this.getParentEditor(), b = this.selectBox, e = !b; e && (b = a.document.createElement("select")); this.commitContent(b); if (e && (a.insertElement(b), CKEDITOR.env.ie)) { var d = a.getSelection(), c = d.createBookmarks(); setTimeout(function() { d.selectBookmarks(c) }, 0) } }, contents: [{
			id: "info", label: c.lang.forms.select.selectInfo, title: c.lang.forms.select.selectInfo, accessKey: "", elements: [{
				id: "txtName",
				type: "text", widths: ["25%", "75%"], labelLayout: "horizontal", label: c.lang.common.name, "default": "", accessKey: "N", style: "width:350px", setup: function(a, b) { "clear" == a ? this.setValue(this["default"] || "") : "select" == a && this.setValue(b.data("cke-saved-name") || b.getAttribute("name") || "") }, commit: function(a) { this.getValue() ? a.data("cke-saved-name", this.getValue()) : (a.data("cke-saved-name", !1), a.removeAttribute("name")) }
			}, {
				id: "txtValue", type: "text", widths: ["25%", "75%"], labelLayout: "horizontal", label: c.lang.forms.select.value,
				style: "width:350px", "default": "", className: "cke_disabled", onLoad: function() { this.getInputElement().setAttribute("readOnly", !0) }, setup: function(a, b) { "clear" == a ? this.setValue("") : "option" == a && b.getAttribute("selected") && this.setValue(b.$.value) }
			}, {
				type: "hbox", className: "cke_dialog_forms_select_order_txtsize", widths: ["175px", "170px"], children: [{
					id: "txtSize", type: "text", labelLayout: "horizontal", label: c.lang.forms.select.size, "default": "", accessKey: "S", style: "width:175px", validate: function() {
						var a = CKEDITOR.dialog.validate.integer(c.lang.common.validateNumberFailed);
						return "" === this.getValue() || a.apply(this)
					}, setup: function(a, b) { "select" == a && this.setValue(b.getAttribute("size") || ""); CKEDITOR.env.webkit && this.getInputElement().setStyle("width", "86px") }, commit: function(a) { this.getValue() ? a.setAttribute("size", this.getValue()) : a.removeAttribute("size") }
				}, { type: "html", html: "\x3cspan\x3e" + CKEDITOR.tools.htmlEncode(c.lang.forms.select.lines) + "\x3c/span\x3e" }]
			}, { type: "html", html: "\x3cspan\x3e" + CKEDITOR.tools.htmlEncode(c.lang.forms.select.opAvail) + "\x3c/span\x3e" }, {
				type: "hbox",
				widths: ["115px", "115px", "100px"], className: "cke_dialog_forms_select_order", children: [{
					type: "vbox", children: [{ id: "txtOptName", type: "text", label: c.lang.forms.select.opText, style: "width:115px", setup: function(a) { "clear" == a && this.setValue("") } }, {
						type: "select", id: "cmbName", label: "", title: "", size: 5, style: "width:115px;height:75px", items: [], onChange: function() {
							var a = this.getDialog(), b = a.getContentElement("info", "cmbValue"), e = a.getContentElement("info", "txtOptName"), a = a.getContentElement("info", "txtOptValue"),
							d = g(this); k(b, d); e.setValue(this.getValue()); a.setValue(b.getValue())
						}, setup: function(a, b) { "clear" == a ? m(this) : "option" == a && h(this, b.getText(), b.getText(), this.getDialog().getParentEditor().document) }, commit: function(a) {
							var b = this.getDialog(), e = n(this), d = n(b.getContentElement("info", "cmbValue")), c = b.getContentElement("info", "txtValue").getValue(); m(a); for (var f = 0; f < e.count(); f++) {
								var g = h(a, e.getItem(f).getValue(), d.getItem(f).getValue(), b.getParentEditor().document); d.getItem(f).getValue() == c && (g.setAttribute("selected",
									"selected"), g.selected = !0)
							}
						}
					}]
				}, {
					type: "vbox", children: [{ id: "txtOptValue", type: "text", label: c.lang.forms.select.opValue, style: "width:115px", setup: function(a) { "clear" == a && this.setValue("") } }, {
						type: "select", id: "cmbValue", label: "", size: 5, style: "width:115px;height:75px", items: [], onChange: function() { var a = this.getDialog(), b = a.getContentElement("info", "cmbName"), e = a.getContentElement("info", "txtOptName"), a = a.getContentElement("info", "txtOptValue"), d = g(this); k(b, d); e.setValue(b.getValue()); a.setValue(this.getValue()) },
						setup: function(a, b) { if ("clear" == a) m(this); else if ("option" == a) { var e = b.getValue(); h(this, e, e, this.getDialog().getParentEditor().document); "selected" == b.getAttribute("selected") && this.getDialog().getContentElement("info", "txtValue").setValue(e) } }
					}]
				}, {
					type: "vbox", padding: 5, children: [{
						type: "button", id: "btnAdd", label: c.lang.forms.select.btnAdd, title: c.lang.forms.select.btnAdd, style: "width:100%;", onClick: function() {
							var a = this.getDialog(), b = a.getContentElement("info", "txtOptName"), e = a.getContentElement("info",
								"txtOptValue"), d = a.getContentElement("info", "cmbName"), c = a.getContentElement("info", "cmbValue"); h(d, b.getValue(), b.getValue(), a.getParentEditor().document); h(c, e.getValue(), e.getValue(), a.getParentEditor().document); b.setValue(""); e.setValue("")
						}
					}, {
						type: "button", id: "btnModify", label: c.lang.forms.select.btnModify, title: c.lang.forms.select.btnModify, style: "width:100%;", onClick: function() {
							var a = this.getDialog(), b = a.getContentElement("info", "txtOptName"), e = a.getContentElement("info", "txtOptValue"), d =
								a.getContentElement("info", "cmbName"), a = a.getContentElement("info", "cmbValue"), c = g(d); 0 <= c && (q(d, c, b.getValue(), b.getValue()), q(a, c, e.getValue(), e.getValue()))
						}
					}, { type: "button", id: "btnUp", style: "width:100%;", label: c.lang.forms.select.btnUp, title: c.lang.forms.select.btnUp, onClick: function() { var a = this.getDialog(), b = a.getContentElement("info", "cmbName"), c = a.getContentElement("info", "cmbValue"); l(b, -1, a.getParentEditor().document); l(c, -1, a.getParentEditor().document) } }, {
						type: "button", id: "btnDown", style: "width:100%;",
						label: c.lang.forms.select.btnDown, title: c.lang.forms.select.btnDown, onClick: function() { var a = this.getDialog(), b = a.getContentElement("info", "cmbName"), c = a.getContentElement("info", "cmbValue"); l(b, 1, a.getParentEditor().document); l(c, 1, a.getParentEditor().document) }
					}]
				}]
			}, {
				type: "hbox", widths: ["40%", "20%", "40%"], children: [{
					type: "button", id: "btnSetValue", label: c.lang.forms.select.btnSetValue, title: c.lang.forms.select.btnSetValue, onClick: function() {
						var a = this.getDialog(), b = a.getContentElement("info", "cmbValue");
						a.getContentElement("info", "txtValue").setValue(b.getValue())
					}
				}, { type: "button", id: "btnDelete", label: c.lang.forms.select.btnDelete, title: c.lang.forms.select.btnDelete, onClick: function() { var a = this.getDialog(), b = a.getContentElement("info", "cmbName"), c = a.getContentElement("info", "cmbValue"), d = a.getContentElement("info", "txtOptName"), a = a.getContentElement("info", "txtOptValue"); p(b); p(c); d.setValue(""); a.setValue("") } }, {
					type: "vbox", children: [{
						id: "chkMulti", type: "checkbox", label: c.lang.forms.select.chkMulti,
						"default": "", accessKey: "M", value: "checked", setup: function(a, b) { "select" == a && this.setValue(b.getAttribute("multiple")) }, commit: function(a) { this.getValue() ? a.setAttribute("multiple", this.getValue()) : a.removeAttribute("multiple") }
					}, {
						id: "required", type: "checkbox", label: c.lang.forms.select.required, "default": "", accessKey: "Q", value: "checked", setup: function(a, b) { "select" == a && CKEDITOR.plugins.forms._setupRequiredAttribute.call(this, b) }, commit: function(a) {
							this.getValue() ? a.setAttribute("required", "required") :
							a.removeAttribute("required")
						}
					}]
				}]
			}]
		}]
	}
});