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