PluginProbe
HTTP Headers / 1.2.0
HTTP Headers v1.2.0
1.19.5 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.10.5 1.11.0 1.12.0 1.12.1 1.12.2 1.13.0 1.13.1 1.13.2 1.13.3 1.13.4 1.14.0 1.14.1 1.14.2 1.15.0 All 60 releases
← All changes | assets/scripts.js +7 -289 trunk1.2.0 View file →
@@ -3,68 +3,21 @@
3 3 "use strict";
4 4
5 5 $(document).on('change', 'select[name="hh_x_frame_options_value"]', function () {
6 6 var $el = $('input[name="hh_x_frame_options_domain"]'),
7 - readOnly = $(this).find('option:selected').val() != 'allow-from';
7 + disabled = $(this).find('option:selected').val() != 'allow-from' || this.disabled;
8 8 if ($el.length) {
9 - $el.prop('readOnly', readOnly).toggle(!readOnly);
9 + $el.prop('disabled', disabled).toggle(!disabled);
10 10 }
11 - }).on('change', 'select[name="hh_x_xxs_protection_value"]', function (e) {
12 - var $el = $('input[name="hh_x_xxs_protection_uri"]'),
13 - readOnly = $(this).find('option:selected').val() != '1; report=';
14 - if ($el.length) {
15 - $el.prop('readOnly', readOnly).toggle(!readOnly);
16 - }
17 - }).on('change', 'select[name="hh_x_powered_by_option"]', function () {
18 - var $el = $('input[name="hh_x_powered_by_value"]'),
19 - readOnly = $(this).find('option:selected').val() != 'set';
20 - if ($el.length) {
21 - $el.prop('readOnly', readOnly).toggle(!readOnly);
22 - }
23 - }).on("change", "input[name^='hh_vary_value[']", function () {
24 -
25 - if (this.name === "hh_vary_value[*]") {
26 - if (this.checked) {
27 - $("input[name^='hh_vary_value[']").not(this).prop("checked", false);
28 - }
29 - } else {
30 - if (this.checked) {
31 - $("input[name='hh_vary_value[*]']").prop("checked", false);
32 - }
33 - }
34 -
35 - }).on("change", "input[name^='hh_access_control_allow_methods_value[']", function () {
36 -
37 - if (this.name === "hh_access_control_allow_methods_value[*]") {
38 - if (this.checked) {
39 - $("input[name^='hh_access_control_allow_methods_value[']").not(this).prop("checked", false);
40 - }
41 - } else {
42 - if (this.checked) {
43 - $("input[name='hh_access_control_allow_methods_value[*]']").prop("checked", false);
44 - }
45 - }
46 -
47 11 }).on('change', 'select[name="hh_access_control_allow_origin_value"]', function () {
48 12 var $el = $('input[name="hh_access_control_allow_origin_url"]'),
49 - readOnly = $(this).find('option:selected').val() != 'origin';
13 + disabled = $(this).find('option:selected').val() != 'origin' || this.disabled;
50 14 if ($el.length) {
51 - $el.prop('readOnly', readOnly);//.toggle(!readOnly);
15 + $el.prop('disabled', disabled).toggle(!disabled);
52 16 }
53 - if (readOnly) {
54 - $(".hh-acao").addClass("hh-hidden");
55 - } else {
56 - $(".hh-acao").removeClass("hh-hidden");
57 - }
58 - }).on('change', 'select[name="hh_timing_allow_origin_value"]', function () {
59 - var $el = $('input[name="hh_timing_allow_origin_url"]'),
60 - readOnly = $(this).find('option:selected').val() != 'origin';
61 - if ($el.length) {
62 - $el.prop('readOnly', readOnly).toggle(!readOnly);
63 - }
64 17 }).on('change', '.http-header', function () {
65 18 var $this = $(this),
66 - $el = $this.closest('table').find('.http-header-value');
19 + $el = $this.closest('tr').find('.http-header-value');
67 20
68 21 if (!$el.length) {
69 22 return;
70 23 }
@@ -69,250 +22,15 @@
69 22 return;
70 23 }
71 24
72 25 if (Number($this.val()) === 1) {
73 - $el.prop('readOnly', false).removeAttr('readonly').removeClass('readonly');
26 + $el.prop('disabled', false);
74 27 } else {
75 - $el.prop('readOnly', true).addClass('readonly');
28 + $el.prop('disabled', true);
76 29 }
77 30 }).on('change', 'input[name="hh_x_frame_options"]', function () {
78 31 $('select[name="hh_x_frame_options_value"]').trigger('change');
79 - }).on('change', 'input[name="hh_x_powered_by"]', function () {
80 - $('select[name="hh_x_powered_by_option"]').trigger('change');
81 32 }).on('change', 'input[name="hh_access_control_allow_origin"]', function () {
82 33 $('select[name="hh_access_control_allow_origin_value"]').trigger('change');
83 - }).on('change', 'input[name="hh_timing_allow_origin"]', function () {
84 - $('select[name="hh_timing_allow_origin_value"]').trigger('change');
85 - }).on('submit', '#frmIspect', function (e) {
86 - e.preventDefault();
87 - var $this = $(this),
88 - $box = $('#hh-result').empty();
89 - $.post($this.attr('action'), $this.serialize()).done(function (data) {
90 - $box.html(data);
91 - });
92 - return false;
93 - }).on('change', '#authentication', function () {
94 - var $a = $('#box-authentication');
95 - if (this.checked) {
96 - $a.show();
97 - } else {
98 - $a.hide();
99 - }
100 - }).on('click', '#hh-btn-add-header', function () {
101 - $(this).closest('tr').before('<tr> \
102 - <td><input type="text" name="hh_custom_headers_value[name][]" class="http-header-value" placeholder="X-Custom-Name"></td> \
103 - <td><input type="text" name="hh_custom_headers_value[value][]" class="http-header-value" placeholder="' + hh.lbl_value + '"></td> \
104 - <td><button type="button" class="button button-small hh-btn-delete-header" title="' + hh.lbl_delete + '">x</button></td> \
105 - </tr>');
106 - }).on('click', '.hh-btn-add-endpoint', function () {
107 -
108 - var $tr = $(this).closest("tr");
109 -
110 - $tr.children("td").each(function() {
111 - if ($(this).attr("rowspan") !== undefined) {
112 - this.rowSpan = this.rowSpan + 1;
113 - }
114 - });
115 -
116 - var name,
117 - $clone = $tr.clone().removeClass("hh-tr-first hh-tr-group-start"),
118 - $this = $(this),
119 - index = Math.ceil(Math.random() * 9999);
120 -
121 - if ($tr.hasClass("hh-tr-group-end")) {
122 - name = $tr.find("input[name$='[url]']").attr("name");
123 - } else {
124 - name = $tr.nextAll(".hh-tr-group-end:eq(0)").find("input[name$='[url]']").attr("name");
125 - }
126 -
127 - var m = name.match(/\[(\d+)\]\[url\]$/),
128 - index = Number(m[1]) + 1;
129 -
130 - $clone.find("td").each(function() {
131 - if ($(this).attr("rowspan") !== undefined) {
132 - $(this).remove();
133 - }
134 - });
135 -
136 - $clone.find('input[type="text"]').val("");
137 - $clone.find('input[type="number"]').val("");
138 - $clone.find("td:last").html('<button type="button" class="button hh-btn-delete-endpoint" title="' + hh.lbl_delete + '">' + hh.lbl_remove_endpoint + '</button>');
139 - $clone.find(":input").each(function () {
140 - this.name = this.name.replace('[endpoints][0]', '[endpoints][' + index + ']');
141 - });
142 -
143 - $clone.addClass("hh-tr-group-end");
144 - if ($tr.hasClass("hh-tr-group-end")) {
145 - $tr.removeClass("hh-tr-group-end");
146 - $tr.after($clone);
147 - } else {
148 - $tr.nextAll(".hh-tr-group-end:eq(0)").removeClass("hh-tr-group-end").after($clone);
149 - }
150 -
151 - }).on('click', '#hh-btn-add-endpoint-group', function () {
152 - var $this = $(this),
153 - index = Math.ceil(Math.random() * 9999),
154 - $table = $this.closest("table"),
155 - $clone = $table.find("tr.hh-tr-first").eq(0).clone(),
156 - name = $table.find("tr:nth-last-child(2)").find(":input:first").attr("name"),
157 - m = name.match(/^hh_report_to_value\[(\d+)\]/),
158 - index = Number(m[1]) + 1;
159 -
160 - $clone.find("td").each(function() {
161 - if ($(this).attr("rowspan") !== undefined) {
162 - this.rowSpan = 1;
163 - }
164 - });
165 -
166 - $clone.find('input[type="text"]').val("");
167 - $clone.find('input[type="number"]').val("");
168 - $clone.find('input[type="checkbox"]').prop("checked", false);
169 - $clone.find("option:first").prop("selected", true);
170 - $clone.find("td:last").html('<button type="button" class="button hh-btn-delete-endpoint-group" title="' + hh.lbl_delete + '">' + hh.lbl_remove_group + '</button>');
171 - $clone.find(":input").each(function () {
172 - this.name = this.name.replace('[0]', '[' + index + ']');
173 - });
174 - $clone.addClass("hh-tr-group-end").removeClass("hh-tr-first");
175 -
176 - $this.closest('tr').before($clone);
177 - }).on('click', '.hh-btn-delete-header, .hh-btn-delete-origin, .hh-btn-delete-user, .hh-btn-delete-ac', function () {
178 -
179 - $(this).closest('tr').remove();
180 -
181 - }).on('click', '.hh-btn-delete-endpoint', function() {
182 -
183 - var $group,
184 - $tr = $(this).closest("tr");
185 -
186 - if ($tr.prev("tr").hasClass("hh-tr-group-start")) {
187 - $group = $tr.prev("tr");
188 - } else {
189 - $group = $tr.prevUntil("tr.hh-tr-group-start").prev("tr");
190 - }
191 -
192 - $group.children("td").each(function() {
193 - if (this.rowSpan > 1) {
194 - this.rowSpan = this.rowSpan - 1;
195 - }
196 - });
197 -
198 - if ($tr.hasClass("hh-tr-group-end")) {
199 - $tr.prev("tr").addClass("hh-tr-group-end");
200 - }
201 -
202 - $tr.remove();
203 -
204 - }).on('click', '.hh-btn-delete-endpoint-group', function () {
205 - var rows = $(this).closest("td").attr("rowspan");
206 - if (rows === undefined || rows < 2) {
207 - $(this).closest('tr').remove();
208 - } else {
209 - $(this).closest('tr').nextAll("tr").addBack().slice(0, rows).remove();
210 - }
211 - }).on("click", ".hh-btn-add-ac", function () {
212 - var $this = $(this);
213 - $this.closest('tr').before('<tr> \
214 - <td><input type="text" name="' + $this.data("name") + '" class="http-header-value" size="35" /></td> \
215 - <td><button type="button" class="button button-small hh-btn-delete-ac" title="' + hh.lbl_delete + '">x</button></td> \
216 - </tr>');
217 - }).on("click", ".hh-btn-add-origin", function () {
218 - $(this).closest('tr').before('<tr class="hh-acao"> \
219 - <td>&nbsp;</td> \
220 - <td><input type="text" name="hh_access_control_allow_origin_url[]" class="http-header-value" placeholder="http://domain.com" size="35" /></td> \
221 - <td><button type="button" class="button button-small hh-btn-delete-origin" title="' + hh.lbl_delete + '">x</button></td> \
222 - </tr>');
223 - }).on("click", ".hh-btn-add-user", function () {
224 - $(this).closest('tr').before('<tr> \
225 - <td>&nbsp;</td> \
226 - <td><input type="text" name="hh_www_authenticate_user[]" class="http-header-value" /></td> \
227 - <td><input type="text" name="hh_www_authenticate_pswd[]" class="http-header-value" /></td> \
228 - <td><button type="button" class="button button-small hh-btn-delete-user" title="' + hh.lbl_delete + '">x</button></td> \
229 - </tr>');
230 - }).on("click", ".hh-btn-import-choose", function () {
231 - $("#hh-import-file").trigger("click");
232 - }).on("change", "#hh-import-file", function () {
233 - $("#hh-import-name").html(this.files[0].name);
234 - }).on("change", 'select[name^="hh_feature_policy_value"]', function () {
235 - var $this = $(this),
236 - value = $this.find("option:selected").val(),
237 - $input = $this.siblings('input[name^="hh_feature_policy_origin"]');
238 - if (value === "'self'" || value === "origin(s)") {
239 - $input.show();
240 - } else {
241 - $input.hide();
242 - }
243 - }).on("change", 'select[name^="hh_permissions_policy_value"]', function () {
244 - var $this = $(this),
245 - value = $this.find("option:selected").val(),
246 - $input = $this.siblings('input[name^="hh_permissions_policy_origin"]');
247 - if (value === "self" || value === "origin(s)") {
248 - $input.show();
249 - } else {
250 - $input.hide();
251 - }
252 - }).on("change", 'input[name^="hh_content_security_policy_value"]', function () {
253 -
254 - var $this = $(this);
255 -
256 - if (this.checked) {
257 - if (/\[\*\]$/.test(this.name)) {
258 - $this.closest("td").find('input[type="checkbox"]').not(this).prop("checked", false);
259 - $this.closest("p").siblings("p").hide();
260 - } else {
261 - $this.closest("td").find('input[type="checkbox"][name$="[*]"]').prop("checked", false);
262 - }
263 - } else {
264 - if (/\[\*\]$/.test(this.name)) {
265 - $this.closest("p").siblings("p").show();
266 - }
267 - }
268 - }).on("change", 'input[type="checkbox"][name="hh_cookie_security_value[SameSite]"]', function () {
269 - if (this.checked) {
270 - $(".hh-csv-value")
271 - .removeClass("hh-hidden")
272 - .find('input[type="radio"]')
273 - .prop("disabled", false)
274 - .filter(":first")
275 - .prop("checked", true);
276 - } else {
277 - $(".hh-csv-value")
278 - .addClass("hh-hidden")
279 - .find('input[type="radio"]')
280 - .prop("disabled", true);
281 - }
282 - });
283 -
284 - $('.hh-tabs').on('click', 'ul a', function (e) {
285 - e.preventDefault();
286 -
287 - var $this = $(this);
288 - $($this.attr('href'))
289 - .removeClass('hh-hidden').addClass('hh-tab-active').attr('aria-hidden', 'false').attr('aria-expanded', 'true')
290 - .siblings('div').addClass('hh-hidden').removeClass('hh-tab-active').attr('aria-hidden', 'true').attr('aria-expanded', 'false');
291 - $this.closest('li')
292 - .addClass('hh-active').attr('aria-selected', 'true').attr('tabindex', 0)
293 - .siblings('li').removeClass('hh-active').attr('aria-selected', 'false').attr('tabindex', -1);
294 - }).each(function () {
295 - var $this = $(this),
296 - $ul = $this.children('ul').attr('role', 'tablist'),
297 - $li = $ul.children('li').attr('role', 'tab')
298 - .not(':first').attr('aria-selected', 'false').attr('tabindex', -1)
299 - .end().eq(0).attr('aria-selected', 'true').attr('tabindex', 0)
300 - .end(),
301 - $a = $li.find('a').attr('role', 'presentation').attr('tabindex', -1),
302 - $div = $this.children('div').attr('role', 'tabpanel')
303 - .not(':first').attr('aria-hidden', 'true').attr('aria-expanded', 'false')
304 - .end().eq(0).attr('aria-hidden', 'false').attr('aria-expanded', 'true')
305 - .end();
306 -
307 - $li.each(function (i) {
308 - var $this = $(this),
309 - id = 'hh-tabs-' + Math.ceil(Math.random() * 999999) + '-' + i,
310 - $a = $this.attr('aria-labelledby', id).find('a').attr('id', id),
311 - href = $a.attr('href');
312 - $this.attr('aria-controls', href.substring(1)).attr('aria-labelledby', id);
313 - $(href).attr('aria-labelledby', id);
314 - });
315 -
316 34 });
317 35 });
318 36 })(jQuery);