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