Show plugin status in web ui
Request all plugins when viewing the plugin list page, and identify
disabled plugins via a Status column.
Change-Id: I3026862b0b659fe58ba0fedb1515b2ff2d68fb26
Signed-off-by: Brad Larson <bklarson@gmail.com>
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
index 74a24ce..a9ad519 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
@@ -108,9 +108,11 @@
String plugins();
String pluginTabInstalled();
+ String pluginDisabled();
String columnPluginName();
String columnPluginVersion();
+ String columnPluginStatus();
String noGroupSelected();
String errorNoMatchingGroups();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
index 30375a2..e20d544 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
@@ -88,8 +88,10 @@
plugins = Plugins
pluginTabInstalled = Installed
+pluginDisabled = Disabled
columnPluginName = Plugin Name
columnPluginVersion = Version
+columnPluginStatus = Status
noGroupSelected = (No group selected)
errorNoMatchingGroups = No Matching Groups
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PluginListScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PluginListScreen.java
index 814ae51..3948b35 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PluginListScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PluginListScreen.java
@@ -60,10 +60,12 @@
PluginTable() {
table.setText(0, 1, Util.C.columnPluginName());
table.setText(0, 2, Util.C.columnPluginVersion());
+ table.setText(0, 3, Util.C.columnPluginStatus());
final FlexCellFormatter fmt = table.getFlexCellFormatter();
fmt.addStyleName(0, 1, Gerrit.RESOURCES.css().dataHeader());
fmt.addStyleName(0, 2, Gerrit.RESOURCES.css().dataHeader());
+ fmt.addStyleName(0, 3, Gerrit.RESOURCES.css().dataHeader());
}
void display(final PluginMap plugins) {
@@ -80,16 +82,24 @@
}
void populate(final int row, final PluginInfo plugin) {
- table.setWidget(
- row,
- 1,
- new Anchor(plugin.name(), Gerrit.selfRedirect("/plugins/"
- + plugin.name() + "/")));
+ if (plugin.isDisabled()) {
+ table.setText(row, 1, plugin.name());
+ } else {
+ table.setWidget(
+ row,
+ 1,
+ new Anchor(plugin.name(), Gerrit.selfRedirect("/plugins/"
+ + plugin.name() + "/")));
+ }
table.setText(row, 2, plugin.version());
+ if (plugin.isDisabled()) {
+ table.setText(row, 3, Util.C.pluginDisabled());
+ }
final FlexCellFormatter fmt = table.getFlexCellFormatter();
fmt.addStyleName(row, 1, Gerrit.RESOURCES.css().dataCell());
fmt.addStyleName(row, 2, Gerrit.RESOURCES.css().dataCell());
+ fmt.addStyleName(row, 3, Gerrit.RESOURCES.css().dataCell());
setRowItem(row, plugin);
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/plugins/PluginInfo.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/plugins/PluginInfo.java
index 454c97b..ace4a49 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/plugins/PluginInfo.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/plugins/PluginInfo.java
@@ -20,6 +20,8 @@
public final native String name() /*-{ return this.name; }-*/;
public final native String version() /*-{ return this.version; }-*/;
+ public final native boolean isDisabled()
+ /*-{ return this.disabled ? true : false; }-*/;
protected PluginInfo() {
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/plugins/PluginMap.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/plugins/PluginMap.java
index 0f2ab4c..6eca206 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/plugins/PluginMap.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/plugins/PluginMap.java
@@ -21,7 +21,7 @@
/** Plugins available from {@code /plugins/}. */
public class PluginMap extends NativeMap<PluginInfo> {
public static void all(AsyncCallback<PluginMap> callback) {
- new RestApi("/plugins/")
+ new RestApi("/plugins/").addParameterTrue("all")
.send(NativeMap.copyKeysIntoChildren(callback));
}