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