PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 7.1.2
Admin and Site Enhancements (ASE) v7.1.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
879 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 // Clean Up Admin Bar
580 subfieldsToggler( 'hide_modify_elements', 'hide-modify-elements' );
581
582 subfieldsToggler( 'hide_admin_bar', 'hide-admin-bar' );
583 subfieldsToggler( 'change_login_url', 'change-login-url' );
584 subfieldsToggler( 'login_id_type_restriction', 'login-id-type-restriction' );
585
586 subfieldsToggler( 'redirect_after_login', 'redirect-after-login' );
587 subfieldsToggler( 'redirect_after_logout', 'redirect-after-logout' );
588 subfieldsToggler( 'enable_custom_admin_css', 'enable-custom-admin-css', '', {adminCssEditor} );
589 subfieldsToggler( 'enable_custom_frontend_css', 'enable-custom-frontend-css', '', {frontendCssEditor} );
590 subfieldsToggler( 'insert_head_body_footer_code', 'insert-head-body-footer-code', '', {headCodeEditor,bodyCodeEditor,footerCodeEditor} );
591 subfieldsToggler( 'enable_custom_body_class', 'enable-custom-body-class' );
592 subfieldsToggler( 'manage_ads_appads_txt', 'manage-ads-appads-txt', '', {adsTxtEditor,appAdsTxtEditor} );
593 subfieldsToggler( 'manage_robots_txt', 'manage-robots-txt', '', {robotsTxtEditor} );
594
595 subfieldsToggler( 'disable_gutenberg', 'disable-gutenberg' );
596 subfieldsToggler( 'disable_comments', 'disable-comments' );
597 subfieldsToggler( 'disable_smaller_components', 'disable-smaller-components' );
598 subfieldsToggler( 'limit_login_attempts', 'limit-login-attempts' );
599 subfieldsToggler( 'obfuscate_email_address', 'obfuscate-email-address' );
600 subfieldsToggler( 'image_upload_control', 'image-upload-control' );
601 subfieldsToggler( 'enable_revisions_control', 'enable-revisions-control' );
602 subfieldsToggler( 'enable_heartbeat_control', 'enable-heartbeat-control' );
603
604
605 // Enable Heartbeat Control => Check if "Modify interval" is chosen/clicked and show/hide the corresponding select field
606 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]:checked').val() == 'modify' ) {
607 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
608 }
609
610 $('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]').click(function() {
611 var radioValue = $(this).attr('value');
612 if ( radioValue == 'modify' ) {
613 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
614 } else {
615 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').hide();
616 }
617 });
618
619 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]:checked').val() == 'modify' ) {
620 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
621 }
622
623 $('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]').click(function() {
624 var radioValue = $(this).attr('value');
625 if ( radioValue == 'modify' ) {
626 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
627 } else {
628 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').hide();
629 }
630 });
631
632 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]:checked').val() == 'modify' ) {
633 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
634 }
635
636 $('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]').click(function() {
637 var radioValue = $(this).attr('value');
638 if ( radioValue == 'modify' ) {
639 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
640 } else {
641 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').hide();
642 }
643 });
644
645 subfieldsToggler( 'smtp_email_delivery', 'smtp-email-delivery' );
646
647 // SMTP Email Delivery => Empty field value on click, so new password can be easily entered
648 var oldSmtpPassValue = '';
649
650 $('input[name="admin_site_enhancements[smtp_password]"]').focusin(function() {
651 oldSmtpPassValue = $(this).val();
652 $(this).val('');
653 });
654
655 $('input[name="admin_site_enhancements[smtp_password]"]').focusout(function() {
656 if ( $(this).val() == '' ) {
657 $(this).val(oldSmtpPassValue);
658 }
659 });
660
661 subfieldsToggler( 'view_admin_as_role', 'view-admin-as-role' );
662 subfieldsToggler( 'enable_password_protection', 'enable-password-protection' );
663
664 // Enable Password protection => Empty field value on click, so new password can be easily entered
665 var oldValue = '';
666 $('input[name="admin_site_enhancements[password_protection_password]"]').focusin(function() {
667 oldValue = $(this).val();
668 $(this).val('');
669 });
670
671 $('input[name="admin_site_enhancements[password_protection_password]"]').focusout(function() {
672 if ( $(this).val() == '' ) {
673 $(this).val(oldValue);
674 }
675 });
676
677
678 subfieldsToggler( 'maintenance_mode', 'maintenance-mode' );
679
680
681
682
683
684
685 // Media frame handler for image selection / upload fields
686 // Reference: https://plugins.trac.wordpress.org/browser/bm-custom-login/trunk/bm-custom-login.php
687 function media_frame_init( selector, button_selector ) {
688 var theSelector = $(selector);
689 var button = $(button_selector);
690
691 button.click(function (event) {
692 event.preventDefault();
693
694 // Configuration of the media frame new instance
695 wp.media.frames.frame = wp.media({
696 title: adminPageVars.mediaFrameTitle,
697 multiple: false,
698 library: {
699 type: 'image'
700 },
701 button: {
702 text: adminPageVars.mediaFrameButtonText
703 }
704 });
705
706 // Function used for the image selection and media manager closing
707 var media_set_image = function() {
708 var selection = wp.media.frames.frame.state().get('selection');
709
710 // Nothing is selected
711 if (!selection) {
712 return;
713 }
714
715 // Iterate through selected elements
716 selection.each(function(attachment) {
717 // console.log(attachment);
718 var url = attachment.attributes.url;
719 url = url.replace( adminPageVars.wpcontentUrl, '' );
720 theSelector.val(url);
721 });
722 };
723
724 wp.media.frames.frame.on('close', media_set_image);
725 wp.media.frames.frame.on('select', media_set_image);
726 wp.media.frames.frame.open();
727 });
728 }
729
730 // =============== ASE PRO =================
731
732 if ( asenhaStats.hideUpgradeNudge ) {
733 $('.asenha-upgrade-nudge').hide();
734 $('#bottom-upgrade-nudge').show();
735 } else {
736 $('.asenha-upgrade-nudge').show();
737 $('#bottom-upgrade-nudge').hide();
738 }
739
740 $('#dismiss-upgrade-nudge').click(function(e) {
741 e.preventDefault();
742 $.ajax({
743 url: ajaxurl,
744 data: {
745 'action':'dismiss_upgrade_nudge'
746 },
747 success:function(data) {
748 $('.asenha-upgrade-nudge').hide();
749 // $('#bottom-upgrade-nudge').show();
750 },
751 error:function(errorThrown) {
752 console.log(errorThrown);
753 }
754 });
755 });
756
757 // =============== SPONSORSHIP =================
758
759 // Stats on saving changes from asenha_admin_scripts() wp_localize_script() is availble in the 'asenhaStats' object-----
760 // console.log( asenhaStats );
761 // alert(JSON.stringify(asenhaStats));
762 if ( asenhaStats.showSupportNudge ) {
763 $('.asenha-support-nudge').show();
764 } else {
765 $('.asenha-support-nudge').hide();
766 }
767
768 $('#have-shared,#have-reviewed').click(function(e) {
769 e.preventDefault();
770 $.ajax({
771 url: 'https://bowo.io/asenha-sp-ndg',
772 method: 'GET',
773 dataType: 'jsonp',
774 crossDomain: true
775 });
776 $.ajax({
777 url: ajaxurl,
778 data: {
779 'action':'have_supported'
780 },
781 success:function(data) {
782 $('.asenha-support-nudge').hide();
783 },
784 error:function(errorThrown) {
785 console.log(errorThrown);
786 }
787 });
788 });
789
790 $('#support-nudge-dismiss').click(function(e) {
791 e.preventDefault();
792 $.ajax({
793 url: 'https://bowo.io/asenha-sp-ndg',
794 method: 'GET',
795 dataType: 'jsonp',
796 crossDomain: true
797 });
798 $.ajax({
799 url: ajaxurl,
800 data: {
801 'action':'dismiss_support_nudge'
802 },
803 success:function(data) {
804 $('.asenha-support-nudge').hide();
805 },
806 error:function(errorThrown) {
807 console.log(errorThrown);
808 }
809 });
810 });
811
812 // Expand support notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
813 $('.asenha-support-nudge.nudge-show-more > .show-more').click(function(e) {
814
815 e.preventDefault();
816
817 var $this = $(this);
818 $this.toggleClass('show-more');
819 $this.hide();
820
821 if ($this.hasClass('show-more')) {
822 $this.next().removeClass('opened',0);
823 } else {
824 $this.next().addClass('opened',0);
825 }
826
827 });
828
829 // Collapse support notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
830 $('#support-nudge-show-less').click(function(e) {
831
832 e.preventDefault();
833
834 $('.nudge-wrapper-show-more').removeClass('opened',0);
835 $('#support-nudge-show-moreless').addClass('show-more');
836 $('#support-nudge-show-moreless').show();
837
838 });
839
840
841
842 // Modal for sponsoring plugin dev and maintenance: https://stephanwagner.me/jBox
843
844 // var sponsorModal = new jBox('Modal', {
845 // attach: '#plugin-sponsor',
846 // trigger: 'click', // or 'mouseenter'
847 // // content: 'Test'
848 // content: $('#asenha-sponsor'),
849 // width: 740, // pixels
850 // closeButton: 'box',
851 // addClass: 'plugin-sponsor-modal',
852 // overlayClass: 'plugin-sponsor-modal-overlay',
853 // target: '#wpwrap', // where to anchor the modal
854 // position: {
855 // x: 'center',
856 // y: 'top'
857 // },
858 // // fade: 1000,
859 // animation: {
860 // open: 'slide:top',
861 // close: 'slide:top'
862 // }
863 // });
864
865 // $('#plugin-sponsor').click( function() {
866 // $.ajax({
867 // url: 'https://bowo.io/asenha-sp-btn',
868 // method: 'GET',
869 // dataType: 'jsonp',
870 // crossDomain: true
871 // // success: function(response) {
872 // // console.log(response);
873 // // }
874 // });
875 // });
876
877 }); // END OF $(document).ready()
878
879 })( jQuery );