PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 3.9.1
Admin and Site Enhancements (ASE) v3.9.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 / custom-admin-menu.js
admin-site-enhancements / assets / js Last commit date
codemirror 3 years ago datatables 3 years ago admin-page.js 3 years ago custom-admin-menu.js 3 years ago hide-admin-notices.js 3 years ago jBox.all.min.js 3 years ago jquery.jsticky.mod.js 3 years ago jquery.jsticky.mod.min.js 3 years ago js.cookie.min.js 3 years ago media-replace.js 3 years ago public.js 3 years ago toggle-hidden-menu.js 3 years ago
custom-admin-menu.js
158 lines
1 (function( $ ) {
2 'use strict';
3
4 $(document).ready( function() {
5
6 // ----- Menu Ordering -----
7
8 // Initialize sortable elements: https://api.jqueryui.com/sortable/
9 $('#custom-admin-menu').sortable({
10 placeholder: 'sortable-placeholder'
11 });
12
13 // Get the default/current menu order
14 let menuOrder = $('#custom-admin-menu').sortable("toArray").toString();
15 // console.log( menuOrder );
16
17 // Set hidden input value for saving in options
18 document.getElementById('admin_site_enhancements[custom_menu_order]').value = menuOrder;
19
20 // Save custom order into a comma-separated string, triggerred after each drag and drop of menu item
21 // https://api.jqueryui.com/sortable/#event-update
22 // https://api.jqueryui.com/sortable/#method-toArray
23 $('#custom-admin-menu').on( 'sortupdate', function( event, ui) {
24
25 // Get the updated menu order
26 let menuOrder = $('#custom-admin-menu').sortable("toArray").toString();
27 // console.log( menuOrder );
28
29 // Set hidden input value for saving in options
30 document.getElementById('admin_site_enhancements[custom_menu_order]').value = menuOrder;
31
32 // jQuery.ajax({
33 // url: ajaxurl,
34 // data: {
35 // 'action': 'save_custom_menu_order',
36 // 'menu_order': menuOrder
37 // },
38 // success:function(data) {
39 // var data = data.slice(0,-1); // remove strange trailing zero in string returned by AJAX call
40 // var dataObj = JSON.parse(data);
41 // console.log(dataObj.message);
42 // },
43 // error:function(errorThrown) {
44 // console.log(errorThrown);
45 // }
46 // });
47
48 });
49
50 // Define a function to delay execution of script by x miliecnods. Ref: https://stackoverflow.com/a/28173606
51 // var delay = ( function() {
52 // var timer = 0;
53 // return function(callback, ms) {
54 // clearTimeout (timer);
55 // timer = setTimeout(callback, ms);
56 // };
57 // })();
58
59 // If Customize Admin Menu is enabled
60 // if ( document.getElementById('admin_site_enhancements[customize_admin_menu]').checked ) {
61 // }
62
63 // Clicking on header save button
64 $('.asenha-save-button').click( function(e) {
65
66 e.preventDefault();
67
68 // Prepare variable to store ID-Title pairs of menu items
69 var customMenuTitles = []; // empty array
70
71 // Initialize other variables
72 var menuItemId = '';
73 var customTitle = '';
74
75 // Save default/custom title values. Ref: https://stackoverflow.com/a/3871602
76 Array.from(document.getElementsByClassName('menu-item-custom-title')).forEach(function(item,index,array) {
77
78 menuItemId = item.dataset.menuItemId;
79 customTitle = item.value;
80 customMenuTitles.push(menuItemId + '__' + customTitle);
81
82 });
83
84 // console.log(customMenuTitles.toString());
85
86 // Set hidden input value
87 document.getElementById('admin_site_enhancements[custom_menu_titles]').value = customMenuTitles;
88
89 });
90
91 // ----- Menu Item Hiding -----
92
93 // Prepare constant to store IDs of menu items that will be hidden
94 if ( document.getElementById('admin_site_enhancements[custom_menu_hidden]').value ) {
95
96 var hiddenMenuItems = document.getElementById('admin_site_enhancements[custom_menu_hidden]').value.split(","); // array
97
98 } else {
99
100 var hiddenMenuItems = []; // array
101
102 }
103
104 // console.log(hiddenMenuItems);
105
106 // Detect which menu items are being checked. Ref: https://stackoverflow.com/a/3871602
107 Array.from(document.getElementsByClassName('menu-item-checkbox')).forEach(function(item,index,array) {
108
109 item.addEventListener('click', event => {
110
111 if (event.target.checked) {
112
113 // Add ID of menu item to array
114 // alert(event.target.dataset.menuItemId + ' will be hidden');
115 hiddenMenuItems.push(event.target.dataset.menuItemId);
116
117 } else {
118
119 // Remove ID of menu item from array
120 // alert(event.target.dataset.menuItemId + ' will not be hidden');
121 const start = hiddenMenuItems.indexOf(event.target.dataset.menuItemId);
122 const deleteCount = 1;
123 hiddenMenuItems.splice(start, deleteCount);
124
125 }
126
127 // console.log(hiddenMenuItems.toString());
128
129 // Set hidden input value
130 document.getElementById('admin_site_enhancements[custom_menu_hidden]').value = hiddenMenuItems;
131
132 // delay(function() {
133
134 // jQuery.ajax({
135 // url: ajaxurl,
136 // data: {
137 // 'action': 'save_hidden_menu_items',
138 // 'hidden_menu_items': hiddenMenuItems.toString()
139 // },
140 // success:function(data) {
141 // var data = data.slice(0,-1); // remove strange trailing zero in string returned by AJAX call
142 // var dataObj = JSON.parse(data);
143 // console.log(dataObj.message );
144 // },
145 // error:function(errorThrown) {
146 // console.log(errorThrown);
147 // }
148 // });
149
150 // }, 3000);
151
152 });
153
154 });
155
156 });
157
158 })( jQuery );