~canonical-sysadmins/wordpress/4.7.2

« back to all changes in this revision

Viewing changes to wp-includes/js/tinymce/utils/form_utils.js

  • Committer: Jacek Nykis
  • Date: 2015-01-05 16:17:05 UTC
  • Revision ID: jacek.nykis@canonical.com-20150105161705-w544l1h5mcg7u4w9
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * form_utils.js
 
3
 *
 
4
 * Copyright, Moxiecode Systems AB
 
5
 * Released under LGPL License.
 
6
 *
 
7
 * License: http://www.tinymce.com/license
 
8
 * Contributing: http://www.tinymce.com/contributing
 
9
 */
 
10
 
 
11
var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme"));
 
12
 
 
13
function getColorPickerHTML(id, target_form_element) {
 
14
        var h = "", dom = tinyMCEPopup.dom;
 
15
 
 
16
        if (label = dom.select('label[for=' + target_form_element + ']')[0]) {
 
17
                label.id = label.id || dom.uniqueId();
 
18
        }
 
19
 
 
20
        h += '<a role="button" aria-labelledby="' + id + '_label" id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">';
 
21
        h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '">&nbsp;<span id="' + id + '_label" class="mceVoiceLabel mceIconOnly" style="display:none;">' + tinyMCEPopup.getLang('browse') + '</span></span></a>';
 
22
 
 
23
        return h;
 
24
}
 
25
 
 
26
function updateColor(img_id, form_element_id) {
 
27
        document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;
 
28
}
 
29
 
 
30
function setBrowserDisabled(id, state) {
 
31
        var img = document.getElementById(id);
 
32
        var lnk = document.getElementById(id + "_link");
 
33
 
 
34
        if (lnk) {
 
35
                if (state) {
 
36
                        lnk.setAttribute("realhref", lnk.getAttribute("href"));
 
37
                        lnk.removeAttribute("href");
 
38
                        tinyMCEPopup.dom.addClass(img, 'disabled');
 
39
                } else {
 
40
                        if (lnk.getAttribute("realhref"))
 
41
                                lnk.setAttribute("href", lnk.getAttribute("realhref"));
 
42
 
 
43
                        tinyMCEPopup.dom.removeClass(img, 'disabled');
 
44
                }
 
45
        }
 
46
}
 
47
 
 
48
function getBrowserHTML(id, target_form_element, type, prefix) {
 
49
        var option = prefix + "_" + type + "_browser_callback", cb, html;
 
50
 
 
51
        cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback"));
 
52
 
 
53
        if (!cb)
 
54
                return "";
 
55
 
 
56
        html = "";
 
57
        html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">';
 
58
        html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '">&nbsp;</span></a>';
 
59
 
 
60
        return html;
 
61
}
 
62
 
 
63
function openBrowser(img_id, target_form_element, type, option) {
 
64
        var img = document.getElementById(img_id);
 
65
 
 
66
        if (img.className != "mceButtonDisabled")
 
67
                tinyMCEPopup.openBrowser(target_form_element, type, option);
 
68
}
 
69
 
 
70
function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
 
71
        if (!form_obj || !form_obj.elements[field_name])
 
72
                return;
 
73
 
 
74
        if (!value)
 
75
                value = "";
 
76
 
 
77
        var sel = form_obj.elements[field_name];
 
78
 
 
79
        var found = false;
 
80
        for (var i=0; i<sel.options.length; i++) {
 
81
                var option = sel.options[i];
 
82
 
 
83
                if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {
 
84
                        option.selected = true;
 
85
                        found = true;
 
86
                } else
 
87
                        option.selected = false;
 
88
        }
 
89
 
 
90
        if (!found && add_custom && value != '') {
 
91
                var option = new Option(value, value);
 
92
                option.selected = true;
 
93
                sel.options[sel.options.length] = option;
 
94
                sel.selectedIndex = sel.options.length - 1;
 
95
        }
 
96
 
 
97
        return found;
 
98
}
 
99
 
 
100
function getSelectValue(form_obj, field_name) {
 
101
        var elm = form_obj.elements[field_name];
 
102
 
 
103
        if (elm == null || elm.options == null || elm.selectedIndex === -1)
 
104
                return "";
 
105
 
 
106
        return elm.options[elm.selectedIndex].value;
 
107
}
 
108
 
 
109
function addSelectValue(form_obj, field_name, name, value) {
 
110
        var s = form_obj.elements[field_name];
 
111
        var o = new Option(name, value);
 
112
        s.options[s.options.length] = o;
 
113
}
 
114
 
 
115
function addClassesToList(list_id, specific_option) {
 
116
        // Setup class droplist
 
117
        var styleSelectElm = document.getElementById(list_id);
 
118
        var styles = tinyMCEPopup.getParam('theme_advanced_styles', false);
 
119
        styles = tinyMCEPopup.getParam(specific_option, styles);
 
120
 
 
121
        if (styles) {
 
122
                var stylesAr = styles.split(';');
 
123
 
 
124
                for (var i=0; i<stylesAr.length; i++) {
 
125
                        if (stylesAr != "") {
 
126
                                var key, value;
 
127
 
 
128
                                key = stylesAr[i].split('=')[0];
 
129
                                value = stylesAr[i].split('=')[1];
 
130
 
 
131
                                styleSelectElm.options[styleSelectElm.length] = new Option(key, value);
 
132
                        }
 
133
                }
 
134
        } else {
 
135
                /*tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) {
 
136
                        styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']);
 
137
                });*/
 
138
        }
 
139
}
 
140
 
 
141
function isVisible(element_id) {
 
142
        var elm = document.getElementById(element_id);
 
143
 
 
144
        return elm && elm.style.display != "none";
 
145
}
 
146
 
 
147
function convertRGBToHex(col) {
 
148
        var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
 
149
 
 
150
        var rgb = col.replace(re, "$1,$2,$3").split(',');
 
151
        if (rgb.length == 3) {
 
152
                r = parseInt(rgb[0]).toString(16);
 
153
                g = parseInt(rgb[1]).toString(16);
 
154
                b = parseInt(rgb[2]).toString(16);
 
155
 
 
156
                r = r.length == 1 ? '0' + r : r;
 
157
                g = g.length == 1 ? '0' + g : g;
 
158
                b = b.length == 1 ? '0' + b : b;
 
159
 
 
160
                return "#" + r + g + b;
 
161
        }
 
162
 
 
163
        return col;
 
164
}
 
165
 
 
166
function convertHexToRGB(col) {
 
167
        if (col.indexOf('#') != -1) {
 
168
                col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');
 
169
 
 
170
                r = parseInt(col.substring(0, 2), 16);
 
171
                g = parseInt(col.substring(2, 4), 16);
 
172
                b = parseInt(col.substring(4, 6), 16);
 
173
 
 
174
                return "rgb(" + r + "," + g + "," + b + ")";
 
175
        }
 
176
 
 
177
        return col;
 
178
}
 
179
 
 
180
function trimSize(size) {
 
181
        return size.replace(/([0-9\.]+)(px|%|in|cm|mm|em|ex|pt|pc)/i, '$1$2');
 
182
}
 
183
 
 
184
function getCSSSize(size) {
 
185
        size = trimSize(size);
 
186
 
 
187
        if (size == "")
 
188
                return "";
 
189
 
 
190
        // Add px
 
191
        if (/^[0-9]+$/.test(size))
 
192
                size += 'px';
 
193
        // Sanity check, IE doesn't like broken values
 
194
        else if (!(/^[0-9\.]+(px|%|in|cm|mm|em|ex|pt|pc)$/i.test(size)))
 
195
                return "";
 
196
 
 
197
        return size;
 
198
}
 
199
 
 
200
function getStyle(elm, attrib, style) {
 
201
        var val = tinyMCEPopup.dom.getAttrib(elm, attrib);
 
202
 
 
203
        if (val != '')
 
204
                return '' + val;
 
205
 
 
206
        if (typeof(style) == 'undefined')
 
207
                style = attrib;
 
208
 
 
209
        return tinyMCEPopup.dom.getStyle(elm, style);
 
210
}