PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 6.2.2
Admin and Site Enhancements (ASE) v6.2.2
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
796 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 $('.login-attempts-log-table').appendTo('.fields-security .limit-login-attempts .asenha-subfields');
215 $('.obfuscate-author-slugs').appendTo('.fields-security > table > tbody');
216 $('.obfuscate-email-address').appendTo('.fields-security > table > tbody');
217 $('.obfuscate-email-address-description').appendTo('.fields-security .obfuscate-email-address .asenha-subfields');
218 $('.obfuscate-email-address-in-content').appendTo('.fields-security .obfuscate-email-address .asenha-subfields');
219 $('.disable-xmlrpc').appendTo('.fields-security > table > tbody');
220
221 // Place fields into "Optimizations" tab
222 $('.image-upload-control').appendTo('.fields-optimizations > table > tbody');
223 $('.image-max-width').appendTo('.fields-optimizations .image-upload-control .asenha-subfields');
224 $('.image-max-height').appendTo('.fields-optimizations .image-upload-control .asenha-subfields');
225
226 $('.image-upload-control-description').appendTo('.fields-optimizations .image-upload-control .asenha-subfields');
227 $('.enable-revisions-control').appendTo('.fields-optimizations > table > tbody');
228 $('.revisions-max-number').appendTo('.fields-optimizations .enable-revisions-control .asenha-subfields');
229 $('.enable-revisions-control-for').appendTo('.fields-optimizations .enable-revisions-control .asenha-subfields');
230 $('.enable-heartbeat-control').appendTo('.fields-optimizations > table > tbody');
231 $('.heartbeat-control-for-admin-pages').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
232 $('.heartbeat-interval-for-admin-pages').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
233 $('.heartbeat-control-for-post-edit').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
234 $('.heartbeat-interval-for-post-edit').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
235 $('.heartbeat-control-for-frontend').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
236 $('.heartbeat-interval-for-frontend').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
237
238 // Place fields into "Utilities" tab
239 $('.smtp-email-delivery').appendTo('.fields-utilities > table > tbody');
240 $('.smtp-default-from-description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
241 $('.smtp-default-from-name').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
242 $('.smtp-default-from-email').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
243 $('.smtp-force-from').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
244 $('.smtp--description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
245 $('.smtp-host').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
246 $('.smtp-port').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
247 $('.smtp-security').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
248 $('.smtp-username').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
249 $('.smtp-password').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
250 $('.smtp-debug').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
251 $('.smtp-send-test-email-description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
252 $('.smtp-send-test-email-to').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
253 $('.smtp-send-test-email-result').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
254
255 $('.multiple-user-roles').appendTo('.fields-utilities > table > tbody');
256 $('.view-admin-as-role').appendTo('.fields-utilities > table > tbody');
257 $('.view-admin-as-role-description').appendTo('.fields-utilities .view-admin-as-role .asenha-subfields');
258 $('.enable-password-protection').appendTo('.fields-utilities > table > tbody');
259 $('.password-protection-password').appendTo('.fields-utilities .enable-password-protection .asenha-subfields');
260 $('.maintenance-mode').appendTo('.fields-utilities > table > tbody');
261 $('.maintenance-page-heading').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
262 $('.maintenance-page-description').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
263 $('.maintenance-page-background').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
264
265 $('.maintenance-mode-description').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
266 $('.redirect-404-to-homepage').appendTo('.fields-utilities > table > tbody');
267 $('.display-system-summary').appendTo('.fields-utilities > table > tbody');
268
269 // Remove empty .form-table that originally holds the fields
270 const formTableCount = $('.form-table').length;
271 // $('.form-table')[formTableCount-1].remove();
272
273 // Enable Custom Admin CSS => Initialize CodeMirror
274 var adminCssTextarea = document.getElementById("admin_site_enhancements[custom_admin_css]");
275 // if ( typeof CodeMirror != "undefined" ) {
276 // alert('CodeMirror is available');
277 // }
278 var adminCssEditor = CodeMirror.fromTextArea(adminCssTextarea, {
279 mode: "css",
280 lineNumbers: true,
281 lineWrapping: true
282 });
283
284 adminCssEditor.setSize("100%",600);
285
286 // Enable Custom Frontend CSS => Initialize CodeMirror
287 var frontendCssTextarea = document.getElementById("admin_site_enhancements[custom_frontend_css]");
288 var frontendCssEditor = CodeMirror.fromTextArea(frontendCssTextarea, {
289 mode: "css",
290 lineNumbers: true,
291 lineWrapping: true
292 });
293
294 frontendCssEditor.setSize("100%",600);
295
296 // Manage ads.txt and app-ads.txt=> Initialize CodeMirror
297 var adsTxtTextarea = document.getElementById("admin_site_enhancements[ads_txt_content]");
298 var adsTxtEditor = CodeMirror.fromTextArea(adsTxtTextarea, {
299 mode: "markdown",
300 lineNumbers: true,
301 lineWrapping: true
302 });
303
304 adsTxtEditor.setSize("100%",300);
305
306 var appAdsTxtTextarea = document.getElementById("admin_site_enhancements[app_ads_txt_content]");
307 var appAdsTxtEditor = CodeMirror.fromTextArea(appAdsTxtTextarea, {
308 mode: "markdown",
309 lineNumbers: true,
310 lineWrapping: true
311 });
312
313 appAdsTxtEditor.setSize("100%",300);
314
315 // Manage robots.txt => Initialize CodeMirror
316 var robotsTxtTextarea = document.getElementById("admin_site_enhancements[robots_txt_content]");
317 var robotsTxtEditor = CodeMirror.fromTextArea(robotsTxtTextarea, {
318 mode: "markdown",
319 lineNumbers: true,
320 lineWrapping: true
321 });
322
323 robotsTxtEditor.setSize("100%",400);
324
325 // Insert <head>, <body> and <footer> code => Initialize CodeMirror
326 var headCodeTextarea = document.getElementById("admin_site_enhancements[head_code]");
327 var headCodeEditor = CodeMirror.fromTextArea(headCodeTextarea, {
328 mode: "htmlmixed",
329 lineNumbers: true,
330 lineWrapping: true
331 });
332 headCodeEditor.setSize("100%",300);
333
334 var bodyCodeTextarea = document.getElementById("admin_site_enhancements[body_code]");
335 var bodyCodeEditor = CodeMirror.fromTextArea(bodyCodeTextarea, {
336 mode: "htmlmixed",
337 lineNumbers: true,
338 lineWrapping: true
339 });
340 bodyCodeEditor.setSize("100%",300);
341
342 var footerCodeTextarea = document.getElementById("admin_site_enhancements[footer_code]");
343 var footerCodeEditor = CodeMirror.fromTextArea(footerCodeTextarea, {
344 mode: "htmlmixed",
345 lineNumbers: true,
346 lineWrapping: true
347 });
348 footerCodeEditor.setSize("100%",300);
349
350 // Show and hide corresponding fields on tab clicks
351
352 $('#tab-content-management + label').click( function() {
353 $('.fields-content-management').show();
354 $('.asenha-fields:not(.fields-content-management)').hide();
355 window.location.hash = 'content-management';
356 Cookies.set('asenha_tab', 'content-management', { expires: 1 }); // expires in 1 day
357 });
358
359 $('#tab-admin-interface + label').click( function() {
360 $('.fields-admin-interface').show();
361 $('.asenha-fields:not(.fields-admin-interface)').hide();
362 window.location.hash = 'admin-interface';
363 Cookies.set('asenha_tab', 'admin-interface', { expires: 1 }); // expires in 1 day
364 });
365
366 $('#tab-login-logout + label').click( function() {
367 $('.fields-login-logout').show();
368 $('.asenha-fields:not(.fields-login-logout)').hide();
369 window.location.hash = 'login-logout';
370 Cookies.set('asenha_tab', 'login-logout', { expires: 1 }); // expires in 1 day
371 });
372
373 $('#tab-custom-code + label').click( function() {
374 $('.fields-custom-code').show();
375 $('.asenha-fields:not(.fields-custom-code)').hide();
376 window.location.hash = 'custom-code';
377 Cookies.set('asenha_tab', 'custom-code', { expires: 1 }); // expires in 1 day
378 adminCssEditor.refresh(); // Custom Admin CSS >> CodeMirror
379 frontendCssEditor.refresh(); // Custom Fronend CSS >> CodeMirror
380 adsTxtEditor.refresh(); // Manage ads.txt >> CodeMirror
381 appAdsTxtEditor.refresh(); // Manage app-ads.txt >> CodeMirror
382 headCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
383 bodyCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
384 footerCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
385 robotsTxtEditor.refresh(); // Manage robots.txt >> CodeMirror
386 });
387
388 $('#tab-disable-components + label').click( function() {
389 $('.fields-disable-components').show();
390 $('.asenha-fields:not(.fields-disable-components)').hide();
391 window.location.hash = 'disable-components';
392 Cookies.set('asenha_tab', 'disable-components', { expires: 1 }); // expires in 1 day
393 });
394
395 $('#tab-security + label').click( function() {
396 $('.fields-security').show();
397 $('.asenha-fields:not(.fields-security)').hide();
398 window.location.hash = 'security';
399 Cookies.set('asenha_tab', 'security', { expires: 1 }); // expires in 1 day
400 });
401
402 $('#tab-optimizations + label').click( function() {
403 $('.fields-optimizations').show();
404 $('.asenha-fields:not(.fields-optimizations)').hide();
405 window.location.hash = 'optimizations';
406 Cookies.set('asenha_tab', 'optimizations', { expires: 1 }); // expires in 1 day
407 });
408
409 $('#tab-utilities + label').click( function() {
410 $('.fields-utilities').show();
411 $('.asenha-fields:not(.fields-utilities)').hide();
412 window.location.hash = 'utilities';
413 Cookies.set('asenha_tab', 'utilities', { expires: 1 }); // expires in 1 day
414 });
415
416 // Open tab set in 'asenha_tab' cookie set on saving changes. Defaults to content-management tab when cookie is empty
417 var asenhaTabHash = Cookies.get('asenha_tab');
418
419 if (typeof asenhaTabHash === 'undefined') {
420 $('#tab-content-management + label').trigger('click');
421 } else {
422 $('#tab-' + asenhaTabHash + ' + label').trigger('click');
423 }
424
425 // Show or hide subfields on document ready and on toggle click
426
427 function subfieldsToggler( fieldId, fieldClass, sortableId, codeMirrorInstances ) {
428
429 if (document.getElementById('admin_site_enhancements['+fieldId+']')) {
430
431 // Show/hide subfields on document ready, depending on if module is enabled or not
432 if ( document.getElementById('admin_site_enhancements['+fieldId+']').checked ) {
433
434 $('.'+fieldClass+' .asenha-subfields').show();
435 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
436 $('.'+fieldClass+' .asenha-subfield-select-inner').show();
437 }
438 $('.asenha-toggle.'+fieldClass+' td .asenha-field-with-options').addClass('is-enabled');
439 if ( codeMirrorInstances ) {
440 Object.keys(codeMirrorInstances).forEach(function(key) {
441 codeMirrorInstances[key].refresh();
442 });
443 }
444
445 } else {
446
447 $('.'+fieldClass+' .asenha-subfields').hide();
448 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
449 $('.'+fieldClass+' .asenha-subfield-select-inner').hide();
450 }
451
452 }
453
454 // Show/hide subfields on toggle click
455 document.getElementById('admin_site_enhancements['+fieldId+']').addEventListener('click', event => {
456 if (event.target.checked) {
457
458 $('.'+fieldClass+' .asenha-subfields').fadeIn();
459 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
460 $('.'+fieldClass+' .asenha-subfield-select-inner').show();
461 }
462 $('.'+fieldClass+' .asenha-field-with-options').toggleClass('is-enabled');
463 if (document.getElementById(sortableId)) {
464 // Initialize sortable elements: https://api.jqueryui.com/sortable/
465 $('#' + sortableId ).sortable();
466 }
467 if ( codeMirrorInstances ) {
468 Object.keys(codeMirrorInstances).forEach(function(key) {
469 codeMirrorInstances[key].refresh();
470 });
471 }
472
473 } else {
474
475 $('.'+fieldClass+' .asenha-subfields').hide();
476 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
477 $('.'+fieldClass+' .asenha-subfield-select-inner').hide();
478 }
479 $('.'+fieldClass+' .asenha-field-with-options').toggleClass('is-enabled');
480
481 }
482 });
483
484 }
485
486 }
487
488
489 subfieldsToggler( 'content_order', 'content-order' );
490 subfieldsToggler( 'enable_svg_upload', 'enable-svg-upload' );
491
492 subfieldsToggler( 'enable_external_permalinks', 'enable-external-permalinks' );
493 subfieldsToggler( 'enhance_list_tables', 'enhance-list-tables' );
494 subfieldsToggler( 'wider_admin_menu', 'wider-admin-menu' );
495 subfieldsToggler( 'customize_admin_menu', 'customize-admin-menu', 'custom-admin-menu' );
496 subfieldsToggler( 'disable_dashboard_widgets', 'disable-dashboard-widgets' );
497 // Clean Up Admin Bar
498 subfieldsToggler( 'hide_modify_elements', 'hide-modify-elements' );
499 subfieldsToggler( 'hide_admin_bar', 'hide-admin-bar' );
500 subfieldsToggler( 'change_login_url', 'change-login-url' );
501 subfieldsToggler( 'redirect_after_login', 'redirect-after-login' );
502 subfieldsToggler( 'redirect_after_logout', 'redirect-after-logout' );
503 subfieldsToggler( 'enable_custom_admin_css', 'enable-custom-admin-css', '', {adminCssEditor} );
504 subfieldsToggler( 'enable_custom_frontend_css', 'enable-custom-frontend-css', '', {frontendCssEditor} );
505 subfieldsToggler( 'insert_head_body_footer_code', 'insert-head-body-footer-code', '', {headCodeEditor,bodyCodeEditor,footerCodeEditor} );
506 subfieldsToggler( 'enable_custom_body_class', 'enable-custom-body-class' );
507 subfieldsToggler( 'manage_ads_appads_txt', 'manage-ads-appads-txt', '', {adsTxtEditor,appAdsTxtEditor} );
508 subfieldsToggler( 'manage_robots_txt', 'manage-robots-txt', '', {robotsTxtEditor} );
509 subfieldsToggler( 'disable_gutenberg', 'disable-gutenberg' );
510 subfieldsToggler( 'disable_comments', 'disable-comments' );
511 subfieldsToggler( 'disable_smaller_components', 'disable-smaller-components' );
512 subfieldsToggler( 'limit_login_attempts', 'limit-login-attempts' );
513 subfieldsToggler( 'obfuscate_email_address', 'obfuscate-email-address' );
514 subfieldsToggler( 'image_upload_control', 'image-upload-control' );
515 subfieldsToggler( 'enable_revisions_control', 'enable-revisions-control' );
516 subfieldsToggler( 'enable_heartbeat_control', 'enable-heartbeat-control' );
517
518 // Enable Heartbeat Control => Check if "Modify interval" is chosen/clicked and show/hide the corresponding select field
519 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]:checked').val() == 'modify' ) {
520 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
521 }
522
523 $('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]').click(function() {
524 var radioValue = $(this).attr('value');
525 if ( radioValue == 'modify' ) {
526 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
527 } else {
528 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').hide();
529 }
530 });
531
532 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]:checked').val() == 'modify' ) {
533 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
534 }
535
536 $('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]').click(function() {
537 var radioValue = $(this).attr('value');
538 if ( radioValue == 'modify' ) {
539 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
540 } else {
541 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').hide();
542 }
543 });
544
545 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]:checked').val() == 'modify' ) {
546 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
547 }
548
549 $('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]').click(function() {
550 var radioValue = $(this).attr('value');
551 if ( radioValue == 'modify' ) {
552 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
553 } else {
554 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').hide();
555 }
556 });
557
558 subfieldsToggler( 'smtp_email_delivery', 'smtp-email-delivery' );
559
560 // SMTP Email Delivery => Empty field value on click, so new password can be easily entered
561 var oldSmtpPassValue = '';
562
563 $('input[name="admin_site_enhancements[smtp_password]"]').focusin(function() {
564 oldSmtpPassValue = $(this).val();
565 $(this).val('');
566 });
567
568 $('input[name="admin_site_enhancements[smtp_password]"]').focusout(function() {
569 if ( $(this).val() == '' ) {
570 $(this).val(oldSmtpPassValue);
571 }
572 });
573
574 subfieldsToggler( 'view_admin_as_role', 'view-admin-as-role' );
575 subfieldsToggler( 'enable_password_protection', 'enable-password-protection' );
576
577 // Enable Password protection => Empty field value on click, so new password can be easily entered
578 var oldValue = '';
579 $('input[name="admin_site_enhancements[password_protection_password]"]').focusin(function() {
580 oldValue = $(this).val();
581 $(this).val('');
582 });
583
584 $('input[name="admin_site_enhancements[password_protection_password]"]').focusout(function() {
585 if ( $(this).val() == '' ) {
586 $(this).val(oldValue);
587 }
588 });
589
590 subfieldsToggler( 'maintenance_mode', 'maintenance-mode' );
591
592
593
594 // Media frame handler for image selection / upload fields
595 // Source: https://plugins.trac.wordpress.org/browser/bm-custom-login/trunk/bm-custom-login.php
596 function media_frame_init( selector, button_selector ) {
597 var clicked_button = false;
598
599 $(selector).each(function (i, input) {
600 var button = $(input).next(button_selector);
601 button.click(function (event) {
602 event.preventDefault();
603 var selected_img;
604 clicked_button = $(this);
605
606 // Check for media frame instance
607 if(wp.media.frames.frame) {
608 wp.media.frames.frame.open();
609 return;
610 }
611 // Configuration of the media frame new instance
612 wp.media.frames.frame = wp.media({
613 title: adminPageVars.mediaFrameTitle,
614 multiple: false,
615 library: {
616 type: 'image'
617 },
618 button: {
619 text: adminPageVars.mediaFrameButtonText
620 }
621 });
622
623 // Function used for the image selection and media manager closing
624 var media_set_image = function() {
625 var selection = wp.media.frames.frame.state().get('selection');
626
627 // no selection
628 if (!selection) {
629 return;
630 }
631
632 // Iterate through selected elements
633 selection.each(function(attachment) {
634 // console.log(attachment);
635 var url = attachment.attributes.url;
636 clicked_button.prev(selector).val(url);
637 });
638 };
639
640 wp.media.frames.frame.on('close', media_set_image);
641 wp.media.frames.frame.on('select', media_set_image);
642 wp.media.frames.frame.open();
643 });
644 });
645 }
646
647 // =============== ASE PRO =================
648
649 if ( asenhaStats.hideUpgradeNudge ) {
650 $('.asenha-upgrade-nudge').hide();
651 $('#bottom-upgrade-nudge').show();
652 } else {
653 $('.asenha-upgrade-nudge').show();
654 $('#bottom-upgrade-nudge').hide();
655 }
656
657 $('#dismiss-upgrade-nudge').click(function(e) {
658 e.preventDefault();
659 $.ajax({
660 url: ajaxurl,
661 data: {
662 'action':'dismiss_upgrade_nudge'
663 },
664 success:function(data) {
665 $('.asenha-upgrade-nudge').hide();
666 // $('#bottom-upgrade-nudge').show();
667 },
668 error:function(errorThrown) {
669 console.log(errorThrown);
670 }
671 });
672 });
673
674 // =============== SPONSORSHIP =================
675
676 // Stats on saving changes from asenha_admin_scripts() wp_localize_script() is availble in the 'asenhaStats' object-----
677 // console.log( asenhaStats );
678 // alert(JSON.stringify(asenhaStats));
679 if ( asenhaStats.showSponsorshipNudge ) {
680 $('.asenha-sponsorship-nudge').show();
681 } else {
682 $('.asenha-sponsorship-nudge').hide();
683 }
684
685 $('#have-sponsored').click(function(e) {
686 e.preventDefault();
687 $.ajax({
688 url: 'https://bowo.io/asenha-sp-ndg',
689 method: 'GET',
690 dataType: 'jsonp',
691 crossDomain: true
692 });
693 $.ajax({
694 url: ajaxurl,
695 data: {
696 'action':'have_sponsored'
697 },
698 success:function(data) {
699 $('.asenha-sponsorship-nudge').hide();
700 },
701 error:function(errorThrown) {
702 console.log(errorThrown);
703 }
704 });
705 });
706
707 $('#sponsorship-nudge-dismiss').click(function(e) {
708 e.preventDefault();
709 $.ajax({
710 url: 'https://bowo.io/asenha-sp-ndg',
711 method: 'GET',
712 dataType: 'jsonp',
713 crossDomain: true
714 });
715 $.ajax({
716 url: ajaxurl,
717 data: {
718 'action':'dismiss_sponsorship_nudge'
719 },
720 success:function(data) {
721 $('.asenha-sponsorship-nudge').hide();
722 },
723 error:function(errorThrown) {
724 console.log(errorThrown);
725 }
726 });
727 });
728
729 // Expand sponsorship notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
730 $('.asenha-sponsorship-nudge.nudge-show-more > .show-more').click(function(e) {
731
732 e.preventDefault();
733
734 var $this = $(this);
735 $this.toggleClass('show-more');
736 $this.hide();
737
738 if ($this.hasClass('show-more')) {
739 $this.next().removeClass('opened',0);
740 } else {
741 $this.next().addClass('opened',0);
742 }
743
744 });
745
746 // Collapse sponsorship notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
747 $('#sponsorship-nudge-show-less').click(function(e) {
748
749 e.preventDefault();
750
751 $('.nudge-wrapper-show-more').removeClass('opened',0);
752 $('#sponsorship-nudge-show-moreless').addClass('show-more');
753 $('#sponsorship-nudge-show-moreless').show();
754
755 });
756
757
758
759 // Modal for sponsoring plugin dev and maintenance: https://stephanwagner.me/jBox
760
761 // var sponsorModal = new jBox('Modal', {
762 // attach: '#plugin-sponsor',
763 // trigger: 'click', // or 'mouseenter'
764 // // content: 'Test'
765 // content: $('#asenha-sponsor'),
766 // width: 740, // pixels
767 // closeButton: 'box',
768 // addClass: 'plugin-sponsor-modal',
769 // overlayClass: 'plugin-sponsor-modal-overlay',
770 // target: '#wpwrap', // where to anchor the modal
771 // position: {
772 // x: 'center',
773 // y: 'top'
774 // },
775 // // fade: 1000,
776 // animation: {
777 // open: 'slide:top',
778 // close: 'slide:top'
779 // }
780 // });
781
782 // $('#plugin-sponsor').click( function() {
783 // $.ajax({
784 // url: 'https://bowo.io/asenha-sp-btn',
785 // method: 'GET',
786 // dataType: 'jsonp',
787 // crossDomain: true
788 // // success: function(response) {
789 // // console.log(response);
790 // // }
791 // });
792 // });
793
794 }); // END OF $(document).ready()
795
796 })( jQuery );