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