PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 7.0.2
Admin and Site Enhancements (ASE) v7.0.2
9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 8.3.2 8.4.0 8.4.1 8.4.2 8.5.0 8.5.1 8.5.2 8.6.0 8.6.1 8.6.2 8.7.0 5.0.1 5.0.2 5.0.2.1 5.0.2.2 5.0.2.3 5.0.2.4 5.1.0 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.8.0 5.8.1 6.0.0 6.0.3 6.0.4 6.0.5 6.0.5.1 6.0.6 6.0.7 6.0.8.1 6.1.0 6.1.3 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.3.0 6.3.1 6.3.2 6.4.0 6.5.0 6.5.1 6.6.0 6.7.0 6.8.0 6.8.2 6.8.3 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13.1 6.9.13.2 6.9.2 6.9.3 6.9.4 6.9.5 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.2 7.0.2.1 7.0.2.2 7.0.2.3 7.0.3 7.1.0 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2.0 7.2.1 7.3.0 7.3.1 7.3.2 7.3.3 7.4.0 7.4.2 7.4.4 7.4.5 7.4.6 7.4.7 7.4.8 7.5.0 7.5.1 7.5.2 7.5.3 7.5.4 7.6.0 7.6.1 7.6.1.1 7.6.10 7.6.11 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 7.6.7.1 7.6.8 7.6.9 7.7.0 7.8.0 7.8.1 7.8.10 7.8.11 7.8.12 7.8.13 7.8.14 7.8.15 7.8.16 7.8.17 7.8.18 7.8.2 7.8.3 7.8.4 7.8.5 7.8.5.1 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1 7.9.10 7.9.11 7.9.2 7.9.3 7.9.4 7.9.5 7.9.6 7.9.7 7.9.8 7.9.9 8.0.0 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.0.6 8.0.7 8.0.8 8.1.0 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.2.0 3.3.0 3.4.0 3.5.0 3.6.1 3.7.0 3.8.0 3.9.0 3.9.1 3.9.2 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.9.0 4.9.1 4.9.2 4.9.3 5.0.0
admin-site-enhancements / assets / js / admin-page.js
admin-site-enhancements / assets / js Last commit date
codemirror 2 years ago datatables 2 years ago admin-page.js 2 years ago content-order-sort.js 2 years ago custom-admin-menu.js 2 years ago external-permalinks.js 2 years ago 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
876 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 $('.smtp-send-test-email-description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
294 $('.smtp-send-test-email-to').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
295 $('.smtp-send-test-email-result').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
296
297 $('.multiple-user-roles').appendTo('.fields-utilities > table > tbody');
298 $('.image-sizes-panel').appendTo('.fields-utilities > table > tbody');
299 $('.view-admin-as-role').appendTo('.fields-utilities > table > tbody');
300 $('.view-admin-as-role-description').appendTo('.fields-utilities .view-admin-as-role .asenha-subfields');
301 $('.enable-password-protection').appendTo('.fields-utilities > table > tbody');
302 $('.password-protection-password').appendTo('.fields-utilities .enable-password-protection .asenha-subfields');
303
304 $('.maintenance-mode').appendTo('.fields-utilities > table > tbody');
305
306 $('.maintenance-page-heading').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
307 reinitWpEditor('admin_site_enhancements--maintenance_page_heading');
308 $('.maintenance-page-description').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
309 reinitWpEditor('admin_site_enhancements--maintenance_page_description');
310 $('.maintenance-page-background').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
311
312 $('.maintenance-mode-description').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
313 $('.redirect-404-to-homepage').appendTo('.fields-utilities > table > tbody');
314
315 $('.display-system-summary').appendTo('.fields-utilities > table > tbody');
316 $('.search-engine-visibility-status').appendTo('.fields-utilities > table > tbody');
317
318
319 // Remove empty .form-table that originally holds the fields
320 const formTableCount = $('.form-table').length;
321 // $('.form-table')[formTableCount-1].remove();
322
323 // Enable Custom Admin CSS => Initialize CodeMirror
324 var adminCssTextarea = document.getElementById("admin_site_enhancements[custom_admin_css]");
325 // if ( typeof CodeMirror != "undefined" ) {
326 // alert('CodeMirror is available');
327 // }
328 var adminCssEditor = CodeMirror.fromTextArea(adminCssTextarea, {
329 mode: "css",
330 lineNumbers: true,
331 lineWrapping: true
332 });
333
334 adminCssEditor.setSize("100%",600);
335
336 // Enable Custom Frontend CSS => Initialize CodeMirror
337 var frontendCssTextarea = document.getElementById("admin_site_enhancements[custom_frontend_css]");
338 var frontendCssEditor = CodeMirror.fromTextArea(frontendCssTextarea, {
339 mode: "css",
340 lineNumbers: true,
341 lineWrapping: true
342 });
343
344 frontendCssEditor.setSize("100%",600);
345
346 // Manage ads.txt and app-ads.txt=> Initialize CodeMirror
347 var adsTxtTextarea = document.getElementById("admin_site_enhancements[ads_txt_content]");
348 var adsTxtEditor = CodeMirror.fromTextArea(adsTxtTextarea, {
349 mode: "markdown",
350 lineNumbers: true,
351 lineWrapping: true
352 });
353
354 adsTxtEditor.setSize("100%",300);
355
356 var appAdsTxtTextarea = document.getElementById("admin_site_enhancements[app_ads_txt_content]");
357 var appAdsTxtEditor = CodeMirror.fromTextArea(appAdsTxtTextarea, {
358 mode: "markdown",
359 lineNumbers: true,
360 lineWrapping: true
361 });
362
363 appAdsTxtEditor.setSize("100%",300);
364
365 // Manage robots.txt => Initialize CodeMirror
366 var robotsTxtTextarea = document.getElementById("admin_site_enhancements[robots_txt_content]");
367 var robotsTxtEditor = CodeMirror.fromTextArea(robotsTxtTextarea, {
368 mode: "markdown",
369 lineNumbers: true,
370 lineWrapping: true
371 });
372
373 robotsTxtEditor.setSize("100%",400);
374
375 // Insert <head>, <body> and <footer> code => Initialize CodeMirror
376 var headCodeTextarea = document.getElementById("admin_site_enhancements[head_code]");
377 var headCodeEditor = CodeMirror.fromTextArea(headCodeTextarea, {
378 mode: "htmlmixed",
379 lineNumbers: true,
380 lineWrapping: true
381 });
382 headCodeEditor.setSize("100%",300);
383
384 var bodyCodeTextarea = document.getElementById("admin_site_enhancements[body_code]");
385 var bodyCodeEditor = CodeMirror.fromTextArea(bodyCodeTextarea, {
386 mode: "htmlmixed",
387 lineNumbers: true,
388 lineWrapping: true
389 });
390 bodyCodeEditor.setSize("100%",300);
391
392 var footerCodeTextarea = document.getElementById("admin_site_enhancements[footer_code]");
393 var footerCodeEditor = CodeMirror.fromTextArea(footerCodeTextarea, {
394 mode: "htmlmixed",
395 lineNumbers: true,
396 lineWrapping: true
397 });
398 footerCodeEditor.setSize("100%",300);
399
400
401
402 // Show and hide corresponding fields on tab clicks
403
404 $('#tab-content-management + label').click( function() {
405 $('.fields-content-management').show();
406 $('.asenha-fields:not(.fields-content-management)').hide();
407 window.location.hash = 'content-management';
408 Cookies.set('asenha_tab', 'content-management', { expires: 1 }); // expires in 1 day
409 });
410
411 $('#tab-admin-interface + label').click( function() {
412 $('.fields-admin-interface').show();
413 $('.asenha-fields:not(.fields-admin-interface)').hide();
414 window.location.hash = 'admin-interface';
415 Cookies.set('asenha_tab', 'admin-interface', { expires: 1 }); // expires in 1 day
416 });
417
418 $('#tab-login-logout + label').click( function() {
419 $('.fields-login-logout').show();
420 $('.asenha-fields:not(.fields-login-logout)').hide();
421 window.location.hash = 'login-logout';
422 Cookies.set('asenha_tab', 'login-logout', { expires: 1 }); // expires in 1 day
423
424 });
425
426 $('#tab-custom-code + label').click( function() {
427 $('.fields-custom-code').show();
428 $('.asenha-fields:not(.fields-custom-code)').hide();
429 window.location.hash = 'custom-code';
430 Cookies.set('asenha_tab', 'custom-code', { expires: 1 }); // expires in 1 day
431 adminCssEditor.refresh(); // Custom Admin CSS >> CodeMirror
432 frontendCssEditor.refresh(); // Custom Fronend CSS >> CodeMirror
433 adsTxtEditor.refresh(); // Manage ads.txt >> CodeMirror
434 appAdsTxtEditor.refresh(); // Manage app-ads.txt >> CodeMirror
435 headCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
436 bodyCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
437 footerCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
438 robotsTxtEditor.refresh(); // Manage robots.txt >> CodeMirror
439 });
440
441 $('#tab-disable-components + label').click( function() {
442 $('.fields-disable-components').show();
443 $('.asenha-fields:not(.fields-disable-components)').hide();
444 window.location.hash = 'disable-components';
445 Cookies.set('asenha_tab', 'disable-components', { expires: 1 }); // expires in 1 day
446 });
447
448 $('#tab-security + label').click( function() {
449 $('.fields-security').show();
450 $('.asenha-fields:not(.fields-security)').hide();
451 window.location.hash = 'security';
452 Cookies.set('asenha_tab', 'security', { expires: 1 }); // expires in 1 day
453 });
454
455 $('#tab-optimizations + label').click( function() {
456 $('.fields-optimizations').show();
457 $('.asenha-fields:not(.fields-optimizations)').hide();
458 window.location.hash = 'optimizations';
459 Cookies.set('asenha_tab', 'optimizations', { expires: 1 }); // expires in 1 day
460 });
461
462 $('#tab-utilities + label').click( function() {
463 $('.fields-utilities').show();
464 $('.asenha-fields:not(.fields-utilities)').hide();
465 window.location.hash = 'utilities';
466 Cookies.set('asenha_tab', 'utilities', { expires: 1 }); // expires in 1 day
467
468 });
469
470 // Open tab set in 'asenha_tab' cookie set on saving changes. Defaults to content-management tab when cookie is empty
471 var asenhaTabHash = Cookies.get('asenha_tab');
472
473 if (typeof asenhaTabHash === 'undefined') {
474 $('#tab-content-management + label').trigger('click');
475 } else {
476 $('#tab-' + asenhaTabHash + ' + label').trigger('click');
477 }
478
479 // Show or hide subfields on document ready and on toggle click
480
481 function subfieldsToggler( fieldId, fieldClass, sortableId, codeMirrorInstances ) {
482
483 if (document.getElementById('admin_site_enhancements['+fieldId+']')) {
484
485 // Show/hide subfields on document ready, depending on if module is enabled or not
486 if ( document.getElementById('admin_site_enhancements['+fieldId+']').checked ) {
487
488 $('.'+fieldClass+' .asenha-subfields').show();
489 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
490 $('.'+fieldClass+' .asenha-subfield-select-inner').show();
491 }
492 $('.asenha-toggle.'+fieldClass+' td .asenha-field-with-options').addClass('is-enabled');
493 if ( codeMirrorInstances ) {
494 Object.keys(codeMirrorInstances).forEach(function(key) {
495 if ( codeMirrorInstances[key] ) {
496 codeMirrorInstances[key].refresh();
497 }
498 });
499 }
500
501 } else {
502
503 $('.'+fieldClass+' .asenha-subfields').hide();
504 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
505 $('.'+fieldClass+' .asenha-subfield-select-inner').hide();
506 }
507
508 }
509
510 // Show/hide subfields on toggle click
511 document.getElementById('admin_site_enhancements['+fieldId+']').addEventListener('click', event => {
512 if (event.target.checked) {
513
514 $('.'+fieldClass+' .asenha-subfields').fadeIn();
515 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
516 $('.'+fieldClass+' .asenha-subfield-select-inner').show();
517 }
518 $('.'+fieldClass+' .asenha-field-with-options').toggleClass('is-enabled');
519 if (document.getElementById(sortableId)) {
520 // Initialize sortable elements: https://api.jqueryui.com/sortable/
521 $('#' + sortableId ).sortable();
522 }
523 if ( codeMirrorInstances ) {
524 Object.keys(codeMirrorInstances).forEach(function(key) {
525 if ( codeMirrorInstances[key] ) {
526 codeMirrorInstances[key].refresh();
527 }
528 });
529 }
530
531 } else {
532
533 $('.'+fieldClass+' .asenha-subfields').hide();
534 if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
535 $('.'+fieldClass+' .asenha-subfield-select-inner').hide();
536 }
537 $('.'+fieldClass+' .asenha-field-with-options').toggleClass('is-enabled');
538
539 }
540 });
541
542 }
543
544 }
545
546 // Re-init wp_editor for snippet description. Required because the wp_editor was moved in the DOM after document ready.
547 // Ref: https://stackoverflow.com/a/21519323
548 // Ref: https://core.trac.wordpress.org/ticket/19173
549 function reinitWpEditor(id) {
550 tinymce.execCommand('mceRemoveEditor', true, id);
551 var init = tinymce.extend( {}, tinyMCEPreInit.mceInit[ id ] );
552 try { tinymce.init( init ); } catch(e){}
553 $('textarea[id="' + id + '"]').closest('form').find('input[type="submit"]').click(function(){
554 if( getUserSetting( 'editor' ) == 'tmce' ){
555 var id = mce.find( 'textarea' ).attr( 'id' );
556 tinymce.execCommand( 'mceRemoveEditor', false, id );
557 tinymce.execCommand( 'mceAddEditor', false, id );
558 }
559 return true;
560 });
561 }
562
563
564 subfieldsToggler( 'enable_duplication', 'enable-duplication' );
565 subfieldsToggler( 'content_order', 'content-order' );
566
567 subfieldsToggler( 'enable_svg_upload', 'enable-svg-upload' );
568 subfieldsToggler( 'enable_avif_upload', 'enable-avif-upload' );
569 subfieldsToggler( 'enable_external_permalinks', 'enable-external-permalinks' );
570
571 subfieldsToggler( 'enhance_list_tables', 'enhance-list-tables' );
572 subfieldsToggler( 'custom_admin_footer_text', 'custom-admin-footer-text' );
573 subfieldsToggler( 'wider_admin_menu', 'wider-admin-menu' );
574 subfieldsToggler( 'customize_admin_menu', 'customize-admin-menu', 'custom-admin-menu' );
575 subfieldsToggler( 'disable_dashboard_widgets', 'disable-dashboard-widgets' );
576 subfieldsToggler( 'various_admin_ui_enhancements', 'various-admin-ui-enhancements' );
577 // Clean Up Admin Bar
578 subfieldsToggler( 'hide_modify_elements', 'hide-modify-elements' );
579
580 subfieldsToggler( 'hide_admin_bar', 'hide-admin-bar' );
581 subfieldsToggler( 'change_login_url', 'change-login-url' );
582 subfieldsToggler( 'login_id_type_restriction', 'login-id-type-restriction' );
583
584 subfieldsToggler( 'redirect_after_login', 'redirect-after-login' );
585 subfieldsToggler( 'redirect_after_logout', 'redirect-after-logout' );
586 subfieldsToggler( 'enable_custom_admin_css', 'enable-custom-admin-css', '', {adminCssEditor} );
587 subfieldsToggler( 'enable_custom_frontend_css', 'enable-custom-frontend-css', '', {frontendCssEditor} );
588 subfieldsToggler( 'insert_head_body_footer_code', 'insert-head-body-footer-code', '', {headCodeEditor,bodyCodeEditor,footerCodeEditor} );
589 subfieldsToggler( 'enable_custom_body_class', 'enable-custom-body-class' );
590 subfieldsToggler( 'manage_ads_appads_txt', 'manage-ads-appads-txt', '', {adsTxtEditor,appAdsTxtEditor} );
591 subfieldsToggler( 'manage_robots_txt', 'manage-robots-txt', '', {robotsTxtEditor} );
592 subfieldsToggler( 'disable_gutenberg', 'disable-gutenberg' );
593 subfieldsToggler( 'disable_comments', 'disable-comments' );
594 subfieldsToggler( 'disable_smaller_components', 'disable-smaller-components' );
595 subfieldsToggler( 'limit_login_attempts', 'limit-login-attempts' );
596 subfieldsToggler( 'obfuscate_email_address', 'obfuscate-email-address' );
597 subfieldsToggler( 'image_upload_control', 'image-upload-control' );
598 subfieldsToggler( 'enable_revisions_control', 'enable-revisions-control' );
599 subfieldsToggler( 'enable_heartbeat_control', 'enable-heartbeat-control' );
600
601
602 // Enable Heartbeat Control => Check if "Modify interval" is chosen/clicked and show/hide the corresponding select field
603 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]:checked').val() == 'modify' ) {
604 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
605 }
606
607 $('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]').click(function() {
608 var radioValue = $(this).attr('value');
609 if ( radioValue == 'modify' ) {
610 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
611 } else {
612 $('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').hide();
613 }
614 });
615
616 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]:checked').val() == 'modify' ) {
617 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
618 }
619
620 $('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]').click(function() {
621 var radioValue = $(this).attr('value');
622 if ( radioValue == 'modify' ) {
623 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
624 } else {
625 $('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').hide();
626 }
627 });
628
629 if ( $('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]:checked').val() == 'modify' ) {
630 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
631 }
632
633 $('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]').click(function() {
634 var radioValue = $(this).attr('value');
635 if ( radioValue == 'modify' ) {
636 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
637 } else {
638 $('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').hide();
639 }
640 });
641
642 subfieldsToggler( 'smtp_email_delivery', 'smtp-email-delivery' );
643
644 // SMTP Email Delivery => Empty field value on click, so new password can be easily entered
645 var oldSmtpPassValue = '';
646
647 $('input[name="admin_site_enhancements[smtp_password]"]').focusin(function() {
648 oldSmtpPassValue = $(this).val();
649 $(this).val('');
650 });
651
652 $('input[name="admin_site_enhancements[smtp_password]"]').focusout(function() {
653 if ( $(this).val() == '' ) {
654 $(this).val(oldSmtpPassValue);
655 }
656 });
657
658 subfieldsToggler( 'view_admin_as_role', 'view-admin-as-role' );
659 subfieldsToggler( 'enable_password_protection', 'enable-password-protection' );
660
661 // Enable Password protection => Empty field value on click, so new password can be easily entered
662 var oldValue = '';
663 $('input[name="admin_site_enhancements[password_protection_password]"]').focusin(function() {
664 oldValue = $(this).val();
665 $(this).val('');
666 });
667
668 $('input[name="admin_site_enhancements[password_protection_password]"]').focusout(function() {
669 if ( $(this).val() == '' ) {
670 $(this).val(oldValue);
671 }
672 });
673
674
675 subfieldsToggler( 'maintenance_mode', 'maintenance-mode' );
676
677
678
679
680
681
682 // Media frame handler for image selection / upload fields
683 // Reference: https://plugins.trac.wordpress.org/browser/bm-custom-login/trunk/bm-custom-login.php
684 function media_frame_init( selector, button_selector ) {
685 var theSelector = $(selector);
686 var button = $(button_selector);
687
688 button.click(function (event) {
689 event.preventDefault();
690
691 // Configuration of the media frame new instance
692 wp.media.frames.frame = wp.media({
693 title: adminPageVars.mediaFrameTitle,
694 multiple: false,
695 library: {
696 type: 'image'
697 },
698 button: {
699 text: adminPageVars.mediaFrameButtonText
700 }
701 });
702
703 // Function used for the image selection and media manager closing
704 var media_set_image = function() {
705 var selection = wp.media.frames.frame.state().get('selection');
706
707 // Nothing is selected
708 if (!selection) {
709 return;
710 }
711
712 // Iterate through selected elements
713 selection.each(function(attachment) {
714 // console.log(attachment);
715 var url = attachment.attributes.url;
716 url = url.replace( adminPageVars.wpcontentUrl, '' );
717 theSelector.val(url);
718 });
719 };
720
721 wp.media.frames.frame.on('close', media_set_image);
722 wp.media.frames.frame.on('select', media_set_image);
723 wp.media.frames.frame.open();
724 });
725 }
726
727 // =============== ASE PRO =================
728
729 if ( asenhaStats.hideUpgradeNudge ) {
730 $('.asenha-upgrade-nudge').hide();
731 $('#bottom-upgrade-nudge').show();
732 } else {
733 $('.asenha-upgrade-nudge').show();
734 $('#bottom-upgrade-nudge').hide();
735 }
736
737 $('#dismiss-upgrade-nudge').click(function(e) {
738 e.preventDefault();
739 $.ajax({
740 url: ajaxurl,
741 data: {
742 'action':'dismiss_upgrade_nudge'
743 },
744 success:function(data) {
745 $('.asenha-upgrade-nudge').hide();
746 // $('#bottom-upgrade-nudge').show();
747 },
748 error:function(errorThrown) {
749 console.log(errorThrown);
750 }
751 });
752 });
753
754 // =============== SPONSORSHIP =================
755
756 // Stats on saving changes from asenha_admin_scripts() wp_localize_script() is availble in the 'asenhaStats' object-----
757 // console.log( asenhaStats );
758 // alert(JSON.stringify(asenhaStats));
759 if ( asenhaStats.showSupportNudge ) {
760 $('.asenha-support-nudge').show();
761 } else {
762 $('.asenha-support-nudge').hide();
763 }
764
765 $('#have-shared,#have-reviewed').click(function(e) {
766 e.preventDefault();
767 $.ajax({
768 url: 'https://bowo.io/asenha-sp-ndg',
769 method: 'GET',
770 dataType: 'jsonp',
771 crossDomain: true
772 });
773 $.ajax({
774 url: ajaxurl,
775 data: {
776 'action':'have_supported'
777 },
778 success:function(data) {
779 $('.asenha-support-nudge').hide();
780 },
781 error:function(errorThrown) {
782 console.log(errorThrown);
783 }
784 });
785 });
786
787 $('#support-nudge-dismiss').click(function(e) {
788 e.preventDefault();
789 $.ajax({
790 url: 'https://bowo.io/asenha-sp-ndg',
791 method: 'GET',
792 dataType: 'jsonp',
793 crossDomain: true
794 });
795 $.ajax({
796 url: ajaxurl,
797 data: {
798 'action':'dismiss_support_nudge'
799 },
800 success:function(data) {
801 $('.asenha-support-nudge').hide();
802 },
803 error:function(errorThrown) {
804 console.log(errorThrown);
805 }
806 });
807 });
808
809 // Expand support notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
810 $('.asenha-support-nudge.nudge-show-more > .show-more').click(function(e) {
811
812 e.preventDefault();
813
814 var $this = $(this);
815 $this.toggleClass('show-more');
816 $this.hide();
817
818 if ($this.hasClass('show-more')) {
819 $this.next().removeClass('opened',0);
820 } else {
821 $this.next().addClass('opened',0);
822 }
823
824 });
825
826 // Collapse support notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
827 $('#support-nudge-show-less').click(function(e) {
828
829 e.preventDefault();
830
831 $('.nudge-wrapper-show-more').removeClass('opened',0);
832 $('#support-nudge-show-moreless').addClass('show-more');
833 $('#support-nudge-show-moreless').show();
834
835 });
836
837
838
839 // Modal for sponsoring plugin dev and maintenance: https://stephanwagner.me/jBox
840
841 // var sponsorModal = new jBox('Modal', {
842 // attach: '#plugin-sponsor',
843 // trigger: 'click', // or 'mouseenter'
844 // // content: 'Test'
845 // content: $('#asenha-sponsor'),
846 // width: 740, // pixels
847 // closeButton: 'box',
848 // addClass: 'plugin-sponsor-modal',
849 // overlayClass: 'plugin-sponsor-modal-overlay',
850 // target: '#wpwrap', // where to anchor the modal
851 // position: {
852 // x: 'center',
853 // y: 'top'
854 // },
855 // // fade: 1000,
856 // animation: {
857 // open: 'slide:top',
858 // close: 'slide:top'
859 // }
860 // });
861
862 // $('#plugin-sponsor').click( function() {
863 // $.ajax({
864 // url: 'https://bowo.io/asenha-sp-btn',
865 // method: 'GET',
866 // dataType: 'jsonp',
867 // crossDomain: true
868 // // success: function(response) {
869 // // console.log(response);
870 // // }
871 // });
872 // });
873
874 }); // END OF $(document).ready()
875
876 })( jQuery );