[rhq] modules/enterprise
by ips
modules/enterprise/server/container/src/main/resources/jbossas/server/default/deploy/rhq-postinstaller.war.rej/welcome.jsf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit c70d6d78f38346aa4989742e2a5d177c4b9716de
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Feb 24 13:58:02 2011 -0500
change "get started" link from "/Login.do" to "/" (https://bugzilla.redhat.com/show_bug.cgi?id=664567)
diff --git a/modules/enterprise/server/container/src/main/resources/jbossas/server/default/deploy/rhq-postinstaller.war.rej/welcome.jsf b/modules/enterprise/server/container/src/main/resources/jbossas/server/default/deploy/rhq-postinstaller.war.rej/welcome.jsf
index 2ea8a43..4ce54a0 100644
--- a/modules/enterprise/server/container/src/main/resources/jbossas/server/default/deploy/rhq-postinstaller.war.rej/welcome.jsf
+++ b/modules/enterprise/server/container/src/main/resources/jbossas/server/default/deploy/rhq-postinstaller.war.rej/welcome.jsf
@@ -8,6 +8,6 @@
<body>
<p> </p>
<h1 align="center">The Server Is Installed!</h1>
- <p align="center"><a href="/Login.do">Click here to get started!</a></p>
+ <p align="center"><a href="/">Click here to get started!</a></p>
</body>
</html>
13 years, 2 months
[rhq] modules/enterprise
by ips
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java | 7 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java | 60 ++++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/TestTopView.java | 23 +++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationFactory.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationView.java | 14 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestGroupConfigurationView.java | 14 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestReadOnlyConfigurationView.java | 41 ++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestReadOnlyGroupConfigurationView.java | 41 ++++++
8 files changed, 172 insertions(+), 30 deletions(-)
New commits:
commit 0aefd8c5cc4837aad89342f64dd76083ab6542fb
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Feb 24 13:20:16 2011 -0500
for list of maps where list is read-only or entire config is read-only, show a view icon, rather than an edit icon and enable the OK button in the popup map editor; add test views under #Test for read-only config editor and read-only group config editor
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java
index da0b477..1aad4e6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/ImageManager.java
@@ -38,6 +38,13 @@ public class ImageManager {
/**
* Returns a generic edit icon.
*/
+ public static String getViewIcon() {
+ return "[SKIN]/actions/view.png";
+ }
+
+ /**
+ * Returns a generic edit icon.
+ */
public static String getEditIcon() {
return "[SKIN]/actions/edit.png";
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
index 894aeb3..b7c45d6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -552,7 +552,8 @@ public class ConfigurationEditor extends LocatableVLayout {
// List of Maps is a specially supported case with summary fields as columns in a table
// Note: This field spans 3 columns.
PropertyDefinitionMap memberDefinitionMap = (PropertyDefinitionMap) memberDefinition;
- CanvasItem listOfMapsItem = buildListOfMapsField(locatorId, memberDefinitionMap, propertyList, oddRow);
+ CanvasItem listOfMapsItem = buildListOfMapsField(locatorId, memberDefinitionMap, propertyDefinitionList,
+ propertyList, oddRow);
fields.add(listOfMapsItem);
} else if (memberDefinition instanceof PropertyDefinitionSimple) {
SpacerItem unsetItem = new SpacerItem();
@@ -811,7 +812,9 @@ public class ConfigurationEditor extends LocatableVLayout {
}
private CanvasItem buildListOfMapsField(final String locatorId,
- final PropertyDefinitionMap memberPropertyDefinitionMap, final PropertyList propertyList, boolean oddRow) {
+ final PropertyDefinitionMap memberPropertyDefinitionMap,
+ PropertyDefinitionList propertyDefinitionList,
+ final PropertyList propertyList, boolean oddRow) {
Log.debug("Building list-of-maps field for " + propertyList + "...");
final ListGrid summaryTable = new ListGrid();
@@ -872,26 +875,29 @@ public class ConfigurationEditor extends LocatableVLayout {
}
}
+ boolean allSubDefsReadOnly = isAllReadOnly(propertyDefinitions);
+
ListGridField editField = new ListGridField("edit", 20);
editField.setType(ListGridFieldType.ICON);
- // editField.setIcon(Window.getImgURL(ImageManager.getEditIcon()));
- editField.setCellIcon(Window.getImgURL(ImageManager.getEditIcon()));
+ final boolean mapReadOnly = this.readOnly || allSubDefsReadOnly;
+ String icon = (mapReadOnly) ? ImageManager.getViewIcon() : ImageManager.getEditIcon();
+ editField.setCellIcon(Window.getImgURL(icon));
editField.setCanEdit(false);
editField.setCanGroupBy(false);
editField.setCanSort(false);
editField.setCanHide(false);
editField.addRecordClickHandler(new RecordClickHandler() {
public void onRecordClick(RecordClickEvent recordClickEvent) {
- Log.info("You want to edit: " + recordClickEvent.getRecord());
+ Log.debug("Editing property map: " + recordClickEvent.getRecord());
PropertyMap memberPropertyMap = (PropertyMap) recordClickEvent.getRecord().getAttributeAsObject(
RHQ_PROPERTY_ATTRIBUTE_NAME);
displayMapEditor(extendLocatorId("MapEdit"), summaryTable, recordClickEvent.getRecord(),
- memberPropertyDefinitionMap, propertyList, memberPropertyMap);
+ memberPropertyDefinitionMap, propertyList, memberPropertyMap, mapReadOnly);
}
});
fieldsList.add(editField);
- if (!readOnly) {
+ if (!(readOnly || propertyDefinitionList.isReadOnly())) {
ListGridField removeField = new ListGridField("remove", 20);
removeField.setType(ListGridFieldType.ICON);
// removeField.setIcon(Window.getImgURL("[SKIN]/actions/remove.png")); //"/images/tbb_delete.gif");
@@ -930,16 +936,17 @@ public class ConfigurationEditor extends LocatableVLayout {
ToolStrip toolStrip = new ToolStrip();
toolStrip.setWidth100();
- IButton addRowButton = new IButton();
- addRowButton.setIcon(Window.getImgURL("[SKIN]/actions/add.png"));
- addRowButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- displayMapEditor(extendLocatorId("MapEdit"), summaryTable, null, memberPropertyDefinitionMap,
- propertyList, null);
- }
- });
-
- toolStrip.addMember(addRowButton);
+ if (!(readOnly || propertyDefinitionList.isReadOnly())) {
+ IButton addRowButton = new IButton();
+ addRowButton.setIcon(Window.getImgURL("[SKIN]/actions/add.png"));
+ addRowButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ displayMapEditor(extendLocatorId("MapEdit"), summaryTable, null, memberPropertyDefinitionMap,
+ propertyList, null, mapReadOnly);
+ }
+ });
+ toolStrip.addMember(addRowButton);
+ }
summaryTableHolder.setMembers(summaryTable, toolStrip);
@@ -950,6 +957,17 @@ public class ConfigurationEditor extends LocatableVLayout {
return canvasItem;
}
+ private static boolean isAllReadOnly(List<PropertyDefinition> propertyDefinitions) {
+ boolean allPropsDefsReadOnly = true;
+ for (PropertyDefinition subDef : propertyDefinitions) {
+ if (!subDef.isReadOnly()) {
+ allPropsDefsReadOnly = false;
+ break;
+ }
+ }
+ return allPropsDefsReadOnly;
+ }
+
private ListGridRecord[] buildSummaryRecords(PropertyList propertyList, List<PropertyDefinition> definitions) {
ListGridRecord[] rows = new ListGridRecord[propertyList == null ? 0 : propertyList.getList().size()];
int i = 0;
@@ -1428,7 +1446,7 @@ public class ConfigurationEditor extends LocatableVLayout {
}
private void displayMapEditor(String locatorId, final ListGrid summaryTable, final Record existingRecord,
- PropertyDefinitionMap definition, final PropertyList list, final PropertyMap map) {
+ PropertyDefinitionMap definition, final PropertyList list, final PropertyMap map, boolean mapReadOnly) {
final List<PropertyDefinition> memberDefinitions = new ArrayList<PropertyDefinition>(definition
.getPropertyDefinitions().values());
@@ -1454,7 +1472,9 @@ public class ConfigurationEditor extends LocatableVLayout {
popup.centerInPage();
final IButton okButton = new LocatableIButton(extendLocatorId("OK"), MSG.common_button_ok());
- okButton.disable();
+ if (!mapReadOnly) {
+ okButton.disable();
+ }
okButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
public void onClick(ClickEvent clickEvent) {
if (newRow) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/TestTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/TestTopView.java
index 95bfaa5..5e69c1b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/TestTopView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/TestTopView.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -33,6 +33,8 @@ import org.rhq.enterprise.gui.coregui.client.inventory.resource.selection.Resour
import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeTreeView;
import org.rhq.enterprise.gui.coregui.client.test.configuration.TestConfigurationView;
import org.rhq.enterprise.gui.coregui.client.test.configuration.TestGroupConfigurationView;
+import org.rhq.enterprise.gui.coregui.client.test.configuration.TestReadOnlyConfigurationView;
+import org.rhq.enterprise.gui.coregui.client.test.configuration.TestReadOnlyGroupConfigurationView;
import org.rhq.enterprise.gui.coregui.client.test.i18n.TestPluralizationView;
import org.rhq.enterprise.gui.coregui.client.test.i18n.TestRemoteServiceStatisticsView;
import org.rhq.enterprise.gui.coregui.client.test.inventory.TestSearchBarView;
@@ -44,6 +46,7 @@ import org.rhq.enterprise.gui.coregui.client.test.inventory.TestSearchBarView;
* @author Ian Springer
*/
public class TestTopView extends AbstractSectionedLeftNavigationView {
+
public static final ViewName VIEW_ID = new ViewName("Test");
// view IDs for Inventory section
@@ -55,7 +58,9 @@ public class TestTopView extends AbstractSectionedLeftNavigationView {
// view IDs for Configuration section
private static final ViewName CONFIGURATION_SECTION_VIEW_ID = new ViewName("Configuration");
private static final ViewName PAGE_CONFIG_EDITOR = new ViewName("ConfigEditor");
+ private static final ViewName PAGE_READONLY_CONFIG_EDITOR = new ViewName("ReadOnlyConfigEditor");
private static final ViewName PAGE_GROUP_CONFIG_EDITOR = new ViewName("GroupConfigEditor");
+ private static final ViewName PAGE_READONLY_GROUP_CONFIG_EDITOR = new ViewName("ReadOnlyGroupConfigEditor");
// view IDs for Misc section
private static final ViewName MISC_SECTION_VIEW_ID = new ViewName("Misc");
@@ -119,13 +124,26 @@ public class TestTopView extends AbstractSectionedLeftNavigationView {
}
});
+ NavigationItem readOnlyConfigEditorItem = new NavigationItem(PAGE_READONLY_CONFIG_EDITOR, null, new ViewFactory() {
+ public Canvas createView() {
+ return new TestReadOnlyConfigurationView(extendLocatorId(PAGE_READONLY_CONFIG_EDITOR.getName()));
+ }
+ });
+
NavigationItem groupConfigEditorItem = new NavigationItem(PAGE_GROUP_CONFIG_EDITOR, null, new ViewFactory() {
public Canvas createView() {
return new TestGroupConfigurationView(extendLocatorId(PAGE_GROUP_CONFIG_EDITOR.getName()));
}
});
- return new NavigationSection(CONFIGURATION_SECTION_VIEW_ID, configEditorItem, groupConfigEditorItem);
+ NavigationItem readOnlyGroupConfigEditorItem = new NavigationItem(PAGE_READONLY_GROUP_CONFIG_EDITOR, null, new ViewFactory() {
+ public Canvas createView() {
+ return new TestReadOnlyGroupConfigurationView(extendLocatorId(PAGE_READONLY_GROUP_CONFIG_EDITOR.getName()));
+ }
+ });
+
+ return new NavigationSection(CONFIGURATION_SECTION_VIEW_ID, configEditorItem, readOnlyConfigEditorItem,
+ groupConfigEditorItem, readOnlyGroupConfigEditorItem);
}
private NavigationSection buildMiscSection() {
@@ -145,4 +163,5 @@ public class TestTopView extends AbstractSectionedLeftNavigationView {
return new NavigationSection(MISC_SECTION_VIEW_ID, pluralizationItem, remoteServiceStatisticsItem);
}
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationFactory.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationFactory.java
index e786a36..cca914c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationFactory.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationFactory.java
@@ -44,6 +44,7 @@ import org.rhq.core.domain.configuration.definition.PropertySimpleType;
* @author Ian Springer
*/
public abstract class TestConfigurationFactory {
+
public static ConfigurationDefinition createConfigurationDefinition() {
ConfigurationDefinition configDef = new ConfigurationDefinition("TestConfig", "a test config");
@@ -308,4 +309,5 @@ public abstract class TestConfigurationFactory {
private TestConfigurationFactory() {
}
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationView.java
index 206c78a..f1845b7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestConfigurationView.java
@@ -44,7 +44,6 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
*/
public class TestConfigurationView
extends LocatableVLayout implements PropertyValueChangeListener {
- public static final String VIEW_ID = "TestConfig";
private ConfigurationEditor editor;
private LocatableIButton saveButton;
@@ -119,15 +118,22 @@ public class TestConfigurationView
removeMember(editor);
}
- editor = new ConfigurationEditor(extendLocatorId("Editor"), this.configurationDefinition, this.configuration);
+ editor = createConfigurationEditor();
+ addMember(editor);
+ }
+
+ protected ConfigurationEditor createConfigurationEditor() {
+ ConfigurationEditor editor = new ConfigurationEditor(extendLocatorId("Editor"), this.configurationDefinition, this.configuration);
+ editor.setEditorTitle("Test Configuration");
editor.setOverflow(Overflow.AUTO);
editor.addPropertyValueChangeListener(this);
- addMember(editor);
+ return editor;
}
private void save() {
CoreGUI.getMessageCenter().notify(
new Message("Configuration updated.", "Test configuration updated."));
reloadConfiguration();
- }
+ }
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestGroupConfigurationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestGroupConfigurationView.java
index 1a8b304..8179fbd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestGroupConfigurationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestGroupConfigurationView.java
@@ -48,7 +48,6 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
*/
public class TestGroupConfigurationView
extends LocatableVLayout implements PropertyValueChangeListener {
- public static final String VIEW_ID = "TestGroupConfig";
private static final int GROUP_SIZE = 2;
@@ -127,16 +126,23 @@ public class TestGroupConfigurationView
removeMember(editor);
}
- editor = new GroupConfigurationEditor(extendLocatorId("Editor"), this.configurationDefinition,
+ editor = createConfigurationEditor();
+ addMember(editor);
+ }
+
+ protected GroupConfigurationEditor createConfigurationEditor() {
+ GroupConfigurationEditor editor = new GroupConfigurationEditor(extendLocatorId("Editor"), this.configurationDefinition,
this.memberConfigurations);
+ editor.setEditorTitle("Test Group Configuration");
editor.setOverflow(Overflow.AUTO);
editor.addPropertyValueChangeListener(this);
- addMember(editor);
+ return editor;
}
private void save() {
CoreGUI.getMessageCenter().notify(
new Message("Member configurations updated.", "Member configurations updated."));
reloadConfiguration();
- }
+ }
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestReadOnlyConfigurationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestReadOnlyConfigurationView.java
new file mode 100644
index 0000000..899da26
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestReadOnlyConfigurationView.java
@@ -0,0 +1,41 @@
+/*
+ * RHQ Management Platform
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.test.configuration;
+
+import org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
+
+/**
+ * @author Ian Springer
+ */
+public class TestReadOnlyConfigurationView extends TestConfigurationView {
+
+ public TestReadOnlyConfigurationView(String locatorId) {
+ super(locatorId);
+ }
+
+ @Override
+ protected ConfigurationEditor createConfigurationEditor() {
+ ConfigurationEditor editor = super.createConfigurationEditor();
+ editor.setEditorTitle("Test Read-Only Configuration");
+ editor.setReadOnly(true);
+ return editor;
+ }
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestReadOnlyGroupConfigurationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestReadOnlyGroupConfigurationView.java
new file mode 100644
index 0000000..f8d3829
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/test/configuration/TestReadOnlyGroupConfigurationView.java
@@ -0,0 +1,41 @@
+/*
+ * RHQ Management Platform
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.test.configuration;
+
+import org.rhq.enterprise.gui.coregui.client.components.configuration.GroupConfigurationEditor;
+
+/**
+ * @author Ian Springer
+ */
+public class TestReadOnlyGroupConfigurationView extends TestGroupConfigurationView {
+
+ public TestReadOnlyGroupConfigurationView(String locatorId) {
+ super(locatorId);
+ }
+
+ @Override
+ protected GroupConfigurationEditor createConfigurationEditor() {
+ GroupConfigurationEditor editor = super.createConfigurationEditor();
+ editor.setEditorTitle("Test Read-Only Group Configuration");
+ editor.setReadOnly(true);
+ return editor;
+ }
+
+}
13 years, 2 months
[rhq] modules/enterprise
by ips
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
New commits:
commit e70fa2a1dc64bf5e721083e99d759bea71fe4202
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Feb 24 11:43:08 2011 -0500
only clear the message bar if we're rendering a new view, rather than performing a refresh of the current view
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
index 6f447ff..2edcf48 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
@@ -367,7 +367,9 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
// default view
History.newItem(DEFAULT_VIEW_PATH);
} else {
- messageBar.clearMessage(true);
+ if (!viewPath.isRefresh()) {
+ messageBar.clearMessage(true);
+ }
if (
pendingMessage != null) {
13 years, 2 months
[rhq] modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java | 1 +
1 file changed, 1 insertion(+)
New commits:
commit f6afe87f74959e2376de60a3ceef910843e1b644
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Feb 24 11:25:05 2011 -0500
pad the search bar with a small amount of space
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
index 95fd4e1..c2403c6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
@@ -808,6 +808,7 @@ public class Table<DS extends RPCDataSource> extends LocatableHLayout implements
public TableFilter(Table table) {
super();
setWidth100();
+ setPadding(5);
this.table = table;
//this.table.setTableTitle(null);
}
13 years, 2 months
[rhq] 2 commits - modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java | 20 ++++++++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/CurrentGroupPluginConfigurationView.java | 7 +--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationSettings.java | 6 ---
3 files changed, 20 insertions(+), 13 deletions(-)
New commits:
commit 08f7e2e988fdd857e37a70a9f13fe29820f0d4b8
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Feb 24 10:32:20 2011 -0500
remove the ugly labels, use the new config editor title
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/CurrentGroupPluginConfigurationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/CurrentGroupPluginConfigurationView.java
index 87c4179..e33773c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/CurrentGroupPluginConfigurationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/CurrentGroupPluginConfigurationView.java
@@ -27,7 +27,6 @@ import java.util.Set;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.widgets.IButton;
-import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.toolbar.ToolStrip;
@@ -126,14 +125,12 @@ public class CurrentGroupPluginConfigurationView extends LocatableVLayout implem
private void initEditor() {
if (this.configurationDefinition != null && this.memberConfigurations != null) {
- Label title = new Label(MSG.view_group_pluginConfig_edit_currentGroupProperties());
- addMember(title);
-
this.editor = new GroupConfigurationEditor(this.extendLocatorId("Editor"), this.configurationDefinition,
this.memberConfigurations);
+ this.editor.setEditorTitle(MSG.view_group_pluginConfig_edit_currentGroupProperties());
this.editor.setOverflow(Overflow.AUTO);
this.editor.addPropertyValueChangeListener(this);
- this.editor.setReadOnly(!this.resourcePermission.isConfigureWrite());
+ this.editor.setReadOnly(!this.resourcePermission.isConfigureWrite());
addMember(this.editor);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationSettings.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationSettings.java
index 22aa7be..fed4f63 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationSettings.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationSettings.java
@@ -25,7 +25,6 @@ import java.util.Map;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Overflow;
-import com.smartgwt.client.widgets.Label;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.composite.ResourceConfigurationComposite;
@@ -87,12 +86,9 @@ public class HistoryGroupPluginConfigurationSettings extends LocatableVLayout {
private void initEditor() {
if (this.configurationDefinition != null && this.memberConfigurations != null) {
- Label title = new Label(MSG.view_group_pluginConfig_view_groupProperties() + " - "
- + this.groupUpdateId);
- addMember(title);
-
this.editor = new GroupConfigurationEditor(this.extendLocatorId("Editor"), this.configurationDefinition,
this.memberConfigurations);
+ this.editor.setEditorTitle(MSG.view_group_pluginConfig_view_groupProperties() + " - " + this.groupUpdateId);
this.editor.setOverflow(Overflow.AUTO);
this.editor.setReadOnly(true);
addMember(this.editor);
commit 762027f422b393fbe239a4a046c815f36dd7797f
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Feb 24 10:24:10 2011 -0500
now that we no longer have tabs, we lost the ability to give a title to the config
this adds the new "editor title" attribute which becomes a label in the top toolstip, to the left of the jump menu
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
index ff33cc7..894aeb3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
@@ -161,6 +161,7 @@ public class ConfigurationEditor extends LocatableVLayout {
private int resourceTypeId;
private ConfigType configType;
+ private String editorTitle = null;
private boolean readOnly = false;
private Set<String> invalidPropertyNames = new HashSet<String>();
private Set<PropertyValueChangeListener> propertyValueChangeListeners = new HashSet<PropertyValueChangeListener>();
@@ -204,6 +205,14 @@ public class ConfigurationEditor extends LocatableVLayout {
this.readOnly = readOnly;
}
+ public String getEditorTitle() {
+ return editorTitle;
+ }
+
+ public void setEditorTitle(String title) {
+ this.editorTitle = title;
+ }
+
public void showError(Throwable failure) {
addMember(new Label(failure.getMessage()));
}
@@ -366,6 +375,14 @@ public class ConfigurationEditor extends LocatableVLayout {
LocatableToolStrip toolStrip = new LocatableToolStrip(layout.extendLocatorId("Tools"));
toolStrip.setBackgroundImage(null);
toolStrip.setWidth100();
+ toolStrip.setMembersMargin(3);
+ toolStrip.setPadding(3);
+
+ if (getEditorTitle() != null) {
+ Label titleLabel = new Label(getEditorTitle());
+ titleLabel.setWrap(false);
+ toolStrip.addMember(titleLabel);
+ }
Menu menu = new LocatableMenu(toolStrip.extendLocatorId("JumpMenu"));
for (SectionStackSection section : sectionStack.getSections()) {
@@ -391,9 +408,6 @@ public class ConfigurationEditor extends LocatableVLayout {
});
menu.addItem(hideAllItem);
- // TODO GH: Save button as saveListener() or remove the buttons from this form and have
- // the container provide them?
-
toolStrip.addMember(new LocatableIMenuButton(toolStrip.extendLocatorId("Jump"), MSG
.view_configEdit_jumpToSection(), menu));
13 years, 2 months
[rhq] modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 66ce36f27f22beea0c61a4c718b6ae7653e41992
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Feb 24 09:03:16 2011 -0500
give the id column the title of "version" to be consistent with a) the old JSF ui and b) the current group plugin config UI
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java
index 17b3bfc..579083e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java
@@ -105,7 +105,7 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
public ArrayList<ListGridField> getListGridFields(boolean includeResourceFields) {
ArrayList<ListGridField> fields = new ArrayList<ListGridField>();
- ListGridField idField = new ListGridField(Field.ID, MSG.common_title_id());
+ ListGridField idField = new ListGridField(Field.ID, MSG.common_title_version());
idField.setShowHover(true);
idField.setHoverCustomizer(new HoverCustomizer() {
@Override
@@ -240,7 +240,7 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
@Override
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField idField = new DataSourceIntegerField(Field.ID, MSG.common_title_id());
+ DataSourceIntegerField idField = new DataSourceIntegerField(Field.ID, MSG.common_title_version());
idField.setPrimaryKey(true);
fields.add(idField);
return fields;
13 years, 2 months
[rhq] modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java | 16 +++++-----
1 file changed, 8 insertions(+), 8 deletions(-)
New commits:
commit d829b866aad9a7c1e97df1c17d71e0a5eb78c47f
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Feb 23 21:21:35 2011 -0500
ask for confirmation before rolling back
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
index 9062e3b..5e7bc9e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
@@ -122,15 +122,15 @@ public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryD
}
});
- addTableAction(extendLocatorId("Rollback"), MSG.view_configurationHistoryList_rollback(), null,
- new AbstractTableAction(TableActionEnablement.SINGLE) {
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- if (selection != null && selection.length == 1) {
- ListGridRecord record = selection[0];
- rollback(record.getAttributeAsInt(Field.ID).intValue());
- }
+ addTableAction(extendLocatorId("Rollback"), MSG.view_configurationHistoryList_rollback(), MSG
+ .common_msg_areYouSure(), new AbstractTableAction(TableActionEnablement.SINGLE) {
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ if (selection != null && selection.length == 1) {
+ ListGridRecord record = selection[0];
+ rollback(record.getAttributeAsInt(Field.ID).intValue());
}
- });
+ }
+ });
super.configureTable();
}
13 years, 2 months
[rhq] modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java | 4 ++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java | 7 ++++++-
2 files changed, 10 insertions(+), 1 deletion(-)
New commits:
commit f1da38a0dbdaa91ef9f938578ddcb3f78ec7460e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Feb 23 21:17:37 2011 -0500
bz 679130 - finish the resource config history page.
we now have rollback working
the delete button works now
we see additional column data including a link to the group history item if there is one (note, group history GWT pages don't exist yet)
there is now a green check box with a hover message over the ID column that represents the current config
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
index 640ba32..5ea1c98 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
@@ -87,6 +87,10 @@ public class LinkManager {
return getResourceGroupLink(groupId) + "/Inventory/ConnectionSettingsHistory";
}
+ public static String getGroupResourceConfigurationUpdateHistoryLink(int groupId, int groupUpdateHistoryId) {
+ return getResourceGroupLink(groupId) + "/Configuration/History/" + groupUpdateHistoryId;
+ }
+
public static String getGroupOperationHistoryLink(int groupId, int groupOperationHistoryId) {
return getResourceGroupLink(groupId) + "/Operations/History/" + groupOperationHistoryId;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java
index 83f730e..17b3bfc 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java
@@ -71,6 +71,7 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
public static final String RESOURCE_TYPE_ID = "resourceTypeId";
public static final String CONFIGURATION = "configuration";
public static final String GROUP_CONFIG_UPDATE_ID = "groupConfigUpdateId";
+ public static final String GROUP_ID = "groupId"; // will only be non-null if group config update id is non-null
public static final String DURATION = "duration";
public static final String ERROR_MESSAGE = "errorMessage";
public static final String MODIFIED_TIME = "modifiedTime";
@@ -193,7 +194,10 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
if (value == null) {
return MSG.dataSource_configurationHistory_updateType_individual();
}
- return MSG.dataSource_configurationHistory_updateType_group();
+ Integer groupId = record.getAttributeAsInt(Field.GROUP_ID);
+ return "<a href=\""
+ + LinkManager.getGroupResourceConfigurationUpdateHistoryLink(groupId, ((Number) value).intValue())
+ + "\">" + MSG.dataSource_configurationHistory_updateType_group() + "</a>";
}
});
fields.add(updateTypeField);
@@ -330,6 +334,7 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
}
if (from.getGroupConfigurationUpdate() != null) {
record.setAttribute(Field.GROUP_CONFIG_UPDATE_ID, from.getGroupConfigurationUpdate().getId());
+ record.setAttribute(Field.GROUP_ID, from.getGroupConfigurationUpdate().getGroup().getId()); // note group must be eagerly loaded here
}
record.setAttribute(Field.OBJECT, from);
return record;
13 years, 2 months
[rhq] 3 commits - modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java | 237 ++++++++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDetailView.java | 16
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java | 148 +++---
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java | 18
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties | 21
6 files changed, 339 insertions(+), 106 deletions(-)
New commits:
commit e88da782dbd2e6fbcfff6081fb028f93a831bef3
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Feb 23 20:35:11 2011 -0500
bz 679130 more fixing of the res config history page
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java
index 034a133..83f730e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDataSource.java
@@ -18,6 +18,7 @@
*/
package org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.configuration;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -27,20 +28,37 @@ import com.smartgwt.client.data.DSResponse;
import com.smartgwt.client.data.DataSourceField;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.data.fields.DataSourceIntegerField;
-import com.smartgwt.client.data.fields.DataSourceTextField;
-import com.smartgwt.client.types.FieldType;
+import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.DateDisplayFormat;
+import com.smartgwt.client.types.ListGridFieldType;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.grid.CellFormatter;
+import com.smartgwt.client.widgets.grid.HoverCustomizer;
+import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
+import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
+import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
+import org.rhq.core.domain.configuration.ConfigurationUpdateStatus;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
+import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.ErrorMessageWindow;
+import org.rhq.enterprise.gui.coregui.client.ImageManager;
+import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/**
+ * A data source that loads information about all the configuration changes that happened
+ * for a resource or across all inventory.
+ *
* @author Greg Hinkle
+ * @author John Mazzitelli
*/
public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfigurationUpdate> {
@@ -52,9 +70,11 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
public static final String SUBJECT = "subject";
public static final String RESOURCE_TYPE_ID = "resourceTypeId";
public static final String CONFIGURATION = "configuration";
+ public static final String GROUP_CONFIG_UPDATE_ID = "groupConfigUpdateId";
public static final String DURATION = "duration";
public static final String ERROR_MESSAGE = "errorMessage";
public static final String MODIFIED_TIME = "modifiedTime";
+ public static final String CURRENT_CONFIG = "currentConfig"; // will be true if the history item represents the current config
public static final String OBJECT = "object"; // the full entity object is stored in this attribute
}
@@ -70,32 +90,155 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
addFields(fields);
}
- @Override
- protected List<DataSourceField> addDataSourceFields() {
- List<DataSourceField> fields = super.addDataSourceFields();
+ /**
+ * Views that use this data source can call this method to get a list of fields
+ * that can be used in a list grid to show the data for this data source.
+ *
+ * @param includeResourceFields if true, the list of fields that are returned will
+ * include fields to show individual resource data.
+ * Pass in false if you are only collecting data on a
+ * single resource, since you don't need every row to
+ * show the same data on the same resource.
+ * @return fields
+ */
+ public ArrayList<ListGridField> getListGridFields(boolean includeResourceFields) {
+ ArrayList<ListGridField> fields = new ArrayList<ListGridField>();
- DataSourceIntegerField idField = new DataSourceIntegerField(Field.ID,
- MSG.dataSource_configurationHistory_field_id());
- idField.setPrimaryKey(true);
+ ListGridField idField = new ListGridField(Field.ID, MSG.common_title_id());
+ idField.setShowHover(true);
+ idField.setHoverCustomizer(new HoverCustomizer() {
+ @Override
+ public String hoverHTML(Object value, ListGridRecord record, int rowNum, int colNum) {
+ if (Boolean.parseBoolean(record.getAttribute(Field.CURRENT_CONFIG))) {
+ return MSG.dataSource_configurationHistory_currentConfig();
+ }
+ return null;
+ }
+ });
fields.add(idField);
- DataSourceTextField resourceField = new DataSourceTextField(Field.RESOURCE,
- MSG.dataSource_configurationHistory_field_resource());
- fields.add(resourceField);
+ ListGridField submittedTimeField = new ListGridField(Field.CREATED_TIME, MSG
+ .dataSource_configurationHistory_dateSubmitted());
+ submittedTimeField.setType(ListGridFieldType.DATE);
+ submittedTimeField.setDateFormatter(DateDisplayFormat.TOLOCALESTRING);
+ fields.add(submittedTimeField);
- DataSourceTextField submittedField = new DataSourceTextField(Field.CREATED_TIME,
- MSG.dataSource_configurationHistory_field_createdTime());
- submittedField.setType(FieldType.DATETIME);
- fields.add(submittedField);
+ ListGridField completedTimeField = new ListGridField(Field.MODIFIED_TIME, MSG
+ .dataSource_configurationHistory_dateCompleted());
+ completedTimeField.setType(ListGridFieldType.DATE);
+ completedTimeField.setDateFormatter(DateDisplayFormat.TOLOCALESTRING);
+ fields.add(completedTimeField);
- DataSourceTextField statusField = new DataSourceTextField(Field.STATUS,
- MSG.dataSource_configurationHistory_field_status());
+ ListGridField statusField = new ListGridField(Field.STATUS, MSG.common_title_status());
+ statusField.setAlign(Alignment.CENTER);
+ statusField.setCellFormatter(new CellFormatter() {
+ public String format(Object value, ListGridRecord listGridRecord, int i, int i1) {
+ ConfigurationUpdateStatus status = ConfigurationUpdateStatus.valueOf(value.toString());
+ return Canvas.imgHTML(ImageManager.getResourceConfigurationIcon(status), 16, 16);
+ }
+ });
+ statusField.setShowHover(true);
+ statusField.setHoverCustomizer(new HoverCustomizer() {
+ @Override
+ public String hoverHTML(Object value, ListGridRecord record, int rowNum, int colNum) {
+ String html = null;
+ String err = record.getAttribute(Field.ERROR_MESSAGE);
+ if (err != null && err.length() > 0) {
+ html = MSG.dataSource_configurationHistory_clickToSeeError();
+ } else {
+ ConfigurationUpdateStatus status = ConfigurationUpdateStatus.valueOf(record
+ .getAttribute(Field.STATUS));
+ switch (status) {
+ case SUCCESS: {
+ html = MSG.common_status_success();
+ break;
+ }
+ case FAILURE: {
+ html = MSG.common_status_failed();
+ break;
+ }
+ case INPROGRESS: {
+ html = MSG.common_status_inprogress();
+ break;
+ }
+ case NOCHANGE: {
+ html = MSG.common_status_success();
+ break;
+ }
+ }
+ }
+ return html;
+ }
+ });
+ statusField.addRecordClickHandler(new RecordClickHandler() {
+ @Override
+ public void onRecordClick(RecordClickEvent event) {
+ String err = event.getRecord().getAttribute(Field.ERROR_MESSAGE);
+ if (err != null && err.length() > 0) {
+ err = "<pre>" + err + "</pre>";
+ new ErrorMessageWindow("errWin", MSG.common_title_error(), err).show();
+ }
+ }
+ });
fields.add(statusField);
- DataSourceTextField subjectField = new DataSourceTextField(Field.SUBJECT,
- MSG.dataSource_configurationHistory_field_subject());
+ ListGridField subjectField = new ListGridField(Field.SUBJECT, MSG.common_title_user());
fields.add(subjectField);
+ ListGridField updateTypeField = new ListGridField(Field.GROUP_CONFIG_UPDATE_ID, MSG
+ .dataSource_configurationHistory_updateType());
+ updateTypeField.setCellFormatter(new CellFormatter() {
+ @Override
+ public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
+ if (value == null) {
+ return MSG.dataSource_configurationHistory_updateType_individual();
+ }
+ return MSG.dataSource_configurationHistory_updateType_group();
+ }
+ });
+ fields.add(updateTypeField);
+
+ // determine the widths of our columns
+ if (includeResourceFields) {
+ ListGridField resourceField = new ListGridField(Field.RESOURCE, MSG.common_title_resource());
+ resourceField.setCellFormatter(new CellFormatter() {
+ public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
+ if (listGridRecord == null) {
+ return "unknown";
+ }
+ Resource res = (Resource) listGridRecord.getAttributeAsObject(Field.RESOURCE);
+ String url = LinkManager.getResourceLink(res.getId());
+ // TODO disambiguate the resource name
+ return SeleniumUtility.getLocatableHref(url, res.getName(), null);
+ }
+ });
+ fields.add(resourceField);
+
+ idField.setWidth("10%");
+ submittedTimeField.setWidth("20%");
+ completedTimeField.setWidth("20%");
+ statusField.setWidth("10%");
+ subjectField.setWidth("10%");
+ updateTypeField.setWidth("10%");
+ resourceField.setWidth("*");
+ } else {
+ idField.setWidth("10%");
+ submittedTimeField.setWidth("20%");
+ completedTimeField.setWidth("20%");
+ statusField.setWidth("10%");
+ subjectField.setWidth("10%");
+ updateTypeField.setWidth("*");
+ }
+
+ return fields;
+ }
+
+ @Override
+ protected List<DataSourceField> addDataSourceFields() {
+ List<DataSourceField> fields = super.addDataSourceFields();
+ DataSourceIntegerField idField = new DataSourceIntegerField(Field.ID, MSG.common_title_id());
+ idField.setPrimaryKey(true);
+ fields.add(idField);
return fields;
}
@@ -105,10 +248,11 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
ResourceConfigurationUpdateCriteria criteria = new ResourceConfigurationUpdateCriteria();
criteria.fetchConfiguration(true);
criteria.fetchResource(true);
+ criteria.fetchGroupConfigurationUpdate(true);
criteria.setPageControl(getPageControl(request));
- Integer resourceId = (Integer) request.getCriteria().getValues().get(CriteriaField.RESOURCE_ID);
+ final Integer resourceId = (Integer) request.getCriteria().getValues().get(CriteriaField.RESOURCE_ID);
if (resourceId != null) {
criteria.addFilterResourceIds(resourceId);
}
@@ -122,10 +266,43 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
processResponse(request.getRequestId(), response);
}
- public void onSuccess(PageList<ResourceConfigurationUpdate> result) {
- response.setData(buildRecords(result));
- response.setTotalRows(result.getTotalSize());
- processResponse(request.getRequestId(), response);
+ public void onSuccess(final PageList<ResourceConfigurationUpdate> result) {
+ final ListGridRecord[] records = buildRecords(result);
+ if (resourceId == null) {
+ response.setData(records);
+ response.setTotalRows(result.getTotalSize());
+ processResponse(request.getRequestId(), response);
+ return; // we can finish now, we don't need any additional information
+ }
+
+ // we are obtaining a single resource's history items. Let's find out which is
+ // its latest, current config item so we can mark it as such
+ configurationService.getLatestResourceConfigurationUpdate(resourceId.intValue(),
+ new AsyncCallback<ResourceConfigurationUpdate>() {
+ @Override
+ public void onSuccess(ResourceConfigurationUpdate latestResult) {
+ if (latestResult != null) {
+ for (ListGridRecord record : records) {
+ boolean latest = record.getAttributeAsInt(Field.ID).intValue() == latestResult
+ .getId();
+ record.setAttribute(Field.CURRENT_CONFIG, latest);
+ }
+ }
+ finish();
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ // should we show an error message? this just means we can't show any item as the "current" one
+ finish();
+ }
+
+ private void finish() {
+ response.setData(records);
+ response.setTotalRows(result.getTotalSize());
+ processResponse(request.getRequestId(), response);
+ }
+ });
}
});
}
@@ -142,12 +319,18 @@ public class ConfigurationHistoryDataSource extends RPCDataSource<ResourceConfig
record.setAttribute(Field.RESOURCE, from.getResource());
record.setAttribute(Field.RESOURCE_TYPE_ID, from.getResource().getResourceType().getId());
record.setAttribute(Field.SUBJECT, from.getSubjectName());
+ record.setAttribute(Field.STATUS, from.getStatus().name());
record.setAttribute(Field.CONFIGURATION, from.getConfiguration());
- record.setAttribute(Field.CREATED_TIME, new Date(from.getCreatedTime()));
record.setAttribute(Field.DURATION, from.getDuration());
record.setAttribute(Field.ERROR_MESSAGE, from.getErrorMessage());
- record.setAttribute(Field.MODIFIED_TIME, new Date(from.getModifiedTime()));
- record.setAttribute(Field.STATUS, from.getStatus().name());
+ record.setAttribute(Field.CREATED_TIME, new Date(from.getCreatedTime()));
+ // if it is still in progress, the modified time (which we label as "date completed") is meaningless since it isn't completed yet
+ if (from.getStatus() != ConfigurationUpdateStatus.INPROGRESS) {
+ record.setAttribute(Field.MODIFIED_TIME, new Date(from.getModifiedTime()));
+ }
+ if (from.getGroupConfigurationUpdate() != null) {
+ record.setAttribute(Field.GROUP_CONFIG_UPDATE_ID, from.getGroupConfigurationUpdate().getId());
+ }
record.setAttribute(Field.OBJECT, from);
return record;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
index d758fcb..9062e3b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
@@ -23,17 +23,15 @@ import java.util.List;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.Criteria;
+import com.smartgwt.client.types.SortDirection;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import org.rhq.core.domain.configuration.ConfigurationUpdateStatus;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
-import org.rhq.core.domain.resource.Resource;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.ImageManager;
-import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationComparisonView;
import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction;
import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement;
@@ -46,7 +44,10 @@ import org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity;
import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/**
+ * The main view that lists all resource configuration history items.
+ *
* @author Greg Hinkle
+ * @author John Mazzitelli
*/
public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryDataSource> {
public static final ViewName VIEW_ID = new ViewName("RecentConfigurationChanges", MSG
@@ -59,7 +60,8 @@ public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryD
*/
public ConfigurationHistoryView(String locatorId) {
super(locatorId, VIEW_ID.getTitle());
- final ConfigurationHistoryDataSource datasource = new ConfigurationHistoryDataSource();
+ this.resourceId = null;
+ ConfigurationHistoryDataSource datasource = new ConfigurationHistoryDataSource();
setDataSource(datasource);
}
@@ -83,52 +85,29 @@ public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryD
@Override
protected void configureTable() {
- List<ListGridField> fields = new ArrayList<ListGridField>();
-
- ListGridField idField = new ListGridField(ConfigurationHistoryDataSource.Field.ID, 60);
- fields.add(idField);
+ List<ListGridField> fields = getDataSource().getListGridFields(this.resourceId == null);
+ setListGridFields(true, fields.toArray(new ListGridField[fields.size()])); // true = always show the ID field
+ getListGrid().sort(Field.ID, SortDirection.DESCENDING);
- ListGridField createdTimeField = new ListGridField(ConfigurationHistoryDataSource.Field.CREATED_TIME, 200);
- fields.add(createdTimeField);
-
- if (this.resourceId == null) {
- ListGridField resourceField = new ListGridField(ConfigurationHistoryDataSource.Field.RESOURCE);
- resourceField.setCellFormatter(new CellFormatter() {
- public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
- if (listGridRecord == null) {
- return "unknown";
+ addTableAction(extendLocatorId("Delete"), MSG.common_button_delete(), MSG.common_msg_areYouSure(),
+ new AbstractTableAction(TableActionEnablement.ANY) {
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ if (selection != null && selection.length > 0) {
+ int[] doomedIds = new int[selection.length];
+ int i = 0;
+ for (ListGridRecord selected : selection) {
+ doomedIds[i] = selected.getAttributeAsInt(Field.ID);
+ if (selected.getAttribute(Field.GROUP_CONFIG_UPDATE_ID) != null) {
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_configurationHistoryList_cannotDeleteGroupItems(),
+ Severity.Warning));
+ return; // abort
+ }
+ }
+ delete(doomedIds);
}
- Resource res = (Resource) listGridRecord
- .getAttributeAsObject(ConfigurationHistoryDataSource.Field.RESOURCE);
- String url = LinkManager.getResourceLink(res.getId());
- return SeleniumUtility.getLocatableHref(url, res.getName(), null);
}
});
- fields.add(resourceField);
- }
-
- ListGridField statusField = new ListGridField(ConfigurationHistoryDataSource.Field.STATUS, 100);
- statusField.setCellFormatter(new CellFormatter() {
- public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
- ConfigurationUpdateStatus status = ConfigurationUpdateStatus.valueOf((String) o);
- return Canvas.imgHTML(ImageManager.getResourceConfigurationIcon(status), 16, 16);
- }
- });
- fields.add(statusField);
-
- ListGridField subjectField = new ListGridField(ConfigurationHistoryDataSource.Field.SUBJECT, 150);
- fields.add(subjectField);
-
- setListGridFields(fields.toArray(new ListGridField[fields.size()]));
-
- addTableAction(extendLocatorId("Delete"), MSG.common_button_delete(), MSG.common_msg_deleteConfirm(MSG
- .common_msg_deleteConfirm(MSG.view_configurationHistoryList_itemNamePlural())), new AbstractTableAction(
- TableActionEnablement.ANY) {
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- // TODO: Implement this method.
- CoreGUI.getErrorHandler().handleError(MSG.common_msg_notYetImplemented());
- }
- });
addTableAction(extendLocatorId("Compare"), MSG.common_button_compare(), null, new AbstractTableAction(
TableActionEnablement.MULTIPLE) {
@@ -146,8 +125,10 @@ public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryD
addTableAction(extendLocatorId("Rollback"), MSG.view_configurationHistoryList_rollback(), null,
new AbstractTableAction(TableActionEnablement.SINGLE) {
public void executeAction(ListGridRecord[] selection, Object actionValue) {
- ListGridRecord record = selection[0];
- rollback(record.getAttributeAsInt(Field.ID).intValue());
+ if (selection != null && selection.length == 1) {
+ ListGridRecord record = selection[0];
+ rollback(record.getAttributeAsInt(Field.ID).intValue());
+ }
}
});
@@ -156,7 +137,23 @@ public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryD
@Override
protected String getDetailsLinkColumnName() {
- return Field.CREATED_TIME;
+ return Field.ID;
+ }
+
+ @Override
+ protected CellFormatter getDetailsLinkColumnCellFormatter() {
+ return new CellFormatter() {
+ public String format(Object value, ListGridRecord record, int i, int i1) {
+ Integer recordId = getId(record);
+ String detailsUrl = "#" + getBasePath() + "/" + recordId;
+ String cellHtml = SeleniumUtility.getLocatableHref(detailsUrl, value.toString(), null);
+ String isCurrentConfig = record.getAttribute(Field.CURRENT_CONFIG);
+ if (Boolean.parseBoolean(isCurrentConfig)) {
+ cellHtml = Canvas.imgHTML(ImageManager.getApproveIcon()) + cellHtml;
+ }
+ return cellHtml;
+ }
+ };
}
@Override
@@ -172,6 +169,7 @@ public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryD
public void onSuccess(Void result) {
CoreGUI.getMessageCenter().notify(
new Message(MSG.view_configurationHistoryList_rollback_success(), Severity.Info));
+ CoreGUI.refresh();
}
@Override
@@ -181,6 +179,23 @@ public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryD
});
}
+ private void delete(int[] doomedIds) {
+ GWTServiceLookup.getConfigurationService().purgeResourceConfigurationUpdates(doomedIds, true,
+ new AsyncCallback<Void>() {
+ @Override
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_configurationHistoryList_delete_success(), Severity.Info));
+ CoreGUI.refresh();
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(MSG.view_configurationHistoryList_delete_failure(), caught);
+ }
+ });
+ }
+
// -------- Static Utility loaders ------------
public static ConfigurationHistoryView getHistoryOf(String locatorId, int resourceId) {
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
index 2582d0b..d2ad927 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
@@ -480,11 +480,13 @@ dataSource_operationHistory_startedTime = Started Time
# Configuration History
#-------------------------------
-dataSource_configurationHistory_field_id = ID
-dataSource_configurationHistory_field_resource = Resource
-dataSource_configurationHistory_field_createdTime = Created
-dataSource_configurationHistory_field_status = Status
-dataSource_configurationHistory_field_subject = Subject
+dataSource_configurationHistory_dateSubmitted = Date Submitted
+dataSource_configurationHistory_dateCompleted = Date Completed
+dataSource_configurationHistory_updateType = Update Type
+dataSource_configurationHistory_updateType_individual = Individual
+dataSource_configurationHistory_updateType_group = Group
+dataSource_configurationHistory_currentConfig = This is the current configuration
+dataSource_configurationHistory_clickToSeeError = Double click to see error message...
dataSource_configurationHistory_error_fetchFailure = Unable to load configuration history.
# Resource Errors
@@ -1742,10 +1744,13 @@ view_configurationDetails_somePropertiesInvalid = The following configuration pr
# Configuration History List
view_configurationHistoryList_title = Configuration History
-view_configurationHistoryList_itemNamePlural = configuration history items
view_configurationHistoryList_rollback = Rollback
view_configurationHistoryList_rollback_success = You successfully rolled back the resource configuration to the selected past configuration.
view_configurationHistoryList_rollback_failure = Failed to rollback the configuration. The original configuration is still in effect.
+view_configurationHistoryList_delete_success = You successfully deleted the selected configuration history items.
+view_configurationHistoryList_delete_failure = Failed to delete the configuration history items.
+view_configurationHistoryList_cannotDeleteGroupItems = One or more selected configuration history items are part of a group configuration update. \
+You must purge that parent group history item before you can delete its individual resource history items.
# Configuration History Details
#------------------------------------------
commit 8f0490a3b644e86002422fbc2aace8e688f8ca32
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Feb 23 14:45:08 2011 -0500
part of BZ 679130 - add rollback button to resource config history view
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java
index cb28a85..25bc2dd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java
@@ -25,6 +25,11 @@ import org.rhq.core.domain.util.PageList;
*/
@RemoteServiceRelativePath("ConfigurationGWTService")
public interface ConfigurationGWTService extends RemoteService {
+
+ void purgeResourceConfigurationUpdates(int[] configUpdateIds, boolean purgeInProgress) throws RuntimeException;
+
+ void rollbackResourceConfiguration(int resourceId, int configHistoryId) throws RuntimeException;
+
ResourceConfigurationUpdate getLatestResourceConfigurationUpdate(int resourceId) throws RuntimeException;
Configuration getPluginConfiguration(int resourceId) throws RuntimeException;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDetailView.java
index cc48ae9..136ba94 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryDetailView.java
@@ -21,7 +21,6 @@ package org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.configur
import java.util.EnumSet;
import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.smartgwt.client.widgets.Window;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
@@ -40,7 +39,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
* @author Greg Hinkle
*/
public class ConfigurationHistoryDetailView extends LocatableVLayout implements BookmarkableView {
-
+
public ConfigurationHistoryDetailView(String locatorId) {
super(locatorId);
@@ -65,19 +64,6 @@ public class ConfigurationHistoryDetailView extends LocatableVLayout implements
});
}
- public void displayInDialog() {
- Window window = new Window();
- window.setTitle(MSG.view_configurationHistoryDetails_dialogTitle());
- window.setWidth(800);
- window.setHeight(800);
- window.setIsModal(true);
- window.setShowModalMask(true);
- window.setCanDragResize(true);
- window.centerInPage();
- window.addItem(this);
- window.show();
- }
-
@Override
public void renderView(ViewPath viewPath) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
index 14d74b3..d758fcb 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
@@ -21,6 +21,7 @@ package org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.configur
import java.util.ArrayList;
import java.util.List;
+import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.grid.CellFormatter;
@@ -38,7 +39,10 @@ import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableActio
import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement;
import org.rhq.enterprise.gui.coregui.client.components.table.TableSection;
import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.configuration.ConfigurationHistoryDataSource.Field;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity;
import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/**
@@ -139,6 +143,14 @@ public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryD
}
});
+ addTableAction(extendLocatorId("Rollback"), MSG.view_configurationHistoryList_rollback(), null,
+ new AbstractTableAction(TableActionEnablement.SINGLE) {
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ ListGridRecord record = selection[0];
+ rollback(record.getAttributeAsInt(Field.ID).intValue());
+ }
+ });
+
super.configureTable();
}
@@ -150,10 +162,25 @@ public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryD
@Override
public Canvas getDetailsView(int id) {
ConfigurationHistoryDetailView detailView = new ConfigurationHistoryDetailView(this.getLocatorId());
-
return detailView;
}
+ private void rollback(int configHistoryIdToRollbackTo) {
+ GWTServiceLookup.getConfigurationService().rollbackResourceConfiguration(this.resourceId.intValue(),
+ configHistoryIdToRollbackTo, new AsyncCallback<Void>() {
+ @Override
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_configurationHistoryList_rollback_success(), Severity.Info));
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(MSG.view_configurationHistoryList_rollback_failure(), caught);
+ }
+ });
+ }
+
// -------- Static Utility loaders ------------
public static ConfigurationHistoryView getHistoryOf(String locatorId, int resourceId) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
index d285b4b..9668517 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
@@ -47,6 +47,24 @@ public class ConfigurationGWTServiceImpl extends AbstractGWTServiceImpl implemen
private ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
private ResourceGroupManagerLocal groupManager = LookupUtil.getResourceGroupManager();
+ public void purgeResourceConfigurationUpdates(int[] configUpdateIds, boolean purgeInProgress)
+ throws RuntimeException {
+ try {
+ configurationManager.purgeResourceConfigurationUpdates(getSessionSubject(), configUpdateIds,
+ purgeInProgress);
+ } catch (Throwable t) {
+ throw new RuntimeException(ThrowableUtil.getAllMessages(t));
+ }
+ }
+
+ public void rollbackResourceConfiguration(int resourceId, int configHistoryId) throws RuntimeException {
+ try {
+ configurationManager.rollbackResourceConfiguration(getSessionSubject(), resourceId, configHistoryId);
+ } catch (Throwable t) {
+ throw new RuntimeException(ThrowableUtil.getAllMessages(t));
+ }
+ }
+
public ResourceConfigurationUpdate getLatestResourceConfigurationUpdate(int resourceId) throws RuntimeException {
try {
ResourceConfigurationUpdate update = configurationManager.getLatestResourceConfigurationUpdate(
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
index 2e2cd19..2582d0b 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
@@ -1743,10 +1743,12 @@ view_configurationDetails_somePropertiesInvalid = The following configuration pr
# Configuration History List
view_configurationHistoryList_title = Configuration History
view_configurationHistoryList_itemNamePlural = configuration history items
+view_configurationHistoryList_rollback = Rollback
+view_configurationHistoryList_rollback_success = You successfully rolled back the resource configuration to the selected past configuration.
+view_configurationHistoryList_rollback_failure = Failed to rollback the configuration. The original configuration is still in effect.
# Configuration History Details
#------------------------------------------
-view_configurationHistoryDetails_dialogTitle = Configuration Details
view_configurationHistoryDetails_error_loadFailure = Unable to load configuration history.
# Operation History List
commit c6e63ff13c49f901d77c33962296dd9903519729
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Feb 23 14:01:15 2011 -0500
this class already supports double-clicking to show details (TableSection).
no need for show details button, that is not consistent wiht the rest of the ui
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
index df13c8f..14d74b3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java
@@ -44,7 +44,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/**
* @author Greg Hinkle
*/
-public class ConfigurationHistoryView extends TableSection {
+public class ConfigurationHistoryView extends TableSection<ConfigurationHistoryDataSource> {
public static final ViewName VIEW_ID = new ViewName("RecentConfigurationChanges", MSG
.view_configurationHistoryList_title());
@@ -139,14 +139,6 @@ public class ConfigurationHistoryView extends TableSection {
}
});
- addTableAction(extendLocatorId("ShowDetail"), MSG.common_button_showDetails(), null, new AbstractTableAction(
- TableActionEnablement.SINGLE) {
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- ListGridRecord record = selection[0];
- showDetails(record);
- }
- });
-
super.configureTable();
}
13 years, 2 months
[rhq] modules/enterprise
by ips
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java | 5 +++-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsEditor.java | 11 +++++-----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java | 10 ++++-----
3 files changed, 15 insertions(+), 11 deletions(-)
New commits:
commit 5a945cfca6b3b1b046b439d9dd1f4ea878a288a5
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed Feb 23 17:27:26 2011 -0500
a few locator fixes; clear message bar when user goes to a new url
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
index 7d06d1d..6f447ff 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
@@ -367,7 +367,10 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
// default view
History.newItem(DEFAULT_VIEW_PATH);
} else {
- if (pendingMessage != null) {
+ messageBar.clearMessage(true);
+
+ if (
+ pendingMessage != null) {
getMessageCenter().notify(pendingMessage);
pendingMessage = null;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsEditor.java
index 9300960..a2e1f04 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsEditor.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -49,6 +49,7 @@ import org.rhq.core.domain.authz.Role;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.Messages;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableListGrid;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVStack;
/**
@@ -142,7 +143,7 @@ public class PermissionsEditor extends LocatableVStack {
}
private ListGrid createGlobalPermissionsGrid() {
- ListGrid grid = createPermissionsGrid();
+ ListGrid grid = createPermissionsGrid("GlobalPermissions");
// TODO: Add table title.
@@ -182,7 +183,7 @@ public class PermissionsEditor extends LocatableVStack {
}
private ListGrid createResourcePermissionsGrid() {
- ListGrid grid = createPermissionsGrid();
+ ListGrid grid = createPermissionsGrid("ResourcePermissions");
// TODO: Add table title.
ListGridField iconField = createIconField();
@@ -290,8 +291,8 @@ public class PermissionsEditor extends LocatableVStack {
return iconField;
}
- private ListGrid createPermissionsGrid() {
- ListGrid grid = new ListGrid();
+ private LocatableListGrid createPermissionsGrid(String id) {
+ LocatableListGrid grid = new LocatableListGrid(extendLocatorId(id));
grid.setAutoFitData(Autofit.BOTH);
grid.setWrapCells(true);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java
index 1731a7a..b28c6ce 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java
@@ -22,12 +22,12 @@ package org.rhq.enterprise.gui.coregui.client.util.message;
import com.google.gwt.user.client.Timer;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.Overflow;
-import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.DoubleClickEvent;
import com.smartgwt.client.widgets.events.DoubleClickHandler;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableLabel;
/**
* A bar for displaying a message at the top of a page - the equivalent of the JSF h:messages component.
@@ -39,7 +39,7 @@ public class MessageBar extends LocatableHLayout implements MessageCenter.Messag
private static final String LOCATOR_ID = "MessageBar";
private static final int AUTO_HIDE_DELAY_MILLIS = 30000;
- private Label label = new Label();
+ private LocatableLabel label = new LocatableLabel(extendLocatorId("Label"));
private Message stickyMessage;
private static final String NON_BREAKING_SPACE = " ";
@@ -64,7 +64,7 @@ public class MessageBar extends LocatableHLayout implements MessageCenter.Messag
setLabelEmpty();
addMember(label);
- // sometimes its annoying to have the error message hang around for too long
+ // sometimes it's annoying to have the error message hang around for too long;
// let the user click the message so it goes away on demand
addDoubleClickHandler(new DoubleClickHandler() {
@Override
@@ -98,7 +98,7 @@ public class MessageBar extends LocatableHLayout implements MessageCenter.Messag
}
}
- private void clearMessage(boolean clearSticky) {
+ public void clearMessage(boolean clearSticky) {
setLabelEmpty();
markForRedraw();
@@ -121,7 +121,7 @@ public class MessageBar extends LocatableHLayout implements MessageCenter.Messag
String styleName = (contents != null) ? message.getSeverity().getStyle() : null;
label.setStyleName(styleName);
- // TODO: Create some custom edge images in greed, yellow, red, etc. so we can add nice rounded corners to the
+ // TODO: Create some custom edge images in green, yellow, red, etc. so we can add nice rounded corners to the
// label.
//label.setShowEdges(true);
13 years, 2 months