PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 6.2.7
Admin and Site Enhancements (ASE) v6.2.7
9.1.1 9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 8.3.2 8.4.0 8.4.1 8.4.2 8.5.0 8.5.1 8.5.2 8.6.0 8.6.1 8.6.2 8.7.0 5.0.1 5.0.2 5.0.2.1 5.0.2.2 5.0.2.3 5.0.2.4 5.1.0 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.8.0 5.8.1 6.0.0 6.0.3 6.0.4 6.0.5 6.0.5.1 6.0.6 6.0.7 6.0.8.1 6.1.0 6.1.3 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.3.0 6.3.1 6.3.2 6.4.0 6.5.0 6.5.1 6.6.0 6.7.0 6.8.0 6.8.2 6.8.3 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13.1 6.9.13.2 6.9.2 6.9.3 6.9.4 6.9.5 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.2 7.0.2.1 7.0.2.2 7.0.2.3 7.0.3 7.1.0 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2.0 7.2.1 7.3.0 7.3.1 7.3.2 7.3.3 7.4.0 7.4.2 7.4.4 7.4.5 7.4.6 7.4.7 7.4.8 7.5.0 7.5.1 7.5.2 7.5.3 7.5.4 7.6.0 7.6.1 7.6.1.1 7.6.10 7.6.11 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 7.6.7.1 7.6.8 7.6.9 7.7.0 7.8.0 7.8.1 7.8.10 7.8.11 7.8.12 7.8.13 7.8.14 7.8.15 7.8.16 7.8.17 7.8.18 7.8.2 7.8.3 7.8.4 7.8.5 7.8.5.1 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1 7.9.10 7.9.11 7.9.2 7.9.3 7.9.4 7.9.5 7.9.6 7.9.7 7.9.8 7.9.9 8.0.0 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.0.6 8.0.7 8.0.8 8.1.0 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.2.0 3.3.0 3.4.0 3.5.0 3.6.1 3.7.0 3.8.0 3.9.0 3.9.1 3.9.2 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.9.0 4.9.1 4.9.2 4.9.3 5.0.0
admin-site-enhancements / assets / js / admin-page.js
admin-site-enhancements / assets / js Last commit date
codemirror 2 years ago datatables 2 years ago admin-page.js 2 years ago content-order-sort.js 2 years ago custom-admin-menu.js 2 years ago external-permalinks.js 2 years ago hide-admin-notices.js 2 years ago jBox.all.min.js 2 years ago jquery.jsticky.mod.js 2 years ago jquery.jsticky.mod.min.js 2 years ago jquery.mjs.nestedSortable.js 2 years ago jquery.ui.touch-punch.min.js 2 years ago js.cookie.min.js 2 years ago media-replace.js 2 years ago multiple-user-roles.js 2 years ago toggle-hidden-menu.js 2 years ago
admin-page.js
799 lines
1 (function( $ ) {
2 'use strict';
3
4 $(document).ready( function() {
5
6 // Make page header sticky on scroll. Using https://github.com/AndrewHenderson/jSticky
7 $('#asenha-header').sticky({
8 topSpacing: 0, // Space between element and top of the viewport (in pixels)
9 zIndex: 100, // z-index
10 stopper: '', // Id, class, or number value
11 stickyClass: 'asenha-sticky' // Class applied to element when it's stuck. Class name or false.
12 })
13
14 // Clicking on header save button triggers click of the hidden form submit button
15 $('.asenha-save-button').click( function(e) {
16
17 e.preventDefault();
18
19 $('.asenha-saving-changes').fadeIn();
20
21 // Get current tab's URL hash and save it in cookie
22 var hash = decodeURI(window.location.hash).substr(1); // get hash without the # character
23 Cookies.set('asenha_tab', hash, { expires: 1 }); // expires in 1 day
24
25 $.ajax({
26 url: asenhaStats.saveChangesJsonpUrl,
27 method: 'GET',
28 dataType: 'jsonp',
29 crossDomain: true
30 // success: function(response) {
31 // console.log(response);
32 // }
33 });
34
35 // Submit the settings form
36 $('input[type="submit"]#asenha-submit').click();
37
38 });
39
40 // Show all / less toggler for field options | Modified from https://codepen.io/symonsays/pen/rzgEgY
41 $('.asenha-field-with-options.field-show-more > .show-more').click(function(e) {
42
43 e.preventDefault();
44
45 var $this = $(this);
46 $this.toggleClass('show-more');
47
48 if ($this.hasClass('show-more')) {
49 $this.next().removeClass('opened',0);
50 $this.html('Expand ▼');
51 } else {
52 $this.next().addClass('opened',0);
53 $this.html('Collapse ▲');
54 }
55
56 });
57
58 // Email Delivery >> Send test email
59 $('#send-test-email').click(function(e) {
60 e.preventDefault();
61 var emailTo = $('#test-email-to').val();
62 if ( emailTo ) {
63 $('#ajax-result').show();
64 $('.sending-test-email').show();
65 $('.test-email-result').hide();
66 $('#test-email-success').hide();
67 $('#test-email-failed').hide();
68 $.ajax({
69 url: ajaxurl,
70 data: {
71 'action':'send_test_email',
72 'email_to': emailTo
73 },
74 success:function(data) {
75 var data = data.slice(0,-1); // remove strange trailing zero in string returned by AJAX call
76 var response = JSON.parse(data);
77
78 if ( response.status == 'success' ) {
79 setTimeout( function() {
80 $('.sending-test-email').hide();
81 $('.test-email-result').show();
82 $('#test-email-success').show();
83 }, 1500);
84 }
85 },
86 error:function(errorThrown) {
87 console.log(errorThrown);
88 setTimeout( function() {
89 $('.sending-test-email').hide();
90 $('.test-email-result').show();
91 $('#test-email-failed').show();
92 }, 1500);
93 }
94 });
95 } else {
96 alert( 'Please enter destination email address first.' );
97 }
98
99 });
100
101 // Initialize data tables
102 var table = $("#login-attempts-log").DataTable({
103 pageLength: 10
104 });
105
106 // Place fields into the "Content Management" tab
107
108 $('.enable-duplication').appendTo('.fields-content-management > table > tbody');
109 $('.content-order').appendTo('.fields-content-management > table > tbody');
110 $('.content-order-subfields-heading').appendTo('.fields-content-management .content-order .asenha-subfields');
111 $('.content-order-for').appendTo('.fields-content-management .content-order .asenha-subfields');
112
113
114 $('.enable-media-replacement').appendTo('.fields-content-management > table > tbody');
115 $('.enable-svg-upload').appendTo('.fields-content-management > table > tbody');
116 $('.enable-svg-upload-for').appendTo('.fields-content-management .enable-svg-upload .asenha-subfields');
117
118 $('.enable-external-permalinks').appendTo('.fields-content-management > table > tbody');
119 $('.enable-external-permalinks-for').appendTo('.fields-content-management .enable-external-permalinks .asenha-subfields');
120 $('.external-links-new-tab').appendTo('.fields-content-management > table > tbody');
121 $('.custom-nav-menu-items-new-tab').appendTo('.fields-content-management > table > tbody');
122 $('.enable-missed-schedule-posts-auto-publish').appendTo('.fields-content-management > table > tbody');
123
124 // Place fields into "Admin Interface" tab
125 $('.hide-modify-elements').appendTo('.fields-admin-interface > table > tbody');
126 $('.hide-ab-wp-logo-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
127 $('.hide-ab-customize-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
128 $('.hide-ab-updates-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
129 $('.hide-ab-comments-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
130 $('.hide-ab-new-content-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
131 $('.hide-ab-howdy').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
132 $('.hide-help-drawer').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
133
134 $('.hide-admin-notices').appendTo('.fields-admin-interface > table > tbody');
135 $('.disable-dashboard-widgets').appendTo('.fields-admin-interface > table > tbody');
136 $('.disabled-dashboard-widgets').appendTo('.fields-admin-interface .disable-dashboard-widgets .asenha-subfields');
137 $('.hide-admin-bar').appendTo('.fields-admin-interface > table > tbody');
138
139 $('.hide-admin-bar-for').appendTo('.fields-admin-interface .hide-admin-bar .asenha-subfields');
140
141 $('.wider-admin-menu').appendTo('.fields-admin-interface > table > tbody');
142 $('.admin-menu-width').appendTo('.fields-admin-interface .wider-admin-menu .asenha-subfields');
143 $('.customize-admin-menu').appendTo('.fields-admin-interface > table > tbody');
144 $('.custom-menu-order').appendTo('.fields-admin-interface .customize-admin-menu .asenha-subfields');
145
146 $('.enhance-list-tables').appendTo('.fields-admin-interface > table > tbody');
147 $('.show-featured-image-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
148 $('.show-excerpt-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
149 $('.show-id-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
150 $('.show-id-in-action_row').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
151 $('.show-custom-taxonomy-filters').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
152 $('.hide-comments-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
153 $('.hide-post-tags-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
154
155 // Place fields into "Log In | Log Out" tab
156 $('.change-login-url').appendTo('.fields-login-logout > table > tbody');
157 $('.custom-login-slug').appendTo('.fields-login-logout .change-login-url .asenha-subfields');
158 $('.site-identity-on-login').appendTo('.fields-login-logout > table > tbody');
159 $('.enable-login-logout-menu').appendTo('.fields-login-logout > table > tbody');
160 $('.enable-last-login-column').appendTo('.fields-login-logout > table > tbody');
161 $('.redirect-after-login').appendTo('.fields-login-logout > table > tbody');
162 $('.redirect-after-login-to-slug').appendTo('.fields-login-logout .redirect-after-login .asenha-subfields');
163 $('.redirect-after-login-for').appendTo('.fields-login-logout .redirect-after-login .asenha-subfields');
164 $('.redirect-after-logout').appendTo('.fields-login-logout > table > tbody');
165 $('.redirect-after-logout-to-slug').appendTo('.fields-login-logout .redirect-after-logout .asenha-subfields');
166 $('.redirect-after-logout-for').appendTo('.fields-login-logout .redirect-after-logout .asenha-subfields');
167
168 // Place fields into "Custom Code" tab
169
170 $('.enable-custom-admin-css').appendTo('.fields-custom-code > table > tbody');
171 $('.custom-admin-css').appendTo('.fields-custom-code .enable-custom-admin-css .asenha-subfields');
172 $('.enable-custom-frontend-css').appendTo('.fields-custom-code > table > tbody');
173
174 $('.custom-frontend-css').appendTo('.fields-custom-code .enable-custom-frontend-css .asenha-subfields');
175 $('.insert-head-body-footer-code').appendTo('.fields-custom-code > table > tbody');
176 $('.head-code-priority').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
177 $('.head-code').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
178 $('.body-code-priority').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
179 $('.body-code').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
180 $('.footer-code-priority').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
181 $('.footer-code').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
182 $('.enable-custom-body-class').appendTo('.fields-custom-code > table > tbody');
183 $('.enable-custom-body-class-for').appendTo('.fields-custom-code .enable-custom-body-class .asenha-subfields');
184 $('.manage-ads-appads-txt').appendTo('.fields-custom-code > table > tbody');
185 $('.ads-txt-content').appendTo('.fields-custom-code .manage-ads-appads-txt .asenha-subfields');
186 $('.app-ads-txt-content').appendTo('.fields-custom-code .manage-ads-appads-txt .asenha-subfields');
187 $('.manage-robots-txt').appendTo('.fields-custom-code > table > tbody');
188 $('.robots-txt-content').appendTo('.fields-custom-code .manage-robots-txt .asenha-subfields');
189
190 // Place fields into the "Disable Components" tab
191 $('.disable-gutenberg').appendTo('.fields-disable-components > table > tbody');
192 $('.disable-gutenberg-for').appendTo('.fields-disable-components .disable-gutenberg .asenha-subfields');
193 $('.disable-gutenberg-frontend-styles').appendTo('.fields-disable-components .disable-gutenberg .asenha-subfields');
194 $('.disable-block-widgets').appendTo('.fields-disable-components > table > tbody');
195 $('.disable-comments').appendTo('.fields-disable-components > table > tbody');
196 $('.disable-comments-for').appendTo('.fields-disable-components .disable-comments .asenha-subfields');
197 $('.disable-rest-api').appendTo('.fields-disable-components > table > tbody');
198 $('.disable-feeds').appendTo('.fields-disable-components > table > tbody');
199 $('.disable-all-updates').appendTo('.fields-disable-components > table > tbody');
200 $('.disable-smaller-components').appendTo('.fields-disable-components > table > tbody');
201 $('.disable-head-generator-tag').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
202 $('.disable-resource-version-number').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
203 $('.disable-head-wlwmanifest-tag').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
204 $('.disable-head-rsd-tag').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
205 $('.disable-head-shortlink-tag').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
206 $('.disable-frontend-dashicons').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
207 $('.disable-emoji-support').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
208 $('.disable-jquery-migrate').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
209
210 // Place fields into "Security" tab
211 $('.limit-login-attempts').appendTo('.fields-security > table > tbody');
212 $('.login-fails-allowed').appendTo('.fields-security .limit-login-attempts .asenha-subfields');
213 $('.login-lockout-maxcount').appendTo('.fields-security .limit-login-attempts .asenha-subfields');
214
215 $('.login-attempts-log-table').appendTo('.fields-security .limit-login-attempts .asenha-subfields');
216 $('.obfuscate-author-slugs').appendTo('.fields-security > table > tbody');
217 $('.obfuscate-email-address').appendTo('.fields-security > table > tbody');
218 $('.obfuscate-email-address-description').appendTo('.fields-security .obfuscate-email-address .asenha-subfields');
219 $('.obfuscate-email-address-in-content').appendTo('.fields-security .obfuscate-email-address .asenha-subfields');
220 $('.disable-xmlrpc').appendTo('.fields-security > table > tbody');
221
222 // Place fields into "Optimizations" tab
223 $('.image-upload-control').appendTo('.fields-optimizations > table > tbody');
224 $('.image-max-width').appendTo('.fields-optimizations .image-upload-control .asenha-subfields');
225 $('.image-max-height').appendTo('.fields-optimizations .image-upload-control .asenha-subfields');
226
227 $('.image-upload-control-description').appendTo('.fields-optimizations .image-upload-control .asenha-subfields');
228 $('.enable-revisions-control').appendTo('.fields-optimizations > table > tbody');
229 $('.revisions-max-number').appendTo('.fields-optimizations .enable-revisions-control .asenha-subfields');
230 $('.enable-revisions-control-for').appendTo('.fields-optimizations .enable-revisions-control .asenha-subfields');
231 $('.enable-heartbeat-control').appendTo('.fields-optimizations > table > tbody');
232 $('.heartbeat-control-for-admin-pages').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
233 $('.heartbeat-interval-for-admin-pages').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
234 $('.heartbeat-control-for-post-edit').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
235 $('.heartbeat-interval-for-post-edit').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
236 $('.heartbeat-control-for-frontend').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
237 $('.heartbeat-interval-for-frontend').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
238
239 // Place fields into "Utilities" tab
240 $('.smtp-email-delivery').appendTo('.fields-utilities > table > tbody');
241 $('.smtp-default-from-description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
242 $('.smtp-default-from-name').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
243 $('.smtp-default-from-email').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
244 $('.smtp-force-from').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
245 $('.smtp--description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
246 $('.smtp-host').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
247 $('.smtp-port').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
248 $('.smtp-security').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
249 $('.smtp-username').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
250 $('.smtp-password').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
251 $('.smtp-bypass-ssl-verification').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
252 $('.smtp-debug').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
253 $('.smtp-send-test-email-description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
254 $('.smtp-send-test-email-to').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
255 $('.smtp-send-test-email-result').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
256
257 $('.multiple-user-roles').appendTo('.fields-utilities > table > tbody');
258 $('.view-admin-as-role').appendTo('.fields-utilities > table > tbody');
259 $('.view-admin-as-role-description').appendTo('.fields-utilities .view-admin-as-role .asenha-subfields');
260 $('.enable-password-protection').appendTo('.fields-utilities > table > tbody');
261 $('.password-protection-password').appendTo('.fields-utilities .enable-password-protection .asenha-subfields');
262
263 $('.maintenance-mode').appendTo('.fields-utilities > table > tbody');
264 $('.maintenance-page-heading').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
265 $('.maintenance-page-description').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
266 $('.maintenance-page-background').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
267
268 $('.maintenance-mode-description').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
269 $('.redirect-404-to-homepage').appendTo('.fields-utilities > table > tbody');
270 $('.display-system-summary').appendTo('.fields-utilities > table > tbody');
271
272 // Remove empty .form-table that originally holds the fields
273 const formTableCount = $('.form-table').length;
274 // $('.form-table')[formTableCount-1].remove();
275
276 // Enable Custom Admin CSS => Initialize CodeMirror
277 var adminCssTextarea = document.getElementById("admin_site_enhancements[custom_admin_css]");
278 // if ( typeof CodeMirror != "undefined" ) {
279 // alert('CodeMirror is available');
280 // }
281 var adminCssEditor = CodeMirror.fromTextArea(adminCssTextarea, {
282 mode: "css",
283 lineNumbers: true,
284 lineWrapping: true
285 });
286
287 adminCssEditor.setSize("100%",600);
288
289 // Enable Custom Frontend CSS => Initialize CodeMirror
290 var frontendCssTextarea = document.getElementById("admin_site_enhancements[custom_frontend_css]");
291 var frontendCssEditor = CodeMirror.fromTextArea(frontendCssTextarea, {
292 mode: "css",
293 lineNumbers: true,
294 lineWrapping: true
295 });
296
297 frontendCssEditor.setSize("100%",600);
298
299 // Manage ads.txt and app-ads.txt=> Initialize CodeMirror
300 var adsTxtTextarea = document.getElementById("admin_site_enhancements[ads_txt_content]");
301 var adsTxtEditor = CodeMirror.fromTextArea(adsTxtTextarea, {
302 mode: "markdown",
303 lineNumbers: true,
304 lineWrapping: true
305 });
306
307 adsTxtEditor.setSize("100%",300);
308
309 var appAdsTxtTextarea = document.getElementById("admin_site_enhancements[app_ads_txt_content]");
310 var appAdsTxtEditor = CodeMirror.fromTextArea(appAdsTxtTextarea, {
311 mode: "markdown",
312 lineNumbers: true,
313 lineWrapping: true
314 });
315
316 appAdsTxtEditor.setSize("100%",300);
317
318 // Manage robots.txt => Initialize CodeMirror
319 var robotsTxtTextarea = document.getElementById("admin_site_enhancements[robots_txt_content]");
320 var robotsTxtEditor = CodeMirror.fromTextArea(robotsTxtTextarea, {
321 mode: "markdown",
322 lineNumbers: true,
323 lineWrapping: true
324 });
325
326 robotsTxtEditor.setSize("100%",400);
327
328 // Insert <head>, <body> and <footer> code => Initialize CodeMirror
329 var headCodeTextarea = document.getElementById("admin_site_enhancements[head_code]");
330 var headCodeEditor = CodeMirror.fromTextArea(headCodeTextarea, {
331 mode: "htmlmixed",
332 lineNumbers: true,
333 lineWrapping: true
334 });
335 headCodeEditor.setSize("100%",300);
336
337 var bodyCodeTextarea = document.getElementById("admin_site_enhancements[body_code]");
338 var bodyCodeEditor = CodeMirror.fromTextArea(bodyCodeTextarea, {
339 mode: "htmlmixed",
340 lineNumbers: true,
341 lineWrapping: true
342 });
343 bodyCodeEditor.setSize("100%",300);
344
345 var footerCodeTextarea = document.getElementById("admin_site_enhancements[footer_code]");
346 var footerCodeEditor = CodeMirror.fromTextArea(footerCodeTextarea, {
347 mode: "htmlmixed",
348 lineNumbers: true,
349 lineWrapping: true
350 });
351 footerCodeEditor.setSize("100%",300);
352
353 // Show and hide corresponding fields on tab clicks
354
355 $('#tab-content-management + label').click( function() {
356 $('.fields-content-management').show();
357 $('.asenha-fields:not(.fields-content-management)').hide();
358 window.location.hash = 'content-management';
359 Cookies.set('asenha_tab', 'content-management', { expires: 1 }); // expires in 1 day
360 });
361
362 $('#tab-admin-interface + label').click( function() {
363 $('.fields-admin-interface').show();
364 $('.asenha-fields:not(.fields-admin-interface)').hide();
365 window.location.hash = 'admin-interface';
366 Cookies.set('asenha_tab', 'admin-interface', { expires: 1 }); // expires in 1 day
367 });
368
369 $('#tab-login-logout + label').click( function() {
370 $('.fields-login-logout').show();
371 $('.asenha-fields:not(.fields-login-logout)').hide();
372 window.location.hash = 'login-logout';
373 Cookies.set('asenha_tab', 'login-logout', { expires: 1 }); // expires in 1 day
374 });
375
376 $('#tab-custom-code + label').click( function() {
377 $('.fields-custom-code').show();
378 $('.asenha-fields:not(.fields-custom-code)').hide();
379 window.location.hash = 'custom-code';
380 Cookies.set('asenha_tab', 'custom-code', { expires: 1 }); // expires in 1 day
381 adminCssEditor.refresh(); // Custom Admin CSS >> CodeMirror
382 frontendCssEditor.refresh(); // Custom Fronend CSS >> CodeMirror
383 adsTxtEditor.refresh(); // Manage ads.txt >> CodeMirror
384 appAdsTxtEditor.refresh(); // Manage app-ads.txt >> CodeMirror
385 headCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
386 bodyCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
387 footerCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
388 robotsTxtEditor.refresh(); // Manage robots.txt >> CodeMirror
389 });
390
391 $('#tab-disable-components + label').click( function() {
392 $('.fields-disable-components').show();
393 $('.asenha-fields:not(.fields-disable-components)').hide();
394 window.location.hash = 'disable-components';
395 Cookies.set('asenha_tab', 'disable-components', { expires: 1 }); // expires in 1 day
396 });
397
398 $('#tab-security + label').click( function() {
399 $('.fields-security').show();
400 $('.asenha-fields:not(.fields-security)').hide();
401 window.location.hash = 'security';
402 Cookies.set('asenha_tab', 'security', { expires: 1 }); // expires in 1 day
403 });
404
405 $('#tab-optimizations + label').click( function() {
406 $('.fields-optimizations').show();
407 $('.asenha-fields:not(.fields-optimizations)').hide();
408 window.location.hash = 'optimizations';
409 Cookies.set('asenha_tab', 'optimizations', { expires: 1 }); // expires in 1 day
410 });
411
412 $('#tab-utilities + label').click( function() {
413 $('.fields-utilities').show();
414 $('.asenha-fields:not(.fields-utilities)').hide();
415 window.location.hash = 'utilities';
416 Cookies.set('asenha_tab', 'utilities', { expires: 1 }); // expires in 1 day
417 });
418
419 // Open tab set in 'asenha_tab' cookie set on saving changes. Defaults to content-management tab when cookie is empty
420 var asenhaTabHash = Cookies.get('asenha_tab');
421
422 if (typeof asenhaTabHash === 'undefined') {
423 $('#tab-content-management + label').trigger('click');
424 } else {
425 $('#tab-' + asenhaTabHash + ' + label').trigger('click');
426 }
427
428 // Show or hide subfields on document ready and on toggle click
429
430 function subfieldsToggler( fieldId, fieldClass, sortableId, codeMirrorInstances ) {
431
432 if (document.getElementById('admin_site_enhancements['+fieldId+']')) {
433
434 // Show/hide subfields on document ready, depending on if module is enabled or not
435 if ( document.getElementById('admin_site_enhancements['+fieldId+']').checked ) {
436
437 $('.'+fieldClass+' .asenha-subfields').show();
438 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
439 $('.'+fieldClass+' .asenha-subfield-select-inner').show();
440 }
441 $('.asenha-toggle.'+fieldClass+' td .asenha-field-with-options').addClass('is-enabled');
442 if ( codeMirrorInstances ) {
443 Object.keys(codeMirrorInstances).forEach(function(key) {
444 codeMirrorInstances[key].refresh();
445 });
446 }
447
448 } else {
449
450 $('.'+fieldClass+' .asenha-subfields').hide();
451 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
452 $('.'+fieldClass+' .asenha-subfield-select-inner').hide();
453 }
454
455 }
456
457 // Show/hide subfields on toggle click
458 document.getElementById('admin_site_enhancements['+fieldId+']').addEventListener('click', event => {
459 if (event.target.checked) {
460
461 $('.'+fieldClass+' .asenha-subfields').fadeIn();
462 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
463 $('.'+fieldClass+' .asenha-subfield-select-inner').show();
464 }
465 $('.'+fieldClass+' .asenha-field-with-options').toggleClass('is-enabled');
466 if (document.getElementById(sortableId)) {
467 // Initialize sortable elements: https://api.jqueryui.com/sortable/
468 $('#' + sortableId ).sortable();
469 }
470 if ( codeMirrorInstances ) {
471 Object.keys(codeMirrorInstances).forEach(function(key) {
472 codeMirrorInstances[key].refresh();
473 });
474 }
475
476 } else {
477
478 $('.'+fieldClass+' .asenha-subfields').hide();
479 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
480 $('.'+fieldClass+' .asenha-subfield-select-inner').hide();
481 }
482 $('.'+fieldClass+' .asenha-field-with-options').toggleClass('is-enabled');
483
484 }
485 });
486
487 }
488
489 }
490
491
492 subfieldsToggler( 'content_order', 'content-order' );
493 subfieldsToggler( 'enable_svg_upload', 'enable-svg-upload' );
494
495 subfieldsToggler( 'enable_external_permalinks', 'enable-external-permalinks' );
496 subfieldsToggler( 'enhance_list_tables', 'enhance-list-tables' );
497 subfieldsToggler( 'wider_admin_menu', 'wider-admin-menu' );
498 subfieldsToggler( 'customize_admin_menu', 'customize-admin-menu', 'custom-admin-menu' );
499 subfieldsToggler( 'disable_dashboard_widgets', 'disable-dashboard-widgets' );
500 // Clean Up Admin Bar
501 subfieldsToggler( 'hide_modify_elements', 'hide-modify-elements' );
502 subfieldsToggler( 'hide_admin_bar', 'hide-admin-bar' );
503 subfieldsToggler( 'change_login_url', 'change-login-url' );
504 subfieldsToggler( 'redirect_after_login', 'redirect-after-login' );
505 subfieldsToggler( 'redirect_after_logout', 'redirect-after-logout' );
506 subfieldsToggler( 'enable_custom_admin_css', 'enable-custom-admin-css', '', {adminCssEditor} );
507 subfieldsToggler( 'enable_custom_frontend_css', 'enable-custom-frontend-css', '', {frontendCssEditor} );
508 subfieldsToggler( 'insert_head_body_footer_code', 'insert-head-body-footer-code', '', {headCodeEditor,bodyCodeEditor,footerCodeEditor} );
509 subfieldsToggler( 'enable_custom_body_class', 'enable-custom-body-class' );
510 subfieldsToggler( 'manage_ads_appads_txt', 'manage-ads-appads-txt', '', {adsTxtEditor,appAdsTxtEditor} );
511 subfieldsToggler( 'manage_robots_txt', 'manage-robots-txt', '', {robotsTxtEditor} );
512 subfieldsToggler( 'disable_gutenberg', 'disable-gutenberg' );
513 subfieldsToggler( 'disable_comments', 'disable-comments' );
514 subfieldsToggler( 'disable_smaller_components', 'disable-smaller-components' );
515 subfieldsToggler( 'limit_login_attempts', 'limit-login-attempts' );
516 subfieldsToggler( 'obfuscate_email_address', 'obfuscate-email-address' );
517 subfieldsToggler( 'image_upload_control', 'image-upload-control' );
518 subfieldsToggler( 'enable_revisions_control', 'enable-revisions-control' );
519 subfieldsToggler( 'enable_heartbeat_control', 'enable-heartbeat-control' );
520
521 // Enable Heartbeat Control => Check if "Modify interval" is chosen/clicked and show/hide the corresponding select field
522 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]:checked').val() == 'modify' ) {
523 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
524 }
525
526 $('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]').click(function() {
527 var radioValue = $(this).attr('value');
528 if ( radioValue == 'modify' ) {
529 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
530 } else {
531 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').hide();
532 }
533 });
534
535 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]:checked').val() == 'modify' ) {
536 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
537 }
538
539 $('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]').click(function() {
540 var radioValue = $(this).attr('value');
541 if ( radioValue == 'modify' ) {
542 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
543 } else {
544 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').hide();
545 }
546 });
547
548 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]:checked').val() == 'modify' ) {
549 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
550 }
551
552 $('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]').click(function() {
553 var radioValue = $(this).attr('value');
554 if ( radioValue == 'modify' ) {
555 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
556 } else {
557 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').hide();
558 }
559 });
560
561 subfieldsToggler( 'smtp_email_delivery', 'smtp-email-delivery' );
562
563 // SMTP Email Delivery => Empty field value on click, so new password can be easily entered
564 var oldSmtpPassValue = '';
565
566 $('input[name="admin_site_enhancements[smtp_password]"]').focusin(function() {
567 oldSmtpPassValue = $(this).val();
568 $(this).val('');
569 });
570
571 $('input[name="admin_site_enhancements[smtp_password]"]').focusout(function() {
572 if ( $(this).val() == '' ) {
573 $(this).val(oldSmtpPassValue);
574 }
575 });
576
577 subfieldsToggler( 'view_admin_as_role', 'view-admin-as-role' );
578 subfieldsToggler( 'enable_password_protection', 'enable-password-protection' );
579
580 // Enable Password protection => Empty field value on click, so new password can be easily entered
581 var oldValue = '';
582 $('input[name="admin_site_enhancements[password_protection_password]"]').focusin(function() {
583 oldValue = $(this).val();
584 $(this).val('');
585 });
586
587 $('input[name="admin_site_enhancements[password_protection_password]"]').focusout(function() {
588 if ( $(this).val() == '' ) {
589 $(this).val(oldValue);
590 }
591 });
592
593 subfieldsToggler( 'maintenance_mode', 'maintenance-mode' );
594
595
596
597 // Media frame handler for image selection / upload fields
598 // Source: https://plugins.trac.wordpress.org/browser/bm-custom-login/trunk/bm-custom-login.php
599 function media_frame_init( selector, button_selector ) {
600 var clicked_button = false;
601
602 $(selector).each(function (i, input) {
603 var button = $(input).next(button_selector);
604 button.click(function (event) {
605 event.preventDefault();
606 var selected_img;
607 clicked_button = $(this);
608
609 // Check for media frame instance
610 if(wp.media.frames.frame) {
611 wp.media.frames.frame.open();
612 return;
613 }
614 // Configuration of the media frame new instance
615 wp.media.frames.frame = wp.media({
616 title: adminPageVars.mediaFrameTitle,
617 multiple: false,
618 library: {
619 type: 'image'
620 },
621 button: {
622 text: adminPageVars.mediaFrameButtonText
623 }
624 });
625
626 // Function used for the image selection and media manager closing
627 var media_set_image = function() {
628 var selection = wp.media.frames.frame.state().get('selection');
629
630 // no selection
631 if (!selection) {
632 return;
633 }
634
635 // Iterate through selected elements
636 selection.each(function(attachment) {
637 // console.log(attachment);
638 var url = attachment.attributes.url;
639 clicked_button.prev(selector).val(url);
640 });
641 };
642
643 wp.media.frames.frame.on('close', media_set_image);
644 wp.media.frames.frame.on('select', media_set_image);
645 wp.media.frames.frame.open();
646 });
647 });
648 }
649
650 // =============== ASE PRO =================
651
652 if ( asenhaStats.hideUpgradeNudge ) {
653 $('.asenha-upgrade-nudge').hide();
654 $('#bottom-upgrade-nudge').show();
655 } else {
656 $('.asenha-upgrade-nudge').show();
657 $('#bottom-upgrade-nudge').hide();
658 }
659
660 $('#dismiss-upgrade-nudge').click(function(e) {
661 e.preventDefault();
662 $.ajax({
663 url: ajaxurl,
664 data: {
665 'action':'dismiss_upgrade_nudge'
666 },
667 success:function(data) {
668 $('.asenha-upgrade-nudge').hide();
669 // $('#bottom-upgrade-nudge').show();
670 },
671 error:function(errorThrown) {
672 console.log(errorThrown);
673 }
674 });
675 });
676
677 // =============== SPONSORSHIP =================
678
679 // Stats on saving changes from asenha_admin_scripts() wp_localize_script() is availble in the 'asenhaStats' object-----
680 // console.log( asenhaStats );
681 // alert(JSON.stringify(asenhaStats));
682 if ( asenhaStats.showSponsorshipNudge ) {
683 $('.asenha-sponsorship-nudge').show();
684 } else {
685 $('.asenha-sponsorship-nudge').hide();
686 }
687
688 $('#have-sponsored').click(function(e) {
689 e.preventDefault();
690 $.ajax({
691 url: 'https://bowo.io/asenha-sp-ndg',
692 method: 'GET',
693 dataType: 'jsonp',
694 crossDomain: true
695 });
696 $.ajax({
697 url: ajaxurl,
698 data: {
699 'action':'have_sponsored'
700 },
701 success:function(data) {
702 $('.asenha-sponsorship-nudge').hide();
703 },
704 error:function(errorThrown) {
705 console.log(errorThrown);
706 }
707 });
708 });
709
710 $('#sponsorship-nudge-dismiss').click(function(e) {
711 e.preventDefault();
712 $.ajax({
713 url: 'https://bowo.io/asenha-sp-ndg',
714 method: 'GET',
715 dataType: 'jsonp',
716 crossDomain: true
717 });
718 $.ajax({
719 url: ajaxurl,
720 data: {
721 'action':'dismiss_sponsorship_nudge'
722 },
723 success:function(data) {
724 $('.asenha-sponsorship-nudge').hide();
725 },
726 error:function(errorThrown) {
727 console.log(errorThrown);
728 }
729 });
730 });
731
732 // Expand sponsorship notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
733 $('.asenha-sponsorship-nudge.nudge-show-more > .show-more').click(function(e) {
734
735 e.preventDefault();
736
737 var $this = $(this);
738 $this.toggleClass('show-more');
739 $this.hide();
740
741 if ($this.hasClass('show-more')) {
742 $this.next().removeClass('opened',0);
743 } else {
744 $this.next().addClass('opened',0);
745 }
746
747 });
748
749 // Collapse sponsorship notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
750 $('#sponsorship-nudge-show-less').click(function(e) {
751
752 e.preventDefault();
753
754 $('.nudge-wrapper-show-more').removeClass('opened',0);
755 $('#sponsorship-nudge-show-moreless').addClass('show-more');
756 $('#sponsorship-nudge-show-moreless').show();
757
758 });
759
760
761
762 // Modal for sponsoring plugin dev and maintenance: https://stephanwagner.me/jBox
763
764 // var sponsorModal = new jBox('Modal', {
765 // attach: '#plugin-sponsor',
766 // trigger: 'click', // or 'mouseenter'
767 // // content: 'Test'
768 // content: $('#asenha-sponsor'),
769 // width: 740, // pixels
770 // closeButton: 'box',
771 // addClass: 'plugin-sponsor-modal',
772 // overlayClass: 'plugin-sponsor-modal-overlay',
773 // target: '#wpwrap', // where to anchor the modal
774 // position: {
775 // x: 'center',
776 // y: 'top'
777 // },
778 // // fade: 1000,
779 // animation: {
780 // open: 'slide:top',
781 // close: 'slide:top'
782 // }
783 // });
784
785 // $('#plugin-sponsor').click( function() {
786 // $.ajax({
787 // url: 'https://bowo.io/asenha-sp-btn',
788 // method: 'GET',
789 // dataType: 'jsonp',
790 // crossDomain: true
791 // // success: function(response) {
792 // // console.log(response);
793 // // }
794 // });
795 // });
796
797 }); // END OF $(document).ready()
798
799 })( jQuery );