Version Description
- Added an option to automatically hide new plugins. It was already possible, but previously this option was tied to the "show all plugins" checkbox. Now there is a separate "New plugins" checkbox.
- Fixed a bug where trying to change the icon of the Jetpack menu caused a JavaScript error that prevented the icon selector from being displayed.
- Tested up to WP 5.2.
Download this release
Release Info
Developer | whiteshadow |
Plugin | Admin Menu Editor |
Version | 1.9 |
Comparing to | |
See all releases |
Code changes from version 1.8.8 to 1.9
- js/menu-editor.js +3 -1
- menu-editor.php +1 -1
- modules/plugin-visibility/plugin-visibility-template.php +26 -1
- modules/plugin-visibility/plugin-visibility.css +16 -0
- modules/plugin-visibility/plugin-visibility.js +36 -3
- modules/plugin-visibility/plugin-visibility.scss +28 -1
- modules/plugin-visibility/plugin-visibility.ts +38 -3
- readme.txt +7 -2
js/menu-editor.js
CHANGED
@@ -2861,7 +2861,9 @@ function ameOnDomReady() {
|
|
2861 |
}
|
2862 |
|
2863 |
//Activate the tab that contains the icon.
|
2864 |
-
var activeTabId =
|
|
|
|
|
2865 |
activeTabItem = iconSelectorTabs.find('a[href="#' + activeTabId + '"]').closest('li');
|
2866 |
if (activeTabItem.length > 0) {
|
2867 |
iconSelectorTabs.tabs('option', 'active', activeTabItem.index());
|
2861 |
}
|
2862 |
|
2863 |
//Activate the tab that contains the icon.
|
2864 |
+
var activeTabId = ((selectedIcon !== null)
|
2865 |
+
? selectedIcon.closest('.ws_tool_tab').prop('id')
|
2866 |
+
: 'ws_core_icons_tab'),
|
2867 |
activeTabItem = iconSelectorTabs.find('a[href="#' + activeTabId + '"]').closest('li');
|
2868 |
if (activeTabItem.length > 0) {
|
2869 |
iconSelectorTabs.tabs('option', 'active', activeTabItem.index());
|
menu-editor.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Admin Menu Editor
|
4 |
Plugin URI: http://w-shadow.com/blog/2008/12/20/admin-menu-editor-for-wordpress/
|
5 |
Description: Lets you directly edit the WordPress admin menu. You can re-order, hide or rename existing menus, add custom menus and more.
|
6 |
-
Version: 1.
|
7 |
Author: Janis Elsts
|
8 |
Author URI: http://w-shadow.com/blog/
|
9 |
*/
|
3 |
Plugin Name: Admin Menu Editor
|
4 |
Plugin URI: http://w-shadow.com/blog/2008/12/20/admin-menu-editor-for-wordpress/
|
5 |
Description: Lets you directly edit the WordPress admin menu. You can re-order, hide or rename existing menus, add custom menus and more.
|
6 |
+
Version: 1.9
|
7 |
Author: Janis Elsts
|
8 |
Author URI: http://w-shadow.com/blog/
|
9 |
*/
|
modules/plugin-visibility/plugin-visibility-template.php
CHANGED
@@ -72,7 +72,8 @@
|
|
72 |
|
73 |
<td><p data-bind="text: description"></p></td>
|
74 |
</tr>
|
75 |
-
<tr class="inline-edit-row" data-bind="if: isBeingEdited"
|
|
|
76 |
<td class="colspanchange" colspan="3">
|
77 |
<fieldset class="ame-pv-inline-edit-left">
|
78 |
<legend class="inline-edit-legend" data-bind="text: defaultProperties['name']">
|
@@ -151,6 +152,30 @@
|
|
151 |
</tbody>
|
152 |
|
153 |
<tfoot>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
<tr>
|
155 |
<th scope="col" class="ame-check-column">
|
156 |
<!--suppress HtmlFormInputWithoutLabel -->
|
72 |
|
73 |
<td><p data-bind="text: description"></p></td>
|
74 |
</tr>
|
75 |
+
<tr class="inline-edit-row" data-bind="if: isBeingEdited, visible: true"
|
76 |
+
style="display: none;">
|
77 |
<td class="colspanchange" colspan="3">
|
78 |
<fieldset class="ame-pv-inline-edit-left">
|
79 |
<legend class="inline-edit-legend" data-bind="text: defaultProperties['name']">
|
152 |
</tbody>
|
153 |
|
154 |
<tfoot>
|
155 |
+
<tr class="inactive ame-pv-new-plugin-visibility-row">
|
156 |
+
<th scope="row" class="ame-check-column">
|
157 |
+
<input
|
158 |
+
type="checkbox"
|
159 |
+
data-bind="checked: areNewPluginsVisible"
|
160 |
+
id="ame-pv-new-plugin-visibility">
|
161 |
+
</th>
|
162 |
+
<td class="plugin-title">
|
163 |
+
<label for="ame-pv-new-plugin-visibility">
|
164 |
+
<strong>[New Plugins]</strong>
|
165 |
+
</label>
|
166 |
+
</td>
|
167 |
+
<td>
|
168 |
+
<p>
|
169 |
+
This setting controls whether the selected role will be able
|
170 |
+
to see newly installed plugins.
|
171 |
+
</p>
|
172 |
+
<ul>
|
173 |
+
<li>Checked: New plugins will be visible by default.</li>
|
174 |
+
<li>Unchecked: New plugins will be automatically hidden.</li>
|
175 |
+
</ul>
|
176 |
+
</td>
|
177 |
+
</tr>
|
178 |
+
|
179 |
<tr>
|
180 |
<th scope="col" class="ame-check-column">
|
181 |
<!--suppress HtmlFormInputWithoutLabel -->
|
modules/plugin-visibility/plugin-visibility.css
CHANGED
@@ -67,4 +67,20 @@
|
|
67 |
line-height: 2.5;
|
68 |
font-weight: 600; }
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
/*# sourceMappingURL=plugin-visibility.css.map */
|
67 |
line-height: 2.5;
|
68 |
font-weight: 600; }
|
69 |
|
70 |
+
/*
|
71 |
+
The "New Plugins" option is displayed in the table footer.
|
72 |
+
It needs to override some default footer styles.
|
73 |
+
*/
|
74 |
+
.plugins tfoot .ame-pv-new-plugin-visibility-row th.ame-check-column {
|
75 |
+
padding-top: 8px;
|
76 |
+
vertical-align: top; }
|
77 |
+
.plugins tfoot .ame-pv-new-plugin-visibility-row th.ame-check-column input[type=checkbox] {
|
78 |
+
margin-top: 4px; }
|
79 |
+
.plugins tfoot .ame-pv-new-plugin-visibility-row ul {
|
80 |
+
list-style: inside disc;
|
81 |
+
margin-left: 1em;
|
82 |
+
margin-top: 0.8em; }
|
83 |
+
.plugins tfoot .ame-pv-new-plugin-visibility-row th, .plugins tfoot .ame-pv-new-plugin-visibility-row td {
|
84 |
+
border-top: none; }
|
85 |
+
|
86 |
/*# sourceMappingURL=plugin-visibility.css.map */
|
modules/plugin-visibility/plugin-visibility.js
CHANGED
@@ -41,17 +41,50 @@ var AmePluginVisibilityModule = /** @class */ (function () {
|
|
41 |
if (this.isMultisite) {
|
42 |
this.privilegedActors.push(AmeActors.getSuperAdmin());
|
43 |
}
|
44 |
-
this.
|
45 |
read: function () {
|
46 |
-
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
});
|
49 |
},
|
50 |
write: function (isChecked) {
|
51 |
if (_this.selectedActor() !== null) {
|
52 |
var canSeePluginsByDefault = _this.getGrantAccessByDefault(_this.selectedActor());
|
53 |
canSeePluginsByDefault(isChecked);
|
|
|
54 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
_.forEach(_this.plugins, function (plugin) {
|
56 |
_this.setPluginVisibility(plugin, isChecked);
|
57 |
});
|
41 |
if (this.isMultisite) {
|
42 |
this.privilegedActors.push(AmeActors.getSuperAdmin());
|
43 |
}
|
44 |
+
this.areNewPluginsVisible = ko.computed({
|
45 |
read: function () {
|
46 |
+
if (_this.selectedActor() !== null) {
|
47 |
+
var canSeePluginsByDefault = _this.getGrantAccessByDefault(_this.selectedActor());
|
48 |
+
return canSeePluginsByDefault();
|
49 |
+
}
|
50 |
+
return _.every(_this.actorSelector.getVisibleActors(), function (actor) {
|
51 |
+
//Only consider roles than can manage plugins.
|
52 |
+
if (!_this.canManagePlugins(actor)) {
|
53 |
+
return true;
|
54 |
+
}
|
55 |
+
var canSeePluginsByDefault = _this.getGrantAccessByDefault(actor.getId());
|
56 |
+
return canSeePluginsByDefault();
|
57 |
});
|
58 |
},
|
59 |
write: function (isChecked) {
|
60 |
if (_this.selectedActor() !== null) {
|
61 |
var canSeePluginsByDefault = _this.getGrantAccessByDefault(_this.selectedActor());
|
62 |
canSeePluginsByDefault(isChecked);
|
63 |
+
return;
|
64 |
}
|
65 |
+
//Update everyone except the current user and Super Admin.
|
66 |
+
_.forEach(_this.actorSelector.getVisibleActors(), function (actor) {
|
67 |
+
var isAllowed = _this.getGrantAccessByDefault(actor.getId());
|
68 |
+
if (!_this.canManagePlugins(actor)) {
|
69 |
+
isAllowed(false);
|
70 |
+
}
|
71 |
+
else if (_.includes(_this.privilegedActors, actor)) {
|
72 |
+
isAllowed(true);
|
73 |
+
}
|
74 |
+
else {
|
75 |
+
isAllowed(isChecked);
|
76 |
+
}
|
77 |
+
});
|
78 |
+
}
|
79 |
+
});
|
80 |
+
this.areAllPluginsChecked = ko.computed({
|
81 |
+
read: function () {
|
82 |
+
return _.every(_this.plugins, function (plugin) {
|
83 |
+
return _this.isPluginVisible(plugin);
|
84 |
+
}) && _this.areNewPluginsVisible();
|
85 |
+
},
|
86 |
+
write: function (isChecked) {
|
87 |
+
_this.areNewPluginsVisible(isChecked);
|
88 |
_.forEach(_this.plugins, function (plugin) {
|
89 |
_this.setPluginVisibility(plugin, isChecked);
|
90 |
});
|
modules/plugin-visibility/plugin-visibility.scss
CHANGED
@@ -60,6 +60,7 @@
|
|
60 |
.ame-pv-inline-edit-left {
|
61 |
width: 35%;
|
62 |
}
|
|
|
63 |
.ame-pv-inline-edit-right {
|
64 |
width: 65%;
|
65 |
}
|
@@ -67,6 +68,7 @@
|
|
67 |
span.title {
|
68 |
width: auto;
|
69 |
}
|
|
|
70 |
input[type="text"] {
|
71 |
width: 100%;
|
72 |
}
|
@@ -81,7 +83,7 @@
|
|
81 |
}
|
82 |
|
83 |
td {
|
84 |
-
box-shadow: inset 0 -1px 0 rgba(0,0,0,0.1);
|
85 |
}
|
86 |
|
87 |
p.submit {
|
@@ -95,3 +97,28 @@
|
|
95 |
font-weight: 600;
|
96 |
}
|
97 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
.ame-pv-inline-edit-left {
|
61 |
width: 35%;
|
62 |
}
|
63 |
+
|
64 |
.ame-pv-inline-edit-right {
|
65 |
width: 65%;
|
66 |
}
|
68 |
span.title {
|
69 |
width: auto;
|
70 |
}
|
71 |
+
|
72 |
input[type="text"] {
|
73 |
width: 100%;
|
74 |
}
|
83 |
}
|
84 |
|
85 |
td {
|
86 |
+
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1);
|
87 |
}
|
88 |
|
89 |
p.submit {
|
97 |
font-weight: 600;
|
98 |
}
|
99 |
}
|
100 |
+
|
101 |
+
/*
|
102 |
+
The "New Plugins" option is displayed in the table footer.
|
103 |
+
It needs to override some default footer styles.
|
104 |
+
*/
|
105 |
+
.plugins tfoot .ame-pv-new-plugin-visibility-row {
|
106 |
+
th.ame-check-column {
|
107 |
+
padding-top: 8px;
|
108 |
+
vertical-align: top;
|
109 |
+
|
110 |
+
input[type=checkbox] {
|
111 |
+
margin-top: 4px;
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
ul {
|
116 |
+
list-style: inside disc;
|
117 |
+
margin-left: 1em;
|
118 |
+
margin-top: 0.8em;
|
119 |
+
}
|
120 |
+
|
121 |
+
th, td {
|
122 |
+
border-top: none;
|
123 |
+
}
|
124 |
+
}
|
modules/plugin-visibility/plugin-visibility.ts
CHANGED
@@ -60,6 +60,7 @@ class AmePluginVisibilityModule {
|
|
60 |
settingsData: KnockoutObservable<string>;
|
61 |
|
62 |
areAllPluginsChecked: KnockoutComputed<boolean>;
|
|
|
63 |
|
64 |
/**
|
65 |
* Actors that don't lose access to a plugin when you uncheck it in the "All" view.
|
@@ -112,17 +113,51 @@ class AmePluginVisibilityModule {
|
|
112 |
this.privilegedActors.push(AmeActors.getSuperAdmin());
|
113 |
}
|
114 |
|
115 |
-
this.
|
116 |
read: () => {
|
117 |
-
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
});
|
120 |
},
|
121 |
write: (isChecked) => {
|
122 |
if (this.selectedActor() !== null) {
|
123 |
let canSeePluginsByDefault = this.getGrantAccessByDefault(this.selectedActor());
|
124 |
canSeePluginsByDefault(isChecked);
|
|
|
125 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
_.forEach(this.plugins, (plugin) => {
|
127 |
this.setPluginVisibility(plugin, isChecked);
|
128 |
});
|
60 |
settingsData: KnockoutObservable<string>;
|
61 |
|
62 |
areAllPluginsChecked: KnockoutComputed<boolean>;
|
63 |
+
areNewPluginsVisible: KnockoutComputed<boolean>;
|
64 |
|
65 |
/**
|
66 |
* Actors that don't lose access to a plugin when you uncheck it in the "All" view.
|
113 |
this.privilegedActors.push(AmeActors.getSuperAdmin());
|
114 |
}
|
115 |
|
116 |
+
this.areNewPluginsVisible = ko.computed({
|
117 |
read: () => {
|
118 |
+
if (this.selectedActor() !== null) {
|
119 |
+
let canSeePluginsByDefault = this.getGrantAccessByDefault(this.selectedActor());
|
120 |
+
return canSeePluginsByDefault();
|
121 |
+
}
|
122 |
+
|
123 |
+
return _.every(this.actorSelector.getVisibleActors(), (actor: AmeBaseActor) => {
|
124 |
+
//Only consider roles than can manage plugins.
|
125 |
+
if (!this.canManagePlugins(actor)) {
|
126 |
+
return true;
|
127 |
+
}
|
128 |
+
let canSeePluginsByDefault = this.getGrantAccessByDefault(actor.getId());
|
129 |
+
return canSeePluginsByDefault();
|
130 |
});
|
131 |
},
|
132 |
write: (isChecked) => {
|
133 |
if (this.selectedActor() !== null) {
|
134 |
let canSeePluginsByDefault = this.getGrantAccessByDefault(this.selectedActor());
|
135 |
canSeePluginsByDefault(isChecked);
|
136 |
+
return;
|
137 |
}
|
138 |
+
|
139 |
+
//Update everyone except the current user and Super Admin.
|
140 |
+
_.forEach(this.actorSelector.getVisibleActors(), (actor: AmeBaseActor) => {
|
141 |
+
let isAllowed = this.getGrantAccessByDefault(actor.getId());
|
142 |
+
if (!this.canManagePlugins(actor)) {
|
143 |
+
isAllowed(false);
|
144 |
+
} else if (_.includes(this.privilegedActors, actor)) {
|
145 |
+
isAllowed(true);
|
146 |
+
} else {
|
147 |
+
isAllowed(isChecked);
|
148 |
+
}
|
149 |
+
});
|
150 |
+
}
|
151 |
+
});
|
152 |
+
|
153 |
+
this.areAllPluginsChecked = ko.computed({
|
154 |
+
read: () => {
|
155 |
+
return _.every(this.plugins, (plugin) => {
|
156 |
+
return this.isPluginVisible(plugin);
|
157 |
+
}) && this.areNewPluginsVisible();
|
158 |
+
},
|
159 |
+
write: (isChecked) => {
|
160 |
+
this.areNewPluginsVisible(isChecked);
|
161 |
_.forEach(this.plugins, (plugin) => {
|
162 |
this.setPluginVisibility(plugin, isChecked);
|
163 |
});
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: whiteshadow
|
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A6P9S6CE3SRSW
|
4 |
Tags: admin, dashboard, menu, security, wpmu
|
5 |
Requires at least: 4.1
|
6 |
-
Tested up to: 5.
|
7 |
-
Stable tag: 1.
|
8 |
|
9 |
Lets you edit the WordPress admin menu. You can re-order, hide or rename menus, add custom menus and more.
|
10 |
|
@@ -63,6 +63,11 @@ Plugins installed in the `mu-plugins` directory are treated as "always on", so y
|
|
63 |
|
64 |
== Changelog ==
|
65 |
|
|
|
|
|
|
|
|
|
|
|
66 |
= 1.8.8 =
|
67 |
* Added the ability to edit more plugin details like author name, site URL and version number. Note that this feature only changes how plugins are displayed. It doesn't actually modify plugin files.
|
68 |
* Fixed a PHP deprecation notice: "strpos(): Non-string needles will be interpreted as strings in the future". Hopefully this time it's been fixed for good.
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A6P9S6CE3SRSW
|
4 |
Tags: admin, dashboard, menu, security, wpmu
|
5 |
Requires at least: 4.1
|
6 |
+
Tested up to: 5.2
|
7 |
+
Stable tag: 1.9
|
8 |
|
9 |
Lets you edit the WordPress admin menu. You can re-order, hide or rename menus, add custom menus and more.
|
10 |
|
63 |
|
64 |
== Changelog ==
|
65 |
|
66 |
+
= 1.9 =
|
67 |
+
* Added an option to automatically hide new plugins. It was already possible, but previously this option was tied to the "show all plugins" checkbox. Now there is a separate "New plugins" checkbox.
|
68 |
+
* Fixed a bug where trying to change the icon of the Jetpack menu caused a JavaScript error that prevented the icon selector from being displayed.
|
69 |
+
* Tested up to WP 5.2.
|
70 |
+
|
71 |
= 1.8.8 =
|
72 |
* Added the ability to edit more plugin details like author name, site URL and version number. Note that this feature only changes how plugins are displayed. It doesn't actually modify plugin files.
|
73 |
* Fixed a PHP deprecation notice: "strpos(): Non-string needles will be interpreted as strings in the future". Hopefully this time it's been fixed for good.
|