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