[rhq] 2 commits - modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java | 2 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
New commits:
commit e96cf8b15c2194cd84ad70a69c0cce63600c1c86
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Nov 23 13:02:09 2010 -0500
add the mixed group icon to the mixed group left hand view
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
index 9a218fb..364c1a5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
@@ -171,6 +171,8 @@ public class ResourceGroupTreeView extends LocatableVLayout implements Bookmarka
ResourceGroupTreeView.this.rootGroupId = rootResourceGroup.getId();
TreeNode fakeRoot = new TreeNode("fakeRootNode");
TreeNode rootNode = new TreeNode(rootResourceGroup.getName());
+ String icon = "types/Group_up_16.png";
+ rootNode.setIcon(icon);
rootNode.setID(String.valueOf(rootResourceGroup.getId())); //getClusterKey().toString());
fakeRoot.setChildren(new TreeNode[] { rootNode });
Tree tree = new Tree();
commit 6c3258be07be678ef05643356832de038d89fb69
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Nov 23 13:01:56 2010 -0500
change selection style to require control to multi-selection. this seems to make double-clicking easier and more reliable
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 67e1b4b..d82bfd4 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
@@ -222,7 +222,7 @@ public class Table<DS extends RPCDataSource> extends LocatableHLayout implements
}
protected SelectionStyle getDefaultSelectionStyle() {
- return SelectionStyle.SIMPLE;
+ return SelectionStyle.MULTIPLE;
}
@Override
13 years, 6 months
[rhq] 2 commits - modules/enterprise
by ips
modules/enterprise/gui/coregui/pom.xml | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java | 56 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java | 98 ++-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java | 28 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java | 61 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java | 25
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java | 12
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/TitleBar.java | 50 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java | 256 ++++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java | 25
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SubjectGWTService.java | 14
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/CanvasUtility.java | 1
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SubjectGWTServiceImpl.java | 11
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml | 3
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java | 22
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java | 16
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java | 19
19 files changed, 477 insertions(+), 231 deletions(-)
New commits:
commit 5097b1982d4ac7c5c96c3f5869ba5e025b1a679d
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Tue Nov 23 12:59:56 2010 -0500
a whole bunch of tweaks to layout of user/role edit views; fix wrapping of permission grid rows; some refactoring of base record editor class for easier subclassing
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
index 28440fd..fbaf720 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
@@ -29,6 +29,7 @@ import com.google.gwt.core.client.JavaScriptObject;
import com.smartgwt.client.core.RefDataClass;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.Autofit;
import com.smartgwt.client.types.ListGridEditEvent;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.util.JSOHelper;
@@ -133,8 +134,8 @@ public class PermissionsItem extends CanvasItem {
}
private ListGrid createGlobalPermissionsGrid() {
- ListGrid grid = new ListGrid();
- grid.setHeight(115);
+ ListGrid grid = createPermissionsGrid();
+
// TODO: Add table title.
ListGridField iconField = new ListGridField("icon", " ", 40);
@@ -178,8 +179,7 @@ public class PermissionsItem extends CanvasItem {
}
private ListGrid createResourcePermissionsGrid() {
- ListGrid grid = new ListGrid();
- grid.setHeight(290);
+ ListGrid grid = createPermissionsGrid();
// TODO: Add table title.
ListGridField iconField = new ListGridField("icon", " ", 40);
@@ -276,6 +276,16 @@ public class PermissionsItem extends CanvasItem {
return grid;
}
+ private ListGrid createPermissionsGrid() {
+ ListGrid grid = new ListGrid();
+
+ grid.setAutoFitData(Autofit.BOTH);
+ grid.setWrapCells(true);
+ grid.setFixedRecordHeights(false);
+
+ return grid;
+ }
+
private ListGridField createAuthorizedField(String name, String title, final String nameField, final ListGrid grid) {
final ListGridField authorizedField = new ListGridField(name, title, 65);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
index 934ee8c..df0035b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
@@ -45,6 +45,7 @@ import org.rhq.enterprise.gui.coregui.client.UserPermissionsManager;
import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
import org.rhq.enterprise.gui.coregui.client.components.form.AbstractRecordEditor;
+import org.rhq.enterprise.gui.coregui.client.components.form.EnhancedDynamicForm;
import org.rhq.enterprise.gui.coregui.client.components.selector.AssignedItemsChangedEvent;
import org.rhq.enterprise.gui.coregui.client.components.selector.AssignedItemsChangedHandler;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
@@ -193,7 +194,8 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
+ MSG.view_adminRoles_noLdap("href='#Administration/Configuration/SystemSettings'", MSG
.view_adminConfig_systemSettings()));
label.setWidth100();
- label.setPadding(6);
+ label.setHeight(20);
+ label.setPadding(5);
this.ldapGroupsItem.setCanvas(label);
}
}
@@ -202,40 +204,40 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
}
@Override
- protected List<FormItem> createFormItems(boolean newRole) {
+ protected List<FormItem> createFormItems(EnhancedDynamicForm form) {
List<FormItem> items = new ArrayList<FormItem>();
TextItem nameItem = new TextItem(RolesDataSource.Field.NAME, MSG.common_title_name());
items.add(nameItem);
TextItem descriptionItem = new TextItem(RolesDataSource.Field.DESCRIPTION, MSG.common_title_description());
- descriptionItem.setColSpan(getForm().getNumCols());
+ descriptionItem.setColSpan(form.getNumCols());
descriptionItem.setWidth("*");
items.add(descriptionItem);
permissionsItem = new PermissionsItem(this);
permissionsItem.setShowTitle(false);
- permissionsItem.setColSpan(getForm().getNumCols());
+ permissionsItem.setColSpan(form.getNumCols());
items.add(permissionsItem);
resourceGroupsItem = new CanvasItem(RolesDataSource.Field.RESOURCE_GROUPS, MSG.view_adminRoles_assignedGroups());
resourceGroupsItem.setShowTitle(false);
resourceGroupsItem.setTitleOrientation(TitleOrientation.TOP);
- resourceGroupsItem.setColSpan(getForm().getNumCols());
+ resourceGroupsItem.setColSpan(form.getNumCols());
resourceGroupsItem.setCanvas(new Canvas());
items.add(resourceGroupsItem);
subjectsItem = new CanvasItem(RolesDataSource.Field.SUBJECTS, MSG.view_adminRoles_assignedSubjects());
subjectsItem.setShowTitle(false);
subjectsItem.setTitleOrientation(TitleOrientation.TOP);
- subjectsItem.setColSpan(getForm().getNumCols());
+ subjectsItem.setColSpan(form.getNumCols());
subjectsItem.setCanvas(new Canvas());
items.add(subjectsItem);
ldapGroupsItem = new CanvasItem(RolesDataSource.Field.LDAP_GROUPS, MSG.view_adminRoles_ldapGroups());
ldapGroupsItem.setShowTitle(false);
ldapGroupsItem.setTitleOrientation(TitleOrientation.TOP);
- ldapGroupsItem.setColSpan(getForm().getNumCols());
+ ldapGroupsItem.setColSpan(form.getNumCols());
ldapGroupsItem.setCanvas(new Canvas());
items.add(ldapGroupsItem);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
index 6a91645..cf4650d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
@@ -24,8 +24,9 @@ import java.util.Set;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.form.fields.CanvasItem;
import com.smartgwt.client.widgets.form.fields.FormItem;
-import com.smartgwt.client.widgets.form.fields.HiddenItem;
import com.smartgwt.client.widgets.form.fields.PasswordItem;
import com.smartgwt.client.widgets.form.fields.RadioGroupItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
@@ -41,6 +42,7 @@ import org.rhq.enterprise.gui.coregui.client.UserPermissionsManager;
import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
import org.rhq.enterprise.gui.coregui.client.components.form.AbstractRecordEditor;
+import org.rhq.enterprise.gui.coregui.client.components.form.EnhancedDynamicForm;
import org.rhq.enterprise.gui.coregui.client.components.selector.AssignedItemsChangedEvent;
import org.rhq.enterprise.gui.coregui.client.components.selector.AssignedItemsChangedHandler;
@@ -55,6 +57,7 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
private static final String HEADER_ICON = "global/User_24.png";
private static final int SUBJECT_ID_RHQADMIN = 2;
+ private CanvasItem rolesItem;
private SubjectRoleSelector roleSelector;
private boolean hasManageSecurityPermission;
@@ -112,7 +115,7 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
onItemChanged();
}
});
- getBottomLayout().addMember(roleSelector);
+ this.rolesItem.setCanvas(this.roleSelector);
}
}
@@ -129,11 +132,11 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
}
@Override
- protected List<FormItem> createFormItems(boolean newUser) {
+ protected List<FormItem> createFormItems(EnhancedDynamicForm form) {
List<FormItem> items = new ArrayList<FormItem>();
// Username field should be editable when creating a new user, but should be read-only for existing users.
- if (newUser) {
+ if (form.isNewRecord()) {
TextItem nameItem = new TextItem(UsersDataSource.Field.NAME);
items.add(nameItem);
} else {
@@ -185,8 +188,12 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
activeItem.setVertical(false);
items.add(activeItem);
- HiddenItem rolesItem = new HiddenItem(UsersDataSource.Field.ROLES);
- items.add(rolesItem);
+ this.rolesItem = new CanvasItem(UsersDataSource.Field.ROLES);
+ this.rolesItem.setShowTitle(false);
+ this.rolesItem.setColSpan(form.getNumCols());
+ this.rolesItem.setCanvas(new Canvas());
+ items.add(this.rolesItem);
+
return items;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/TitleBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/TitleBar.java
index 28fb10a..36cc9ee 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/TitleBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/TitleBar.java
@@ -19,37 +19,55 @@
*/
package org.rhq.enterprise.gui.coregui.client.components;
+import com.google.gwt.user.client.Window;
+import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.layout.VLayout;
+
+import org.rhq.enterprise.gui.coregui.client.util.selenium.Locatable;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableToolStrip;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
/**
* A title bar to be displayed at the top of a content view - contains a label and/or an icon.
*
* @author Ian Springer
*/
-public class TitleBar extends VLayout {
+public class TitleBar extends LocatableToolStrip {
private Label label;
- public TitleBar() {
- this(null, null);
+ public TitleBar(Locatable parent) {
+ this(parent, null, null);
}
- public TitleBar(String title) {
- this(title, null);
+ public TitleBar(Locatable parent, String title) {
+ this(parent, title, null);
}
- public TitleBar(String title, String icon) {
+ public TitleBar(Locatable parent, String title, String icon) {
+ super(parent.extendLocatorId("TitleBar"));
+
setWidth100();
setHeight(35);
+ LocatableVLayout vLayout = new LocatableVLayout(extendLocatorId("VLayout"));
+ vLayout.setAlign(VerticalAlignment.CENTER);
+ vLayout.setLayoutMargin(5);
+
+ LocatableHLayout hLayout = new LocatableHLayout(vLayout.extendLocatorId("HLayout"));
+ vLayout.addMember(hLayout);
+
this.label = new Label();
+ this.label.setWidth("*");
this.label.setIcon(icon);
this.label.setIconWidth(24);
this.label.setIconHeight(24);
this.label.setAutoHeight();
+ hLayout.addMember(this.label);
setVisible(false);
- addMember(this.label);
+ addMember(vLayout);
+
setTitle(title);
}
@@ -69,9 +87,19 @@ public class TitleBar extends VLayout {
}
private void refresh(String title) {
- String contents = "<span class='HeaderLabel'>" + title + "</span>";
- this.label.setContents(contents);
setVisible(title != null);
- //markForRedraw();
+
+ String contents;
+ String windowTitle;
+ if (title == null) {
+ contents = null;
+ windowTitle = "RHQ";
+ } else {
+ contents = "<span class='HeaderLabel'>" + title + "</span>";
+ windowTitle = "RHQ: " + title;
+ }
+ this.label.setContents(contents);
+ Window.setTitle(windowTitle);
}
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
index 19140df..277d773 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
@@ -32,6 +32,8 @@ import com.smartgwt.client.data.Record;
import com.smartgwt.client.rpc.RPCResponse;
import com.smartgwt.client.types.DSOperationType;
import com.smartgwt.client.types.Overflow;
+import com.smartgwt.client.types.VerticalAlignment;
+import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.ClickEvent;
@@ -40,7 +42,6 @@ import com.smartgwt.client.widgets.form.events.ItemChangedEvent;
import com.smartgwt.client.widgets.form.events.ItemChangedHandler;
import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
@@ -48,9 +49,12 @@ import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.DetailsView;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
import org.rhq.enterprise.gui.coregui.client.components.TitleBar;
+import org.rhq.enterprise.gui.coregui.client.util.CanvasUtility;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableIButton;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableToolStrip;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
/**
@@ -70,16 +74,13 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
private int recordId;
private TitleBar titleBar;
- private VLayout editCanvas;
private EnhancedDynamicForm form;
private DS dataSource;
- private IButton saveButton;
- private IButton resetButton;
private boolean isReadOnly;
- private VLayout bottomLayout;
private String dataTypeName;
private String listViewPath;
private boolean wasInvalid;
+ private ButtonBar buttonBar;
public AbstractRecordEditor(String locatorId, DS dataSource, int recordId, String dataTypeName,
String headerIcon) {
@@ -88,15 +89,14 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
this.recordId = recordId;
this.dataTypeName = capitalize(dataTypeName);
- // Set properties for this VLayout.
- setOverflow(Overflow.AUTO);
- setPadding(7);
+ setLayoutMargin(0);
+ setMembersMargin(16);
// Display a "Loading..." label at the top of the view to keep the user informed.
addMember(LOADING_LABEL);
// Add title bar. We'll set the actual title later.
- this.titleBar = new TitleBar(null, headerIcon);
+ this.titleBar = new TitleBar(this, null, headerIcon);
this.titleBar.hide();
addMember(this.titleBar);
}
@@ -126,9 +126,16 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
CoreGUI.goToView(getListViewPath(), message);
} else {
this.isReadOnly = isReadOnly;
- this.editCanvas = buildEditor();
- this.editCanvas.hide();
- addMember(this.editCanvas);
+
+ VLayout contentPane = buildContentPane();
+ contentPane.hide();
+ addMember(contentPane);
+
+ this.buttonBar = buildButtonBar();
+ if (buttonBar != null) {
+ buttonBar.hide();
+ addMember(buttonBar);
+ }
if (this.recordId == ID_NEW) {
editNewRecord();
@@ -141,75 +148,42 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
}
}
- private VLayout buildEditor() {
- VLayout editorVLayout = new VLayout();
-
- boolean isNewRecord = (this.recordId == ID_NEW);
- this.form = new EnhancedDynamicForm(this.getLocatorId(), this.isReadOnly, isNewRecord);
- this.form.setDataSource(this.dataSource);
-
- List<FormItem> items = createFormItems(isNewRecord);
- this.form.setItems(items.toArray(new FormItem[items.size()]));
-
- this.form.addItemChangedHandler(new ItemChangedHandler() {
- public void onItemChanged(ItemChangedEvent event) {
- AbstractRecordEditor.this.onItemChanged();
- }
- });
+ protected VLayout buildContentPane() {
+ VLayout contentPane = new VLayout();
+ contentPane.setWidth100();
+ contentPane.setHeight100();
+ contentPane.setOverflow(Overflow.AUTO);
+ //contentPane.setPadding(7);
- editorVLayout.addMember(this.form);
-
- this.bottomLayout = new VLayout();
- editorVLayout.addMember(this.bottomLayout);
-
- if (!this.isReadOnly) {
- VLayout verticalSpacer = new VLayout();
- verticalSpacer.setHeight(12);
- editorVLayout.addMember(verticalSpacer);
+ this.form = buildForm();
+ contentPane.addMember(this.form);
- HLayout buttonLayout = createButtons();
+ return contentPane;
+ }
- editorVLayout.addMember(buttonLayout);
+ protected ButtonBar buildButtonBar() {
+ if (this.isReadOnly) {
+ return null;
}
- return editorVLayout;
+ return new ButtonBar();
}
- private HLayout createButtons() {
- HLayout buttonLayout = new HLayout(10);
-
- saveButton = new LocatableIButton(this.extendLocatorId("Save"), MSG.common_button_save());
- saveButton.setDisabled(true);
- saveButton.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- save();
- }
- });
+ protected EnhancedDynamicForm buildForm() {
+ boolean isNewRecord = (this.recordId == ID_NEW);
+ EnhancedDynamicForm form = new EnhancedDynamicForm(this.getLocatorId(), this.isReadOnly, isNewRecord);
+ form.setDataSource(this.dataSource);
- resetButton = new LocatableIButton(this.extendLocatorId("Reset"), MSG.common_button_reset());
- resetButton.setDisabled(true);
- resetButton.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- reset();
- resetButton.disable();
- }
- });
+ List<FormItem> items = createFormItems(form);
+ form.setItems(items.toArray(new FormItem[items.size()]));
- IButton cancelButton = new LocatableIButton(this.extendLocatorId("Cancel"), MSG.common_button_cancel());
- cancelButton.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- History.back();
+ form.addItemChangedHandler(new ItemChangedHandler() {
+ public void onItemChanged(ItemChangedEvent event) {
+ AbstractRecordEditor.this.onItemChanged();
}
});
- buttonLayout.addMember(saveButton);
- buttonLayout.addMember(resetButton);
- buttonLayout.addMember(cancelButton);
- return buttonLayout;
- }
-
- public VLayout getBottomLayout() {
- return bottomLayout;
+ return form;
}
public EnhancedDynamicForm getForm() {
@@ -232,7 +206,7 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
return listViewPath;
}
- protected abstract List<FormItem> createFormItems(boolean newRecord);
+ protected abstract List<FormItem> createFormItems(EnhancedDynamicForm form);
/**
* This method should be called whenever any editable item on the page is changed. It will enable the Reset button
@@ -244,8 +218,19 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
// If we're in editable mode, update the button enablement.
if (!this.isReadOnly) {
- this.saveButton.setDisabled(!isValid);
- this.resetButton.setDisabled(false);
+ IButton saveButton = this.buttonBar.getSaveButton();
+ boolean saveButtonWasDisabled = saveButton.isDisabled();
+ saveButton.setDisabled(!isValid);
+ if (saveButtonWasDisabled != !saveButton.isDisabled()) {
+ CanvasUtility.blink(saveButton);
+ }
+
+ IButton resetButton = this.buttonBar.getResetButton();
+ if (resetButton.isDisabled()) {
+ resetButton.setDisabled(false);
+ CanvasUtility.blink(resetButton);
+ }
+
if (!isValid) {
this.wasInvalid = true;
Message message = new Message("One or more fields have invalid values. This " + this.dataTypeName
@@ -378,9 +363,13 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
}
private void displayForm() {
- LOADING_LABEL.hide();
- this.titleBar.show();
- this.editCanvas.show();
+ removeMember(LOADING_LABEL);
+ LOADING_LABEL.destroy();
+
+ for (Canvas member : getMembers()) {
+ member.show();
+ }
+
markForRedraw();
}
@@ -428,5 +417,68 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
private static String capitalize(String itemTitle) {
return Character.toUpperCase(itemTitle.charAt(ID_NEW)) + itemTitle.substring(1);
}
+
+ protected class ButtonBar extends LocatableToolStrip {
+
+ private IButton saveButton;
+ private IButton resetButton;
+ private IButton cancelButton;
+
+ ButtonBar() {
+ super(AbstractRecordEditor.this.extendLocatorId("ButtonBar"));
+
+ setWidth100();
+ setHeight(35);
+
+ LocatableVLayout vLayout = new LocatableVLayout(extendLocatorId("VLayout"));
+ vLayout.setAlign(VerticalAlignment.CENTER);
+ vLayout.setLayoutMargin(4);
+
+ LocatableHLayout hLayout = new LocatableHLayout(vLayout.extendLocatorId("HLayout"));
+ hLayout.setMembersMargin(10);
+ vLayout.addMember(hLayout);
+
+ saveButton = new LocatableIButton(extendLocatorId("Save"), MSG.common_button_save());
+ saveButton.setDisabled(true);
+ saveButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ save();
+ }
+ });
+ hLayout.addMember(saveButton);
+
+ resetButton = new LocatableIButton(extendLocatorId("Reset"), MSG.common_button_reset());
+ resetButton.setDisabled(true);
+ resetButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ reset();
+ resetButton.disable();
+ }
+ });
+ hLayout.addMember(resetButton);
+
+ cancelButton = new LocatableIButton(extendLocatorId("Cancel"), MSG.common_button_cancel());
+ cancelButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ History.back();
+ }
+ });
+ hLayout.addMember(cancelButton);
+
+ addMember(vLayout);
+ }
+
+ public IButton getCancelButton() {
+ return cancelButton;
+ }
+
+ public IButton getResetButton() {
+ return resetButton;
+ }
+
+ public IButton getSaveButton() {
+ return saveButton;
+ }
+ }
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
index 7eaa761..6d76f2c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
@@ -27,6 +27,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import com.google.gwt.user.client.Timer;
+import com.smartgwt.client.types.DSOperationType;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.FormItemIfFunction;
import com.smartgwt.client.widgets.form.fields.BooleanItem;
@@ -62,7 +63,6 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
private static final String FIELD_ID = "id";
private boolean isReadOnly;
- private boolean isNewRecord;
public EnhancedDynamicForm(String locatorId) {
this(locatorId, false);
@@ -76,14 +76,18 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
super(locatorId);
this.isReadOnly = readOnly;
- this.isNewRecord = isNewRecord;
+ if (isNewRecord) {
+ setSaveOperationType(DSOperationType.ADD);
+ }
// Layout Settings
- setWidth(800);
- setPadding(13);
+ setWidth(640);
+ //setWidth100();
+ //setPadding(13);
// Default to 4 columns, i.e.: itemOneTitle | itemOneValue | itemTwoTitle | itemTwoValue
setNumCols(4);
- setColWidths("20%", "30%", "20%", "30%");
+ setColWidths(100, 220, 100, 220);
+ //setTitleWidth(100);
setWrapItemTitles(false);
// Other Display Settings
@@ -192,6 +196,7 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
});
togglableTextItem.setShowIfCondition(new FormItemIfFunction() {
public boolean execute(FormItem formItem, Object o, DynamicForm dynamicForm) {
+ @SuppressWarnings({"UnnecessaryLocalVariable"})
boolean editing = staticTextItem.getAttributeAsBoolean("editing");
return editing;
}
@@ -205,7 +210,7 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
// If the dataSource has an "id" field, make sure the form does too.
if (!hasIdField && getDataSource() != null && getDataSource().getField(FIELD_ID) != null) {
FormItem idItem;
- if (this.isNewRecord || !CoreGUI.isDebugMode()) {
+ if (isNewRecord() != null && isNewRecord() || !CoreGUI.isDebugMode()) {
idItem = new HiddenItem(FIELD_ID);
} else {
idItem = new StaticTextItem(FIELD_ID, MSG.common_title_id());
@@ -214,12 +219,12 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
}
for (FormItem item : itemsList) {
- if (this.isNewRecord && !(item instanceof StaticTextItem)) {
+ if (isNewRecord() != null && isNewRecord() && !(item instanceof StaticTextItem)) {
item.setValidateOnChange(true);
}
//item.setWidth("*"); // this causes a JavaScript exception ... :-(
- item.setWidth(240);
+ item.setWidth(199);
}
super.setFields((FormItem[]) itemsList.toArray(new FormItem[itemsList.size()]));
@@ -233,6 +238,10 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
}
}
+ public boolean isReadOnly() {
+ return isReadOnly;
+ }
+
private String getStaticTextItemName(String togglableTextItemName) {
return "static" + togglableTextItemName;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java
index 7a027ac..5bab96c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java
@@ -245,9 +245,4 @@ public abstract class AbstractSectionedLeftNavigationView extends LocatableHLayo
}
}
}
-
- protected static String addQueryStringParam(String url, String param) {
- char separatorChar = (url.indexOf('?') == -1) ? '?' : '&';
- return url + separatorChar + param;
- }
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/CanvasUtility.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/CanvasUtility.java
index 0721562..ef37367 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/CanvasUtility.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/CanvasUtility.java
@@ -27,7 +27,6 @@ import com.smartgwt.client.widgets.Canvas;
public class CanvasUtility {
public static void blink(Canvas canvas) {
-
canvas.animateFade(10, new FadeAnimationCallback(3,canvas,false));
}
commit 0dd71f1d16e603d3f14f46049e93683656cd9d7e
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Mon Nov 22 19:37:26 2010 -0500
several fixes to user and role views; user creation now persists the specified roles; role subjects and resource groups are now updated when role is saved; added support for new gwt.locale prop to coregui pom (e.g. mvn ... -Dgwt.locale=de)
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ff43e0d..3dbbcae 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -63,6 +63,10 @@
<!-- Change this to "true" via the mvn command line or your ~/.m2/settings.xml to speed
up gwt compilation. -->
<gwt.draftCompile>false</gwt.draftCompile>
+
+ <!-- Set the default locale for the GUI. Currently supported locales are "default" (for English) or "de" (for
+ German). -->
+ <gwt.locale>default</gwt.locale>
</properties>
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
index 830330a..28440fd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
@@ -19,6 +19,7 @@
package org.rhq.enterprise.gui.coregui.client.admin.roles;
import java.util.ArrayList;
+import java.util.EnumSet;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
@@ -63,9 +64,9 @@ public class PermissionsItem extends CanvasItem {
private static Messages MSG = CoreGUI.getMessages();
private Set<Permission> selectedPermissions;
-
private RoleEditView roleEditView;
private boolean isReadOnly;
+ private Object originalValue;
public PermissionsItem(RoleEditView roleEditView) {
super(RolesDataSource.Field.PERMISSIONS, "Permissions");
@@ -90,6 +91,11 @@ public class PermissionsItem extends CanvasItem {
return permissionsEditor;
}
+ public void reset() {
+ //setValue(this.originalValue);
+ redraw();
+ }
+
@Override
public void redraw() {
this.selectedPermissions = getValueAsPermissionSet();
@@ -114,11 +120,14 @@ public class PermissionsItem extends CanvasItem {
record.setAttribute("writeAuthorized", this.selectedPermissions.contains(writePermission));
}
- super.redraw();
+ getCanvas().markForRedraw();
}
private Set<Permission> getValueAsPermissionSet() {
Object nativeArray = getValue();
+ if (this.originalValue == null) {
+ this.originalValue = nativeArray;
+ }
ListGridRecord[] permissionRecords = convertToListGridRecordArray((JavaScriptObject)nativeArray);
return RolesDataSource.toPermissionSet(permissionRecords);
}
@@ -316,14 +325,37 @@ public class PermissionsItem extends CanvasItem {
}
private void updatePermissions(Boolean authorized, Permission permission) {
+ boolean redrawRequired = false;
if (authorized) {
this.selectedPermissions.add(permission);
+ if (permission == Permission.MANAGE_SECURITY) {
+ // MANAGE_SECURITY implies all other perms.
+ this.selectedPermissions.addAll(EnumSet.allOf(Permission.class));
+ redrawRequired = true;
+ } else if (permission == Permission.MANAGE_INVENTORY) {
+ // MANAGE_INVENTORY implies all Resource perms.
+ this.selectedPermissions.addAll(Permission.RESOURCE_ALL);
+ redrawRequired = true;
+ } else if (permission == Permission.CONFIGURE_WRITE) {
+ // CONFIGURE_WRITE implies CONFIGURE_READ.
+ this.selectedPermissions.add(Permission.CONFIGURE_READ);
+ redrawRequired = true;
+ }
} else {
this.selectedPermissions.remove(permission);
+ if (permission == Permission.CONFIGURE_READ) {
+ // Lack of CONFIGURE_READ implies lack of CONFIGURE_WRITE.
+ this.selectedPermissions.remove(Permission.CONFIGURE_WRITE);
+ redrawRequired = true;
+ }
}
-
+
ListGridRecord[] permissionRecords = RolesDataSource.toRecordArray(this.selectedPermissions);
getForm().setValue(getName(), permissionRecords);
+
+ if (redrawRequired) {
+ redraw();
+ }
}
private ListGridRecord createGlobalPermissionRecord(String displayName, String icon, Permission globalPermission,
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
index 9fce069..934ee8c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
@@ -92,48 +92,58 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
GWTServiceLookup.getLdapService().checkLdapConfiguredStatus(new AsyncCallback<Boolean>() {
public void onSuccess(Boolean isLdapConfigured) {
RoleEditView.this.isLdapConfigured = isLdapConfigured;
- fetchAvailableLdapGroups();
+ if (RoleEditView.this.isLdapConfigured) {
+ fetchAvailableLdapGroups();
+ } else {
+ init();
+ }
}
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.view_adminRoles_failLdap(), caught);
RoleEditView.this.isLdapConfigured = false;
- fetchAvailableLdapGroups();
+ init();
}
});
}
private void fetchAvailableLdapGroups() {
+ final Set<LdapGroup> availableLdapGroups = null;
+ GWTServiceLookup.getLdapService().findAvailableGroups(new AsyncCallback<Set<Map<String, String>>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(MSG.view_adminRoles_failLdapGroups(), caught);
+ Set<LdapGroup> availableLdapGroups = Collections.emptySet();
+ init();
+ }
+
+ public void onSuccess(Set<Map<String, String>> result) {
+ // Get assigned LDAP groups.
+ Set<LdapGroup> availableLdapGroups = RoleLdapGroupSelector.convertToCollection(result);
+ // Update record with both objects.
+ //record.setAttribute("ldapGroupsAvailable", availableGroups);
+ init();
+ }
+ });
+ }
+
+ private void init() {
final boolean isReadOnly = (!this.hasManageSecurityPermission ||
- (getRecordId() == RolesDataSource.ID_SUPERUSER) ||
+ (getRecordId() == RolesDataSource.ID_SUPERUSER) ||
(getRecordId() == RolesDataSource.ID_ALL_RESOURCES));
- if (this.isLdapConfigured) {
- final Set<LdapGroup> availableLdapGroups = null;
- GWTServiceLookup.getLdapService().findAvailableGroups(new AsyncCallback<Set<Map<String, String>>>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_adminRoles_failLdapGroups(), caught);
- Set<LdapGroup> availableLdapGroups = Collections.emptySet();
- init(isReadOnly);
- }
-
- public void onSuccess(Set<Map<String, String>> result) {
- // Get assigned LDAP groups.
- Set<LdapGroup> availableLdapGroups = RoleLdapGroupSelector.convertToCollection(result);
- // Update record with both objects.
- //record.setAttribute("ldapGroupsAvailable", availableGroups);
- init(isReadOnly);
- }
- });
- } else {
- // LDAP not configured - we won't display an LDAP group selector.
- // TODO: Should we display a message stating that LDAP is not configured with a link to Admin Settings view?
- Set<LdapGroup> availableLdapGroups = Collections.emptySet();
- init(isReadOnly);
- }
+ init(isReadOnly);
}
@Override
+ protected Record createNewRecord() {
+ Role role = new Role();
+ @SuppressWarnings({"UnnecessaryLocalVariable"})
+ Record roleRecord = RolesDataSource.getInstance().copyValues(role);
+ return roleRecord;
+ }
+
protected void editRecord(Record record) {
+ super.editRecord(record);
+
// A user can always view their own assigned roles, but only users with MANAGE_SECURITY can view or update
// other users' assigned roles.
Subject whoami = UserSessionManager.getSessionSubject();
@@ -189,12 +199,10 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
}
this.permissionsItem.redraw();
-
- super.editRecord(record);
}
@Override
- protected List<FormItem> createFormItems(boolean newUser) {
+ protected List<FormItem> createFormItems(boolean newRole) {
List<FormItem> items = new ArrayList<FormItem>();
TextItem nameItem = new TextItem(RolesDataSource.Field.NAME, MSG.common_title_name());
@@ -239,27 +247,31 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
// Grab the currently assigned sets from each of the selectors and stick them into the corresponding canvas
// items on the form, so when the form is saved, they'll get submitted along with the rest of the simple fields
// to the datasource's add or update methods .
- // TODO: Uncomment and fix the below lines.
- /*ListGridRecord[] groupRecords = this.groupSelector.getAssignedGrid().getRecords();
+ ListGridRecord[] groupRecords = this.groupSelector.getAssignedGrid().getRecords();
getForm().setValue(RolesDataSource.Field.RESOURCE_GROUPS, groupRecords);
ListGridRecord[] subjectRecords = this.subjectSelector.getAssignedGrid().getRecords();
getForm().setValue(RolesDataSource.Field.SUBJECTS, subjectRecords);
- ListGridRecord[] ldapGroupRecords = this.ldapGroupSelector.getAssignedGrid().getRecords();
- getForm().setValue(RolesDataSource.Field.LDAP_GROUPS, ldapGroupRecords);*/
+ if (this.ldapGroupSelector != null) {
+ ListGridRecord[] ldapGroupRecords = this.ldapGroupSelector.getAssignedGrid().getRecords();
+ getForm().setValue(RolesDataSource.Field.LDAP_GROUPS, ldapGroupRecords);
+ }
- //permissionsItem.getPermissions();
// Submit the form values to the datasource.
super.save();
}
@Override
protected void reset() {
- super.reset();
+ super.reset();
+
+ this.permissionsItem.reset();
this.groupSelector.reset();
this.subjectSelector.reset();
- this.ldapGroupSelector.reset();
+ if (this.ldapGroupSelector != null) {
+ this.ldapGroupSelector.reset();
+ }
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index 7f67926..8806a49 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -34,9 +34,11 @@ import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.FieldType;
import com.smartgwt.client.widgets.grid.ListGridRecord;
+import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.authz.Role;
import org.rhq.core.domain.criteria.RoleCriteria;
+import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.PermissionsLoadedListener;
import org.rhq.enterprise.gui.coregui.client.UserPermissionsManager;
@@ -208,10 +210,18 @@ public class RolesDataSource extends RPCDataSource<Role> {
Set<Permission> permissions = toPermissionSet(permissionRecords);
to.setPermissions(permissions);
+ Record[] resourceGroupRecords = from.getAttributeAsRecordArray(Field.RESOURCE_GROUPS);
+ Set<ResourceGroup> resourceGroups =
+ ResourceGroupsDataSource.getInstance().buildDataObjects(resourceGroupRecords);
+ to.setResourceGroups(resourceGroups);
+
+ Record[] subjectRecords = from.getAttributeAsRecordArray(Field.SUBJECTS);
+ Set<Subject> subjects = UsersDataSource.getInstance().buildDataObjects(subjectRecords);
+ to.setSubjects(subjects);
+
+ Record[] ldapGroupRecords = from.getAttributeAsRecordArray(Field.LDAP_GROUPS);
// TODO
- /*to.setResourceGroups((Set<ResourceGroup>) from.getAttributeAsObject(Field.RESOURCE_GROUPS));
- to.setSubjects((Set<Subject>) from.getAttributeAsObject(Field.SUBJECTS));
- to.setSubjects((Set<Subject>) from.getAttributeAsObject(Field.LDAP_GROUPS));*/
+ to.setLdapGroups(null);
return to;
}
@@ -223,17 +233,21 @@ public class RolesDataSource extends RPCDataSource<Role> {
targetRecord.setAttribute(Field.NAME, sourceRole.getName());
targetRecord.setAttribute(Field.DESCRIPTION, sourceRole.getDescription());
- ListGridRecord[] resourceGroupRecords = ResourceGroupsDataSource.getInstance().buildRecords(
- sourceRole.getResourceGroups());
- targetRecord.setAttribute(Field.RESOURCE_GROUPS, resourceGroupRecords);
-
Set<Permission> permissions = sourceRole.getPermissions();
ListGridRecord[] permissionRecords = toRecordArray(permissions);
targetRecord.setAttribute(Field.PERMISSIONS, permissionRecords);
+ ListGridRecord[] resourceGroupRecords = ResourceGroupsDataSource.getInstance().buildRecords(
+ sourceRole.getResourceGroups());
+ targetRecord.setAttribute(Field.RESOURCE_GROUPS, resourceGroupRecords);
+
ListGridRecord[] subjectRecords = UsersDataSource.getInstance().buildRecords(sourceRole.getSubjects());
targetRecord.setAttribute(Field.SUBJECTS, subjectRecords);
+ // TODO
+ ListGridRecord[] ldapGroupRecords = null;
+ targetRecord.setAttribute(Field.LDAP_GROUPS, ldapGroupRecords);
+
return targetRecord;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
index 8d40e67..6a91645 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
@@ -37,7 +37,6 @@ import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.auth.Principal;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
-import org.rhq.enterprise.gui.coregui.client.PermissionsLoadedListener;
import org.rhq.enterprise.gui.coregui.client.UserPermissionsManager;
import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
@@ -67,20 +66,28 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
@Override
public void renderView(ViewPath viewPath) {
super.renderView(viewPath);
- UserPermissionsManager.getInstance().loadGlobalPermissions(
- new PermissionsLoadedListener() {
- public void onPermissionsLoaded(Set<Permission> globalPermissions) {
- Subject sessionSubject = UserSessionManager.getSessionSubject();
- boolean isEditingSelf = (sessionSubject.getId() == getRecordId());
- UserEditView.this.hasManageSecurityPermission = globalPermissions.contains(Permission.MANAGE_SECURITY);
- boolean isReadOnly = (!UserEditView.this.hasManageSecurityPermission && !isEditingSelf);
- init(isReadOnly);
- }
- });
+
+ Set<Permission> globalPermissions = UserPermissionsManager.getInstance().getGlobalPermissions();
+ UserEditView.this.hasManageSecurityPermission = globalPermissions.contains(Permission.MANAGE_SECURITY);
+ Subject sessionSubject = UserSessionManager.getSessionSubject();
+ boolean isEditingSelf = (sessionSubject.getId() == getRecordId());
+ boolean isReadOnly = (!UserEditView.this.hasManageSecurityPermission && !isEditingSelf);
+ init(isReadOnly);
+ }
+
+ @Override
+ protected Record createNewRecord() {
+ Subject subject = new Subject();
+ subject.setFactive(true);
+ @SuppressWarnings({"UnnecessaryLocalVariable"})
+ Record userRecord = UsersDataSource.getInstance().copyValues(subject, false);
+ return userRecord;
}
@Override
protected void editRecord(Record record) {
+ super.editRecord(record);
+
// Don't allow the rhqadmin account to be disabled.
if (getRecordId() == SUBJECT_ID_RHQADMIN) {
FormItem activeField = getForm().getField(UsersDataSource.Field.FACTIVE);
@@ -107,17 +114,6 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
});
getBottomLayout().addMember(roleSelector);
}
-
- super.editRecord(record);
- }
-
- @Override
- protected void editNewRecord() {
- super.editNewRecord();
-
- // Make sure the new user is enabled by default.
- FormItem enabledField = getForm().getField(UsersDataSource.Field.FACTIVE);
- enabledField.setValue(Boolean.TRUE.toString());
}
//
@@ -198,6 +194,8 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
protected void save() {
ListGridRecord[] roleRecords = this.roleSelector.getAssignedGrid().getRecords();
getForm().setValue(UsersDataSource.Field.ROLES, roleRecords);
+
+ // Submit the form values to the datasource.
super.save();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
index 5f84ce5..0634e91 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
@@ -126,7 +126,6 @@ public class UsersDataSource extends RPCDataSource<Subject> {
passwordVerifyField.setValidators(passwordsEqualValidator);
fields.add(passwordVerifyField);
-
DataSourceTextField firstNameField = createTextField(Field.FIRST_NAME,
MSG.dataSource_users_field_firstName(), null, 100, true);
fields.add(firstNameField);
@@ -204,31 +203,19 @@ public class UsersDataSource extends RPCDataSource<Subject> {
@Override
protected void executeAdd(final Record recordToAdd, final DSRequest request, final DSResponse response) {
final Subject newSubject = copyValues(recordToAdd);
-
- final String username = newSubject.getName();
- subjectService.createSubject(newSubject, new AsyncCallback<Subject>() {
+ String password = recordToAdd.getAttribute(Field.PASSWORD);
+
+ subjectService.createSubject(newSubject, password, new AsyncCallback<Subject>() {
public void onFailure(Throwable caught) {
// TODO: Throw more specific SLSB exceptions so we can set the right validation errors.
Map<String, String> errorMessages = new HashMap<String, String>();
- errorMessages.put(Field.NAME, "A user named [" + username + "] already exists.");
+ errorMessages.put(Field.NAME, "A user named [" + newSubject.getName() + "] already exists.");
sendValidationErrorResponse(request, response, errorMessages);
}
public void onSuccess(final Subject createdSubject) {
- String password = recordToAdd.getAttribute(Field.PASSWORD);
- subjectService.createPrincipal(newSubject.getName(), password, new AsyncCallback<Void>() {
- public void onFailure(Throwable caught) {
- String message = "Subject created, but failed to create principal.";
- sendFailureResponse(request, response, message, caught);
- }
-
- public void onSuccess(Void nothing) {
- Record createdUserRecord = copyValues(createdSubject, false);
- sendSuccessResponse(request, response, createdUserRecord);
- }
- });
-
- // TODO: Update roles (currently requires separate SLSB call).
+ Record createdUserRecord = copyValues(createdSubject, false);
+ sendSuccessResponse(request, response, createdUserRecord);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
index 57c1327..6a9fffa 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
@@ -32,9 +32,7 @@ import org.rhq.core.domain.authz.Permission;
import org.rhq.enterprise.gui.coregui.client.UserPermissionsManager;
import org.rhq.enterprise.gui.coregui.client.admin.AdministrationView;
import org.rhq.enterprise.gui.coregui.client.admin.roles.RolesDataSource;
-import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction;
import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
-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;
@@ -143,9 +141,13 @@ public class UsersView extends TableSection<UsersDataSource> {
};
}
- private AbstractTableAction createNewAction() {
- return new AbstractTableAction(
- TableActionEnablement.ALWAYS) {
+ private TableAction createNewAction() {
+ return new TableAction() {
+ public boolean isEnabled(ListGridRecord[] selection) {
+ Set<Permission> globalPermissions = UserPermissionsManager.getInstance().getGlobalPermissions();
+ return globalPermissions.contains(Permission.MANAGE_SECURITY);
+ }
+
public void executeAction(ListGridRecord[] selection, Object actionValue) {
newDetails();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
index 4288a2e..19140df 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
@@ -232,7 +232,7 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
return listViewPath;
}
- protected abstract List<FormItem> createFormItems(boolean newUser);
+ protected abstract List<FormItem> createFormItems(boolean newRecord);
/**
* This method should be called whenever any editable item on the page is changed. It will enable the Reset button
@@ -323,8 +323,29 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
});
}
- @SuppressWarnings("unchecked")
- protected void editRecord(Record record) {
+ protected void editNewRecord() {
+ // Update the view title.
+ this.titleBar.setTitle("New " + this.dataTypeName);
+
+ // Create a new record.
+ Record record = createNewRecord();
+
+ // And populate the form with it.
+ this.form.editRecord(record);
+ this.form.setSaveOperationType(DSOperationType.ADD);
+
+ // But make sure the value of the "id" field is set to "0", since a value of null could cause the dataSource's
+ // copyValues(Record) impl to choke.
+ FormItem idItem = this.form.getItem(FIELD_ID);
+ if (idItem != null) {
+ idItem.setDefaultValue(ID_NEW);
+ idItem.hide();
+ }
+
+ editRecord(record);
+ }
+
+ protected void editExistingRecord(Record record) {
// Update the view title.
String recordName = record.getAttribute(getTitleFieldName());
String title = (this.isReadOnly) ? MSG.widget_recordEditor_title_view(this.dataTypeName, recordName) :
@@ -337,22 +358,23 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
// Perform up front validation for existing records.
// NOTE: We do *not* do this for new records, since we expect most of the required fields to be blank.
this.form.validate();
- }
- protected void editNewRecord() {
- // Update the view title.
- this.titleBar.setTitle("New " + this.dataTypeName);
+ editRecord(record);
+ }
- // Clear the form
- this.form.editNewRecord();
+ /**
+ * Initialize the editor with the data from the passed record. This method will be called for both new records
+ * (after the record has been created by {@link #createNewRecord()}) and existing records (after the record has
+ * been fetched by {@link #fetchExistingRecord(int)}.
+ *
+ * @param record the record
+ */
+ protected void editRecord(Record record) {
+ }
- // But make sure the value of the "id" field is set to "0", since a value of null could cause the dataSource's
- // copyValues(Record) impl to choke.
- FormItem idItem = this.form.getItem(FIELD_ID);
- if (idItem != null) {
- idItem.setDefaultValue(ID_NEW);
- idItem.hide();
- }
+ // Subclasses will generally want to override this.
+ protected Record createNewRecord() {
+ return new ListGridRecord();
}
private void displayForm() {
@@ -376,7 +398,7 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
throw new IllegalStateException(MSG.widget_recordEditor_error_multipleRecords());
}
Record record = records[0];
- editRecord(record);
+ editExistingRecord(record);
// Now that all the widgets have been created and initialized, make everything visible.
displayForm();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SubjectGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SubjectGWTService.java
index 7851c49..e6f4450 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SubjectGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SubjectGWTService.java
@@ -18,12 +18,15 @@
*/
package org.rhq.enterprise.gui.coregui.client.gwt;
+import javax.persistence.EntityExistsException;
+
import com.google.gwt.user.client.rpc.RemoteService;
import org.rhq.core.domain.auth.Principal;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.SubjectCriteria;
import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.server.auth.SubjectException;
/**
* @see org.rhq.enterprise.server.auth.SubjectManagerLocal
@@ -50,6 +53,17 @@ public interface SubjectGWTService extends RemoteService {
Subject createSubject(Subject subjectToCreate);
/**
+ * Creates a new subject, including their assigned roles, as well as an associated principal with the specified
+ * password.
+ *
+ * @param subjectToCreate the subject to be created (which will never be the same as <code>subject</code>)
+ * @param password the password for the principal to be created for the new user
+ *
+ * @return the persisted subject
+ */
+ Subject createSubject(Subject subjectToCreate, String password);
+
+ /**
* Deletes the given set of users, including both the {@link Subject} and {@link org.rhq.core.domain.auth.Principal} objects associated with
* those users.
*
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SubjectGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SubjectGWTServiceImpl.java
index 3ef64a4..b2d6071 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SubjectGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SubjectGWTServiceImpl.java
@@ -59,6 +59,16 @@ public class SubjectGWTServiceImpl extends AbstractGWTServiceImpl implements Sub
}
}
+ public Subject createSubject(Subject subjectToCreate, String password) {
+ try {
+ return SerialUtility.prepare(subjectManager.createSubject(getSessionSubject(), subjectToCreate, password),
+ "SubjectManager.createSubject");
+ } catch (RuntimeException e) {
+ handleException(e);
+ return null;
+ }
+ }
+
public void deleteSubjects(int[] subjectIds) {
try {
subjectManager.deleteSubjects(getSessionSubject(), subjectIds);
@@ -150,4 +160,5 @@ public class SubjectGWTServiceImpl extends AbstractGWTServiceImpl implements Sub
log.error("Unexpected error.", e);
throw new RuntimeException(ThrowableUtil.getAllMessages(e));
}
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
index b5818dd..9579f03 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
@@ -91,8 +91,7 @@
must have a file suffixed with _<locale>.properties in the same package/directory as
the corresponding GWT i18n interface class resides.-->
<!--<extend-property name="locale" values="de,fr"/>-->
-
- <extend-property name="locale" values="de"/>
+ <extend-property name="locale" values="${gwt.locale}" />
<entry-point class='org.rhq.enterprise.gui.coregui.client.CoreGUI'/>
<entry-point class='org.rhq.enterprise.gui.coregui.client.SearchGUI'/>
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 3a01a86..9cf47f1 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
@@ -459,7 +459,7 @@ view_adminRoles_globalPerms = Global Permissions~
view_adminRoles_ldapGroups = LDAP Groups~
view_adminRoles_ldapGroupsReadOnly = LDAP group data is read only~
view_adminRoles_noItems = No items to show~
-view_adminRoles_noLdap = The LDAP security integration is not configured. To configure LDAP go to <a {0}>{1}</a>.~
+view_adminRoles_noLdap = The LDAP security integration is not configured. To configure LDAP, go to <a {0}>{1}</a>.~
view_adminRoles_perms = Permissions~
view_adminRoles_resourcePerms = Resource Permissions~
view_adminRoles_roleAdded = Role [{0}] added.~
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
index 80fc211..aff5bf1 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
@@ -30,6 +30,7 @@ import java.util.Set;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.interceptor.ExcludeDefaultInterceptors;
+import javax.persistence.EntityExistsException;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
@@ -182,6 +183,25 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
return entityManager.merge(subjectToModify);
}
+ @Override
+ public Subject createSubject(Subject whoami, Subject subjectToCreate, String password)
+ throws SubjectException, EntityExistsException {
+ // Make sure there's not an existing subject with the same name.
+ if (getSubjectByName(subjectToCreate.getName()) != null) {
+ throw new EntityExistsException("A user named [" + subjectToCreate.getName() + "] already exists.");
+ }
+
+ if (subjectToCreate.getFsystem()) {
+ throw new SubjectException("Cannot create new system subjects: " + subjectToCreate.getName());
+ }
+
+ entityManager.persist(subjectToCreate);
+
+ createPrincipal(whoami, subjectToCreate.getName(), password);
+
+ return subjectToCreate;
+ }
+
public Subject updateSubject(Subject whoami, Subject subjectToModify, String newPassword) {
// let a user change his own details
Set<Permission> globalPermissions = authorizationManager.getExplicitGlobalPermissions(whoami);
@@ -280,7 +300,7 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
*/
@RequiredPermission(Permission.MANAGE_SECURITY)
public Subject createSubject(Subject whoami, Subject subject) throws SubjectException {
- // Make sure there's not already a system subject with that name
+ // Make sure there's not an existing subject with the same name.
if (getSubjectByName(subject.getName()) != null) {
throw new SubjectException("A user named [" + subject.getName() + "] already exists.");
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
index eabe9de..279d2fe 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
@@ -21,6 +21,7 @@ package org.rhq.enterprise.server.auth;
import java.util.Collection;
import javax.ejb.Local;
+import javax.persistence.EntityExistsException;
import org.rhq.core.domain.auth.Principal;
import org.rhq.core.domain.auth.Subject;
@@ -164,6 +165,19 @@ public interface SubjectManagerLocal {
boolean isLoggedIn(String username);
/**
+ * Creates a new subject, including their assigned roles, as well as an associated principal with the specified
+ * password.
+ *
+ * @param subject the logged in user's subject
+ * @param subjectToCreate the subject to be created (which will never be the same as <code>subject</code>)
+ * @param password the password for the principal to be created for the new user
+ *
+ * @return the persisted subject
+ */
+ Subject createSubject(Subject subject, Subject subjectToCreate, String password) throws SubjectException,
+ EntityExistsException;
+
+ /**
* Updates an existing subject, including their assigned roles, and optionally their password.
*
* @param subject the logged in user's subject
@@ -173,7 +187,7 @@ public interface SubjectManagerLocal {
* @return the merged subject, which may or may not be the <code>subjectToModify</code> instance
*/
Subject updateSubject(Subject subject, Subject subjectToModify, String newPassword);
-
+
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// The following are shared with the Remote Interface
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java
index 1cf06f5..b636004 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java
@@ -20,6 +20,7 @@ package org.rhq.enterprise.server.authz;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.EnumSet;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -526,15 +527,29 @@ public class RoleManagerBean implements RoleManagerLocal, RoleManagerRemote {
* automagically give all permissions to users that are explicitly given the MANAGE_SECURITY permission
*/
if (role.getPermissions().contains(Permission.MANAGE_SECURITY)) {
- role.getPermissions().addAll(Arrays.asList(Permission.values()));
+ role.getPermissions().addAll(EnumSet.allOf(Permission.class));
+ }
+
+ /*
+ * similarly, MANAGE_INVENTORY implies all Resource perms
+ */
+ if (role.getPermissions().contains(Permission.MANAGE_INVENTORY)) {
+ role.getPermissions().addAll(Permission.RESOURCE_ALL);
}
/*
* write-access implies read-access
*/
- if ((role.getPermissions().contains(Permission.CONFIGURE_WRITE))) {
+ if (role.getPermissions().contains(Permission.CONFIGURE_WRITE)) {
role.getPermissions().add(Permission.CONFIGURE_READ);
}
+
+ /*
+ * and lack of read-access implies lack of write-access
+ */
+ if (!role.getPermissions().contains(Permission.CONFIGURE_READ)) {
+ role.getPermissions().remove(Permission.CONFIGURE_WRITE);
+ }
}
public PageList<Role> findSubjectAssignedRoles(Subject subject, int subjectId, PageControl pc) {
13 years, 6 months
[rhq] Branch 'release-3.0.0' - modules/core modules/enterprise
by lkrejci
modules/core/dbutils/pom.xml | 2
modules/core/dbutils/src/main/scripts/dbsetup/cluster-schema.xml | 2
modules/core/dbutils/src/main/scripts/dbsetup/inventory-schema.xml | 5
modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml | 47 +++++++
modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java | 10 -
modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/Group.java | 65 ++++------
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/group/ResourceGroupUIBean.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceUIBean.java | 10 -
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/GroupController.java | 2
modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml | 3
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java | 4
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java | 12 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/test/DiscoveryTestBean.java | 6
13 files changed, 99 insertions(+), 71 deletions(-)
New commits:
commit d3a2144aee4c47331cf6fb9e479f5cdce843a466
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Nov 23 15:22:25 2010 +0100
BZ 655156 - cherrypick of commit f6409557d36ab77f8baa69cb4dc4d11c5fedc39c with
merged in changes from commit 7a1accc180497bc215e3e416a0f19c74f6dc1647
which in effect pulls the fix of BZ 622491 from master to release-3.0.0 branch.
The schemaSpec versions in db-upgrade.xml differ from the original commit so
that the db-upgrade.xml has linear sequence of updates. The db-upgrade.xml
in the master branch has been updated to conform with these new version numbers
so that db upgrades from release-3.0.0 to master succeed.
Original commit message of BZ 622491 fix:
BZ 622491 - do not have subject ID foreign key in "modifiedBy" columns - we only log usernames
this prevents errors when someone deletes a user. change RHQ_RESOURCE
and RHQ_RESOURCE_GROUP to have VARCHAR modifiedBy rather than integer.
This also fixes db-upgrade so existing data can be upgraded.
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index c5852ba..00053ab 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -22,7 +22,7 @@
<properties>
<scm.module.path>modules/core/dbutils/</scm.module.path>
- <db.schema.version>2.91</db.schema.version>
+ <db.schema.version>2.92.3</db.schema.version>
</properties>
<dependencies>
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup/cluster-schema.xml b/modules/core/dbutils/src/main/scripts/dbsetup/cluster-schema.xml
index e4c6977..161830f 100644
--- a/modules/core/dbutils/src/main/scripts/dbsetup/cluster-schema.xml
+++ b/modules/core/dbutils/src/main/scripts/dbsetup/cluster-schema.xml
@@ -59,7 +59,7 @@
<table name="RHQ_PARTITION_EVENT">
<column name="ID" default="sequence-only" initial="10001"
primarykey="true" required="true" type="INTEGER"/>
- <column name="SUBJECT_NAME" required="true" size="255" type="VARCHAR2"/>
+ <column name="SUBJECT_NAME" required="true" size="100" type="VARCHAR2"/>
<column name="CTIME" required="true" type="LONG"/>
<column name="EVENT_TYPE" required="true" size="50" type="VARCHAR2"/>
<column name="EVENT_DETAIL" required="false" size="512" type="VARCHAR2"/>
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup/inventory-schema.xml b/modules/core/dbutils/src/main/scripts/dbsetup/inventory-schema.xml
index da048e1..3233d47 100644
--- a/modules/core/dbutils/src/main/scripts/dbsetup/inventory-schema.xml
+++ b/modules/core/dbutils/src/main/scripts/dbsetup/inventory-schema.xml
@@ -95,7 +95,7 @@
<column name="ITIME" type="LONG"/>
<column name="RES_CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG"/>
<column name="PLUGIN_CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG"/>
- <column name="MODIFIED_BY" required="false" type="INTEGER"/>
+ <column name="MODIFIED_BY" required="false" size="100" type="VARCHAR2"/>
<column name="LOCATION" required="false" size="100" type="VARCHAR2"/>
<column name="PARENT_RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE"/>
<column name="PRODUCT_VERSION_ID" type="INTEGER" references="RHQ_PRD_VER"/>
@@ -160,8 +160,7 @@
<!-- Compatible groups only -->
<column name="CTIME" type="LONG"/>
<column name="MTIME" type="LONG"/>
- <column name="MODIFIED_BY" required="false" type="INTEGER"/>
- <!-- TODO: Reorder to allow this references="RHQ_SUBJECT" -->
+ <column name="MODIFIED_BY" required="false" size="100" type="VARCHAR2"/>
<column name="RECURSIVE" type="BOOLEAN"/>
<column name="GROUP_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_GROUP_DEF"/>
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 951d972..1d29019 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -3070,6 +3070,7 @@
</schema-directSQL>
</schemaSpec>
+
<schemaSpec version="2.91">
<!-- if some role previously had CONFIGURE perm (now called CONFIGURE_WRITE), give it the implied perm
CONFIGURE_READ so users don't experience an unexpected permission restriction after upgrade -->
@@ -3082,6 +3083,52 @@
</statement>
</schema-directSQL>
</schemaSpec>
+
+ <!-- BZ 622491 - 2.92.x - modifiedBy should only be username, not a subject ID and should be size 100 -->
+ <schemaSpec version="2.92.1">
+ <!-- first do the RHQ_RESOURCE_GROUP table -->
+ <schema-addColumn table="RHQ_RESOURCE_GROUP" column="MODIFIED_BY_VARCHAR" columnType="VARCHAR2" precision="100"/>
+ <schema-directSQL>
+ <statement desc="RESOURCE_GROUP: Populate the tmp modifiedBy column with existing user names or null if user does not exist">
+ UPDATE RHQ_RESOURCE_GROUP g SET MODIFIED_BY_VARCHAR = (SELECT NAME FROM RHQ_SUBJECT WHERE ID = g.MODIFIED_BY)
+ </statement>
+ <statement desc="RESOURCE_GROUP: Make unknown usernames as rhqadmin in tmp modifiedBy column">
+ UPDATE RHQ_RESOURCE_GROUP SET MODIFIED_BY_VARCHAR = 'rhqadmin' WHERE MODIFIED_BY_VARCHAR IS NULL
+ </statement>
+ </schema-directSQL>
+ <schema-deleteColumn table="RHQ_RESOURCE_GROUP" column="MODIFIED_BY" />
+ <schema-directSQL>
+ <statement desc="RESOURCE_GROUP: Renaming new varchar MODIFIED_BY column">
+ ALTER TABLE RHQ_RESOURCE_GROUP
+ RENAME COLUMN MODIFIED_BY_VARCHAR TO MODIFIED_BY
+ </statement>
+ </schema-directSQL>
+ </schemaSpec>
+
+ <schemaSpec version="2.92.2">
+ <!-- second do the RHQ_RESOURCE table -->
+ <schema-addColumn table="RHQ_RESOURCE" column="MODIFIED_BY_VARCHAR" columnType="VARCHAR2" precision="100"/>
+ <schema-directSQL>
+ <statement desc="RESOURCE: Populate the tmp modifiedBy column with existing user names or null if user does not exist">
+ UPDATE RHQ_RESOURCE r SET MODIFIED_BY_VARCHAR = (SELECT NAME FROM RHQ_SUBJECT WHERE ID = r.MODIFIED_BY)
+ </statement>
+ <statement desc="RESOURCE: Make unknown usernames as rhqadmin in tmp modifiedBy column">
+ UPDATE RHQ_RESOURCE SET MODIFIED_BY_VARCHAR = 'rhqadmin' WHERE MODIFIED_BY_VARCHAR IS NULL
+ </statement>
+ </schema-directSQL>
+ <schema-deleteColumn table="RHQ_RESOURCE" column="MODIFIED_BY" />
+ <schema-directSQL>
+ <statement desc="RESOURCE: Renaming new varchar MODIFIED_BY column">
+ ALTER TABLE RHQ_RESOURCE
+ RENAME COLUMN MODIFIED_BY_VARCHAR TO MODIFIED_BY
+ </statement>
+ </schema-directSQL>
+ </schemaSpec>
+
+ <schemaSpec version="2.92.3">
+ <!-- third, maintain consistency across data model - everywhere else, SUBJECT_NAME is of size 100, make this one 100 too -->
+ <schema-alterColumn table="RHQ_PARTITION_EVENT" column="SUBJECT_NAME" columnType="VARCHAR2" precision="100" />
+ </schemaSpec>
</dbupgrade>
</target>
</project>
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index b35dfac..816e685 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -60,7 +60,6 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.rhq.core.domain.alert.AlertDefinition;
-import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
@@ -911,9 +910,8 @@ public class Resource implements Comparable<Resource>, Serializable {
@Column(name = "ITIME")
private Long itime = System.currentTimeMillis(); // time inventory status changed
- @JoinColumn(name = "MODIFIED_BY")
- @ManyToOne(fetch = FetchType.LAZY)
- private Subject modifiedBy;
+ @Column(name = "MODIFIED_BY")
+ private String modifiedBy;
@Column(name = "LOCATION")
private String location;
@@ -1229,11 +1227,11 @@ public class Resource implements Comparable<Resource>, Serializable {
this.mtime = System.currentTimeMillis();
}
- public Subject getModifiedBy() {
+ public String getModifiedBy() {
return this.modifiedBy;
}
- public void setModifiedBy(Subject modifiedBy) {
+ public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/Group.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/Group.java
index 082d14d..4a15ff4 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/Group.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/Group.java
@@ -1,37 +1,35 @@
- /*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * 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 and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser General Public License along with this program;
- * if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser General Public License along with this program;
+ * if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
package org.rhq.core.domain.resource.group;
import java.io.Serializable;
+
import javax.persistence.Column;
-import javax.persistence.FetchType;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
+
import org.jetbrains.annotations.NotNull;
-import org.rhq.core.domain.auth.Subject;
/**
* This is the abstract base class for groups containing either {@link org.rhq.core.domain.resource.Resource}s or groups
@@ -58,16 +56,14 @@ public abstract class Group implements Serializable {
@Column(name = "MTIME")
private Long mtime;
- @JoinColumn(name = "MODIFIED_BY")
- @ManyToOne(fetch = FetchType.LAZY)
- private Subject modifiedBy;
+ @Column(name = "MODIFIED_BY")
+ private String modifiedBy;
/* no-arg constructor required by EJB spec */
protected Group() {
}
- public Group(@NotNull
- String name) {
+ public Group(@NotNull String name) {
this.name = name;
}
@@ -76,8 +72,7 @@ public abstract class Group implements Serializable {
return name;
}
- public void setName(@NotNull
- String name) {
+ public void setName(@NotNull String name) {
this.name = name;
}
@@ -113,11 +108,11 @@ public abstract class Group implements Serializable {
this.mtime = mtime;
}
- public Subject getModifiedBy() {
+ public String getModifiedBy() {
return modifiedBy;
}
- public void setModifiedBy(Subject modifiedBy) {
+ public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/group/ResourceGroupUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/group/ResourceGroupUIBean.java
index e638691..cb15696 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/group/ResourceGroupUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/group/ResourceGroupUIBean.java
@@ -114,7 +114,7 @@ public class ResourceGroupUIBean {
return this.resourceGroup.getMtime();
}
- public Subject getModifiedBy() {
+ public String getModifiedBy() {
return this.resourceGroup.getModifiedBy();
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceUIBean.java
index bc62589..ecc1253 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourceUIBean.java
@@ -25,21 +25,20 @@ import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.measurement.AvailabilityType;
-import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceError;
import org.rhq.core.domain.resource.ResourceErrorType;
import org.rhq.core.domain.resource.ResourceType;
@@ -51,7 +50,6 @@ import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.measurement.AvailabilityManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDataManagerLocal;
-import org.rhq.enterprise.server.measurement.util.MeasurementDataManagerUtility;
import org.rhq.enterprise.server.perspective.PerspectiveManagerLocal;
import org.rhq.enterprise.server.perspective.Tab;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
@@ -172,7 +170,7 @@ public class ResourceUIBean {
return this.resource.getMtime();
}
- public Subject getModifiedBy() {
+ public String getModifiedBy() {
return this.resource.getModifiedBy();
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/GroupController.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/GroupController.java
index 6f0e89d..63d64ce 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/GroupController.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/GroupController.java
@@ -105,7 +105,7 @@ public abstract class GroupController extends BaseDispatchAction {
GroupCategory category = group.getGroupCategory();
log.trace("finding most recent modifier for resource [" + groupId + "]");
- Subject modifier = group.getModifiedBy();
+ String modifier = group.getModifiedBy();
// TODO: jmarques - how are we going to do control on ResourceGroups?
boolean isControllable = LookupUtil.getOperationManager().isGroupOperationSupported(subject, group.getId());
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml
index 8e997ef..986c01d 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml
@@ -63,8 +63,7 @@
</h:panelGroup>
<h:panelGroup layout="block">
- <b>Last Modified By: </b> #{ResourceGroupUIBean.modifiedBy.firstName} #{ResourceGroupUIBean.modifiedBy.lastName}
- (<a href="mailto:#{ResourceGroupUIBean.modifiedBy.emailAddress}">#{ResourceGroupUIBean.modifiedBy.name}</a>)
+ <b>Last Modified By: </b> #{ResourceGroupUIBean.modifiedBy}
</h:panelGroup>
<h:panelGroup layout="block">
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
index 185562a..2773b4c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
@@ -370,7 +370,7 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
Resource parentResource = this.resourceManager.getResourceById(creator, resource.getParentResource()
.getId());
resource.setAgent(parentResource.getAgent());
- resource.setModifiedBy(creator);
+ resource.setModifiedBy(creator.getName());
// Manually added resources are auto-committed.
resource.setInventoryStatus(InventoryStatus.COMMITTED);
@@ -746,7 +746,7 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
}
resource.setItime(System.currentTimeMillis());
- resource.setModifiedBy(subjectManager.getOverlord());
+ resource.setModifiedBy(subjectManager.getOverlord().getName());
for (Resource childResource : resource.getChildResources()) {
initAutoDiscoveredResource(childResource, resource);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
index e291c25..b2ed76e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
@@ -162,7 +162,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
long time = System.currentTimeMillis();
group.setCtime(time);
group.setMtime(time);
- group.setModifiedBy(user);
+ group.setModifiedBy(user.getName());
entityManager.persist(group);
@@ -191,7 +191,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
long time = System.currentTimeMillis();
group.setMtime(time);
- group.setModifiedBy(user);
+ group.setModifiedBy(user.getName());
ResourceGroup newlyAttachedGroup = entityManager.merge(group);
if (changeType == RecursivityChangeType.AddedRecursion) {
@@ -341,13 +341,6 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
}
private void initLazyFields(ResourceGroup group) {
- /*
- * initialize modifiedBy field, which is now a lazily- loaded relationship to speed up the GroupHub stuff
- */
- if (group.getModifiedBy() != null) {
- group.getModifiedBy().getId();
- }
-
group.getAlertDefinitions().size();
}
@@ -1347,7 +1340,6 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
} else {
composite = new ResourceGroupComposite(0L, 0.0, 0L, 0.0, group, facets);
}
- group.getModifiedBy().getFirstName();
return composite;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/test/DiscoveryTestBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/test/DiscoveryTestBean.java
index 0a46d5a..709b95a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/test/DiscoveryTestBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/test/DiscoveryTestBean.java
@@ -257,7 +257,7 @@ public class DiscoveryTestBean implements DiscoveryTestLocal {
platform.setAgent(this.coreTest.getTestAgent());
platform.setDescription("test platform created by " + this.getClass().getName());
platform.setLocation("San Pedro Sula, Honduras");
- platform.setModifiedBy(subjectManager.getOverlord());
+ platform.setModifiedBy(subjectManager.getOverlord().getName());
//platform.addIP(createTestIp());
String serverName = "BogusServer ";
@@ -273,7 +273,7 @@ public class DiscoveryTestBean implements DiscoveryTestLocal {
Resource server = new Resource(installPath, name, getTestServerType());
server.setParentResource(platform);
server.setDescription("test server created by " + this.getClass().getName());
- server.setModifiedBy(subjectManager.getOverlord());
+ server.setModifiedBy(subjectManager.getOverlord().getName());
for (int i = 0; i < servicesPerServer; i++) {
String childName = name + " child service " + i;
@@ -286,7 +286,7 @@ public class DiscoveryTestBean implements DiscoveryTestLocal {
private Resource createTestService(Resource parent, String name) {
Resource service = new Resource(name, name, getTestServiceType());
service.setDescription("test service created by " + this.getClass().getName());
- service.setModifiedBy(subjectManager.getOverlord());
+ service.setModifiedBy(subjectManager.getOverlord().getName());
return service;
}
13 years, 6 months
[rhq] Branch 'delete-agent-plugin' - 62 commits - etc/m2 modules/cli-tests modules/core modules/enterprise modules/plugins
by John Sanda
etc/m2/settings.xml | 39
modules/cli-tests/pom.xml | 4
modules/core/client-api/pom.xml | 8
modules/core/domain/src/main/java/org/rhq/core/domain/authz/Permission.java | 74
modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java | 8
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeployment.java | 3
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeploymentHistory.java | 6
modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java | 8
modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ClusterFlyweight.java | 5
modules/core/plugin-container/pom.xml | 4
modules/enterprise/agent/pom.xml | 10
modules/enterprise/agentupdate/pom.xml | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java | 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserPermissionsManager.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java | 80
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java | 114
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java | 422 ++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java | 98
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java | 25
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleSubjectSelector.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java | 109
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java | 30
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/templates/TemplateSchedulesView.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java | 21
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java | 7
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java | 119
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java | 34
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java | 43
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java | 62
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java | 88
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertPortletDataSource.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/GroupAlertHistoryView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/ResourceAlertHistoryView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/SubsystemResourceAlertDataSource.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java | 15
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java | 25
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java | 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsEditor.java | 99
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java | 92
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java | 35
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java | 23
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java | 214 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewNotificationEditor.java | 18
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NotificationsAlertDefinitionForm.java | 53
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java | 28
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java | 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java | 22
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationInfo.java | 13
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationSenderForm.java | 65
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SimpleNotificationSenderForm.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java | 19
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemRolesNotificationSenderForm.java | 12
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemUsersNotificationSenderForm.java | 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java | 25
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleSelector.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/AbstractBundleCreateWizard.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleCreateWizard.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleSummaryStep.java | 12
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleTypeDropDownSelectItem.java | 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java | 22
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDistroFileStep.java | 46
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/BundleDeployWizard.java | 11
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/DeployStep.java | 27
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentConfigStep.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentInfoStep.java | 15
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentOptionsStep.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java | 23
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleStep.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java | 17
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/selection/SinglePlatformResourceGroupSelector.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java | 15
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java | 32
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java | 28
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/resource/BundleResourceDeploymentDataSource.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java | 30
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java | 23
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java | 26
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java | 41
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesDataSource.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java | 59
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesWithLatestVersionDataSource.java | 14
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/BundleRevertWizard.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/ConfirmationStep.java | 35
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/GetRevertInfoStep.java | 18
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/RevertStep.java | 15
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java | 139
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java | 28
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTab.java | 33
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java | 55
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java | 26
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java | 16
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java | 13
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java | 14
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/BooleanCellFormatter.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java | 248 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java | 7
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/FileUploadForm.java | 14
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/PackageVersionFileUploadForm.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/TextFileRetrieverForm.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java | 35
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java | 74
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AgentGWTService.java | 34
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListDetailView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java | 18
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java | 29
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java | 111
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java | 20
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java | 124
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java | 187 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ConfigurationHistoryView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsDetailView.java | 7
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsView.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java | 151 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java | 191 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsDataSource.java | 30
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java | 23
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceGroupSelector.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java | 14
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/Locatable.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableVStack.java | 54
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AgentGWTServiceImpl.java | 67
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml | 11
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties | 461 ++-
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties | 1480 ++++++++++
modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml | 8
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/PingAgentUIBean.java | 3
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java | 58
modules/enterprise/remoting/cli/pom.xml | 4
modules/enterprise/remoting/client-deps/pom.xml | 8
modules/enterprise/remoting/webservices/pom.xml | 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java | 35
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java | 53
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerBean.java | 9
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerLocal.java | 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java | 40
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerLocal.java | 15
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java | 84
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java | 18
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java | 10
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/support/SupportManagerBean.java | 2
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/performance/test/AvailabilityInsertPurgeTest.java | 246 -
modules/enterprise/server/plugins/alert-operations/pom.xml | 1
modules/enterprise/server/plugins/rhnhosted/pom.xml | 1
modules/plugins/jboss-cache-v3/pom.xml | 14
179 files changed, 5254 insertions(+), 2048 deletions(-)
New commits:
commit 47567bca83d7cc338e1a114d1e787e51931ba95a
Merge: 99688df... 6b57b3d...
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Nov 23 09:20:17 2010 -0500
Merge branch 'master' into delete-agent-plugin
Conflicts:
modules/core/client-api/pom.xml
diff --cc modules/core/client-api/pom.xml
index d0bea0b,aa5c7fe..f4643be
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@@ -113,25 -108,8 +114,24 @@@
</goals>
</execution>
</executions>
-
</plugin>
- <plugin>
-
++ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ <configuration>
+ <includes>
+ <include>org/rhq/core/clientapi/shared/**</include>
+ </includes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
diff --cc modules/enterprise/remoting/cli/pom.xml
index 2874cf6,d13cdc4..e7404b0
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@@ -28,18 -28,10 +28,18 @@@
<dependencies>
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>rhq-remoting-client-api</artifactId>
<version>${project.version}</version>
- </dependency>
+ </dependency>
+
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>rhq-core-domain</artifactId>
+ <version>${version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>commons-logging</groupId>
commit 6b57b3d4b74e6fdf5013e5df8e043dfb0e39e206
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Nov 22 21:47:51 2010 -0500
Dashboards were using dashboard names in their bookmarkabe urls. Names can
contain [localized] characters not valid in urls. Also, it
presented an issue for localizing the "Default" dashboard. Switch to
using Dashboard IDs in the view path to solve this problem. Also, did some
work to make dashboard rendering more robust when deleting, editing or
directly navigating to the dashboard.
Note, The Add custom dashboards feature was pretty broken before this and
it still is. But modifying the default seems to now work pretty well.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java
index c02e802..3d10400 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java
@@ -121,9 +121,12 @@ public class DashboardView extends LocatableVLayout {
nameItem.setValue(storedDashboard.getName());
nameItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent changedEvent) {
- storedDashboard.setName((String) changedEvent.getValue());
- save();
- dashboardsView.updateNames();
+ String val = (String) changedEvent.getValue();
+ if (!(null == val || "".equals(val.trim()))) {
+ storedDashboard.setName(val.trim());
+ save();
+ dashboardsView.updateNames();
+ }
}
});
@@ -199,7 +202,7 @@ public class DashboardView extends LocatableVLayout {
picker.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent changedEvent) {
Object v = changedEvent.getValue();
- com.allen_sauer.gwt.log.client.Log.info("color chagned to " + v);
+ com.allen_sauer.gwt.log.client.Log.info("color changed to " + v);
setBackgroundColor(String.valueOf(v));
storedDashboard.getConfiguration().put(new PropertySimple(Dashboard.CFG_BACKGROUND, String.valueOf(v)));
save();
@@ -302,16 +305,20 @@ public class DashboardView extends LocatableVLayout {
}
public void delete() {
- GWTServiceLookup.getDashboardService().removeDashboard(this.storedDashboard.getId(), new AsyncCallback<Void>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("", caught);
- }
-
- public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new Message(MSG.view_dashboardManager_deleted(storedDashboard.getName()), Message.Severity.Info));
- }
- });
+ if (null != this.storedDashboard && this.storedDashboard.getId() > 0) {
+ GWTServiceLookup.getDashboardService().removeDashboard(this.storedDashboard.getId(),
+ new AsyncCallback<Void>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("", caught);
+ }
+
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_dashboardManager_deleted(storedDashboard.getName()),
+ Message.Severity.Info));
+ }
+ });
+ }
}
public void resize() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
index 9baf529..53cb92c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
@@ -22,6 +22,7 @@
*/
package org.rhq.enterprise.gui.coregui.client.dashboard;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -37,7 +38,6 @@ import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.tab.Tab;
-import com.smartgwt.client.widgets.tab.TabSet;
import com.smartgwt.client.widgets.tab.events.CloseClickHandler;
import com.smartgwt.client.widgets.tab.events.TabCloseClickEvent;
import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
@@ -49,6 +49,8 @@ import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
+import org.rhq.enterprise.gui.coregui.client.components.tab.NamedTab;
+import org.rhq.enterprise.gui.coregui.client.components.tab.NamedTabSet;
import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.queue.AutodiscoveryPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.alerts.RecentAlertsPortlet;
@@ -62,8 +64,6 @@ import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.util.MessagePort
import org.rhq.enterprise.gui.coregui.client.gwt.DashboardGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableIButton;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTab;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTabSet;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
/**
@@ -73,7 +73,11 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
public static final ViewName VIEW_ID = new ViewName("Dashboard", MSG.view_dashboards_title());
- private TabSet tabSet;
+ // Each NamedTab is a Dashboard, name=Dashboard.id, title=Dashboard.name
+ private NamedTabSet tabSet;
+
+ // The ID (0 for default dash)
+ private String selectedTabName;
private IButton editButton;
@@ -86,8 +90,6 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
private DashboardGWTServiceAsync dashboardService = GWTServiceLookup.getDashboardService();
- private String selectedTab;
-
public DashboardsView(String locatorId) {
super(locatorId);
setOverflow(Overflow.AUTO);
@@ -121,7 +123,7 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
this.dashboardsByName.put(dashboard.getName(), dashboard);
}
- tabSet = new LocatableTabSet(getLocatorId());
+ tabSet = new NamedTabSet(getLocatorId());
tabSet.setWidth100();
tabSet.setHeight100();
@@ -156,7 +158,8 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
tabSet.addTabSelectedHandler(new TabSelectedHandler() {
public void onTabSelected(TabSelectedEvent tabSelectedEvent) {
- History.newItem("Dashboard/" + tabSelectedEvent.getTab().getTitle(), false);
+ NamedTab selectedTab = tabSet.getTabByTitle(tabSelectedEvent.getTab().getTitle());
+ History.newItem("Dashboard/" + selectedTab.getName(), false);
selectedDashboardView = (DashboardView) tabSelectedEvent.getTab().getPane();
selectedDashboard = selectedDashboardView.getDashboard();
selectedDashboardView.setEditMode(editMode);
@@ -165,13 +168,13 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
for (Dashboard dashboard : dashboards) {
DashboardView dashboardView = new DashboardView(extendLocatorId(dashboard.getName()), this, dashboard);
-
- Tab tab = new LocatableTab(dashboard.getName(), dashboard.getName());
+ String tabName = String.valueOf(dashboard.getId());
+ Tab tab = new NamedTab(this.extendLocatorId(tabName), new ViewName(tabName, dashboard.getName()), null);
tab.setPane(dashboardView);
tab.setCanClose(true);
tabSet.addTab(tab);
- if (dashboard.getName().equals(selectedTab)) {
+ if (dashboard.getName().equals(selectedTabName)) {
tabSet.selectTab(tab);
}
}
@@ -184,6 +187,7 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
public void execute(Boolean aBoolean) {
if (aBoolean) {
dashboardView.delete();
+ History.newItem(VIEW_ID.getName());
} else {
tabCloseClickEvent.cancel();
}
@@ -282,8 +286,8 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
public void onSuccess(Dashboard result) {
DashboardView dashboardView = new DashboardView(extendLocatorId(result.getName()), DashboardsView.this,
result);
-
- Tab tab = new LocatableTab(extendLocatorId(result.getName()), result.getName());
+ String tabName = String.valueOf(result.getId());
+ NamedTab tab = new NamedTab(extendLocatorId(tabName), new ViewName(tabName, result.getName()), null);
tab.setPane(dashboardView);
tab.setCanClose(true);
@@ -292,7 +296,7 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
tabSet.selectTab(tab);
editMode = true;
editButton.setTitle(editMode ? MSG.common_title_view_mode() : MSG.common_title_edit_mode());
- dashboardView.setEditMode(editMode);
+ //dashboardView.setEditMode(editMode);
}
});
@@ -306,24 +310,42 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
}
public void renderView(ViewPath viewPath) {
- if (!viewPath.isEnd()) {
- selectedTab = viewPath.getCurrent().getPath();
-
- //added to avoid NPE in gwt debug window.
- if (tabSet != null) {
- for (Tab tab : tabSet.getTabs()) {
- if (tab.getTitle().equals(selectedTab)) {
- tabSet.selectTab(tab);
+ //added to avoid NPE in gwt debug window.
+ if (tabSet != null) {
+ NamedTab[] tabs = tabSet.getTabs();
+
+ // make sure we have at least a default dashboard tab
+ if (0 == tabs.length) {
+ List<Dashboard> defaultTabs = new ArrayList<Dashboard>(1);
+ defaultTabs.add(getDefaultDashboard());
+ updateDashboards(defaultTabs);
+ tabs = tabSet.getTabs();
+ }
+
+ // if nothing selected or pathtab does not exist, default to the first tab
+ NamedTab selectedTab = tabs[0];
+ selectedTabName = selectedTab.getName();
+
+ if (!viewPath.isEnd()) {
+ String pathTabName = viewPath.getCurrent().getPath();
+
+ for (NamedTab tab : tabSet.getTabs()) {
+ if (tab.getName().equals(pathTabName)) {
+ selectedTab = tab;
+ selectedTabName = pathTabName;
+ break;
}
}
- } else {
- Log.info("WARN: While rendering DashboardsView, tabSet is null.");
}
+
+ tabSet.selectTab(selectedTab);
+ } else {
+ Log.debug("While rendering DashboardsView, tabSet is null.");
}
}
public Dashboard getDashboard() {
return selectedDashboard;
}
-
+
}
commit c1ad93c4f0ec5b5b084d7d39ea0ddd85bc816c49
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Nov 22 17:31:41 2010 -0500
use empty string for the "icon" column header
use view_tags_tags for the title, no need to have a separate Tags:
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java
index 9c8f9ab..a964f0f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java
@@ -118,7 +118,7 @@ public class TagEditorView extends LocatableLayout {
if (!vertical)
layout.setMembersMargin(8);
- HTMLFlow title = new HTMLFlow("<b>" + MSG.view_tags_title() + "</b>");
+ HTMLFlow title = new HTMLFlow("<b>" + MSG.view_tags_tags() + ":</b>");
title.setAutoWidth();
layout.addMember(title);
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 1dc9f3a..3a01a86 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
@@ -97,7 +97,7 @@ common_title_end = End~
common_title_favorites=Favorites~
common_title_generalProp = General Properties~
common_title_group_def_total=Group Definition Total~
-common_title_icon = icon~
+common_title_icon = ~
common_title_id = ID~
common_title_id_parent = Parent ID~
common_title_info = Info~
@@ -966,7 +966,6 @@ view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1
view_tags_tags = Tags~
view_tags_error_1 = Failed to load Tags~
-view_tags_title = Tags:~
view_tags_tooltip_1 = Click to remove this Tag~
view_tags_tooltip_2 = Click to edit Tags~
view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
commit 4b778d4db50ad35b1f0293dc8c968dcd78cef5f0
Merge: 3d8c8fc... 78f624c...
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Nov 22 17:09:42 2010 -0500
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq.git
commit 3d8c8fcefc52a17c4aada0b8b4e7dbf8ecc7d78e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Nov 22 17:09:23 2010 -0500
fix link to individual tags and tag cloud
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 a5b2c95..8ab7e32 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
@@ -282,6 +282,6 @@ public class LinkManager {
}
public static String getTagLink(String tag) {
- return "#Reports/Inventory/Tag%20Cloud/" + tag;
+ return "#Reports/Subsystems/Tags/" + tag;
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java
index b321314..81bf6e6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java
@@ -32,6 +32,7 @@ import org.rhq.core.domain.criteria.TagCriteria;
import org.rhq.core.domain.tagging.compsite.TagReportComposite;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.components.HeaderLabel;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -110,8 +111,8 @@ public class TagCloudView extends LocatableVLayout {
int font = (int) ((((double) tag.getTotal()) / (double) max) * (maxFont - minFont)) + minFont;
- buf.append("<a href=\"#Reports/Inventory/Tag Cloud/").append(tag.getTag()).append("\" style=\"font-size: ")
- .append(font).append("pt; margin: 8px;\"");
+ buf.append("<a href=\"").append(LinkManager.getTagLink(tag.getTag().toString())).append(
+ "\" style=\"font-size: ").append(font).append("pt; margin: 8px;\"");
buf.append(" title=\"").append(MSG.view_tagCloud_error_tagUsedCount(String.valueOf(tag.getTotal())))
.append("\"");
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java
index 192b0f6..9f64b57 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java
@@ -44,7 +44,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
*/
public class TaggedView extends LocatableVLayout implements BookmarkableView {
- public static final ViewName VIEW_ID = new ViewName("Tag", MSG.view_tags_tags());
+ public static final ViewName VIEW_ID = new ViewName("Tags", MSG.view_tags_tags());
private TagCloudView tagCloudView;
commit 78f624cc534e7c23b3665bcc082420c38badcfe3
Merge: f26b9c1... 22aff4a...
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Mon Nov 22 16:22:45 2010 -0500
Merge branch 'master' of ssh://spinder@git.fedorahosted.org/git/rhq/rhq into track-master
commit f26b9c10181e67ab91d93adc8b266024c80733eb
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Mon Nov 22 16:21:24 2010 -0500
i)fixed wrong i18n mesg ii)fixed modal plugin errors issue.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
index 37ba5f3..2054855 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
@@ -32,8 +32,6 @@ import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
-import com.smartgwt.client.widgets.events.CloseClickHandler;
-import com.smartgwt.client.widgets.events.CloseClientEvent;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.form.fields.LinkItem;
@@ -185,20 +183,14 @@ public class ResourceTitleBar extends LocatableVLayout {
@Override
public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {
final Window winModal = new Window();
- winModal.setWidth("70%");
- winModal.setHeight("70%");
- winModal.setTitle(MSG.common_title_component_errors() + ":");
winModal.setShowMinimizeButton(false);
- winModal.setIsModal(true);
winModal.setShowModalMask(true);
winModal.setShowCloseButton(true);
+ winModal.setWidth("70%");
+ winModal.setHeight("70%");
+ winModal.setIsModal(true);
winModal.centerInPage();
- winModal.addCloseClickHandler(new CloseClickHandler() {
- @Override
- public void onCloseClick(CloseClientEvent event) {
- winModal.destroy();
- }
- });
+ winModal.setTitle(MSG.common_title_component_errors() + ":");
LocatableVLayout form = new LocatableVLayout(extendLocatorId("_Modal_Form"));
form.setAlign(VerticalAlignment.CENTER);
@@ -217,7 +209,7 @@ public class ResourceTitleBar extends LocatableVLayout {
errorsGrid.setShowFooter(false);
errorsGrid.setDataSource(errors);
form.addMember(errorsGrid);
- winModal.addChild(form);
+ winModal.addItem(form);
winModal.show();
}
@@ -381,4 +373,4 @@ public class ResourceTitleBar extends LocatableVLayout {
toggleFavoriteLocally();
}
}
-}
+}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java
index 9bc40ff..de0bf7f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java
@@ -6,7 +6,7 @@ import org.rhq.enterprise.gui.coregui.client.components.table.Table;
public class ResourceErrorsView extends Table {
public ResourceErrorsView(String locatorId, String string, Criteria criteria, Object object, String[] strings) {
- super(locatorId, MSG.view_bundle_bundles(), criteria);
+ super(locatorId, MSG.common_title_component_errors(), criteria);
}
/** Set order and width of table display
commit 22aff4ab0f6962d9113cd3ddf349165d0dfa862a
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Nov 22 16:02:31 2010 -0500
make sure ID field is hidden unless in debug mode
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
index 53ac7ef..3748bbf 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
@@ -100,8 +100,6 @@ public class ResourceGroupListView extends Table {
availabilityDescendantsField.setWrap(false);
availabilityDescendantsField.setAlign(Alignment.CENTER);
- idField.setAutoFitWidth(true);
-
nameField.setWidth("50%");
descriptionField.setWidth("50%");
typeNameField.setWidth(75);
@@ -114,7 +112,7 @@ public class ResourceGroupListView extends Table {
availabilityDescendantsField.setAutoFitWidth(true);
availabilityDescendantsField.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
- setListGridFields(idField, nameField, descriptionField, typeNameField, pluginNameField, categoryField,
+ setListGridFields(false, idField, nameField, descriptionField, typeNameField, pluginNameField, categoryField,
availabilityChildrenField, availabilityDescendantsField);
addTableAction(extendLocatorId("Delete"), MSG.common_button_delete(), MSG.common_msg_areYouSure(),
commit 7016d6a2c449b65fe960c0ca035faefdec53ed7d
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Nov 22 15:43:18 2010 -0500
make the tabular view of the groups look good
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
index 0ecdbd2..53ac7ef 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
@@ -27,6 +27,7 @@ import static org.rhq.enterprise.gui.coregui.client.inventory.groups.ResourceGro
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.AutoFitWidthApproach;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -74,7 +75,7 @@ public class ResourceGroupListView extends Table {
@Override
protected void configureTable() {
- ListGridField nameField = new ListGridField(NAME.propertyName(), NAME.title(), 300);
+ ListGridField nameField = new ListGridField(NAME.propertyName(), NAME.title());
nameField.setCellFormatter(new CellFormatter() {
public String format(Object value, ListGridRecord record, int i, int i1) {
String groupId = record.getAttribute("id");
@@ -83,22 +84,37 @@ public class ResourceGroupListView extends Table {
}
});
+ ListGridField idField = new ListGridField("id", MSG.common_title_id());
ListGridField descriptionField = new ListGridField(DESCRIPTION.propertyName(), DESCRIPTION.title());
- ListGridField typeNameField = new ListGridField(TYPE.propertyName(), TYPE.title(), 130);
- ListGridField pluginNameField = new ListGridField(PLUGIN.propertyName(), PLUGIN.title(), 100);
- ListGridField categoryField = new ListGridField(CATEGORY.propertyName(), CATEGORY.title(), 100);
+ ListGridField typeNameField = new ListGridField(TYPE.propertyName(), TYPE.title());
+ ListGridField pluginNameField = new ListGridField(PLUGIN.propertyName(), PLUGIN.title());
+ ListGridField categoryField = new ListGridField(CATEGORY.propertyName(), CATEGORY.title());
ListGridField availabilityChildrenField = new ListGridField("availabilityChildren", MSG
- .view_inventory_groups_children(), 100);
+ .view_inventory_groups_children());
availabilityChildrenField.setWrap(false);
availabilityChildrenField.setAlign(Alignment.CENTER);
ListGridField availabilityDescendantsField = new ListGridField("availabilityDescendents", MSG
- .view_inventory_groups_descendants(), 100);
+ .view_inventory_groups_descendants());
availabilityDescendantsField.setWrap(false);
availabilityDescendantsField.setAlign(Alignment.CENTER);
- setListGridFields(nameField, descriptionField, typeNameField, pluginNameField, categoryField,
+ idField.setAutoFitWidth(true);
+
+ nameField.setWidth("50%");
+ descriptionField.setWidth("50%");
+ typeNameField.setWidth(75);
+ pluginNameField.setAutoFitWidth(true);
+ pluginNameField.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
+ categoryField.setAutoFitWidth(true);
+ categoryField.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
+ availabilityChildrenField.setAutoFitWidth(true);
+ availabilityChildrenField.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
+ availabilityDescendantsField.setAutoFitWidth(true);
+ availabilityDescendantsField.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
+
+ setListGridFields(idField, nameField, descriptionField, typeNameField, pluginNameField, categoryField,
availabilityChildrenField, availabilityDescendantsField);
addTableAction(extendLocatorId("Delete"), MSG.common_button_delete(), MSG.common_msg_areYouSure(),
@@ -139,7 +155,6 @@ public class ResourceGroupListView extends Table {
}
});
-
}
// -------- Static Utility loaders ------------
commit a354a40c418369af69b6ed6fb929510254117a69
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Nov 22 15:01:01 2010 -0500
These classes were failing to get the proper Global Perms for the
user after the switch to UserPermissionsManager. Updated to use the
proper mechanism and now tab activation seems to be working correctly.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
index 9897828..3226afe 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
@@ -234,6 +234,7 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
((TwoLevelTab) top).getLayout().destroyViews();
}
+ Set<Permission> globalPermissions = UserPermissionsManager.getInstance().getGlobalPermissions();
GroupCategory groupCategory = groupComposite.getResourceGroup().getGroupCategory();
Set<ResourceTypeFacet> facets = groupComposite.getResourceFacets().getFacets();
@@ -279,7 +280,6 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
updateSubTab(this.inventoryTab, this.inventoryConnHistory, new HistoryGroupPluginConfigurationView(
this.inventoryConnHistory.extendLocatorId("View"), this.groupComposite), facets
.contains(ResourceTypeFacet.PLUGIN_CONFIGURATION), true);
- Set<Permission> globalPermissions = this.groupComposite.getResourcePermission().getPermissions();
enabled = globalPermissions.contains(Permission.MANAGE_INVENTORY);
canvas = (enabled) ? new ResourceGroupMembershipView(this.inventoryMembership.extendLocatorId("View"), groupId)
: null;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
index 190dda3..35a929b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
@@ -236,6 +236,7 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
((TwoLevelTab) top).getLayout().destroyViews();
}
+ Set<Permission> globalPermissions = UserPermissionsManager.getInstance().getGlobalPermissions();
ResourcePermission resourcePermissions = this.resourceComposite.getResourcePermission();
Set<ResourceTypeFacet> facets = this.resourceComposite.getResourceFacets().getFacets();
@@ -297,7 +298,6 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
updateSubTab(this.inventoryTab, this.inventoryGroups, ResourceGroupListView.getGroupsOf(this.inventoryTab
.extendLocatorId("GroupsView"), resource.getId()), true, true);
- Set<Permission> globalPermissions = this.resourceComposite.getResourcePermission().getPermissions();
enabled = globalPermissions.contains(Permission.MANAGE_INVENTORY);
canvas = (enabled) ? new ResourceResourceGroupsView(this.inventoryTab.extendLocatorId("GroupMembershipView"),
resourceId) : null;
commit 6346a259a93c138537ecc4d75f91d3d742ad606e
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Nov 22 14:58:30 2010 -0500
minor - Add NamedTabSet.getTabByTitle as an improvement to falling through
to super's impl
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java
index e7d4a98..494f815 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java
@@ -42,4 +42,14 @@ public class NamedTabSet extends LocatableTabSet {
return null;
}
+ public NamedTab getTabByTitle(String title) {
+ NamedTab[] tabs = getTabs();
+ for (NamedTab tab : tabs) {
+ if (tab.getTitle().equals(title)) {
+ return tab;
+ }
+ }
+ return null;
+ }
+
}
commit 0e07e711e02884bc81f9b5929290bb448857aaf7
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Nov 22 11:16:57 2010 -0500
Fix issue with render of empty groups. Protect ClusterFlyWeight when there
are no children.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ClusterFlyweight.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ClusterFlyweight.java
index 5e2e207..5422c95 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ClusterFlyweight.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/composite/ClusterFlyweight.java
@@ -23,6 +23,7 @@
package org.rhq.core.domain.resource.group.composite;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -38,7 +39,7 @@ public class ClusterFlyweight implements Serializable {
private String name;
- private List<ClusterFlyweight> children;
+ private List<ClusterFlyweight> children = new ArrayList<ClusterFlyweight>(0);
private int members;
@@ -70,7 +71,7 @@ public class ClusterFlyweight implements Serializable {
}
public void setChildren(List<ClusterFlyweight> clusterKeyFlyweights) {
- this.children = clusterKeyFlyweights;
+ this.children = (null != clusterKeyFlyweights) ? clusterKeyFlyweights : new ArrayList<ClusterFlyweight>(0);
}
public int getGroupId() {
commit 2b0fa555cf71363da2d71deec1e4be8e657b7816
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Mon Nov 22 10:25:40 2010 -0500
minor fixes to poms to clear up various Maven 3 warnings
diff --git a/modules/cli-tests/pom.xml b/modules/cli-tests/pom.xml
index d593983..b97bbf1 100644
--- a/modules/cli-tests/pom.xml
+++ b/modules/cli-tests/pom.xml
@@ -22,9 +22,9 @@
<dependencies>
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>rhq-remoting-cli</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 68dfc58..aa5c7fe 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -97,8 +97,9 @@
</plugin>
<plugin>
- <groupId>org.codehaus.groovy.maven</groupId>
- <artifactId>gmaven-plugin</artifactId>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <version>1.0</version>
<executions>
<execution>
<goals>
@@ -107,8 +108,8 @@
</goals>
</execution>
</executions>
-
</plugin>
+
</plugins>
</build>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 8d635c5..c2fc3f9 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -103,9 +103,9 @@
</dependency>
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>test-utils</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>test</scope>
</dependency>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index caebb0d..b174311 100644
--- a/modules/enterprise/agent/pom.xml
+++ b/modules/enterprise/agent/pom.xml
@@ -150,8 +150,8 @@
<echo file="${project.build.outputDirectory}/rhq-agent-version.properties" append="false">Product-Name=${rhq.product.name}
Product-Version=${project.version}
-Module-Name=${pom.name}
-Module-Version=${pom.version}
+Module-Name=${project.name}
+Module-Version=${project.version}
Build-Date=${build.time}
Build-Jdk-Vendor=${java.vendor}
Build-Jdk=${java.version}
@@ -231,12 +231,13 @@ Build-Number=${buildNumber}
<plugin>
<artifactId>maven-surefire-report-plugin</artifactId>
+ <version>2.6</version>
</plugin>
</plugins>
</build>
-<profiles>
+ <profiles>
<profile>
<id>cobertura</id>
<activation>
@@ -320,7 +321,7 @@ Build-Number=${buildNumber}
</plugins>
</build>
</profile>
-</profiles>
+ </profiles>
<repositories>
<!-- This is for SIGAR 1.6.4. -->
@@ -339,6 +340,7 @@ Build-Number=${buildNumber}
<plugin>
<artifactId>maven-surefire-report-plugin</artifactId>
+ <version>2.6</version>
</plugin>
</plugins>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8d69060..3709fc1 100644
--- a/modules/enterprise/agentupdate/pom.xml
+++ b/modules/enterprise/agentupdate/pom.xml
@@ -140,6 +140,7 @@ rhq-agent.latest.build-number=${buildNumber}
<plugin>
<artifactId>maven-surefire-report-plugin</artifactId>
+ <version>2.6</version>
</plugin>
</plugins>
@@ -292,9 +293,10 @@ rhq-agent.latest.build-number=${buildNumber}
<plugin>
<artifactId>maven-surefire-report-plugin</artifactId>
+ <version>2.6</version>
</plugin>
</plugins>
</reporting>
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 2d8f486..d13cdc4 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -28,7 +28,7 @@
<dependencies>
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>rhq-remoting-client-api</artifactId>
<version>${project.version}</version>
</dependency>
@@ -106,7 +106,7 @@
<property name="project.groupId" value="${project.groupId}" />
<property name="project.version" value="${project.version}" />
<property name="settings.localRepository" value="${settings.localRepository}" />
- <property name="rhq-remoting-ws.version" value="${version}" />
+ <property name="rhq-remoting-ws.version" value="${project.version}" />
<property name="commons-logging.version" value="${commons-logging.version}" />
<property name="opencsv.version" value="${opencsv.version}" />
<property name="concurrent.version" value="${concurrent.version}" />
diff --git a/modules/enterprise/remoting/client-deps/pom.xml b/modules/enterprise/remoting/client-deps/pom.xml
index 3dd52ab..b4b53f7 100644
--- a/modules/enterprise/remoting/client-deps/pom.xml
+++ b/modules/enterprise/remoting/client-deps/pom.xml
@@ -12,10 +12,10 @@
<dependencies>
<dependency>
- <groupId>${groupId}</groupId>
- <artifactId>rhq-remoting-client-api</artifactId>
- <version>${version}</version>
- <exclusions>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-remoting-client-api</artifactId>
+ <version>${project.version}</version>
+ <exclusions>
<exclusion>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 24af2b3..43f9d6d 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -113,7 +113,7 @@
<property name="rhq.client.build.include.client.jar" value="${rhq.client.build.include.client.jar}" />
<property name="quartz.version" value="${quartz.version}" />
<property name="ant.contrib.version" value="${ant.contrib.version}" />
- <property name="webservice.version" value="${version}" />
+ <property name="webservice.version" value="${project.version}" />
</ant>
</tasks>
</configuration>
@@ -129,7 +129,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
- <classesDirectory>${project.build.directory}/rhq-remoting-webservices-${version}
+ <classesDirectory>${project.build.directory}/rhq-remoting-webservices-${project.version}
</classesDirectory>
<includes>
@@ -205,7 +205,7 @@
</systemProperties>
<additionalClasspathElements>
<additionalClasspathElement>
- ${project.build.directory}/rhq-remoting-webservices-${version}.jar
+ ${project.build.directory}/rhq-remoting-webservices-${project.version}.jar
</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index 6325a1d..8f07aca 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -79,6 +79,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xml-maven-plugin</artifactId>
+ <version>1.0-beta-3</version>
<executions>
<execution>
<!-- translate the tokens.xml file to confluence markup -->
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index 4138e15..2a267a6 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -168,6 +168,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
+ <version>1.3</version>
<executions>
<execution>
<goals>
diff --git a/modules/plugins/jboss-cache-v3/pom.xml b/modules/plugins/jboss-cache-v3/pom.xml
index 0b88999..38ee91c 100644
--- a/modules/plugins/jboss-cache-v3/pom.xml
+++ b/modules/plugins/jboss-cache-v3/pom.xml
@@ -57,7 +57,7 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jopr-jboss-as-5-plugin</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>provided</scope>
</dependency>
@@ -80,15 +80,9 @@
</dependency>
<dependency>
- <groupId>jboss.messaging</groupId>
- <artifactId>jboss-messaging-client</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.microcontainer</groupId>
- <artifactId>jboss-kernel</artifactId>
- <scope>test</scope>
+ <groupId>org.jboss.microcontainer</groupId>
+ <artifactId>jboss-kernel</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
commit d690b534583d0aea06b964caf379a1d401ffcf5e
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Mon Nov 22 11:30:56 2010 +0100
Add some more translations.
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
index 06f0b88..ff2b19e 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
@@ -13,12 +13,12 @@ common_buildInfo_gwtVersion = ${gwt.version}~
# Button Labels
#--------------
-common_button_ack = Ack~
-common_button_ack_all = Ack All~
+common_button_ack = Bestätigen
+common_button_ack_all = Alle bestätigen
common_button_add = Hinzufügen
common_button_advanced = Advanced...~
common_button_apply = Anwenden
-common_button_cancel = Cancel~
+common_button_cancel = Abbrechen
common_button_close = Schließen
common_button_compare = Vergleichen
common_button_create_child = Create Child~
@@ -28,14 +28,14 @@ common_button_disable = Disable~
common_button_edit = Bearbeiten
common_button_enable = Enable~
common_button_finish = Beenden
-common_button_import = Import~
+common_button_import = Importieren
common_button_new = Neu
common_button_next = Weiter
-common_button_ok = OK~
+common_button_ok = OK
common_button_previous = Zurück
common_button_purgeAll=Purge All~
-common_button_refresh = "Neu laden"
-common_button_reset = Reset~
+common_button_refresh = Neu laden
+common_button_reset = Zurücksetzen
common_button_save = Speichern
common_button_search = Suchen
common_button_showDetails = Details anzeigen...
@@ -43,9 +43,9 @@ common_button_uninventory = Uninventory~
# Common Labels
#------------------------
-common_label_all = ALL~
-common_label_all_resources = all resources~
-common_label_day=
+common_label_all = ALLE
+common_label_all_resources = Alle Ressourcen
+common_label_day= Tag
common_label_days=Tage
common_label_hour=Stunde
common_label_hours=Stunden
@@ -54,9 +54,9 @@ common_label_items=items~
common_label_milliseconds=Millisekunden
common_label_minutes=Minuten
common_label_month=Monat
-common_label_none = none~
-common_label_role = role~
-common_label_roles = roles~
+common_label_none = keine
+common_label_role = Rolle
+common_label_roles = Rollen
common_label_scheduled_operations=scheduled operations~
common_label_seconds=Sekunden
common_label_selected_resources = selected resources~
@@ -77,11 +77,11 @@ common_title_available_resources=Verfügbare Ressourcen
common_title_background=Hintergrund
common_title_category = Kategorie
common_title_columns=Spalten
-common_title_configuration = Configuration~
-common_title_compatibleGroups = Compatible Groups~
+common_title_configuration = Konfiguration
+common_title_compatibleGroups = Kompatible Gruppen
common_title_compatibleGroups_total=Compatible Group Total~
common_title_custom=Custom~
-common_title_dashboard_name=Dashboard Name~
+common_title_dashboard_name=Dashboard-Name
common_title_dateCreated=Date Created~
common_title_default=Default~
common_title_description=Beschreibung
@@ -92,16 +92,16 @@ common_title_duration=Dauer
common_title_edit_mode=Edit Mode~
common_title_enabled=Enabled?~
common_title_end = Ende
-common_title_favorites=Favorites~
+common_title_favorites=Lesezeichen
common_title_generalProp = General Properties~
common_title_group_def_total=Group Definition Total~
common_title_icon = icon~
common_title_id = ID~
common_title_id_parent = Parent ID~
common_title_info = Info~
-common_title_host = Host~
-common_title_inventory = Inventory~
-common_title_inventorySummary = Inventory Summary~
+common_title_host = Rechner
+common_title_inventory = Inventar
+common_title_inventorySummary = Inventar Zusammenfassung
common_title_lastUpdated=Zuletzt aktualisiert
common_title_lastUpdatedBy=Zuletzt aktualisiert durch
common_title_mashup=Mashup~
@@ -110,50 +110,50 @@ common_title_metric = Metrik
common_title_mixedGroups = Gemischte Gruppen
common_title_mixedGroups_total=Mixed Group Total~
common_title_name = Name
-common_title_new_dashboard=New Dashboard~
-common_title_numeric_type=Numeric Type~
+common_title_new_dashboard=Neues Dashboard
+common_title_numeric_type=Numerischer Typ
common_title_operations=Operations~
common_title_operations_range=Operation Range~
-common_title_over=Over~
+common_title_over=Über
common_title_password = Passwort
common_title_path = Pfad
common_title_platform=Platform~
common_title_platform_total=Platform Total~
-common_title_plugin = Plugin~
+common_title_plugin = Plugin
common_title_port = Port
common_title_providers=Providers~
common_title_recently_added = Kürzlich hinzugefügte Ressourcen
-common_title_recent_alerts = Recent Alerts~
-common_title_recent_operations=Recent Operations~
+common_title_recent_alerts = Kürzlich ausgelöste Alarme
+common_title_recent_operations=Kürzlich ausgeführte Operationen
common_title_remove_column=Spalte löschen
common_title_repositories=Repositories~
common_title_resource = Ressource
-common_title_resource_group = Resource Group~
+common_title_resource_group = Ressourcen-Gruppe
common_title_resource_inventory=Resource Inventory~
common_title_resource_id=Resource ID~
-common_title_resource_name=Resource Name~
+common_title_resource_name=Ressurcen-Name
common_title_search = Suche
-common_title_scheduled_operations=Scheduled Operations~
+common_title_scheduled_operations=Geplante Operationen
common_title_selected_resources=Ausgewählte Ressourcen
common_title_server_total=Server Total~
common_title_service_total=Service Total~
-common_title_settings=Settings~
-common_title_show=Show~
-common_title_start = Start~
-common_title_status=Status~
+common_title_settings=Einstellungen
+common_title_show=Anzeigen
+common_title_start = Start
+common_title_status=Status
common_title_summary=Zusammenfassung
-common_title_tag_cloud=Tag Cloud~
-common_title_the=The
+common_title_tag_cloud=Tag-Wolke
+common_title_the=Die
common_title_summary_counts=Summary Counts~
-common_title_timestamp =Date/Time~
-common_title_total=Total~
+common_title_timestamp =Zeitpunkt
+common_title_total=Total
common_title_type = Typ
common_title_units = Einheiten
common_title_user=Benutzer
common_title_value = Wert
common_title_version = Version
-common_title_view_mode=View Mode~
-common_title_web_address=Web Address~
+common_title_view_mode=Anzeigemodus
+common_title_web_address=Webaddresse
common_title_welcome=Wilkommen
# Common Messages
@@ -166,7 +166,7 @@ common_msg_noItemsToShow=No items to show~
# Common Values
#--------------
-common_val_for=for~
+common_val_for=für
common_val_no = Nein
common_val_no_lower = nein
common_val_yes = Ja
@@ -179,16 +179,16 @@ common_val_none = Kein(e)
#--------------
common_calendar_january_short= Jan
common_calendar_february_short=Feb
-common_calendar_march_short=Mar
+common_calendar_march_short=Mär
common_calendar_april_short=Apr
-common_calendar_may_short=May
+common_calendar_may_short=Mai
common_calendar_june_short=Jun
common_calendar_july_short=Jul
common_calendar_august_short=Aug
common_calendar_september_short=Sept
-common_calendar_october_short=Oct
+common_calendar_october_short=Okt
common_calendar_november_short=Nov
-common_calendar_december_short=Dec
+common_calendar_december_short=Dez
#=================== Widgets =====================
@@ -199,24 +199,24 @@ widget_recordEditor_title_view = View {0} [{1}]~
widget_recordEditor_title_edit = Edit {0} [{1}]~
widget_recordEditor_title_new = Create New {0}~
# // dup in common
-widget_recordEditor_label_loading = Loading...~
+widget_recordEditor_label_loading = Laden...~
widget_recordEditor_error_invalidViewPath = Invalid view path: [{0}]~
widget_recordEditor_error_noRecords = No records were returned - expected exactly one.~
widget_recordEditor_error_multipleRecords = Multiple records were returned - expected exactly one.~
-widget_recordEditor_info_recordCreatedConcise = {0} created.~
-widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] created.~
-widget_recordEditor_info_recordUpdatedConcise = {0} updated.~
-widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] updated.~
-widget_recordEditor_info_recordsDeletedConcise = {0} {1} deleted.~
-widget_recordEditor_info_recordsDeletedDetailed = {0} {1} deleted: {2}.~
+widget_recordEditor_info_recordCreatedConcise = {0} angelegt.
+widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] angelegt.
+widget_recordEditor_info_recordUpdatedConcise = {0} aktualisiert.
+widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] aktualisiert.
+widget_recordEditor_info_recordsDeletedConcise = {0} {1} gelöscht.
+widget_recordEditor_info_recordsDeletedDetailed = {0} {1} gelöscht: {2}.
widget_recordEditor_error_unsupportedOperationType = Unsupported operation type: [{0}]~
# Resource Selector/Picker
#--------------------------------
widget_resourceSelector_selectResource=Wählen Sie eine Ressource aus
-widget_resourceSelector_pleaseSelectResource=Please select a resource~
+widget_resourceSelector_pleaseSelectResource=Bitte wählen sie eine Ressource aus
widget_resourceSelector_selectMultipleResources=Select Resources~
-widget_resourceSelector_pleaseSelectMultipleResource=Please select one or more resources~
+widget_resourceSelector_pleaseSelectMultipleResource=Bitte wählen Sie eine oder merere Ressourcen aus
widget_resourceSelector_groupCategory=Group Category~
# Resource Factory Wizard
@@ -233,7 +233,7 @@ widget_resourceFactoryWizard_configTemplatePrompt=Resource Configuration Templat
widget_resourceFactoryWizard_archPrompt=Package Architecture~
widget_resourceFactoryWizard_versionPrompt=Package Version~
widget_resourceFactoryWizard_importWizardWindowTitle=Resource Import Wizard~
-widget_resourceFactoryWizard_importWizardTitle=Import Resource of Type [{0}]~
+widget_resourceFactoryWizard_importWizardTitle=Importieren von Ressourcen des Typs [{0}]
widget_resourceFactoryWizard_importFailure=Failed to manually import resource~
widget_resourceFactoryWizard_importSubmitted=A request to import a new resource of type [{0}] has been submitted~
widget_resourceFactoryWizard_createWizardWindowTitle=Resource Create Wizard~
@@ -298,10 +298,10 @@ dataSource_ContentRepoTree_field_parentId = Parent ID~
# Users
#------
###### dup in common
-dataSource_users_field_id = ID~
+dataSource_users_field_id = ID
dataSource_users_field_name = Benutzername
-dataSource_users_field_ldap = LDAP Login?~
-dataSource_users_field_password = Passwort`
+dataSource_users_field_ldap = LDAP Login?
+dataSource_users_field_password = Passwort
dataSource_users_field_passwordVerify = Verify Password~
dataSource_users_field_firstName = Vorname~
dataSource_users_field_lastName = Nachname~
@@ -934,8 +934,8 @@ view_configEdit_tooltip_2 = Add an item to the list.~
view_groupConfigEdit_member = Member~
view_groupConfigEdit_noListProps = List properties are not currently supported for group configurations.~
view_groupConfigEdit_tooltip_1 = Member values differ - click icon to edit them.~
-view_groupConfigEdit_setAll = Set all values to:~
-view_groupConfigEdit_unset = Unset~
+view_groupConfigEdit_setAll = Alle Werte setzen auf:
+view_groupConfigEdit_unset = Ungesetzt
view_groupConfigEdit_valsDiff = member values differ~
view_groupConfigEdit_valsDiffForProp = Member Values for Property [{0}]~
@@ -962,17 +962,17 @@ view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - pl
view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
view_tags_tags = Tags
-view_tags_error_1 = Failed to load Tags~
-view_tags_title = Tags:~
+view_tags_error_1 = Konnte die Tags nicht laden
+view_tags_title = Tags:
view_tags_tooltip_1 = Click to remove this Tag~
view_tags_tooltip_2 = Click to edit Tags~
view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
# File Upload (various)
-view_upload_alreadyUploaded = File has already been uploaded~
+view_upload_alreadyUploaded = Datein wurde bereits hochgeladen
view_upload_bundleDistFile = Distribution File~
view_upload_error_bundleDistFile = Error uploading Bundle Distribution File~
-view_upload_error_file = Error uploading file~
+view_upload_error_file = Fehler beim Hochladen der Datei
view_upload_error_fileName = Error uploading file [{0}]~
view_upload_error_fileName_2 = Error uploading file [{0}], check for invalid file path.~
view_upload_error_packageVersionFile = Error uploading Package Version File~
@@ -983,23 +983,28 @@ view_upload_prompt_2 = File to Upload~
view_upload_tooltip_1 = Select a file to upload, then click Upload or Next~
view_upload_tooltip_2 = File upload had previously failed~
view_upload_success = File successfully uploaded~
-view_upload_upload = Upload~
+view_upload_upload = Hochladen
view_upload_uploadFile = UploadFile~
# Group Create Wizard
-view_groupCreateWizard_membersStepName=Select Members~
+view_groupCreateWizard_membersStepName=Wählen Sie die Gruppenmitglieder aus
view_groupCreateWizard_createStepName=Group Settings~
-view_groupCreateWizard_createStep_recursive=Recursive~
-view_groupCreateWizard_title=Create Group~
-view_groupCreateWizard_windowTitle=Create Group~
-view_groupCreateWizard_createFailure=Failed to create the resource group~
-view_groupCreateWizard_createSuccessful_concise=You have created a new resource group. [<a href="{0}">View Group</a>]~
+view_groupCreateWizard_createStep_recursive=Rekursiv
+view_groupCreateWizard_title=Gruppe anlegen
+view_groupCreateWizard_windowTitle=Gruppe anlegen
+view_groupCreateWizard_createFailure=Konnte die Ressourcen-Gruppe nicht anlegen
+view_groupCreateWizard_createSuccessful_concise=Sie haben eine neue Ressourcen-Gruppe angelegt. [<a href="{0}">Gruppe ansehen</a>]~
view_groupCreateWizard_createSuccessful_full=You have created a new [{0}] resource group with the name [{1}] that contains [{2}] member resources~
# Resource Type / Plugin View/Datasources
-view_type_resourceTypes=Resource Types~
+view_type_resourceTypes=Ressourcen-Typen
view_type_parentId=Parent ID~
-view_type_typeTreeLoadFailure=Failed to load resource type tree data~
+view_type_typeTreeLoadFailure=Failed to load resource type tree data~+# Tabs
+
+view_tabs_invalidSubTab = Invalid subtab: {0}~
+view_tabs_invalidTab = Ungültiger Reiter: {0}~
+
+
#=================== Dashboard =====================
view_dashboard_favorites_error1=Failed to load favorite Resources.~
@@ -1008,13 +1013,13 @@ view_dashboardManager_saved=Saved dashboard {0} to server~
view_dashboardManager_success=Saved dashboard~
view_dashboardManager_deleted=Successfully deleted dashboard {0}~
view_dashboards_title=Dashboard~
-view_dashboards_confirm1=Are you sure you want to delete~
+view_dashboards_confirm1=Sind Sie sicher, dass Sie löschen möchten
view_dashboardsManager_error1=Failed to add new dashboard~
# // dup in common
view_dashboardsManager_inventory_title=Inventory Summary~
view_dashboardsManager_mashup_title=RHQ Neuigkeiten
view_dashboardsManager_message_title=Wilkommen bei RHQ~
-view_dashboardsManager_message_title_details=<h1>Welcome to RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems management suite that provides extensible and integrated systems management for multiple products and platforms across a set of core features. The project is designed with layered modules that provide a flexible architecture for deployment. It delivers a core user interface that delivers audited and historical management across an entire enterprise. A Server/Agent architecture provides remote management and plugins implement all specific support for managed products.</p>\n <p>This default dashboard can be edited by clicking the (edit mode) button above.</p>~
+view_dashboardsManager_message_title_details=<h1>Wilkommen bei RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems management suite that provides extensible and integrated systems management for multiple products and platforms across a set of core features. The project is designed with layered modules that provide a flexible architecture for deployment. It delivers a core user interface that delivers audited and historical management across an entire enterprise. A Server/Agent architecture provides remote management and plugins implement all specific support for managed products.</p>\n <p>This default dashboard can be edited by clicking the (edit mode) button above.</p>~
view_dashboardsManager_tagcloud_title=Tag Cloud~
view_portlet_autodiscovery_config_platform_selection = Number of platforms to display~
view_portlet_autodiscovery_help_msg = This portlet offers the ability to import newly discovered resources into the inventory for monitoring and management or to ignore them from further action.~
@@ -1149,7 +1154,7 @@ view_tree_common_loadFailed_selection=Failed to select this node~
view_tree_common_loadFailed_node=Failed to load data for this node~
view_tree_common_loadFailed_create=Failed to create view for this node~
view_tree_common_loadFailed_update=Failed to update view for this node~
-view_tree_common_contextMenu_type_name_label=Type: {0}
+view_tree_common_contextMenu_type_name_label=Typ: {0}
view_tree_common_contextMenu_pluginConfiguration=Plugin Configuration~
view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
@@ -1157,7 +1162,7 @@ view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource Confi
view_tree_common_contextMenu_operations=Operations~
view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running operations~
view_tree_common_contextMenu_measurements=Measurements~
-view_tree_common_contextMenu_addChartToDashboard=Add chart to dashboard [{0}]~
+view_tree_common_contextMenu_addChartToDashboard=Diagramm zum Dashboard [{0}] hinzufügen
view_tree_common_contextMenu_chart=Chart~
view_tree_common_contextMenu_saveChartToDashboardSuccessful=You have saved dashboard [{0}]~
view_tree_common_contextMenu_saveChartToDashboardFailure=Failed to save the dashboard~
@@ -1167,33 +1172,34 @@ view_tabs_common_summary=Zusammenfassung
view_tabs_common_overview=Übersicht
view_tabs_common_dashboard=Dashboard~
view_tabs_common_timeline=Timeline~
-view_tabs_common_monitoring=Monitoring~
-view_tabs_common_graphs=Graphs~
+view_tabs_common_monitoring=Monitoring
+view_tabs_common_graphs=Diagramme
view_tabs_common_tables=Tabellen
view_tabs_common_traits=Traits~
view_tabs_common_availability=Verfügbarkeit
view_tabs_common_schedules=Schedules~
view_tabs_common_calltime=Calltime~
-view_tabs_common_inventory=Inventory~
+view_tabs_common_inventory=Inventar
view_tabs_common_groups=Gruppen
-view_tabs_common_group_membership=Group Membership~
-view_tabs_common_members=Members~
+view_tabs_common_group_membership=Gruppenmitgliedschaft
+view_tabs_common_members=Mitglieder
+view_tabs_common_membership=Mitgliedschaft
view_tabs_common_child_resources=Child Resources~
view_tabs_common_child_history=Child History~
view_tabs_common_connectionSettings=Connection Settings~
view_tabs_common_connectionSettingsHistory=Connection Settings History~
-view_tabs_common_operations=Operations~
-view_tabs_common_history=History~
-view_tabs_common_scheduled=Scheduled~
-view_tabs_common_alerts=Alerts~
-view_tabs_common_definitions=Definitions~
-view_tabs_common_current=Current~
-view_tabs_common_events=Events~
-view_tabs_common_configuration=Configuration~
+view_tabs_common_operations=Operationen
+view_tabs_common_history=Verlauf
+view_tabs_common_scheduled=Geplant
+view_tabs_common_alerts=Alarme
+view_tabs_common_definitions=Definitionen
+view_tabs_common_current=Aktuell
+view_tabs_common_events=Ereignisse
+view_tabs_common_configuration=Konfiguration
view_tabs_common_content=Content~
view_tabs_common_deployed=Deployed~
view_tabs_common_new=Neu
-view_tabs_common_subscriptions=Subscriptions~
+view_tabs_common_subscriptions=Abonnements
view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
@@ -1205,16 +1211,16 @@ view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your fav
view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
view_dynagroup_expressionSet=Expression Set~
view_dynagroup_recalculationInterval=Recalculation Interval~
-view_dynagroup_lastCalculationTime=Last Calculation Time~
-view_dynagroup_nextCalculationTime=Next Calculation Time~
+view_dynagroup_lastCalculationTime=Zeitpunkt letzte Berechnung
+view_dynagroup_nextCalculationTime=Zeitpunkt nächste Berechnung
view_dynagroup_definitionCreated=You have successfully created a group definition named [{0}]~
view_dynagroup_definitionLoadFailure=Failed to load group definitions~
view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
view_dynagroup_saveSuccessful=You have successfully saved the group definition named [{0}]~
view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
view_dynagroup_singleSaveFailure=An error occurred - there should have been one created, but instead there were [{0}] created~
-view_dynagroup_saveAndRecalculate=Save & Recalculate~
-view_dynagroup_recalculate=Recalculate~
+view_dynagroup_saveAndRecalculate=Speichern & neu berechnen
+view_dynagroup_recalculate=Neu berechnen
view_dynagroup_recalcSuccessful=You have successfully recalculated this group definition~
view_dynagroup_recalcFailure=Failed to recalculated this group definition~
view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group definitions~
@@ -1222,15 +1228,15 @@ view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group
view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group definitions~
view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
view_dynagroup_children=DynaGroup Children~
-view_dynagroup_newGroupDefinition=New Group Definition~
+view_dynagroup_newGroupDefinition=Neue Gruppen-Definition
view_dynagroup_editing=Editing [{0}]~
view_dynagroup_expression=Ausdruck
-view_dynagroup_recursive=Recursive~
-view_dynagroup_loadDefinitionFailure=Failed to load group definition [{0}]~
+view_dynagroup_recursive=Rekursiv
+view_dynagroup_loadDefinitionFailure=Konnte die Gruppen-Definition [{0}] nicht laden
view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
view_dynagroup_permUnknown=Could not determine if you have the proper permissions - access is denied~
view_dynagroup_permDenied=You do not have permission to view group definitions~
-view_dynagroup_definitions=DynaGroup Definitions~
+view_dynagroup_definitions=DynaGroup-Definitionen
view_group_membership_saveFailure=Failed to update membership of group [{0}]~
view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
@@ -1241,7 +1247,7 @@ view_group_resConfig_edit_saveFailure=Failed to initiate group configuration upd
view_group_resConfig_edit_valid=All configuration properties have valid values, so the configuration can now be saved~
view_group_resConfig_edit_invalid=The following configuration properties have invalid values and must be corrected before the configuration can be saved: [{0}]~
view_group_pluginConfig_view_noperm=You do not have permissions to see the connection settings~
-view_group_pluginConfig_view_groupProperties=Group Properties~
+view_group_pluginConfig_view_groupProperties=Gruppen-Eigenschaften
view_group_pluginConfig_table_title=Group Connection Settings History~
view_group_pluginConfig_table_statusDetails=Status Details~
view_group_pluginConfig_table_viewSettings=View Settings~
@@ -1255,7 +1261,7 @@ view_group_pluginConfig_table_statusNochange=No changes were made to this group
view_group_pluginConfig_table_statusFailure=This group configuration update failed~
view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
-view_group_pluginConfig_members_statusDetails=Status Details~
+view_group_pluginConfig_members_statusDetails=Status Details
view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
view_group_pluginConfig_members_statusInprogress=This configuration update is still in progress~
view_group_pluginConfig_members_statusNochange=No changes were made to this configuration~
@@ -1272,11 +1278,11 @@ view_group_pluginConfig_edit_invalid=The following connection setting properties
view_group_meas_schedules_title=Group Metric Collection Schedules~
view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with ID [{0}] - could not change from [{1}] to [{2}]~
view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group with ID [{0}] from [{1}] to [{2}]~
-view_group_summary_memberType=Member Type~
-view_group_summary_memberCount=Member Count~
-view_group_summary_dynamic=Dynamic~
-view_group_summary_recursive=Recursive~
-view_group_summary_groupDefinition=Group Definition~
+view_group_summary_memberType=Mitglieds-Typ
+view_group_summary_memberCount=Anzahl Mitglieder
+view_group_summary_dynamic=Dynamisch
+view_group_summary_recursive=Rekursiv
+view_group_summary_groupDefinition=Gruppen-Definition
view_group_summary_mixed=Gemischt
view_group_summary_descUpdateFailure=Failed to change the description of the resource group with ID [{0}]~
view_group_summary_descUpdateSuccessful=You have changed the description of this resource group~
@@ -1300,9 +1306,9 @@ view_resourceResourceGroupList_message_updateSuccess = Group membership updated
# Configuration Details
#-------------------------------
view_configurationDetails_noPermission = You do not have permission to edit this Resource''s configuration.~
-view_configurationDetails_error_updateFailure = Failed to update configuration.~
-view_configurationDetails_messageConcise = Configuration updated.~
-view_configurationDetails_messageDetailed = Configuration updated for Resource [{0}].~
+view_configurationDetails_error_updateFailure = Konnte die Konfiguration nicht aktualisieren
+view_configurationDetails_messageConcise = Konfiguration aktualisiert
+view_configurationDetails_messageDetailed = Konfiguration der Ressource [{0}] aktualisiert.
view_configurationDetails_allPropertiesValid = All configuration properties have valid values, so the configuration can now be saved.~
view_configurationDetails_somePropertiesInvalid = The following configuration properties have invalid values: {0}. The values must be corrected before the configuration can be saved.~
@@ -1328,14 +1334,14 @@ view_operationHistoryDetails_error_fetchFailure = Failure loading operation hist
#-------------------------------------
view_operationCreateWizard_title = Operation Wizard~
view_operationCreateWizard_header = Execute {0} on {1}~
-view_operationCreateWizard_button_execute = Execute~
+view_operationCreateWizard_button_execute = Ausführen
view_operationCreateWizard_button_executeImmediately = Sofort ausführen
view_operationCreateWizard_error_scheduleOperationFailure = Failed to schedule operation execution.~
view_operationCreateWizard_message_scheduleOperationSuccess = Schedule operation [{0}] on Resource [{1}] with cron string [{2}].~
view_operationCreateWizard_parametersStep_name = Operation Parameters~
view_operationCreateWizard_parametersStep_noParameters = This operation does not take any parameters.~
view_operationCreateWizard_schedulingStep_name = Schedule~
-view_operationCreateWizard_schedulingStep_label_start = Start~
+view_operationCreateWizard_schedulingStep_label_start = Start
view_operationCreateWizard_schedulingStep_label_schedule = Schedule~
view_operationCreateWizard_schedulingStep_label_recurrence = Recurrence~
view_operationCreateWizard_schedulingStep_label_runAt = Run At~
@@ -1345,16 +1351,16 @@ view_operationCreateWizard_schedulingStep_label_daily = Täglich
view_operationCreateWizard_schedulingStep_label_weekly = Wöchtentlich
view_operationCreateWizard_schedulingStep_label_monthly = Monatlich
view_operationCreateWizard_schedulingStep_label_timePeriod = Time Period~
-view_operationCreateWizard_schedulingStep_label_startDate = Start Date~
+view_operationCreateWizard_schedulingStep_label_startDate = Startdatum
view_operationCreateWizard_schedulingStep_label_recurrenceEnd = Recurrence End~
-view_operationCreateWizard_schedulingStep_label_endDate = End Date~
+view_operationCreateWizard_schedulingStep_label_endDate = Enddatum
view_operationCreateWizard_schedulingStep_label_willExecuteImmediately = Will execute immediately~
view_operationCreateWizard_schedulingStep_label_onceAt = Einmalig um
view_operationCreateWizard_schedulingStep_label_date = Datum
view_operationCreateWizard_schedulingStep_label_time = Zeit
view_operationCreateWizard_schedulingStep_label_everyNMinutes = Alle n Minuten
view_operationCreateWizard_schedulingStep_label_minuteInterval = Minute Interval~
-view_operationCreateWizard_schedulingStep_label_hourlyAt = Hourly At~
+view_operationCreateWizard_schedulingStep_label_hourlyAt = Stündlich um
view_operationCreateWizard_schedulingStep_label_minuteOfHour = Minute of Hour~
view_operationCreateWizard_schedulingStep_label_dailyAt = Stündlich um
view_operationCreateWizard_schedulingStep_label_timeOfDay = Time of Day~
@@ -1391,18 +1397,19 @@ view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource w
#==================== Reports ======================
-view_reportsTop_title = Reports~
-view_reportsTop_description = This section provides access to global reports.~
+view_reportsTop_title = Berichte
+view_reportsTop_description = Dieser Abschnitt bietet Zugang zu applikationsweiten Berichten
view_reports_platforms = Cpu- und Speicherauslastung
view_reports_subsystems = Subsysteme
+view_reports_alertDefinitions=Alert Definitions
-view_measurementOob_title = Suspect Metrics~
+view_measurementOob_title = Verdächtige Metriken
-view_tagCloud_title = Tag Cloud~
-view_tagCloud_error_fetchFailure = Failed to load tags.~
-view_tagCloud_error_tagUsedCount = Tag used {0} times.~
+view_tagCloud_title = Tag-Wolke
+view_tagCloud_error_fetchFailure = Konnte die Tags nicht laden.
+view_tagCloud_error_tagUsedCount = Tag {0} ma verwendet.
-view_taggedResources_title = Tagged Resources~
+view_taggedResources_title = Markierte Ressourcen
#===================== Test =======================
@@ -1416,17 +1423,17 @@ view_testTop_description = This section contains pages for testing various GUI c
view_aboutBox_allRightsReserved = All Rights Reserved.~
view_aboutBox_buildNumber = Build-Nummer:
view_aboutBox_failedToLoad = Kann die Produktinformation nicht laden
-view_aboutBox_homepage = Homepage~
+view_aboutBox_homepage = Homepage
view_aboutBox_jbossByRedHat = JBoss by Red Hat~
view_aboutBox_title = Über {0}
view_aboutBox_version = Version:
# CoreGUI
#--------------
-view_core_error_1 = New Alerts lookup failed~
+view_core_error_1 = Konnte keine Alarminformationen laden
view_core_loggedInAs = Eingeloggt als {0}
view_core_loggedOut = Ausgeloggt
-view_core_recentAlerts = [{0}] recent alerts~
+view_core_recentAlerts = [{0}] kürzliche Alarme
view_core_uncaught = Globally uncaught exception~
# Login
commit 536595c2bf85008e585702f551194c859f60b88b
Merge: d56e288... e23fb5d...
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Mon Nov 22 10:38:43 2010 +0100
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit e23fb5d0b2972dfafa9bb69ff58f9391a88ffcf9
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Sun Nov 21 20:11:19 2010 -0500
add description to each of the permissions on the role edit view (still need to i18n them); remove displayName and description fields from the Permission entity
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Permission.java b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Permission.java
index 6156cd4..4ccaa80 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Permission.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Permission.java
@@ -23,6 +23,7 @@
package org.rhq.core.domain.authz;
import java.util.HashSet;
+import java.util.Set;
import org.rhq.core.domain.auth.Subject;
@@ -40,99 +41,86 @@ public enum Permission {
/**
* can C/U/D users and roles (viewing is implied for everyone)
*/
- MANAGE_SECURITY(Target.GLOBAL, "Manage Security", "can C/U/D users and roles (viewing is implied for everyone)"), // 0
+ MANAGE_SECURITY(Target.GLOBAL), // 0
/**
* can C/R/U/D all resources, groups and can import auto-discovered resources
*/
- MANAGE_INVENTORY(Target.GLOBAL, "Manage Inventory",
- "can C/R/U/D all resources, groups and can import auto-discovered resources"), // 1
+ MANAGE_INVENTORY(Target.GLOBAL), // 1
/**
* can modify the RHQ Server configuration and perform any server-related functionality
*/
- MANAGE_SETTINGS(Target.GLOBAL, "Manage Settings",
- "can modify the RHQ Server configuration and perform any server-related functionality"), // 2
+ MANAGE_SETTINGS(Target.GLOBAL), // 2
+
/* ========= Resource Permissions ========= */
/**
* can view (but not C/U/D) all aspects of this Resource except its configuration ({@link #CONFIGURE_READ} is
* required to view that); this permission is implied just by having a Resource or Group in one's assigned Roles
*/
- VIEW_RESOURCE(
- Target.RESOURCE,
- "View Resource",
- "can view (but not C/U/D) all aspects of this Resource except its configuration (CONFIGURE_READ is"
- + "required to view that); this permission is implied just by having a Resource or Group in one's assigned Roles"), // 3
+ VIEW_RESOURCE(Target.RESOURCE), // 3
/**
* can modify resource name, description, and plugin config (e.g. set principal/credentials jboss-as plugin uses to
* access the managed JBossAS instance)
*/
- MODIFY_RESOURCE(Target.RESOURCE, "Modify Resource",
- "can modify resource name, description, and plugin config (e.g. set principal/credentials jboss-as plugin uses "
- + "to access the managed JBossAS instance)"), // 4
+ MODIFY_RESOURCE(Target.RESOURCE), // 4
/**
* can delete this resource (which also implies deleting all its descendant resources)
*/
- DELETE_RESOURCE(Target.RESOURCE, "Delete Resource",
- "can delete this resource (which also implies deleting all its descendant resources)"), // 5
+ DELETE_RESOURCE(Target.RESOURCE), // 5
/**
* can manually create new child servers or services
*/
- CREATE_CHILD_RESOURCES(Target.RESOURCE, "Create Child Resource",
- "can manually create new child servers or services"), // 6
+ CREATE_CHILD_RESOURCES(Target.RESOURCE), // 6
/**
* can C/U/D alert definitions (this implies {@link #MANAGE_MEASUREMENTS} and {@link #CONTROL})
*/
- MANAGE_ALERTS(Target.RESOURCE, "Manage Alerts",
- "can C/U/D alert definitions (this implies MANAGE_MEASUREMENTS and CONTROL)"), // 7
+ MANAGE_ALERTS(Target.RESOURCE), // 7
/**
* can C/U/D metric schedules
*/
- MANAGE_MEASUREMENTS(Target.RESOURCE, "Manage Measurements", "can C/U/D metric schedules"), // 8
+ MANAGE_MEASUREMENTS(Target.RESOURCE), // 8
/**
* can C/U/D content (package bits, software updates, etc.)
*/
- MANAGE_CONTENT(Target.RESOURCE, "Manage Content", "can C/U/D content (package bits, software updates, etc.)"), // 9
+ MANAGE_CONTENT(Target.RESOURCE), // 9
/**
* can invoke operations and delete operation history items
*/
- CONTROL(Target.RESOURCE, "Execute Operations", "can invoke operations and delete operation history items"), // 10
+ CONTROL(Target.RESOURCE), // 10
/**
* can C/U/D resource config (e.g. reconfiguring JBoss to listen for jnp on port 1199);
* having this permission implies having {@link #CONFIGURE_READ}
*/
- CONFIGURE_WRITE(Target.RESOURCE, "Update Configuration",
- "can C/U/D resource config (e.g. reconfiguring JBoss to listen for jnp on port 1199); "
- + "having this permission implies having CONFIGURE_READ"), // 11
+ CONFIGURE_WRITE(Target.RESOURCE), // 11
/**
* can C/U/D provisioning bundles
*/
// NOTE: This is a GLOBAL permission, but is defined down here so as to maintain the ordinal indexes of the other
// pre-existing permissions.
- MANAGE_BUNDLE(Target.GLOBAL, "Manage Bundles", "can C/U/D provisioning bundles"), // 12
+ MANAGE_BUNDLE(Target.GLOBAL), // 12
/**
* can view Resource configuration, but can not necessarily C/U/D unless {@link #CONFIGURE_WRITE} is also possessed
*/
- CONFIGURE_READ(Target.RESOURCE, "View Configuration",
- "can view Resource configuration, but can not necessarily C/U/D unless CONFIGURE_WRITE is also possessed"), // 13
+ CONFIGURE_READ(Target.RESOURCE), // 13
/**
* can C/U/D events
* (in the future, will also C/U/D event definitions)
*/
- MANAGE_EVENTS(Target.RESOURCE, "Manage Events", "can C/U/D events") // 14
+ MANAGE_EVENTS(Target.RESOURCE) // 14
;
@@ -149,20 +137,8 @@ public enum Permission {
private Target target;
- /**
- * a brief display name for the permission (TODO: i18n)
- */
- private String displayName;
-
- /**
- * a one or two sentence description of the permission (TODO: i18n)
- */
- private String description;
-
- Permission(Target target, String displayName, String description) {
+ Permission(Target target) {
this.target = target;
- this.displayName = displayName;
- this.description = description;
}
/**
@@ -174,16 +150,8 @@ public enum Permission {
return target;
}
- public String getDisplayName() {
- return displayName;
- }
-
- public String getDescription() {
- return description;
- }
-
- public static final HashSet<Permission> GLOBAL_ALL = new HashSet<Permission>();
- public static final HashSet<Permission> RESOURCE_ALL = new HashSet<Permission>();
+ public static final Set<Permission> GLOBAL_ALL = new HashSet<Permission>();
+ public static final Set<Permission> RESOURCE_ALL = new HashSet<Permission>();
static {
for (Permission permission : Permission.values()) {
switch (permission.getTarget()) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
index b7c8fce..830330a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
@@ -52,8 +52,8 @@ import org.rhq.enterprise.gui.coregui.client.util.message.Message;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVStack;
/**
- * A complex form item for editing the set of RHQ {@link Permission permission}s associated with an RHQ
- * {@link Role role}.
+ * A complex form item for editing the set of RHQ {@link Permission permission}s associated with an RHQ {@link Role
+ * role}.
*
* @author Ian Springer
*/
@@ -201,65 +201,65 @@ public class PermissionsItem extends CanvasItem {
ListGridRecord record = createResourcePermissionRecord("Inventory", "subsystems/inventory/Inventory",
Permission.VIEW_RESOURCE,
- "view Resource properties (name, description, version, etc.), connection settings, and connection settings history (IMPLIED)",
+ "(IMPLIED) view Resource properties (name, description, version, etc.), connection settings, and connection settings history",
Permission.MODIFY_RESOURCE,
"update Resource name, version, description, and connection settings; delete connection settings history items");
records.add(record);
record = createResourcePermissionRecord("Manage Measurements", "subsystems/monitor/Monitor",
Permission.VIEW_RESOURCE,
- "TODO (IMPLIED)",
+ "(IMPLIED) view metric data and collection schedules",
Permission.MANAGE_MEASUREMENTS,
- "TODO");
+ "update metric collection schedules");
records.add(record);
record = createResourcePermissionRecord("Manage Alerts", "subsystems/alert/Alerts",
Permission.VIEW_RESOURCE,
- "TODO (IMPLIED)",
+ "(IMPLIED) view alert definitions and alert history",
Permission.MANAGE_ALERTS,
- "TODO");
+ "create, update, and delete alert definitions; acknowledge and delete alert history items");
records.add(record);
record = createResourcePermissionRecord("Configure", "subsystems/configure/Configure",
Permission.CONFIGURE_READ,
- "TODO",
+ "view Resource configuration and Resource configuration revision history",
Permission.CONFIGURE_WRITE,
- "TODO");
+ "update Resource configuration; delete Resource configuration revision history items");
records.add(record);
record = createResourcePermissionRecord("Control", "subsystems/control/Operation",
Permission.VIEW_RESOURCE,
- "TODO (IMPLIED)",
+ "(IMPLIED) view available operations and operation execution history",
Permission.CONTROL,
- "TODO");
+ "execute operations; delete operation execution history items");
records.add(record);
record = createResourcePermissionRecord("Manage Events", "subsystems/event/Events",
Permission.VIEW_RESOURCE,
- "TODO (IMPLIED)",
+ "(IMPLIED) view events",
Permission.MANAGE_EVENTS,
- "TODO");
+ "delete events");
records.add(record);
record = createResourcePermissionRecord("Manage Content", "subsystems/content/Content",
Permission.VIEW_RESOURCE,
- "TODO (IMPLIED)",
+ "(IMPLIED) view installed and available packages; view package installation history",
Permission.MANAGE_CONTENT,
- "TODO");
+ "subscribe to content sources; install and uninstall packages");
records.add(record);
record = createResourcePermissionRecord("Create Child Resources", "subsystems/inventory/Inventory",
Permission.VIEW_RESOURCE,
- "TODO (IMPLIED)",
+ "(IMPLIED) view child creation history",
Permission.CREATE_CHILD_RESOURCES,
- "TODO");
+ "create new child Resources (for child Resources of types that are creatable)");
records.add(record);
record = createResourcePermissionRecord("Delete Child Resources", "subsystems/inventory/Inventory",
Permission.VIEW_RESOURCE,
- "TODO (IMPLIED)",
+ "(IMPLIED) view child deletion history",
Permission.DELETE_RESOURCE,
- "TODO");
+ "delete child Resources (for child Resources of types that are deletable)");
records.add(record);
grid.setData(records.toArray(new ListGridRecord[records.size()]));
commit 521531d4002b1bc7217a864ad6190af7ca84f728
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Nov 19 21:27:41 2010 -0500
I18N Work: Tabs
- tabbed views had/have a problem similar to the issue we had with our
view ids. In short, Tab provides only a title, which we were using both
for display and for viewpaths. I added NamedTab to allow us to keep
localized strings out of our urls, and to provide separation between
internal name and external title. NamedTab uses the same ViewName class
introduced for the ViewId issue. Also, there is an analogous NamedTabSet.
Names are now used for all non-display needs that were using title.
(as an aside, I don't care for ViewName but couldn't think of anything
better. Maybe NamedView, NamedItem, NamedTitle... if you have a pref we can
change it).
I applied the change to the Resource and ResourceGroup detail views. But
note that NamedTabSets may need to be applied where we are currently
using LocatableTabSets. It depends on whether the titles are being used
in any bookmarkable way. Needing potential change:
- SingleAlertDefinitionView
- BundleView
- BundleVersionView
- ConfigurationEditor
- DashboardsView
- fixed use of wrong prop in BundleTreeDataSource
- added a few more missing props
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java
index 7cdb894..e105374 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java
@@ -188,7 +188,7 @@ public class BundleTreeDataSource extends RPCDataSource {
TreeNode deploymentsNode = new TreeNode(MSG.view_bundle_destinations());
deploymentsNode.setID(bundle.getId() + "_destinations");
deploymentsNode.setParentID(String.valueOf(bundle.getId()));
- deploymentsNode.setName(MSG.view_bundle_versions());
+ deploymentsNode.setName(MSG.view_bundle_destinations());
records.add(deploymentsNode);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTab.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTab.java
new file mode 100644
index 0000000..848d760
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTab.java
@@ -0,0 +1,33 @@
+package org.rhq.enterprise.gui.coregui.client.components.tab;
+
+import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTab;
+
+/**
+ * A Wrapper for org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTab allowing for a Tab that separates
+ * internal naming and external title.
+ *
+ * @author Jay Shaughnessy
+ */
+public class NamedTab extends LocatableTab {
+
+ private ViewName viewName;
+
+ public NamedTab(String locatorId, ViewName viewName, String icon) {
+ super(locatorId, viewName.getTitle(), icon);
+ this.viewName = viewName;
+ }
+
+ public ViewName getViewName() {
+ return viewName;
+ }
+
+ public String getName() {
+ return viewName.getName();
+ }
+
+ public String getTitle() {
+ return viewName.getTitle();
+ }
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java
new file mode 100644
index 0000000..e7d4a98
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java
@@ -0,0 +1,45 @@
+package org.rhq.enterprise.gui.coregui.client.components.tab;
+
+import com.smartgwt.client.widgets.tab.Tab;
+
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTabSet;
+
+/**
+ * A Wrapper for org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTabSet allowing for a Set of NamedTabs.
+ *
+ * @author Jay Shaughnessy
+ */
+public class NamedTabSet extends LocatableTabSet {
+
+ public NamedTabSet(String locatorId) {
+ super(locatorId);
+ }
+
+ public void setTabs(NamedTab... tabs) {
+ super.setTabs(tabs);
+ }
+
+ public NamedTab[] getTabs() {
+ Tab[] tabs = super.getTabs();
+ NamedTab[] namedTabs = new NamedTab[tabs.length];
+ for (int i = 0, tabsLength = tabs.length; i < tabsLength; i++) {
+ Tab tab = tabs[i];
+ if (!(tab instanceof NamedTab)) {
+ throw new IllegalStateException("NamedTabSet contains a Tab that is not a NamedTab.");
+ }
+ namedTabs[i] = (NamedTab) tab;
+ }
+ return namedTabs;
+ }
+
+ public NamedTab getTabByName(String name) {
+ NamedTab[] tabs = getTabs();
+ for (NamedTab tab : tabs) {
+ if (tab.getName().equals(name)) {
+ return tab;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java
index e149772..b6296d7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java
@@ -21,6 +21,7 @@ package org.rhq.enterprise.gui.coregui.client.components.tab;
import com.smartgwt.client.widgets.Canvas;
+import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
import org.rhq.enterprise.gui.coregui.client.util.selenium.Locatable;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableButton;
@@ -31,13 +32,13 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableButton;
*/
public class SubTab implements Locatable {
private String locatorId;
- private String title;
+ private ViewName viewName;
private Canvas canvas;
private LocatableButton button;
- public SubTab(String locatorId, String title, Canvas canvas) {
+ public SubTab(String locatorId, ViewName viewName, Canvas canvas) {
this.locatorId = locatorId;
- this.title = title;
+ this.viewName = viewName;
this.canvas = canvas;
this.button = null;
}
@@ -46,10 +47,6 @@ public class SubTab implements Locatable {
return locatorId;
}
- public String getTitle() {
- return title;
- }
-
public Canvas getCanvas() {
return canvas;
}
@@ -66,6 +63,18 @@ public class SubTab implements Locatable {
this.button = button;
}
+ public ViewName getViewName() {
+ return viewName;
+ }
+
+ public String getName() {
+ return viewName.getName();
+ }
+
+ public String getTitle() {
+ return viewName.getTitle();
+ }
+
@Override
public String extendLocatorId(String extension) {
return this.locatorId + "_" + extension;
@@ -73,6 +82,7 @@ public class SubTab implements Locatable {
@Override
public String toString() {
- return "SubTab[title=" + this.title + ", locatorId=" + this.locatorId + "]";
+ return "SubTab[title=" + this.viewName.getTitle() + ", name=" + this.viewName.getName() + ", locatorId="
+ + this.locatorId + "]";
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
index 135dcee..4797641 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
@@ -42,9 +42,9 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
*/
public class SubTabLayout extends LocatableVLayout {
- /** maps subTab locator IDs to SubTabs */
+ /** maps subTab locator IDs to SubTabs. Unlike names, locatorIDs are qualified by the Tab and therefore unique. */
private Map<String, SubTab> subTabs = new LinkedHashMap<String, SubTab>();
- /** locator IDs of subTabs that are disabled */
+ /** locator IDs of subTabs that are disabled. Unlike names, locator IDs are qualified by the Tab and therefore unique. */
private Set<String> disabledSubTabs = new HashSet<String>();
private SubTab currentlyDisplayed;
@@ -221,10 +221,10 @@ public class SubTabLayout extends LocatableVLayout {
return foundTab;
}
- public SubTab getSubTabByTitle(String title) {
+ public SubTab getSubTabByName(String name) {
for (String subTabLocatorId : this.subTabs.keySet()) {
SubTab subTab = this.subTabs.get(subTabLocatorId);
- if (subTab.getTitle().equals(title)) {
+ if (subTab.getName().equals(name)) {
return subTab;
}
}
@@ -242,14 +242,14 @@ public class SubTabLayout extends LocatableVLayout {
return null;
}
- public boolean selectSubTabByTitle(String title) {
- SubTab subTab = getSubTabByTitle(title);
+ public boolean selectSubTabByName(String name) {
+ SubTab subTab = getSubTabByName(name);
if (subTab == null) {
return false;
} else {
if (this.disabledSubTabs.contains(subTab.getLocatorId())) {
// Nice try - user tried to select a disabled tab, probably by going directly to a bookmark URL.
- CoreGUI.getErrorHandler().handleError(MSG.view_subTab_error_disabled(title));
+ CoreGUI.getErrorHandler().handleError(MSG.view_subTab_error_disabled(subTab.getTitle()));
return false;
}
this.currentlySelected = subTab.getLocatorId();
@@ -280,7 +280,7 @@ public class SubTabLayout extends LocatableVLayout {
}
public void fireSubTabSelection() {
- TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent("?", getCurrentSubTab().getTitle(), -1,
+ TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent("?", getCurrentSubTab().getName(), -1,
getCurrentCanvas());
hm.fireEvent(event);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java
index 4468d93..fa62e45 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java
@@ -20,16 +20,17 @@ package org.rhq.enterprise.gui.coregui.client.components.tab;
import com.smartgwt.client.widgets.Canvas;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTab;
+import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
/**
* @author Greg Hinkle
+ * @author Jay Shaughnessy
*/
-public class TwoLevelTab extends LocatableTab {
+public class TwoLevelTab extends NamedTab {
private SubTabLayout layout;
- public TwoLevelTab(String locatorId, String title, String icon) {
- super(locatorId, title, icon);
+ public TwoLevelTab(String locatorId, ViewName viewName, String icon) {
+ super(locatorId, viewName, icon);
layout = new SubTabLayout(locatorId);
}
@@ -56,8 +57,8 @@ public class TwoLevelTab extends LocatableTab {
}
}
- public SubTab getSubTabByTitle(String title) {
- return this.layout.getSubTabByTitle(title);
+ public SubTab getSubTabByName(String name) {
+ return this.layout.getSubTabByName(name);
}
public SubTab getSubTabByLocatorId(String locatorId) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java
index d8e29b2..e256299 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java
@@ -24,14 +24,12 @@ import com.smartgwt.client.widgets.tab.Tab;
import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTabSet;
-
/**
* A tab set where each {@link TwoLevelTab tab} has one or more {@link SubTab subtab}s.
*
* @author Greg Hinkle
*/
-public class TwoLevelTabSet extends LocatableTabSet implements TabSelectedHandler, TwoLevelTabSelectedHandler {
+public class TwoLevelTabSet extends NamedTabSet implements TabSelectedHandler, TwoLevelTabSelectedHandler {
public TwoLevelTabSet(String locatorId) {
super(locatorId);
@@ -73,8 +71,8 @@ public class TwoLevelTabSet extends LocatableTabSet implements TabSelectedHandle
TwoLevelTab tab = (TwoLevelTab) getSelectedTab();
SubTab currentSubTab = tab.getLayout().getCurrentSubTab();
if (null != currentSubTab) {
- TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent(tab.getTitle(), tab.getLayout()
- .getCurrentSubTab().getTitle(), tabSelectedEvent.getTabNum(), tab.getLayout().getCurrentCanvas());
+ TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent(tab.getName(), tab.getLayout()
+ .getCurrentSubTab().getName(), tabSelectedEvent.getTabNum(), tab.getLayout().getCurrentCanvas());
m.fireEvent(event);
}
}
@@ -82,7 +80,7 @@ public class TwoLevelTabSet extends LocatableTabSet implements TabSelectedHandle
public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) {
tabSelectedEvent.setTabNum(getSelectedTabNumber());
Tab tab = getSelectedTab();
- tabSelectedEvent.setId(tab.getTitle());
+ tabSelectedEvent.setId(this.getTabByTitle(tab.getTitle()).getName());
m.fireEvent(tabSelectedEvent);
}
@@ -96,6 +94,10 @@ public class TwoLevelTabSet extends LocatableTabSet implements TabSelectedHandle
return null;
}
+ public TwoLevelTab getTabByName(String name) {
+ return (TwoLevelTab) super.getTabByName(name);
+ }
+
public TwoLevelTab getTabByTitle(String title) {
return (TwoLevelTab) super.getTabByTitle(title);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java
index ebececd..e174c63 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java
@@ -2,6 +2,12 @@ package org.rhq.enterprise.gui.coregui.client.components.view;
import org.rhq.core.domain.util.StringUtils;
+/**
+ * A simple class that ties a private name to a displayed title. The title may very well change with locale but
+ * the name will stay constant. It's useful any time a viewable item does not itself provide for a name.
+ *
+ * @author Jay Shaughnessy
+ */
public class ViewName {
private String name;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
index a494a6b..f07f7dc 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
@@ -175,27 +175,27 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends Layout> extends Lo
/**
* Select the tab/subtab with the specified titles (e.g. "Monitoring", "Graphs").
*
- * @param tabTitle the title of the tab to select - if null, the default tab (the leftmost non-disabled one) will be selected
- * @param subtabTitle the title of the subtab to select - if null, the default subtab (the leftmost non-disabled one) will be selected
+ * @param tabName the title of the tab to select - if null, the default tab (the leftmost non-disabled one) will be selected
+ * @param subtabName the title of the subtab to select - if null, the default subtab (the leftmost non-disabled one) will be selected
* @param viewPath the view path, which may have additional view items to be rendered
*/
- public void selectTab(String tabTitle, String subtabTitle, ViewPath viewPath) {
+ public void selectTab(String tabName, String subtabName, ViewPath viewPath) {
try {
- TwoLevelTab tab = (tabTitle != null) ? this.tabSet.getTabByTitle(tabTitle) : this.tabSet.getDefaultTab();
+ TwoLevelTab tab = (tabName != null) ? this.tabSet.getTabByName(tabName) : this.tabSet.getDefaultTab();
if (tab == null || tab.getDisabled()) {
- CoreGUI.getErrorHandler().handleError("Invalid tab name: " + tabTitle);
+ CoreGUI.getErrorHandler().handleError(MSG.view_tabs_invalidTab(tabName));
// TODO: Should we fire a history event here to redirect to a valid bookmark?
tab = this.tabSet.getDefaultTab();
if (tab == null) {
throw new IllegalStateException("No default tab is defined.");
}
- subtabTitle = null;
+ subtabName = null;
}
// Do *not* select the tab and trigger the tab selected event until the subtab has been selected first.
- SubTab subtab = (subtabTitle != null) ? tab.getSubTabByTitle(subtabTitle) : tab.getDefaultSubTab();
+ SubTab subtab = (subtabName != null) ? tab.getSubTabByName(subtabName) : tab.getDefaultSubTab();
if (subtab == null || tab.getLayout().isSubTabDisabled(subtab)) {
- CoreGUI.getErrorHandler().handleError("Invalid subtab name: " + subtabTitle);
+ CoreGUI.getErrorHandler().handleError(MSG.view_tabs_invalidSubTab(subtabName));
// TODO: Should we fire a history event here to redirect to a valid bookmark?
subtab = tab.getLayout().getDefaultSubTab();
}
@@ -214,7 +214,7 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends Layout> extends Lo
this.tabSet.markForRedraw();
} catch (Exception e) {
- com.allen_sauer.gwt.log.client.Log.info("Failed to select tab " + tabTitle + "/" + subtabTitle + ": " + e);
+ com.allen_sauer.gwt.log.client.Log.info("Failed to select tab " + tabName + "/" + subtabName + ": " + e);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
index 7c82422..9897828 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
@@ -47,6 +47,7 @@ import org.rhq.enterprise.gui.coregui.client.components.FullHTMLPane;
import org.rhq.enterprise.gui.coregui.client.components.tab.SubTab;
import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTab;
import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTabSelectedEvent;
+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.common.detail.AbstractTwoLevelTabSetView;
import org.rhq.enterprise.gui.coregui.client.inventory.common.event.EventCompositeHistoryView;
@@ -101,8 +102,8 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
private SubTab configHistory;
private SubTab eventHistory;
- private String currentTab;
- private String currentSubTab;
+ private String currentTabName;
+ private String currentSubTabName;
public ResourceGroupDetailView(String locatorId, String baseViewPath) {
super(locatorId, baseViewPath);
@@ -118,14 +119,14 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) {
// if moving from membership subtab then re-load the detail view as the membership and
// group type may have changed.
- if ((null != this.groupId) && this.inventoryTab.getTitle().equals(currentTab)
- && this.inventoryMembership.getTitle().equals(currentSubTab)) {
+ if ((null != this.groupId) && this.inventoryTab.getName().equals(currentTabName)
+ && this.inventoryMembership.getName().equals(currentSubTabName)) {
String tabPath = "/" + tabSelectedEvent.getId() + "/" + tabSelectedEvent.getSubTabId();
String path = this.getBaseViewPath() + "/" + getSelectedItemId() + tabPath;
- this.currentTab = null;
- this.currentSubTab = null;
+ this.currentTabName = null;
+ this.currentSubTabName = null;
this.groupId = null;
CoreGUI.goToView(path);
@@ -143,62 +144,76 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
protected List<TwoLevelTab> createTabs() {
List<TwoLevelTab> tabs = new ArrayList<TwoLevelTab>();
- summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), MSG.view_tabs_common_summary(),
- "/images/icons/Service_up_16.png");
- summaryOverview = new SubTab(summaryTab.extendLocatorId("Overview"), MSG.view_tabs_common_overview(), null);
- summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), MSG.view_tabs_common_timeline(), null);
+ summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), new ViewName("Summary", MSG
+ .view_tabs_common_summary()), "/images/icons/Service_up_16.png");
+ summaryOverview = new SubTab(summaryTab.extendLocatorId("Overview"), new ViewName("Overview", MSG
+ .view_tabs_common_overview()), null);
+ summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), new ViewName("Timeline", MSG
+ .view_tabs_common_timeline()), null);
summaryTab.registerSubTabs(summaryOverview, summaryTimeline);
tabs.add(summaryTab);
- monitoringTab = new TwoLevelTab(getTabSet().extendLocatorId("Monitoring"), MSG.view_tabs_common_monitoring(),
- "/images/icons/Monitor_grey_16.png");
- monitorGraphs = new SubTab(monitoringTab.extendLocatorId("Graphs"), MSG.view_tabs_common_graphs(), null);
- monitorTables = new SubTab(monitoringTab.extendLocatorId("Tables"), MSG.view_tabs_common_tables(), null);
- monitorTraits = new SubTab(monitoringTab.extendLocatorId("Traits"), MSG.view_tabs_common_traits(), null);
-
- monitorSched = new SubTab(monitoringTab.extendLocatorId("Schedules"), MSG.view_tabs_common_schedules(), null);
- monitorCallTime = new SubTab(monitoringTab.extendLocatorId("CallTime"), MSG.view_tabs_common_calltime(), null);
+ monitoringTab = new TwoLevelTab(getTabSet().extendLocatorId("Monitoring"), new ViewName("Monitoring", MSG
+ .view_tabs_common_monitoring()), "/images/icons/Monitor_grey_16.png");
+ monitorGraphs = new SubTab(monitoringTab.extendLocatorId("Graphs"), new ViewName("Graphs", MSG
+ .view_tabs_common_graphs()), null);
+ monitorTables = new SubTab(monitoringTab.extendLocatorId("Tables"), new ViewName("Tables", MSG
+ .view_tabs_common_tables()), null);
+ monitorTraits = new SubTab(monitoringTab.extendLocatorId("Traits"), new ViewName("Traits", MSG
+ .view_tabs_common_traits()), null);
+
+ monitorSched = new SubTab(monitoringTab.extendLocatorId("Schedules"), new ViewName("Schedules", MSG
+ .view_tabs_common_schedules()), null);
+ monitorCallTime = new SubTab(monitoringTab.extendLocatorId("CallTime"), new ViewName("CallTime", MSG
+ .view_tabs_common_calltime()), null);
monitoringTab.registerSubTabs(monitorGraphs, monitorTables, monitorTraits, monitorSched, monitorCallTime);
tabs.add(monitoringTab);
- inventoryTab = new TwoLevelTab(getTabSet().extendLocatorId("Inventory"), MSG.view_tabs_common_inventory(),
- "/images/icons/Inventory_grey_16.png");
- inventoryMembers = new SubTab(inventoryTab.extendLocatorId("Members"), MSG.view_tabs_common_members(), null);
- inventoryConn = new SubTab(inventoryTab.extendLocatorId("ConnectionSettings"), MSG
- .view_tabs_common_connectionSettings(), null);
- inventoryConnHistory = new SubTab(inventoryTab.extendLocatorId("ConnectionSettingsHistory"), MSG
- .view_tabs_common_connectionSettingsHistory(), null);
- inventoryMembership = new SubTab(inventoryTab.extendLocatorId("Membership"), "Membership", null); // TODO this will merge with Members
+ inventoryTab = new TwoLevelTab(getTabSet().extendLocatorId("Inventory"), new ViewName("Inventory", MSG
+ .view_tabs_common_inventory()), "/images/icons/Inventory_grey_16.png");
+ inventoryMembers = new SubTab(inventoryTab.extendLocatorId("Members"), new ViewName("Members", MSG
+ .view_tabs_common_members()), null);
+ inventoryConn = new SubTab(inventoryTab.extendLocatorId("ConnectionSettings"), new ViewName(
+ "ConnectionSettings", MSG.view_tabs_common_connectionSettings()), null);
+ inventoryConnHistory = new SubTab(inventoryTab.extendLocatorId("ConnectionSettingsHistory"), new ViewName(
+ "ConnectionSettingsHistory", MSG.view_tabs_common_connectionSettingsHistory()), null);
+ inventoryMembership = new SubTab(inventoryTab.extendLocatorId("Membership"), new ViewName("Membership", MSG
+ .view_tabs_common_membership()), null); // TODO this will merge with Members
inventoryTab.registerSubTabs(this.inventoryMembers, this.inventoryConn, this.inventoryConnHistory,
this.inventoryMembership);
tabs.add(inventoryTab);
- operationsTab = new TwoLevelTab(getTabSet().extendLocatorId("Operations"), MSG.view_tabs_common_operations(),
- "/images/icons/Operation_grey_16.png");
- this.opHistory = new SubTab(operationsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
- this.opSched = new SubTab(operationsTab.extendLocatorId("Scheduled"), MSG.view_tabs_common_scheduled(), null);
+ operationsTab = new TwoLevelTab(getTabSet().extendLocatorId("Operations"), new ViewName("Operations", MSG
+ .view_tabs_common_operations()), "/images/icons/Operation_grey_16.png");
+ this.opHistory = new SubTab(operationsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
+ this.opSched = new SubTab(operationsTab.extendLocatorId("Scheduled"), new ViewName("Scheduled", MSG
+ .view_tabs_common_scheduled()), null);
operationsTab.registerSubTabs(this.opHistory, this.opSched);
tabs.add(operationsTab);
- alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), MSG.view_tabs_common_alerts(),
- "/images/icons/Alert_grey_16.png");
- this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
- this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), MSG.view_tabs_common_definitions(), null);
+ alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), new ViewName("Alerts", MSG
+ .view_tabs_common_alerts()), "/images/icons/Alert_grey_16.png");
+ this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
+ this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), new ViewName("Definitions", MSG
+ .view_tabs_common_definitions()), null);
alertsTab.registerSubTabs(alertHistory, alertDef);
tabs.add(alertsTab);
- configurationTab = new TwoLevelTab(getTabSet().extendLocatorId("Configuration"), MSG
- .view_tabs_common_configuration(), "/images/icons/Configure_grey_16.png");
- this.configCurrent = new SubTab(configurationTab.extendLocatorId("Current"), MSG.view_tabs_common_current(),
- null);
- this.configHistory = new SubTab(configurationTab.extendLocatorId("History"), MSG.view_tabs_common_history(),
- null);
+ configurationTab = new TwoLevelTab(getTabSet().extendLocatorId("Configuration"), new ViewName("Configuration",
+ MSG.view_tabs_common_configuration()), "/images/icons/Configure_grey_16.png");
+ this.configCurrent = new SubTab(configurationTab.extendLocatorId("Current"), new ViewName("Current", MSG
+ .view_tabs_common_current()), null);
+ this.configHistory = new SubTab(configurationTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
configurationTab.registerSubTabs(this.configCurrent, this.configHistory);
tabs.add(configurationTab);
- eventsTab = new TwoLevelTab(getTabSet().extendLocatorId("Events"), MSG.view_tabs_common_events(),
- "/images/icons/Events_grey_16.png");
- this.eventHistory = new SubTab(eventsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
+ eventsTab = new TwoLevelTab(getTabSet().extendLocatorId("Events"), new ViewName("Events", MSG
+ .view_tabs_common_events()), "/images/icons/Events_grey_16.png");
+ this.eventHistory = new SubTab(eventsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
eventsTab.registerSubTabs(eventHistory);
tabs.add(eventsTab);
@@ -394,9 +409,9 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
}
@Override
- public void selectTab(String tabTitle, String subtabTitle, ViewPath viewPath) {
- currentTab = tabTitle;
- currentSubTab = subtabTitle;
- super.selectTab(tabTitle, subtabTitle, viewPath);
+ public void selectTab(String tabName, String subtabName, ViewPath viewPath) {
+ currentTabName = tabName;
+ currentSubTabName = subtabName;
+ super.selectTab(tabName, subtabName, viewPath);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
index 6064964..190dda3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
@@ -46,6 +46,7 @@ import org.rhq.enterprise.gui.coregui.client.alert.definitions.ResourceAlertDefi
import org.rhq.enterprise.gui.coregui.client.components.FullHTMLPane;
import org.rhq.enterprise.gui.coregui.client.components.tab.SubTab;
import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTab;
+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.InventoryView;
import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.AbstractTwoLevelTabSetView;
@@ -121,80 +122,97 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
protected List<TwoLevelTab> createTabs() {
List<TwoLevelTab> tabs = new ArrayList<TwoLevelTab>();
- summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), MSG.view_tabs_common_summary(),
- "/images/icons/Service_up_16.png");
- summaryOverview = new SubTab(summaryTab.extendLocatorId("Overview"), MSG.view_tabs_common_overview(), null);
- summaryDashboard = new SubTab(summaryTab.extendLocatorId("Dashboard"), MSG.view_tabs_common_dashboard(), null);
- summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), MSG.view_tabs_common_timeline(), null);
+ summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), new ViewName("Summary", MSG
+ .view_tabs_common_summary()), "/images/icons/Service_up_16.png");
+ summaryOverview = new SubTab(summaryTab.extendLocatorId("Overview"), new ViewName("Overview", MSG
+ .view_tabs_common_overview()), null);
+ summaryDashboard = new SubTab(summaryTab.extendLocatorId("Dashboard"), new ViewName("Dashboard", MSG
+ .view_tabs_common_dashboard()), null);
+ summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), new ViewName("Timeline", MSG
+ .view_tabs_common_timeline()), null);
summaryTab.registerSubTabs(summaryOverview, summaryDashboard, summaryTimeline);
tabs.add(summaryTab);
- monitoringTab = new TwoLevelTab(getTabSet().extendLocatorId("Monitoring"), MSG.view_tabs_common_monitoring(),
- "/images/icons/Monitor_grey_16.png");
- monitorGraphs = new SubTab(monitoringTab.extendLocatorId("Graphs"), MSG.view_tabs_common_graphs(), null);
- monitorTables = new SubTab(monitoringTab.extendLocatorId("Tables"), MSG.view_tabs_common_tables(), null);
- monitorTraits = new SubTab(monitoringTab.extendLocatorId("Traits"), MSG.view_tabs_common_traits(), null);
- monitorAvail = new SubTab(monitoringTab.extendLocatorId("Availability"), MSG.view_tabs_common_availability(),
- null);
- monitorSched = new SubTab(monitoringTab.extendLocatorId("Schedules"), MSG.view_tabs_common_schedules(), null);
- monitorCallTime = new SubTab(monitoringTab.extendLocatorId("CallTime"), MSG.view_tabs_common_calltime(), null);
+ monitoringTab = new TwoLevelTab(getTabSet().extendLocatorId("Monitoring"), new ViewName("Monitoring", MSG
+ .view_tabs_common_monitoring()), "/images/icons/Monitor_grey_16.png");
+ monitorGraphs = new SubTab(monitoringTab.extendLocatorId("Graphs"), new ViewName("Graphs", MSG
+ .view_tabs_common_graphs()), null);
+ monitorTables = new SubTab(monitoringTab.extendLocatorId("Tables"), new ViewName("Tables", MSG
+ .view_tabs_common_tables()), null);
+ monitorTraits = new SubTab(monitoringTab.extendLocatorId("Traits"), new ViewName("Traits", MSG
+ .view_tabs_common_traits()), null);
+ monitorAvail = new SubTab(monitoringTab.extendLocatorId("Availability"), new ViewName("Availability", MSG
+ .view_tabs_common_availability()), null);
+ monitorSched = new SubTab(monitoringTab.extendLocatorId("Schedules"), new ViewName("Schedules", MSG
+ .view_tabs_common_schedules()), null);
+ monitorCallTime = new SubTab(monitoringTab.extendLocatorId("CallTime"), new ViewName("CallTime", MSG
+ .view_tabs_common_calltime()), null);
monitoringTab.registerSubTabs(monitorGraphs, monitorTables, monitorTraits, monitorAvail, monitorSched,
monitorCallTime);
tabs.add(monitoringTab);
- inventoryTab = new TwoLevelTab(getTabSet().extendLocatorId("Inventory"), MSG.view_tabs_common_inventory(),
- "/images/icons/Inventory_grey_16.png");
- inventoryChildren = new SubTab(inventoryTab.extendLocatorId("Children"),
- MSG.view_tabs_common_child_resources(), null);
- inventoryChildHistory = new SubTab(inventoryTab.extendLocatorId("ChildHist"), MSG
- .view_tabs_common_child_history(), null);
- inventoryConn = new SubTab(inventoryTab.extendLocatorId("ConnectionSettings"), MSG
- .view_tabs_common_connectionSettings(), null);
- inventoryConnHistory = new SubTab(inventoryTab.extendLocatorId("ConnSetHist"), MSG
- .view_tabs_common_connectionSettingsHistory(), null);
- inventoryGroups = new SubTab(inventoryTab.extendLocatorId("Groups"), MSG.view_tabs_common_groups(), null);
- inventoryGroupMembership = new SubTab(inventoryTab.extendLocatorId("GroupMembership"), MSG
- .view_tabs_common_group_membership(), null);
+ inventoryTab = new TwoLevelTab(getTabSet().extendLocatorId("Inventory"), new ViewName("Inventory", MSG
+ .view_tabs_common_inventory()), "/images/icons/Inventory_grey_16.png");
+ inventoryChildren = new SubTab(inventoryTab.extendLocatorId("Children"), new ViewName("Children", MSG
+ .view_tabs_common_child_resources()), null);
+ inventoryChildHistory = new SubTab(inventoryTab.extendLocatorId("ChildHist"), new ViewName("ChildHistory", MSG
+ .view_tabs_common_child_history()), null);
+ inventoryConn = new SubTab(inventoryTab.extendLocatorId("ConnectionSettings"), new ViewName(
+ "ConnectionSettings", MSG.view_tabs_common_connectionSettings()), null);
+ inventoryConnHistory = new SubTab(inventoryTab.extendLocatorId("ConnSetHist"), new ViewName(
+ "ConnectionSettingsHistory", MSG.view_tabs_common_connectionSettingsHistory()), null);
+ inventoryGroups = new SubTab(inventoryTab.extendLocatorId("Groups"), new ViewName("Groups", MSG
+ .view_tabs_common_groups()), null);
+ inventoryGroupMembership = new SubTab(inventoryTab.extendLocatorId("GroupMembership"), new ViewName(
+ "GroupMembership", MSG.view_tabs_common_group_membership()), null);
inventoryTab.registerSubTabs(this.inventoryChildren, this.inventoryChildHistory, this.inventoryConn,
this.inventoryConnHistory, this.inventoryGroups, this.inventoryGroupMembership);
tabs.add(inventoryTab);
- operationsTab = new TwoLevelTab(getTabSet().extendLocatorId("Operations"), MSG.view_tabs_common_operations(),
- "/images/icons/Operation_grey_16.png");
- this.opHistory = new SubTab(operationsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
- this.opSched = new SubTab(operationsTab.extendLocatorId("Scheduled"), MSG.view_tabs_common_scheduled(), null);
+ operationsTab = new TwoLevelTab(getTabSet().extendLocatorId("Operations"), new ViewName("Operations", MSG
+ .view_tabs_common_operations()), "/images/icons/Operation_grey_16.png");
+ this.opHistory = new SubTab(operationsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
+ this.opSched = new SubTab(operationsTab.extendLocatorId("Scheduled"), new ViewName("Scheduled", MSG
+ .view_tabs_common_scheduled()), null);
operationsTab.registerSubTabs(this.opHistory, this.opSched);
tabs.add(operationsTab);
- alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), MSG.view_tabs_common_alerts(),
- "/images/icons/Alert_grey_16.png");
- this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
- this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), MSG.view_tabs_common_definitions(), null);
+ alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), new ViewName("Alerts", MSG
+ .view_tabs_common_alerts()), "/images/icons/Alert_grey_16.png");
+ this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
+ this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), new ViewName("Definitions", MSG
+ .view_tabs_common_definitions()), null);
alertsTab.registerSubTabs(alertHistory, alertDef);
tabs.add(alertsTab);
- configurationTab = new TwoLevelTab(getTabSet().extendLocatorId("Configuration"), MSG
- .view_tabs_common_configuration(), "/images/icons/Configure_grey_16.png");
- this.configCurrent = new SubTab(configurationTab.extendLocatorId("Current"), MSG.view_tabs_common_current(),
- null);
- this.configHistory = new SubTab(configurationTab.extendLocatorId("History"), MSG.view_tabs_common_history(),
- null);
+ configurationTab = new TwoLevelTab(getTabSet().extendLocatorId("Configuration"), new ViewName("Configuration",
+ MSG.view_tabs_common_configuration()), "/images/icons/Configure_grey_16.png");
+ this.configCurrent = new SubTab(configurationTab.extendLocatorId("Current"), new ViewName("Current", MSG
+ .view_tabs_common_current()), null);
+ this.configHistory = new SubTab(configurationTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
configurationTab.registerSubTabs(this.configCurrent, this.configHistory);
tabs.add(configurationTab);
- eventsTab = new TwoLevelTab(getTabSet().extendLocatorId("Events"), MSG.view_tabs_common_events(),
- "/images/icons/Events_grey_16.png");
- this.eventHistory = new SubTab(eventsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
+ eventsTab = new TwoLevelTab(getTabSet().extendLocatorId("Events"), new ViewName("Events", MSG
+ .view_tabs_common_events()), "/images/icons/Events_grey_16.png");
+ this.eventHistory = new SubTab(eventsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
eventsTab.registerSubTabs(eventHistory);
tabs.add(eventsTab);
- contentTab = new TwoLevelTab(getTabSet().extendLocatorId("Content"), MSG.view_tabs_common_content(),
- "/images/icons/Content_grey_16.png");
- this.contentDeployed = new SubTab(contentTab.extendLocatorId("Deployed"), MSG.view_tabs_common_deployed(), null);
- this.contentNew = new SubTab(contentTab.extendLocatorId("New"), MSG.view_tabs_common_new(), null);
- this.contentSubscrip = new SubTab(contentTab.extendLocatorId("Subscriptions"), MSG
- .view_tabs_common_subscriptions(), null);
- this.contentHistory = new SubTab(contentTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
+ contentTab = new TwoLevelTab(getTabSet().extendLocatorId("Content"), new ViewName("Content", MSG
+ .view_tabs_common_content()), "/images/icons/Content_grey_16.png");
+ this.contentDeployed = new SubTab(contentTab.extendLocatorId("Deployed"), new ViewName("Deployed", MSG
+ .view_tabs_common_deployed()), null);
+ this.contentNew = new SubTab(contentTab.extendLocatorId("New"),
+ new ViewName("New", MSG.view_tabs_common_new()), null);
+ this.contentSubscrip = new SubTab(contentTab.extendLocatorId("Subscriptions"), new ViewName("Subscriptions",
+ MSG.view_tabs_common_subscriptions()), null);
+ this.contentHistory = new SubTab(contentTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
contentTab.registerSubTabs(contentDeployed, contentNew, contentSubscrip, contentHistory);
tabs.add(contentTab);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java
index 0dda6bf..fee5e59 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java
@@ -46,7 +46,7 @@ public class LocatableTabSet extends TabSet {
super.setTabs(tabs);
}
- public LocatableTab[] getTabs() {
+ public LocatableTab[] getTabs() {
Tab[] tabs = super.getTabs();
LocatableTab[] locatableTabs = new LocatableTab[tabs.length];
for (int i = 0, tabsLength = tabs.length; i < tabsLength; i++) {
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 5d5ca3f..1dc9f3a 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
@@ -1004,6 +1004,10 @@ view_type_resourceTypes=Resource Types~
view_type_parentId=Parent ID~
view_type_typeTreeLoadFailure=Failed to load resource type tree data~
+# Tabs
+view_tabs_invalidSubTab = Invalid subtab: {0}~
+view_tabs_invalidTab = Invalid tab: {0}~
+
#=================== Dashboard =====================
view_dashboard_favorites_error1=Failed to load favorite Resources.~
view_dashboardManager_error=Failed to save dashboard to server~
@@ -1190,6 +1194,7 @@ view_tabs_common_inventory=Inventory~
view_tabs_common_groups=Groups~
view_tabs_common_group_membership=Group Membership~
view_tabs_common_members=Members~
+view_tabs_common_membership=Membership~
view_tabs_common_child_resources=Child Resources~
view_tabs_common_child_history=Child History~
view_tabs_common_connectionSettings=Connection Settings~
@@ -1457,7 +1462,6 @@ view_login_registerUser = Register User~
view_login_welcome = Welcome~
view_login_welcomeMsg = Welcome to JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
-
# Menu Bar
#--------------
view_menuBar_help = Help~
commit 3c15cf4358a7db142a39e773a91c25b69833a918
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Nov 19 19:40:39 2010 -0500
finish permissions editor, with the exception of i18n
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
index 3ac6adf..b7c8fce 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
@@ -20,6 +20,7 @@ package org.rhq.enterprise.gui.coregui.client.admin.roles;
import java.util.ArrayList;
import java.util.HashSet;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
@@ -27,22 +28,28 @@ import com.google.gwt.core.client.JavaScriptObject;
import com.smartgwt.client.core.RefDataClass;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.ListGridEditEvent;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.util.JSOHelper;
+import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.form.fields.CanvasItem;
+import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
+
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import com.smartgwt.client.widgets.grid.events.ChangeEvent;
-import com.smartgwt.client.widgets.grid.events.ChangeHandler;
+import com.smartgwt.client.widgets.grid.events.ChangedEvent;
+import com.smartgwt.client.widgets.grid.events.ChangedHandler;
import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
+import com.smartgwt.client.widgets.layout.VLayout;
import org.rhq.core.domain.authz.Permission;
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.selenium.LocatableVLayout;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVStack;
/**
* A complex form item for editing the set of RHQ {@link Permission permission}s associated with an RHQ
@@ -87,14 +94,26 @@ public class PermissionsItem extends CanvasItem {
public void redraw() {
this.selectedPermissions = getValueAsPermissionSet();
- // Update the value of the authorized field for each row of the table.
- ListGridRecord[] records = getCanvas().getGlobalPermissionsGrid().getRecords();
- for (ListGridRecord record : records) {
+ // Update the value of the authorized fields in each row of the grids.
+
+ ListGridRecord[] globalPermissionRecords = getCanvas().getGlobalPermissionsGrid().getRecords();
+ for (ListGridRecord record : globalPermissionRecords) {
String permissionName = record.getAttribute("name");
Permission permission = Permission.valueOf(permissionName);
record.setAttribute("authorized", this.selectedPermissions.contains(permission));
}
+ ListGridRecord[] resourcePermissionRecords = getCanvas().getResourcePermissionsGrid().getRecords();
+ for (ListGridRecord record : resourcePermissionRecords) {
+ String readPermissionName = record.getAttribute("readName");
+ Permission readPermission = Permission.valueOf(readPermissionName);
+ record.setAttribute("readAuthorized", this.selectedPermissions.contains(readPermission));
+
+ String writePermissionName = record.getAttribute("writeName");
+ Permission writePermission = Permission.valueOf(writePermissionName);
+ record.setAttribute("writeAuthorized", this.selectedPermissions.contains(writePermission));
+ }
+
super.redraw();
}
@@ -104,8 +123,9 @@ public class PermissionsItem extends CanvasItem {
return RolesDataSource.toPermissionSet(permissionRecords);
}
- private ListGrid buildGlobalPermissionsGrid() {
- ListGrid globalPermissionsGrid = new ListGrid();
+ private ListGrid createGlobalPermissionsGrid() {
+ ListGrid grid = new ListGrid();
+ grid.setHeight(115);
// TODO: Add table title.
ListGridField iconField = new ListGridField("icon", " ", 40);
@@ -121,53 +141,178 @@ public class PermissionsItem extends CanvasItem {
ListGridField displayNameField = new ListGridField("displayName", "Name", 120);
- ListGridField descriptionField = new ListGridField("description", "Description", 370);
+ ListGridField descriptionField = new ListGridField("description", "Description", 450);
descriptionField.setWrap(true);
- final ListGridField authorizedField = new ListGridField("authorized", "Authorized?", 65);
- authorizedField.setType(ListGridFieldType.BOOLEAN);
- if (!this.isReadOnly) {
- authorizedField.setCanEdit(true);
- final Record[] recordBeingEdited = {null};
- authorizedField.addRecordClickHandler(new RecordClickHandler() {
- public void onRecordClick(RecordClickEvent event) {
- recordBeingEdited[0] = event.getRecord();
- }
- });
- authorizedField.addChangeHandler(new ChangeHandler() {
- public void onChange(ChangeEvent event) {
- Boolean authorized = (Boolean)event.getValue();
- String permissionName = recordBeingEdited[0].getAttribute("name");
- Permission permission = Permission.valueOf(permissionName);
- updatePermissions(authorized, permission);
+ final ListGridField authorizedField = createAuthorizedField("authorized", "Authorized?", "name", grid);
- // Let our parent role editor know the permissions have been changed, so it can update the
- // enablement of its Save and Reset buttons.
- PermissionsItem.this.roleEditView.onItemChanged();
- }
- });
- }
-
- globalPermissionsGrid.setFields(iconField, nameField, displayNameField, descriptionField, authorizedField);
+ grid.setFields(iconField, nameField, displayNameField, descriptionField, authorizedField);
List<ListGridRecord> records = new ArrayList<ListGridRecord>();
- ListGridRecord record = createSimplePermissionRecord("Manage Security", "global/Locked", Permission.MANAGE_SECURITY,
+ ListGridRecord record = createGlobalPermissionRecord("Manage Security", "global/Locked", Permission.MANAGE_SECURITY,
"can create, update, or delete users and roles (viewing is implied for everyone)");
records.add(record);
- record = createSimplePermissionRecord("Manage Inventory", "subsystems/inventory/Inventory", Permission.MANAGE_INVENTORY,
+ record = createGlobalPermissionRecord("Manage Inventory", "subsystems/inventory/Inventory", Permission.MANAGE_INVENTORY,
"has all Resource permissions, as described below, for all Resources; can create, update, and delete groups; " +
"and can import auto-discovered or manually discovered Resources");
records.add(record);
- record = createSimplePermissionRecord("Manage Settings", "subsystems/configure/Configure", Permission.MANAGE_SETTINGS,
+ record = createGlobalPermissionRecord("Manage Settings", "subsystems/configure/Configure", Permission.MANAGE_SETTINGS,
"can modify the RHQ Server configuration and perform any Server-related functionality");
records.add(record);
- record = createSimplePermissionRecord("Manage Bundles", "subsystems/bundle/Bundle", Permission.MANAGE_BUNDLE,
+ record = createGlobalPermissionRecord("Manage Bundles", "subsystems/bundle/Bundle", Permission.MANAGE_BUNDLE,
"can create, update, or delete provisioning bundles (viewing is implied for everyone)");
records.add(record);
- globalPermissionsGrid.setData(records.toArray(new ListGridRecord[records.size()]));
+ grid.setData(records.toArray(new ListGridRecord[records.size()]));
+
+ return grid;
+ }
+
+ private ListGrid createResourcePermissionsGrid() {
+ ListGrid grid = new ListGrid();
+ grid.setHeight(290);
+ // TODO: Add table title.
+
+ ListGridField iconField = new ListGridField("icon", " ", 40);
+ iconField.setShowDefaultContextMenu(false);
+ iconField.setAlign(Alignment.CENTER);
+ iconField.setType(ListGridFieldType.IMAGE);
+ iconField.setImageURLSuffix("_16.png");
+ iconField.setImageWidth(16);
+ iconField.setImageHeight(16);
+
+ ListGridField readNameField = new ListGridField("readName");
+ readNameField.setHidden(true);
+
+ ListGridField writeNameField = new ListGridField("writeName");
+ writeNameField.setHidden(true);
+
+ ListGridField displayNameField = new ListGridField("displayName", "Name", 120);
+
+ ListGridField descriptionField = new ListGridField("description", "Description", 450);
+ descriptionField.setWrap(true);
+
+ ListGridField readField = createAuthorizedField("readAuthorized", "Read?", "readName", grid);
+ ListGridField writeField = createAuthorizedField("writeAuthorized", "Write?", "writeName", grid);
+
+ grid.setFields(iconField, readNameField, displayNameField, descriptionField, readField, writeField);
+
+ List<ListGridRecord> records = new ArrayList<ListGridRecord>();
+
+ ListGridRecord record = createResourcePermissionRecord("Inventory", "subsystems/inventory/Inventory",
+ Permission.VIEW_RESOURCE,
+ "view Resource properties (name, description, version, etc.), connection settings, and connection settings history (IMPLIED)",
+ Permission.MODIFY_RESOURCE,
+ "update Resource name, version, description, and connection settings; delete connection settings history items");
+ records.add(record);
+
+ record = createResourcePermissionRecord("Manage Measurements", "subsystems/monitor/Monitor",
+ Permission.VIEW_RESOURCE,
+ "TODO (IMPLIED)",
+ Permission.MANAGE_MEASUREMENTS,
+ "TODO");
+ records.add(record);
+
+ record = createResourcePermissionRecord("Manage Alerts", "subsystems/alert/Alerts",
+ Permission.VIEW_RESOURCE,
+ "TODO (IMPLIED)",
+ Permission.MANAGE_ALERTS,
+ "TODO");
+ records.add(record);
+
+ record = createResourcePermissionRecord("Configure", "subsystems/configure/Configure",
+ Permission.CONFIGURE_READ,
+ "TODO",
+ Permission.CONFIGURE_WRITE,
+ "TODO");
+ records.add(record);
+
+ record = createResourcePermissionRecord("Control", "subsystems/control/Operation",
+ Permission.VIEW_RESOURCE,
+ "TODO (IMPLIED)",
+ Permission.CONTROL,
+ "TODO");
+ records.add(record);
+
+ record = createResourcePermissionRecord("Manage Events", "subsystems/event/Events",
+ Permission.VIEW_RESOURCE,
+ "TODO (IMPLIED)",
+ Permission.MANAGE_EVENTS,
+ "TODO");
+ records.add(record);
+
+ record = createResourcePermissionRecord("Manage Content", "subsystems/content/Content",
+ Permission.VIEW_RESOURCE,
+ "TODO (IMPLIED)",
+ Permission.MANAGE_CONTENT,
+ "TODO");
+ records.add(record);
+
+ record = createResourcePermissionRecord("Create Child Resources", "subsystems/inventory/Inventory",
+ Permission.VIEW_RESOURCE,
+ "TODO (IMPLIED)",
+ Permission.CREATE_CHILD_RESOURCES,
+ "TODO");
+ records.add(record);
- return globalPermissionsGrid;
+ record = createResourcePermissionRecord("Delete Child Resources", "subsystems/inventory/Inventory",
+ Permission.VIEW_RESOURCE,
+ "TODO (IMPLIED)",
+ Permission.DELETE_RESOURCE,
+ "TODO");
+ records.add(record);
+
+ grid.setData(records.toArray(new ListGridRecord[records.size()]));
+
+ return grid;
+ }
+
+ private ListGridField createAuthorizedField(String name, String title, final String nameField, final ListGrid grid) {
+ final ListGridField authorizedField = new ListGridField(name, title, 65);
+
+ // Show yes/no rather than true/false.
+ LinkedHashMap<String, String> valueMap = new LinkedHashMap<String, String>();
+ valueMap.put(Boolean.TRUE.toString(), MSG.common_val_yes_lower());
+ valueMap.put(Boolean.FALSE.toString(), MSG.common_val_no_lower());
+ authorizedField.setValueMap(valueMap);
+
+ if (!this.isReadOnly) {
+ authorizedField.setCanEdit(true);
+ grid.setEditEvent(ListGridEditEvent.CLICK);
+ CheckboxItem editor = new CheckboxItem();
+ authorizedField.setEditorType(editor);
+ final Record[] recordBeingEdited = {null};
+ authorizedField.addRecordClickHandler(new RecordClickHandler() {
+ public void onRecordClick(RecordClickEvent event) {
+ recordBeingEdited[0] = event.getRecord();
+ }
+ });
+ authorizedField.addChangedHandler(new ChangedHandler() {
+ public void onChanged(ChangedEvent event) {
+ Boolean authorized = (Boolean)event.getValue();
+ int recordNum = event.getRowNum();
+ ListGridRecord record = grid.getRecord(recordNum);
+ String permissionName = record.getAttribute(nameField);
+ Permission permission = Permission.valueOf(permissionName);
+ if (permission == Permission.VIEW_RESOURCE) {
+ event.getItem().setValue(true);
+ event.getItem().disable();
+ String permissionDisplayName = record.getAttribute("displayName");
+ Message message = new Message("Read access for the " + permissionDisplayName
+ + " permission is implied and cannot be disabled.", Message.Severity.Warning);
+ CoreGUI.getMessageCenter().notify(message);
+ } else {
+ updatePermissions(authorized, permission);
+
+ // Let our parent role editor know the permissions have been changed, so it can update the
+ // enablement of its Save and Reset buttons.
+ PermissionsItem.this.roleEditView.onItemChanged();
+ }
+ }
+ });
+ }
+
+ return authorizedField;
}
private void updatePermissions(Boolean authorized, Permission permission) {
@@ -181,7 +326,7 @@ public class PermissionsItem extends CanvasItem {
getForm().setValue(getName(), permissionRecords);
}
- private ListGridRecord createSimplePermissionRecord(String displayName, String icon, Permission globalPermission,
+ private ListGridRecord createGlobalPermissionRecord(String displayName, String icon, Permission globalPermission,
String description) {
ListGridRecord record = new ListGridRecord();
record.setAttribute("displayName", displayName);
@@ -189,20 +334,22 @@ public class PermissionsItem extends CanvasItem {
record.setAttribute("name", globalPermission.name());
record.setAttribute("description", description);
record.setAttribute("authorized", this.selectedPermissions.contains(globalPermission));
+
return record;
}
- private ListGridRecord createReadWritePermissionRecord(String displayName, Permission readPermission,
+ private ListGridRecord createResourcePermissionRecord(String displayName, String icon, Permission readPermission,
String readDescription, Permission writePermission,
String writeDescription) {
ListGridRecord record = new ListGridRecord();
record.setAttribute("displayName", displayName);
+ record.setAttribute("icon", icon);
record.setAttribute("readName", readPermission.name());
record.setAttribute("readAuthorized", this.selectedPermissions.contains(readPermission));
- record.setAttribute("readDescription", readDescription);
+ record.setAttribute("description", "<b>Read:</b> " + readDescription + "<br/><b>Write:</b> " + writeDescription);
record.setAttribute("writeName", writePermission.name());
record.setAttribute("writeAuthorized", this.selectedPermissions.contains(writePermission));
- record.setAttribute("writeDescription", writeDescription);
+
return record;
}
@@ -210,34 +357,65 @@ public class PermissionsItem extends CanvasItem {
return this.selectedPermissions;
}
- private static ListGridRecord[] convertToListGridRecordArray(JavaScriptObject nativeArray) {
- if (nativeArray == null) {
- return new ListGridRecord[]{};
+ private static ListGridRecord[] convertToListGridRecordArray(JavaScriptObject jsObject) {
+ if (jsObject == null) {
+ return new ListGridRecord[0];
}
- JavaScriptObject[] componentsj = JSOHelper.toArray(nativeArray);
- ListGridRecord[] objects = new ListGridRecord[componentsj.length];
- for (int i = 0; i < componentsj.length; i++) {
- JavaScriptObject componentJS = componentsj[i];
- ListGridRecord obj = (ListGridRecord) RefDataClass.getRef(componentJS);
- if (obj == null) obj = new ListGridRecord(componentJS);
- objects[i] = obj;
+ JavaScriptObject[] jsArray = JSOHelper.toArray(jsObject);
+ ListGridRecord[] records = new ListGridRecord[jsArray.length];
+ for (int i = 0; i < jsArray.length; i++) {
+ JavaScriptObject jsArrayItem = jsArray[i];
+ ListGridRecord record = (ListGridRecord) RefDataClass.getRef(jsArrayItem);
+ if (record == null) {
+ record = new ListGridRecord(jsArrayItem);
+ }
+ records[i] = record;
}
- return objects;
+ return records;
}
- class PermissionsEditor extends LocatableVLayout {
+ class PermissionsEditor extends LocatableVStack {
private ListGrid globalPermissionsGrid;
+ private ListGrid resourcePermissionsGrid;
PermissionsEditor() {
super(roleEditView.extendLocatorId("Permissions"));
setWidth100();
- setHeight(350);
- this.globalPermissionsGrid = buildGlobalPermissionsGrid();
- addMember(globalPermissionsGrid);
+ setHeight(500);
+
+ VLayout spacer = createVerticalSpacer(13);
+ addMember(spacer);
+
+ Label globalPermissionsHeader = new Label("<h4>Global Permissions</h4>");
+ globalPermissionsHeader.setHeight(17);
+ addMember(globalPermissionsHeader);
+
+ this.globalPermissionsGrid = createGlobalPermissionsGrid();
+ addMember(this.globalPermissionsGrid);
+
+ spacer = createVerticalSpacer(13);
+ addMember(spacer);
+
+ Label resourcePermissionsHeader = new Label("<h4>Resource Permissions</h4>");
+ resourcePermissionsHeader.setHeight(17);
+ addMember(resourcePermissionsHeader);
+
+ this.resourcePermissionsGrid = createResourcePermissionsGrid();
+ addMember(this.resourcePermissionsGrid);
+ }
+
+ private VLayout createVerticalSpacer(int height) {
+ VLayout spacer = new VLayout();
+ spacer.setHeight(height);
+ return spacer;
}
public ListGrid getGlobalPermissionsGrid() {
- return globalPermissionsGrid;
+ return this.globalPermissionsGrid;
+ }
+
+ public ListGrid getResourcePermissionsGrid() {
+ return this.resourcePermissionsGrid;
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableVStack.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableVStack.java
new file mode 100644
index 0000000..bb9093b
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableVStack.java
@@ -0,0 +1,54 @@
+package org.rhq.enterprise.gui.coregui.client.util.selenium;
+
+import com.smartgwt.client.widgets.layout.VStack;
+
+/**
+ * Wrapper for a SmartGWT {@link VStack} that sets the ID for use with Selenium scLocators.
+ *
+ * @author Jay Shaughnessy
+ */
+public class LocatableVStack extends VStack implements Locatable {
+
+ private String locatorId;
+
+ /**
+ * <pre>
+ * ID Format: "simpleClassname_locatorId"
+ * </pre>
+ * @param locatorId not null or empty.
+ */
+ public LocatableVStack(String locatorId) {
+ super();
+ init(locatorId);
+ }
+
+ /**
+ * <pre>
+ * ID Format: "simpleClassname_locatorId"
+ * </pre>
+ * @param locatorId not null or empty.
+ * @param membersMargin
+ */
+ public LocatableVStack(String locatorId, int membersMargin) {
+ super(membersMargin);
+ init(locatorId);
+ }
+
+ private void init(String locatorId) {
+ this.locatorId = locatorId;
+ SeleniumUtility.setID(this, locatorId);
+ }
+
+ public String getLocatorId() {
+ return locatorId;
+ }
+
+ public String extendLocatorId(String extension) {
+ return this.locatorId + "_" + extension;
+ }
+
+ public void destroyMembers() {
+ SeleniumUtility.destroyMembers(this);
+ }
+
+}
commit 239932591390aebcd56899b58fd7bfbb344146b4
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Nov 19 16:56:06 2010 -0500
show icons for enabled column, not yes/no words
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/BooleanCellFormatter.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/BooleanCellFormatter.java
index 0977691..7f22af9 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/BooleanCellFormatter.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/BooleanCellFormatter.java
@@ -14,12 +14,16 @@ import org.rhq.enterprise.gui.coregui.client.Messages;
public class BooleanCellFormatter implements CellFormatter {
private static final Messages MSG = CoreGUI.getMessages();
+ private static String RED = "/images/icons/availability_red_16.png";
+ private static String GREEN = "/images/icons/availability_green_16.png";
+ private static String GREY = "/images/icons/availability_grey_16.png";
+
public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
String result;
if (value == null) {
- result = "";
+ result = "<img src=\"" + GREY + "\"/>";
} else if (value instanceof Boolean) {
- result = ((Boolean) value) ? MSG.common_val_yes_lower() : MSG.common_val_no_lower();
+ result = ((Boolean) value) ? "<img src=\"" + GREEN + "\"/>" : "<img src=\"" + RED + "\"/>";
} else {
throw new IllegalArgumentException("value parameter is not a Boolean.");
}
commit 9aeb5a00158b7d24dbb706522d8f8bb35e03bb07
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Nov 19 15:07:27 2010 -0500
[BZ 655187]
I believe in the past Resource uninventory was using hibernate cascade
to remove bundle resource deployments. At some point in the data model
changes it looks like I took the relation off of Resource and did not
add the needed remove logic.
I've now added to bulk delete for efficient removal of BundleResourceDeployment
and BundleResourceDeploymentHistory.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeployment.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeployment.java
index 5638dc9..1bc3c25 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeployment.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeployment.java
@@ -58,6 +58,8 @@ import org.rhq.core.domain.resource.Resource;
*/
@Entity
@NamedQueries( {
+ @NamedQuery(name = BundleResourceDeployment.QUERY_DELETE_BY_RESOURCES, query = "DELETE FROM BundleResourceDeployment brd "
+ + " WHERE brd.resource.id IN ( :resourceIds ) )"),
@NamedQuery(name = BundleResourceDeployment.QUERY_FIND_BY_DEPLOYMENT_ID_NO_FETCH, query = "SELECT brd FROM BundleResourceDeployment brd WHERE brd.bundleDeployment.id = :id "),
@NamedQuery(name = BundleResourceDeployment.QUERY_FIND_BY_RESOURCE_ID_NO_FETCH, query = "SELECT brd FROM BundleResourceDeployment brd WHERE brd.resource.id = :id ") })
@SequenceGenerator(name = "SEQ", sequenceName = "RHQ_BUNDLE_RES_DEPLOY_ID_SEQ")
@@ -66,6 +68,7 @@ import org.rhq.core.domain.resource.Resource;
public class BundleResourceDeployment implements Serializable {
private static final long serialVersionUID = 1L;
+ public static final String QUERY_DELETE_BY_RESOURCES = "BundleResourceDeployment.deleteByResources";
public static final String QUERY_FIND_BY_DEPLOYMENT_ID_NO_FETCH = "BundleResourceDeployment.findByDeploymentIdNoFetch";
public static final String QUERY_FIND_BY_RESOURCE_ID_NO_FETCH = "BundleResourceDeployment.findByResourceIdNoFetch";
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeploymentHistory.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeploymentHistory.java
index d528f8b..eb00b26 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeploymentHistory.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleResourceDeploymentHistory.java
@@ -48,7 +48,10 @@ import javax.xml.bind.annotation.XmlType;
* @author Jay Shaughnessy
*/
@Entity
-@NamedQueries( { @NamedQuery(name = BundleResourceDeploymentHistory.QUERY_FIND_ALL, query = "SELECT brdh FROM BundleResourceDeploymentHistory brdh") //
+@NamedQueries( {
+ @NamedQuery(name = BundleResourceDeploymentHistory.QUERY_DELETE_BY_RESOURCES, query = "DELETE FROM BundleResourceDeploymentHistory brdh "
+ + " WHERE brdh.resourceDeployment IN ( SELECT brd FROM BundleResourceDeployment brd WHERE brd.resource.id IN ( :resourceIds ) ) )"),
+ @NamedQuery(name = BundleResourceDeploymentHistory.QUERY_FIND_ALL, query = "SELECT brdh FROM BundleResourceDeploymentHistory brdh") //
})
@SequenceGenerator(name = "SEQ", sequenceName = "RHQ_BUNDLE_RES_DEP_HIST_ID_SEQ")
@Table(name = "RHQ_BUNDLE_RES_DEP_HIST")
@@ -56,6 +59,7 @@ import javax.xml.bind.annotation.XmlType;
public class BundleResourceDeploymentHistory implements Serializable {
private static final long serialVersionUID = 1L;
+ public static final String QUERY_DELETE_BY_RESOURCES = "BundleResourceDeploymentHistory.deleteByResources";
public static final String QUERY_FIND_ALL = "BundleResourceDeploymentHistory.findAll";
@Column(name = "ID", nullable = false)
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index 2683561..4d51488 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -81,7 +81,7 @@ import org.rhq.core.domain.util.Summary;
* Represents a JON managed resource (i.e. a platform, server, or service).
*/
@Entity
-@NamedQueries({
+@NamedQueries( {
@NamedQuery(name = Resource.QUERY_FIND_PROBLEM_RESOURCES_ALERT_ADMIN, query = "" //
+ " SELECT DISTINCT new org.rhq.core.domain.resource.composite.ProblemResourceComposite"
+ " ( "
@@ -1025,8 +1025,10 @@ public class Resource implements Comparable<Resource>, Serializable {
@ManyToOne(fetch = FetchType.LAZY)
private ProductVersion productVersion;
- // @OneToMany(mappedBy = "resource", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- // private List<BundleResourceDeployment> resourceDeployments = new ArrayList<BundleResourceDeployment>();
+ // not currently needed, but could be added if we find a need to get deployment info via the resource
+ // bulk delete (already being done)
+ // @OneToMany(mappedBy = "resource", fetch = FetchType.LAZY)
+ // private List<BundleResourceDeployment> resourceDeployments = new ArrayList<BundleResourceDeployment>();
@ManyToMany(mappedBy = "resources", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
private Set<Tag> tags;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 32a7792..605b817 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -56,6 +56,8 @@ import org.rhq.core.domain.alert.notification.AlertNotification;
import org.rhq.core.domain.alert.notification.AlertNotificationLog;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
+import org.rhq.core.domain.bundle.BundleResourceDeployment;
+import org.rhq.core.domain.bundle.BundleResourceDeploymentHistory;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.content.ContentServiceRequest;
@@ -455,6 +457,8 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
ResourceError.QUERY_DELETE_BY_RESOURCES, //
Event.DELETE_BY_RESOURCES, //
EventSource.QUERY_DELETE_BY_RESOURCES, //
+ BundleResourceDeploymentHistory.QUERY_DELETE_BY_RESOURCES, // resource deployment history BEFORE resource deployment
+ BundleResourceDeployment.QUERY_DELETE_BY_RESOURCES, //
PackageInstallationStep.QUERY_DELETE_BY_RESOURCES, // steps BEFORE installed package history
InstalledPackageHistory.QUERY_DELETE_BY_RESOURCES, // history BEFORE installed packages & content service requests
InstalledPackage.QUERY_DELETE_BY_RESOURCES, //
commit b3ad0fe1765c45d00e790a134db17934f7fe5236
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Nov 19 15:00:30 2010 -0500
add ability to view/edit global permissions to role edit view
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Permission.java b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Permission.java
index d34136b..6156cd4 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Permission.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Permission.java
@@ -49,10 +49,10 @@ public enum Permission {
"can C/R/U/D all resources, groups and can import auto-discovered resources"), // 1
/**
- * can modify the JON Server configuration and perform any server-related functionality
+ * can modify the RHQ Server configuration and perform any server-related functionality
*/
MANAGE_SETTINGS(Target.GLOBAL, "Manage Settings",
- "can modify the JON Server configuration and perform any server-related functionality"), // 2
+ "can modify the RHQ Server configuration and perform any server-related functionality"), // 2
/* ========= Resource Permissions ========= */
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java
deleted file mode 100644
index 589b0e3..0000000
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
- * All rights reserved.
- *
- * 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.admin.roles;
-
-import java.util.ArrayList;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.Set;
-
-import com.smartgwt.client.widgets.Canvas;
-import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.form.events.ItemChangedEvent;
-import com.smartgwt.client.widgets.form.events.ItemChangedHandler;
-import com.smartgwt.client.widgets.form.fields.CanvasItem;
-import com.smartgwt.client.widgets.form.fields.CheckboxItem;
-import com.smartgwt.client.widgets.form.fields.FormItem;
-import com.smartgwt.client.widgets.form.fields.HeaderItem;
-
-import org.rhq.core.domain.authz.Permission;
-import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.Messages;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
-
-/**
- * @author Greg Hinkle
- */
-public class PermissionEditorView extends CanvasItem {
- private static Messages MSG = CoreGUI.getMessages();
-
- private Set<Permission> selectedPermissions = EnumSet.noneOf(Permission.class);
-
- private DynamicForm form;
- private RoleEditView roleEditView;
-
- public PermissionEditorView(String locatorId, String name, String title, RoleEditView roleEditView) {
- super(name, title);
- this.roleEditView = roleEditView;
-
- setCanvas(buildForm(locatorId));
- }
-
- public Canvas buildForm(String locatorId) {
- this.form = new LocatableDynamicForm(locatorId);
- this.form.setNumCols(8);
- this.form.setTitleWidth(80);
- this.form.setPadding(6);
-
- List<FormItem> items = new ArrayList<FormItem>();
-
- HeaderItem globalPermsHeader = new HeaderItem("globalPermissions", MSG.view_adminRoles_globalPerms());
- globalPermsHeader.setValue(MSG.view_adminRoles_globalPerms());
- items.add(globalPermsHeader);
- for (Permission permission : Permission.GLOBAL_ALL) {
- CheckboxItem checkboxItem = new CheckboxItem(permission.name(), permission.name());
- items.add(checkboxItem);
- }
-
- HeaderItem resourcePermsHeader = new HeaderItem("resourcePermissions", MSG.view_adminRoles_resourcePerms());
- resourcePermsHeader.setValue(MSG.view_adminRoles_resourcePerms());
- items.add(resourcePermsHeader);
- for (Permission permission : Permission.RESOURCE_ALL) {
- CheckboxItem checkboxItem = new CheckboxItem(permission.name(), permission.name());
- if (permission == Permission.VIEW_RESOURCE) {
- checkboxItem.setDisabled(true);
- checkboxItem.setValue(Boolean.TRUE);
- }
- items.add(checkboxItem);
- }
-
- form.setItems(items.toArray(new FormItem[items.size()]));
-
- return form;
- }
-
- public void setPermissions(Set<Permission> permissions) {
- this.selectedPermissions = permissions;
- for (Permission p : Permission.values()) {
- form.setValue(p.name(), permissions.contains(p));
- }
-
- form.addItemChangedHandler(new ItemChangedHandler() {
- public void onItemChanged(ItemChangedEvent itemChangedEvent) {
- for (Permission p : Permission.values()) {
- if ((Boolean) form.getValue(p.name())) {
- selectedPermissions.add(p);
- } else {
- selectedPermissions.remove(p);
- }
- }
- roleEditView.onItemChanged();
- }
- });
-
- form.markForRedraw();
- }
-
- public Set<Permission> getPermissions() {
- return selectedPermissions;
- }
-
-}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
new file mode 100644
index 0000000..3ac6adf
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionsItem.java
@@ -0,0 +1,244 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * 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.admin.roles;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.smartgwt.client.core.RefDataClass;
+import com.smartgwt.client.data.Record;
+import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.ListGridFieldType;
+import com.smartgwt.client.util.JSOHelper;
+import com.smartgwt.client.widgets.form.fields.CanvasItem;
+import com.smartgwt.client.widgets.grid.ListGrid;
+import com.smartgwt.client.widgets.grid.ListGridField;
+import com.smartgwt.client.widgets.grid.ListGridRecord;
+import com.smartgwt.client.widgets.grid.events.ChangeEvent;
+import com.smartgwt.client.widgets.grid.events.ChangeHandler;
+import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
+import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
+
+import org.rhq.core.domain.authz.Permission;
+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.selenium.LocatableVLayout;
+
+/**
+ * A complex form item for editing the set of RHQ {@link Permission permission}s associated with an RHQ
+ * {@link Role role}.
+ *
+ * @author Ian Springer
+ */
+// TODO: i18n
+public class PermissionsItem extends CanvasItem {
+
+ private static Messages MSG = CoreGUI.getMessages();
+
+ private Set<Permission> selectedPermissions;
+
+ private RoleEditView roleEditView;
+ private boolean isReadOnly;
+
+ public PermissionsItem(RoleEditView roleEditView) {
+ super(RolesDataSource.Field.PERMISSIONS, "Permissions");
+
+ this.selectedPermissions = new HashSet<Permission>();
+ this.roleEditView = roleEditView;
+ this.isReadOnly = this.roleEditView.isReadOnly();
+ }
+
+ @Override
+ protected PermissionsEditor createCanvas() {
+ return new PermissionsEditor();
+ }
+
+ @Override
+ public PermissionsEditor getCanvas() {
+ PermissionsEditor permissionsEditor = (PermissionsEditor)super.getCanvas();
+ if (permissionsEditor == null) {
+ permissionsEditor = createCanvas();
+ setCanvas(permissionsEditor);
+ }
+ return permissionsEditor;
+ }
+
+ @Override
+ public void redraw() {
+ this.selectedPermissions = getValueAsPermissionSet();
+
+ // Update the value of the authorized field for each row of the table.
+ ListGridRecord[] records = getCanvas().getGlobalPermissionsGrid().getRecords();
+ for (ListGridRecord record : records) {
+ String permissionName = record.getAttribute("name");
+ Permission permission = Permission.valueOf(permissionName);
+ record.setAttribute("authorized", this.selectedPermissions.contains(permission));
+ }
+
+ super.redraw();
+ }
+
+ private Set<Permission> getValueAsPermissionSet() {
+ Object nativeArray = getValue();
+ ListGridRecord[] permissionRecords = convertToListGridRecordArray((JavaScriptObject)nativeArray);
+ return RolesDataSource.toPermissionSet(permissionRecords);
+ }
+
+ private ListGrid buildGlobalPermissionsGrid() {
+ ListGrid globalPermissionsGrid = new ListGrid();
+ // TODO: Add table title.
+
+ ListGridField iconField = new ListGridField("icon", " ", 40);
+ iconField.setShowDefaultContextMenu(false);
+ iconField.setAlign(Alignment.CENTER);
+ iconField.setType(ListGridFieldType.IMAGE);
+ iconField.setImageURLSuffix("_16.png");
+ iconField.setImageWidth(16);
+ iconField.setImageHeight(16);
+
+ ListGridField nameField = new ListGridField("name");
+ nameField.setHidden(true);
+
+ ListGridField displayNameField = new ListGridField("displayName", "Name", 120);
+
+ ListGridField descriptionField = new ListGridField("description", "Description", 370);
+ descriptionField.setWrap(true);
+
+ final ListGridField authorizedField = new ListGridField("authorized", "Authorized?", 65);
+ authorizedField.setType(ListGridFieldType.BOOLEAN);
+ if (!this.isReadOnly) {
+ authorizedField.setCanEdit(true);
+ final Record[] recordBeingEdited = {null};
+ authorizedField.addRecordClickHandler(new RecordClickHandler() {
+ public void onRecordClick(RecordClickEvent event) {
+ recordBeingEdited[0] = event.getRecord();
+ }
+ });
+ authorizedField.addChangeHandler(new ChangeHandler() {
+ public void onChange(ChangeEvent event) {
+ Boolean authorized = (Boolean)event.getValue();
+ String permissionName = recordBeingEdited[0].getAttribute("name");
+ Permission permission = Permission.valueOf(permissionName);
+ updatePermissions(authorized, permission);
+
+ // Let our parent role editor know the permissions have been changed, so it can update the
+ // enablement of its Save and Reset buttons.
+ PermissionsItem.this.roleEditView.onItemChanged();
+ }
+ });
+ }
+
+ globalPermissionsGrid.setFields(iconField, nameField, displayNameField, descriptionField, authorizedField);
+
+ List<ListGridRecord> records = new ArrayList<ListGridRecord>();
+ ListGridRecord record = createSimplePermissionRecord("Manage Security", "global/Locked", Permission.MANAGE_SECURITY,
+ "can create, update, or delete users and roles (viewing is implied for everyone)");
+ records.add(record);
+ record = createSimplePermissionRecord("Manage Inventory", "subsystems/inventory/Inventory", Permission.MANAGE_INVENTORY,
+ "has all Resource permissions, as described below, for all Resources; can create, update, and delete groups; " +
+ "and can import auto-discovered or manually discovered Resources");
+ records.add(record);
+ record = createSimplePermissionRecord("Manage Settings", "subsystems/configure/Configure", Permission.MANAGE_SETTINGS,
+ "can modify the RHQ Server configuration and perform any Server-related functionality");
+ records.add(record);
+ record = createSimplePermissionRecord("Manage Bundles", "subsystems/bundle/Bundle", Permission.MANAGE_BUNDLE,
+ "can create, update, or delete provisioning bundles (viewing is implied for everyone)");
+ records.add(record);
+
+ globalPermissionsGrid.setData(records.toArray(new ListGridRecord[records.size()]));
+
+ return globalPermissionsGrid;
+ }
+
+ private void updatePermissions(Boolean authorized, Permission permission) {
+ if (authorized) {
+ this.selectedPermissions.add(permission);
+ } else {
+ this.selectedPermissions.remove(permission);
+ }
+
+ ListGridRecord[] permissionRecords = RolesDataSource.toRecordArray(this.selectedPermissions);
+ getForm().setValue(getName(), permissionRecords);
+ }
+
+ private ListGridRecord createSimplePermissionRecord(String displayName, String icon, Permission globalPermission,
+ String description) {
+ ListGridRecord record = new ListGridRecord();
+ record.setAttribute("displayName", displayName);
+ record.setAttribute("icon", icon);
+ record.setAttribute("name", globalPermission.name());
+ record.setAttribute("description", description);
+ record.setAttribute("authorized", this.selectedPermissions.contains(globalPermission));
+ return record;
+ }
+
+ private ListGridRecord createReadWritePermissionRecord(String displayName, Permission readPermission,
+ String readDescription, Permission writePermission,
+ String writeDescription) {
+ ListGridRecord record = new ListGridRecord();
+ record.setAttribute("displayName", displayName);
+ record.setAttribute("readName", readPermission.name());
+ record.setAttribute("readAuthorized", this.selectedPermissions.contains(readPermission));
+ record.setAttribute("readDescription", readDescription);
+ record.setAttribute("writeName", writePermission.name());
+ record.setAttribute("writeAuthorized", this.selectedPermissions.contains(writePermission));
+ record.setAttribute("writeDescription", writeDescription);
+ return record;
+ }
+
+ public Set<Permission> getPermissions() {
+ return this.selectedPermissions;
+ }
+
+ private static ListGridRecord[] convertToListGridRecordArray(JavaScriptObject nativeArray) {
+ if (nativeArray == null) {
+ return new ListGridRecord[]{};
+ }
+ JavaScriptObject[] componentsj = JSOHelper.toArray(nativeArray);
+ ListGridRecord[] objects = new ListGridRecord[componentsj.length];
+ for (int i = 0; i < componentsj.length; i++) {
+ JavaScriptObject componentJS = componentsj[i];
+ ListGridRecord obj = (ListGridRecord) RefDataClass.getRef(componentJS);
+ if (obj == null) obj = new ListGridRecord(componentJS);
+ objects[i] = obj;
+ }
+ return objects;
+ }
+
+ class PermissionsEditor extends LocatableVLayout {
+ private ListGrid globalPermissionsGrid;
+
+ PermissionsEditor() {
+ super(roleEditView.extendLocatorId("Permissions"));
+ setWidth100();
+ setHeight(350);
+ this.globalPermissionsGrid = buildGlobalPermissionsGrid();
+ addMember(globalPermissionsGrid);
+ }
+
+ public ListGrid getGlobalPermissionsGrid() {
+ return globalPermissionsGrid;
+ }
+ }
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
index 6a8adab..9fce069 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
@@ -59,7 +59,7 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
private static final String HEADER_ICON = "global/Role_16.png";
- private PermissionEditorView permissionEditorItem;
+ private PermissionsItem permissionsItem;
private CanvasItem resourceGroupsItem;
private ResourceGroupSelector groupSelector;
@@ -104,7 +104,9 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
}
private void fetchAvailableLdapGroups() {
- final boolean isReadOnly = (!this.hasManageSecurityPermission);
+ final boolean isReadOnly = (!this.hasManageSecurityPermission ||
+ (getRecordId() == RolesDataSource.ID_SUPERUSER) ||
+ (getRecordId() == RolesDataSource.ID_ALL_RESOURCES));
if (this.isLdapConfigured) {
final Set<LdapGroup> availableLdapGroups = null;
GWTServiceLookup.getLdapService().findAvailableGroups(new AsyncCallback<Set<Map<String, String>>>() {
@@ -183,14 +185,11 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
label.setWidth100();
label.setPadding(6);
this.ldapGroupsItem.setCanvas(label);
- }
-
- // TODO: Fix this.
- //Set<Permission> permissions = (Set<Permission>) record.getAttributeAsObject(RolesDataSource.Field.PERMISSIONS);
- Set<Permission> permissions = Collections.emptySet();
- this.permissionEditorItem.setPermissions(permissions);
+ }
}
+ this.permissionsItem.redraw();
+
super.editRecord(record);
}
@@ -206,11 +205,10 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
descriptionItem.setWidth("*");
items.add(descriptionItem);
- permissionEditorItem = new PermissionEditorView(this.getLocatorId(), "permissionsEditor", MSG
- .view_adminRoles_perms(), this);
- permissionEditorItem.setShowTitle(false);
- permissionEditorItem.setColSpan(getForm().getNumCols());
- items.add(permissionEditorItem);
+ permissionsItem = new PermissionsItem(this);
+ permissionsItem.setShowTitle(false);
+ permissionsItem.setColSpan(getForm().getNumCols());
+ items.add(permissionsItem);
resourceGroupsItem = new CanvasItem(RolesDataSource.Field.RESOURCE_GROUPS, MSG.view_adminRoles_assignedGroups());
resourceGroupsItem.setShowTitle(false);
@@ -251,6 +249,7 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
ListGridRecord[] ldapGroupRecords = this.ldapGroupSelector.getAssignedGrid().getRecords();
getForm().setValue(RolesDataSource.Field.LDAP_GROUPS, ldapGroupRecords);*/
+ //permissionsItem.getPermissions();
// Submit the form values to the datasource.
super.save();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index 2cc5520..7f67926 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -60,8 +60,7 @@ public class RolesDataSource extends RPCDataSource<Role> {
public static final String NAME = "name";
public static final String DESCRIPTION = "description";
public static final String RESOURCE_GROUPS = "resourceGroups";
- public static final String GLOBAL_PERMISSIONS = "globalPermissions";
- public static final String RESOURCE_PERMISSIONS = "resourcePermissions";
+ public static final String PERMISSIONS = "permissions";
public static final String SUBJECTS = "subjects";
public static final String LDAP_GROUPS = "ldapGroups";
}
@@ -116,11 +115,8 @@ public class RolesDataSource extends RPCDataSource<Role> {
DataSourceField resourceGroupsField = new DataSourceField(Field.RESOURCE_GROUPS, FieldType.ANY, "Resource Groups");
fields.add(resourceGroupsField);
- DataSourceField globalPermissionsField = new DataSourceField(Field.GLOBAL_PERMISSIONS, FieldType.ANY, "Global Permissions");
- fields.add(globalPermissionsField);
-
- DataSourceField resourcePermissionsField = new DataSourceField(Field.RESOURCE_PERMISSIONS, FieldType.ANY, "Resource Permissions");
- fields.add(resourcePermissionsField);
+ DataSourceField permissionsField = new DataSourceField(Field.PERMISSIONS, FieldType.ANY, "Permissions");
+ //fields.add(permissionsField);
DataSourceField subjectsField = new DataSourceField(Field.SUBJECTS, FieldType.ANY, "Subjects");
fields.add(subjectsField);
@@ -208,9 +204,12 @@ public class RolesDataSource extends RPCDataSource<Role> {
to.setName(from.getAttributeAsString(Field.NAME));
to.setDescription(from.getAttributeAsString(Field.DESCRIPTION));
+ Record[] permissionRecords = from.getAttributeAsRecordArray(Field.PERMISSIONS);
+ Set<Permission> permissions = toPermissionSet(permissionRecords);
+ to.setPermissions(permissions);
+
// TODO
/*to.setResourceGroups((Set<ResourceGroup>) from.getAttributeAsObject(Field.RESOURCE_GROUPS));
- to.setPermissions((Set<Permission>) from.getAttributeAsObject(Field.GLOBAL_PERMISSIONS));
to.setSubjects((Set<Subject>) from.getAttributeAsObject(Field.SUBJECTS));
to.setSubjects((Set<Subject>) from.getAttributeAsObject(Field.LDAP_GROUPS));*/
@@ -228,23 +227,9 @@ public class RolesDataSource extends RPCDataSource<Role> {
sourceRole.getResourceGroups());
targetRecord.setAttribute(Field.RESOURCE_GROUPS, resourceGroupRecords);
- // First split the set of permissions into two subsets - one for global perms and one for resource perms.
Set<Permission> permissions = sourceRole.getPermissions();
- Set<Permission> globalPermissions = new HashSet<Permission>();
- Set<Permission> resourcePermissions = new HashSet<Permission>();
- for (Permission permission : permissions) {
- if (permission.getTarget() == Permission.Target.GLOBAL) {
- globalPermissions.add(permission);
- } else {
- resourcePermissions.add(permission);
- }
- }
-
- ListGridRecord[] globalPermissionRecords = toRecordArray(globalPermissions);
- targetRecord.setAttribute(Field.GLOBAL_PERMISSIONS, globalPermissionRecords);
-
- ListGridRecord[] resourcePermissionRecords = toRecordArray(resourcePermissions);
- targetRecord.setAttribute(Field.RESOURCE_PERMISSIONS, resourcePermissionRecords);
+ ListGridRecord[] permissionRecords = toRecordArray(permissions);
+ targetRecord.setAttribute(Field.PERMISSIONS, permissionRecords);
ListGridRecord[] subjectRecords = UsersDataSource.getInstance().buildRecords(sourceRole.getSubjects());
targetRecord.setAttribute(Field.SUBJECTS, subjectRecords);
@@ -252,15 +237,25 @@ public class RolesDataSource extends RPCDataSource<Role> {
return targetRecord;
}
- private static ListGridRecord[] toRecordArray(Set<Permission> globalPermissions) {
- ListGridRecord[] globalPermissionRecords = new ListGridRecord[globalPermissions.size()];
- for (Permission permission : globalPermissions) {
- ListGridRecord globalPermissionRecord = new ListGridRecord();
- globalPermissionRecord.setAttribute("name", permission.name());
- globalPermissionRecord.setAttribute("displayName", permission.name()); // TODO
- globalPermissionRecord.setAttribute("description", ""); // TODO
+ public static Set<Permission> toPermissionSet(Record[] permissionRecords) {
+ Set<Permission> permissions = new HashSet<Permission>();
+ for (Record permissionRecord : permissionRecords) {
+ String permissionName = permissionRecord.getAttribute("name");
+ Permission permission = Permission.valueOf(permissionName);
+ permissions.add(permission);
+ }
+ return permissions;
+ }
+
+ public static ListGridRecord[] toRecordArray(Set<Permission> permissions) {
+ ListGridRecord[] permissionRecords = new ListGridRecord[permissions.size()];
+ int index = 0;
+ for (Permission permission : permissions) {
+ ListGridRecord permissionRecord = new ListGridRecord();
+ permissionRecord.setAttribute("name", permission.name());
+ permissionRecords[index++] = permissionRecord;
}
- return globalPermissionRecords;
+ return permissionRecords;
}
private RoleCriteria getFetchCriteria(DSRequest request) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
index 2bf795c..4288a2e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
@@ -79,6 +79,7 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
private VLayout bottomLayout;
private String dataTypeName;
private String listViewPath;
+ private boolean wasInvalid;
public AbstractRecordEditor(String locatorId, DS dataSource, int recordId, String dataTypeName,
String headerIcon) {
@@ -246,15 +247,19 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
this.saveButton.setDisabled(!isValid);
this.resetButton.setDisabled(false);
if (!isValid) {
+ this.wasInvalid = true;
Message message = new Message("One or more fields have invalid values. This " + this.dataTypeName
+ " cannot be saved until these values are corrected.", Message.Severity.Warning, EnumSet.of(
Message.Option.Sticky, Message.Option.Transient));
CoreGUI.getMessageCenter().notify(message);
} else {
- Message message = new Message("All fields now have valid values. This " + this.dataTypeName
- + " can now be saved.", Message.Severity.Info, EnumSet.of(Message.Option.Sticky,
- Message.Option.Transient));
- CoreGUI.getMessageCenter().notify(message);
+ if (this.wasInvalid) {
+ Message message = new Message("All fields now have valid values. This " + this.dataTypeName
+ + " can now be saved.", Message.Severity.Info, EnumSet.of(Message.Option.Sticky,
+ Message.Option.Transient));
+ CoreGUI.getMessageCenter().notify(message);
+ this.wasInvalid = false;
+ }
}
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
index 496d896..7eaa761 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
@@ -30,6 +30,7 @@ import com.google.gwt.user.client.Timer;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.FormItemIfFunction;
import com.smartgwt.client.widgets.form.fields.BooleanItem;
+import com.smartgwt.client.widgets.form.fields.CanvasItem;
import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.form.fields.FormItemIcon;
import com.smartgwt.client.widgets.form.fields.HiddenItem;
@@ -109,7 +110,7 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
hasIdField = true;
}
if (this.isReadOnly) {
- if (item instanceof StaticTextItem) {
+ if ((item instanceof StaticTextItem) || (item instanceof CanvasItem)) {
itemsList.add(item);
} else {
StaticTextItem staticItem = new StaticTextItem(item.getName(), item.getTitle());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
index c2b1efd..7b5000d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
@@ -506,8 +506,8 @@ public abstract class RPCDataSource<T> extends DataSource {
textField.setLength(Boolean.FALSE.toString().length());
textField.setRequired(required);
LinkedHashMap<String, String> valueMap = new LinkedHashMap<String, String>();
- valueMap.put(Boolean.TRUE.toString(), MSG.dataSource_rpc_yes());
- valueMap.put(Boolean.FALSE.toString(), MSG.dataSource_rpc_no());
+ valueMap.put(Boolean.TRUE.toString(), MSG.common_val_yes_lower());
+ valueMap.put(Boolean.FALSE.toString(), MSG.common_val_no_lower());
textField.setValueMap(valueMap);
return textField;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 7a6fea3..32a7792 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -283,7 +283,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
+ "]. Unable to inform agent of inventory removal (this may be ok): " + t);
}
- // since we delete the resource asychronously now, we need to make sure we remove things that would cause
+ // since we delete the resource asynchronously now, we need to make sure we remove things that would cause
// system side effects after markForDeletion completed but before the resource was actually removed from the DB
Subject overlord = subjectManager.getOverlord();
commit f644117c83aa104a0003ec48b714c7082607444a
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Nov 19 14:27:03 2010 -0500
Reports->Alert Definitions now brings up the Templates view.. but I don't think that's what we wanted. I think this was to show all definitions that exist. but at least this shows something
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
index a4dcde9..1b28a58 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
@@ -60,7 +60,7 @@ public class AdministrationView extends AbstractSectionedLeftNavigationView {
// TODO these iframe page view ids should go away in favor of the gwt view page view_id, when available
private static final ViewName PAGE_SYSTEM_SETTINGS_VIEW_ID = new ViewName("SystemSettings", MSG
.view_adminConfig_systemSettings());
- private static final ViewName PAGE_TEMPLATES_VIEW_ID = new ViewName("Templates", MSG.view_adminConfig_templates());
+ public static final ViewName PAGE_TEMPLATES_VIEW_ID = new ViewName("Templates", MSG.view_adminConfig_templates());
private static final ViewName PAGE_DOWNLOADS_VIEW_ID = new ViewName("Downloads", MSG.view_adminConfig_downloads());
private static final ViewName PAGE_LICENSE_VIEW_ID = new ViewName("License", MSG.view_adminConfig_license());
private static final ViewName PAGE_PLUGINS_VIEW_ID = new ViewName("Plugins", MSG.view_adminConfig_plugins());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
index a6c441b..fa63445 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
@@ -28,6 +28,8 @@ import java.util.List;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
+import org.rhq.enterprise.gui.coregui.client.admin.AdministrationView;
+import org.rhq.enterprise.gui.coregui.client.admin.templates.ResourceTypeTreeView;
import org.rhq.enterprise.gui.coregui.client.alert.AlertHistoryView;
import org.rhq.enterprise.gui.coregui.client.components.FullHTMLPane;
import org.rhq.enterprise.gui.coregui.client.components.view.AbstractSectionedLeftNavigationView;
@@ -117,7 +119,7 @@ public class ReportTopView extends AbstractSectionedLeftNavigationView {
NavigationItem alertDefinitionsItem = new NavigationItem(new ViewName("AlertDefinitions", MSG
.view_reports_alertDefinitions()), "subsystems/alert/Alerts_16.png", new ViewFactory() {
public Canvas createView() {
- return null; // TODO: mazz
+ return new ResourceTypeTreeView(extendLocatorId(AdministrationView.PAGE_TEMPLATES_VIEW_ID.getName()));
}
});
commit cfb7d24d857e1337857fbcf5bcebae7ef4e33c9e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Nov 19 14:13:21 2010 -0500
put these back the way they were
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
index 1bbeccf..6b6c703 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
@@ -109,7 +109,7 @@ public class SearchBarPane extends LocatableHLayout {
ComboBoxItem resourceSearch = getResourceComboBox();
ComboBoxItem groupSearch = getGroupComboBox();
- ButtonItem search = new ButtonItem("Search", MSG.common_title_search());
+ ButtonItem search = new ButtonItem("Search", MSG.common_button_search());
search.setStartRow(false);
search.setEndRow(false);
search.setShowTitle(false);
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 9e2f54d..5d5ca3f 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
@@ -34,9 +34,10 @@ common_button_next = Next~
common_button_ok = OK~
common_button_previous = Previous~
common_button_purgeAll=Purge All~
-common_button_refresh = "Refresh"~
+common_button_refresh = Refresh~
common_button_reset = Reset~
common_button_save = Save~
+common_button_search = Search~
common_button_showDetails = Show Details...~
common_button_uninventory = Uninventory~
@@ -958,7 +959,7 @@ view_selector_available = Available {0}~
view_subTab_error_disabled = Cannot select disabled subTab [{0}].~
-view_table_totalRows = Total Rows: {0} Selected: {1}~
+view_table_totalRows = Total Rows: {0} (selected: {1})~
view_tableSection_backButton = Back to List~
view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
@@ -1393,11 +1394,11 @@ view_summaryOverviewForm_label_plugin = Plugin:
view_summaryOverviewForm_label_type = Type:
view_summaryOverviewForm_header_summary = Summary~
view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_nameChangeSuccess = "Name of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_message_nameChangeSuccess = Name of Resource with id {0} was changed from [{1}] to [{2}].~
view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_descriptionChangeSuccess = "Description of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_message_descriptionChangeSuccess = Description of Resource with id {0} was changed from [{1}] to [{2}].~
view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_message_locationChangeSuccess = Location of Resource with id {0} was changed from [{1}] to [{2}].~
#==================== Reports ======================
commit 3a1ad70124c7a4489ea20e831cdee3184adc548b
Merge: 481e29b... 5c7f29d...
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Nov 19 14:01:44 2010 -0500
Merge branch 'master' of ssh://spinder@git.fedorahosted.org/git/rhq/rhq
commit 481e29bdb060854b4da1ca644224cbded8bea5b9
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Nov 19 14:00:26 2010 -0500
update i18n message file with new titles/message. Synch messages.
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 6bf3135..cb8070d 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
@@ -34,10 +34,9 @@ common_button_next = Next~
common_button_ok = OK~
common_button_previous = Previous~
common_button_purgeAll=Purge All~
-common_button_refresh = Refresh~
+common_button_refresh = "Refresh"~
common_button_reset = Reset~
common_button_save = Save~
-common_button_search = Search~
common_button_showDetails = Show Details...~
common_button_uninventory = Uninventory~
@@ -68,6 +67,7 @@ common_label_weeks=weeks~
# Common Titles
#--------------
+common_title_address=Address~
common_title_add_column=Add Column~
common_title_add_portlet=Add Portlet~
common_title_alert_range=Alert Range~
@@ -80,6 +80,7 @@ common_title_columns=Columns~
common_title_configuration = Configuration~
common_title_compatibleGroups = Compatible Groups~
common_title_compatibleGroups_total=Compatible Group Total~
+common_title_component_errors=Component errors~
common_title_custom=Custom~
common_title_dashboard_name=Dashboard Name~
common_title_dateCreated=Date Created~
@@ -139,6 +140,7 @@ common_title_server_total=Server Total~
common_title_service_total=Service Total~
common_title_settings=Settings~
common_title_show=Show~
+common_title_show_more = Show more...~
common_title_start = Start~
common_title_status=Status~
common_title_summary=Summary~
@@ -956,7 +958,7 @@ view_selector_available = Available {0}~
view_subTab_error_disabled = Cannot select disabled subTab [{0}].~
-view_table_totalRows = Total Rows: {0} (selected: {1})~
+view_table_totalRows = Total Rows: {0} Selected: {1}~
view_tableSection_backButton = Back to List~
view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
@@ -1092,6 +1094,13 @@ view_inventory_allResources = All Resources~
view_inventory_platforms = Platforms~
view_inventory_servers = Servers~
view_inventory_services = Services~
+view_inventory_summary_agent_error1=Failed to locate agent managing resource id~
+view_inventory_summary_agent_error2=Failed to ping agent managing resource id~
+view_inventory_summary_agent_fullEnpoint=Full Endpoint~
+view_inventory_summary_agent_fullEnpoint_err1=!No remote endpoint associated with this resource!~
+view_inventory_summary_agent_last_title=Last Received Availability Report~
+view_inventory_summary_agent_status_title=Agent Communications Status~
+view_inventory_summary_agent_title=Agent Managing this Resource~
view_inventory_dynagroupDefs = Dynagroup Definitions~
view_metric_traits=Traits~
view_metric_viewTraitHistory=Value History for Trait [{0}]~
@@ -1141,6 +1150,8 @@ view_resource_monitor_calltime_loadFailed=Could not load call time data~
view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
view_resource_monitor_calltime_editFailed=Call time data can not be edited~
view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
+view_resource_title_tagUpdateFailed=Failed to update resource tags~
+view_resource_title_component_errors_tooltip=Shows managed component errors. Click for details~
view_tree_common_loadFailed_generic=Failed to load data for tree~
view_tree_common_loadFailed_root=Failed to load root for tree~
view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
@@ -1382,11 +1393,11 @@ view_summaryOverviewForm_label_plugin = Plugin:
view_summaryOverviewForm_label_type = Type:
view_summaryOverviewForm_header_summary = Summary~
view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_nameChangeSuccess = Name of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_message_nameChangeSuccess = "Name of Resource with id {0} was changed from [{1}] to [{2}].~
view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_descriptionChangeSuccess = Description of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_message_descriptionChangeSuccess = "Description of Resource with id {0} was changed from [{1}] to [{2}].~
view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_locationChangeSuccess = Location of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource with id {0} was changed from [{1}] to [{2}].~
#==================== Reports ======================
@@ -1470,4 +1481,3 @@ view_messageCenter_messageTitle = Message Center~
view_messageCenter_messageSeverity = Severity~
view_messageCenter_messageTime = Time~
view_messageCenter_messageDetail = Detail~
-
commit 5c7f29de1e24d939345b6ab42a72ab97a15342e1
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Nov 19 13:44:05 2010 -0500
i18n
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
index 5e1e957..a6c441b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/ReportTopView.java
@@ -114,12 +114,12 @@ public class ReportTopView extends AbstractSectionedLeftNavigationView {
}
});
- NavigationItem alertDefinitionsItem = new NavigationItem(new ViewName("AlertDefinitions"),
- "subsystems/alert/Alerts_16.png", new ViewFactory() {
- public Canvas createView() {
- return null; // TODO: mazz
- }
- });
+ NavigationItem alertDefinitionsItem = new NavigationItem(new ViewName("AlertDefinitions", MSG
+ .view_reports_alertDefinitions()), "subsystems/alert/Alerts_16.png", new ViewFactory() {
+ public Canvas createView() {
+ return null; // TODO: mazz
+ }
+ });
return new NavigationSection(SUBSYSTEMS_SECTION_VIEW_ID, tagItem, suspectMetricsItem,
recentConfigurationChangesItem, recentOperationsItem, recentAlertsItem, alertDefinitionsItem);
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 6bf3135..b1e86d2 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
@@ -961,7 +961,7 @@ view_tableSection_backButton = Back to List~
view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
-view_tags_tags = Tags
+view_tags_tags = Tags~
view_tags_error_1 = Failed to load Tags~
view_tags_title = Tags:~
view_tags_tooltip_1 = Click to remove this Tag~
@@ -1395,6 +1395,7 @@ view_reportsTop_title = Reports~
view_reportsTop_description = This section provides access to global reports.~
view_reports_platforms = Cpu And Memory Utilization~
view_reports_subsystems = Subsystems~
+view_reports_alertDefinitions=Alert Definitions~
view_measurementOob_title = Suspect Metrics~
commit 53e4e07f5a2449e632bf22d35f9af9cd2ee56fb0
Merge: 44d5d22... b015b89...
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Nov 19 13:36:53 2010 -0500
Merge branch 'master' of ssh://spinder@git.fedorahosted.org/git/rhq/rhq into track-master
commit 44d5d22cb1aac81123b10ccff25ff8a86f7b3e53
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Nov 19 13:35:57 2010 -0500
refresh and i18n fix.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
index cc93832..37ba5f3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
@@ -284,6 +284,8 @@ public class ResourceTitleBar extends LocatableVLayout {
//order the components
addMember(top);
addMember(details);
+ top.markForRedraw();
+ details.markForRedraw();
}
private void loadTags(final TagEditorView tagEditorView) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
index 3f45d55..f398136 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
@@ -74,7 +74,7 @@ public class OverviewView extends LocatableVLayout {
setWidth("80%");
final List<FormItem> formItems = new ArrayList<FormItem>();
HeaderItem headerItem = new HeaderItem("header", MSG.view_inventory_summary_agent_title());
- headerItem.setValue("Agent Managing this Resource");
+ headerItem.setValue(MSG.view_inventory_summary_agent_title());
formItems.add(headerItem);
//populate remaining details
GWTServiceLookup.getAgentService().getAgentForResource(id, new AsyncCallback<Agent>() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
index 6b6c703..1bbeccf 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
@@ -109,7 +109,7 @@ public class SearchBarPane extends LocatableHLayout {
ComboBoxItem resourceSearch = getResourceComboBox();
ComboBoxItem groupSearch = getGroupComboBox();
- ButtonItem search = new ButtonItem("Search", MSG.common_button_search());
+ ButtonItem search = new ButtonItem("Search", MSG.common_title_search());
search.setStartRow(false);
search.setEndRow(false);
search.setShowTitle(false);
commit b015b896fc9ff04a1a1e0bdf36095e65f4443863
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Nov 19 13:12:09 2010 -0500
remove spurious double quotes
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 a581a4e..6bf3135 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
@@ -34,7 +34,7 @@ common_button_next = Next~
common_button_ok = OK~
common_button_previous = Previous~
common_button_purgeAll=Purge All~
-common_button_refresh = "Refresh"~
+common_button_refresh = Refresh~
common_button_reset = Reset~
common_button_save = Save~
common_button_search = Search~
@@ -301,7 +301,7 @@ dataSource_ContentRepoTree_field_parentId = Parent ID~
dataSource_users_field_id = ID~
dataSource_users_field_name = User Name~
dataSource_users_field_ldap = LDAP Login?~
-dataSource_users_field_password = Password`
+dataSource_users_field_password = Password~
dataSource_users_field_passwordVerify = Verify Password~
dataSource_users_field_firstName = First Name~
dataSource_users_field_lastName = Last Name~
@@ -1382,11 +1382,11 @@ view_summaryOverviewForm_label_plugin = Plugin:
view_summaryOverviewForm_label_type = Type:
view_summaryOverviewForm_header_summary = Summary~
view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_nameChangeSuccess = "Name of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_message_nameChangeSuccess = Name of Resource with id {0} was changed from [{1}] to [{2}].~
view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_descriptionChangeSuccess = "Description of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_message_descriptionChangeSuccess = Description of Resource with id {0} was changed from [{1}] to [{2}].~
view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_message_locationChangeSuccess = Location of Resource with id {0} was changed from [{1}] to [{2}].~
#==================== Reports ======================
commit d56e2887b1debf217b829730fd9fb148abdd2a95
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Nov 19 18:36:30 2010 +0100
Add a section about limiting gwt compile to certain browsers.
diff --git a/etc/m2/settings.xml b/etc/m2/settings.xml
index 64b6e35..fc7d47f 100644
--- a/etc/m2/settings.xml
+++ b/etc/m2/settings.xml
@@ -44,8 +44,8 @@
<profile>
<id>overrides</id>
<properties>
- <!-- NOTE: Add properties here that you always want set, to avoid
- having to explicitly pass them on the command line. Note,
+ <!-- NOTE: Add properties here that you always want set, to avoid
+ having to explicitly pass them on the command line. Note,
you can still override the values set here via the command
line. -->
@@ -70,12 +70,12 @@
<!-- Set the below properties to your fedorahosted.org username and
password (used to check in poms to RHQ git). -->
<username>SET_ME</username>
- <password>SET_ME</password>
+ <password>SET_ME</password>
</properties>
<repositories>
- <!-- Oracle Driver
+ <!-- Oracle Driver
To package the Oracle OJDBC driver set -Drhq.m2.repo.url.oracle and this repo definition will
be used to pick it up at build time. -->
<repository>
@@ -107,7 +107,7 @@
<rhq.test.quartz.lockHandlerClass>org.quartz.impl.jdbcjobstore.StdRowLockSemaphore</rhq.test.quartz.lockHandlerClass>
</properties>
</profile>
-
+
<profile>
<id>h2</id>
<properties>
@@ -128,7 +128,7 @@
<rhq.test.quartz.lockHandlerClass>org.quartz.impl.jdbcjobstore.StdRowLockSemaphore</rhq.test.quartz.lockHandlerClass>
</properties>
</profile>
-
+
<profile>
<id>sqlserver</id>
<properties>
@@ -188,7 +188,7 @@
<!-- Alternatively, if you don't want to use the default location of {rhq.rootDir}/dev-container/
for your dev container, then set the below prop to the desired location. -->
- <!--<rhq.containerDir>C:/home/bob/rhq-dev-container</rhq.containerDir>-->
+ <!--<rhq.containerDir>C:/home/bob/rhq-dev-container</rhq.containerDir>-->
<!-- Set the below prop to the location to your dev JBAS 4.2/4.3 deploy location for the admin console WAR.
e.g.: C:/opt/jboss-eap-4.3.0.GA_CP02/jboss-as/server/production -->
@@ -196,18 +196,25 @@
<!-- Set the below prop to the location to your dev JBAS 5.0 deploy location for the embedded console WAR.
e.g.: C:/opt/jboss-5.0.0.CR1/server/default -->
<jbas5.configDir>SET_ME</jbas5.configDir>
+
+ <!-- set browser(s) to compile the qwt stuff for
+ ~~ See http://rhq-project.org/display/RHQ/Advanced+Build+Notes#AdvancedBuildNote...
+ ~~ for details and browser versions
+ ~~ Possible engines are ie6,ie8,gecko,gecko1_8,safari,opera
+ -->
+ <gwt.userAgent>SET_ME</gwt.userAgent>
</properties>
</profile>
-
+
<profile>
<id>publish</id>
- <properties>
+ <properties>
<confluenceUrl>http://docs.example.com/confluence/</confluenceUrl>
<confluenceSpace>DOCS</confluenceSpace>
<confluenceUserName>SET_ME</confluenceUserName>
- <confluencePassword>SET_ME</confluencePassword>
- </properties>
- </profile>
+ <confluencePassword>SET_ME</confluencePassword>
+ </properties>
+ </profile>
</profiles>
@@ -229,22 +236,22 @@
<servers>
<server>
- <id>jboss-developer-repository-group</id>
- <!-- jboss.org username and password -->
+ <id>jboss-developer-repository-group</id>
+ <!-- jboss.org username and password -->
<username>SET_ME</username>
<password>SET_ME</password>
</server>
<server>
<id>jboss-snapshots-repository</id>
- <!-- jboss.org username and password -->
+ <!-- jboss.org username and password -->
<username>SET_ME</username>
<password>SET_ME</password>
</server>
<server>
<id>jboss-releases-repository</id>
- <!-- jboss.org username and password -->
+ <!-- jboss.org username and password -->
<username>SET_ME</username>
<password>SET_ME</password>
</server>
commit 60a3f91f702ac214f02b4458da0c7ff9b2b643bc
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Nov 19 18:31:11 2010 +0100
Enable German messages.
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
index edc98de..09763bd 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
@@ -5,7 +5,7 @@
<inherits name='com.google.gwt.user.User'/>
<inherits name='com.google.gwt.i18n.I18N'/>
- <inherits name='org.rhq.core.RHQDomain'/>
+ <inherits name='org.rhq.core.RHQDomain'/>
<inherits name='com.smartgwt.SmartGwt' />
<inherits name="com.smartgwt.tools.SmartGwtTools"/>
@@ -39,8 +39,8 @@
2. In hosted mode, the windows are not automatically closed,
although you can easily close them manually in the usual way
-->
- <!-- When enabled FireFox is hard to use due to excessive popup window generation
-
+ <!-- When enabled FireFox is hard to use due to excessive popup window generation
+
<set-property name="log_WindowLogger" value="ENABLED" />
-->
@@ -86,12 +86,14 @@
-->
<set-property name="user.agent" value="${gwt.userAgent}"/>
- <!-- Support for locales ('en' need not be specified as long as @DefaultLocale annotates
+ <!-- Support for locales ('en' need not be specified as long as @DefaultLocale annotates
the Constants, ConstantsWithLookup, and Messages class). Note, these other locales
must have a file suffixed with _<locale>.properties in the same package/directory as
the corresponding GWT i18n interface class resides.-->
<!--<extend-property name="locale" values="de,fr"/>-->
+ <extend-property name="locale" values="de"/>
+
<entry-point class='org.rhq.enterprise.gui.coregui.client.CoreGUI'/>
<entry-point class='org.rhq.enterprise.gui.coregui.client.SearchGUI'/>
commit 9a1c5e416f17d4184e1e1788cf0ceac0b7ae49b8
Merge: 72561e6... bcfc55f...
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Nov 19 18:14:35 2010 +0100
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 72561e6343a02a57de2251a9ca7ab737853577db
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Nov 19 18:14:04 2010 +0100
Add a file for German translations with some keys already translated.
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
new file mode 100644
index 0000000..06f0b88
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
@@ -0,0 +1,1473 @@
+#
+# RHQ GUI i18n Messages - English
+###################################
+
+#************************************** SHARED ****************************************
+
+#=================== Common =====================
+
+#
+# Build Info
+#
+common_buildInfo_gwtVersion = ${gwt.version}~
+
+# Button Labels
+#--------------
+common_button_ack = Ack~
+common_button_ack_all = Ack All~
+common_button_add = Hinzufügen
+common_button_advanced = Advanced...~
+common_button_apply = Anwenden
+common_button_cancel = Cancel~
+common_button_close = Schließen
+common_button_compare = Vergleichen
+common_button_create_child = Create Child~
+common_button_delete = Löschen
+common_button_delete_all = Alle Löschen
+common_button_disable = Disable~
+common_button_edit = Bearbeiten
+common_button_enable = Enable~
+common_button_finish = Beenden
+common_button_import = Import~
+common_button_new = Neu
+common_button_next = Weiter
+common_button_ok = OK~
+common_button_previous = Zurück
+common_button_purgeAll=Purge All~
+common_button_refresh = "Neu laden"
+common_button_reset = Reset~
+common_button_save = Speichern
+common_button_search = Suchen
+common_button_showDetails = Details anzeigen...
+common_button_uninventory = Uninventory~
+
+# Common Labels
+#------------------------
+common_label_all = ALL~
+common_label_all_resources = all resources~
+common_label_day=
+common_label_days=Tage
+common_label_hour=Stunde
+common_label_hours=Stunden
+common_label_item=item~
+common_label_items=items~
+common_label_milliseconds=Millisekunden
+common_label_minutes=Minuten
+common_label_month=Monat
+common_label_none = none~
+common_label_role = role~
+common_label_roles = roles~
+common_label_scheduled_operations=scheduled operations~
+common_label_seconds=Sekunden
+common_label_selected_resources = selected resources~
+common_label_unlimited = unbeschränkt
+common_label_user = Benutzer
+common_label_users = Benutzer
+common_label_week=Woche
+common_label_weeks=Wochen
+
+# Common Titles
+#--------------
+common_title_add_column=Spalte hinzufügen
+common_title_add_portlet=Portlet hinzufügen
+common_title_alert_range=Alert Range~
+common_title_availability = Verfügbar
+common_title_average_metrics=Average Metrics per Minute~
+common_title_available_resources=Verfügbare Ressourcen
+common_title_background=Hintergrund
+common_title_category = Kategorie
+common_title_columns=Spalten
+common_title_configuration = Configuration~
+common_title_compatibleGroups = Compatible Groups~
+common_title_compatibleGroups_total=Compatible Group Total~
+common_title_custom=Custom~
+common_title_dashboard_name=Dashboard Name~
+common_title_dateCreated=Date Created~
+common_title_default=Default~
+common_title_description=Beschreibung
+common_title_details=Details
+common_title_display=Display~
+common_title_display_name=Display Name~
+common_title_duration=Dauer
+common_title_edit_mode=Edit Mode~
+common_title_enabled=Enabled?~
+common_title_end = Ende
+common_title_favorites=Favorites~
+common_title_generalProp = General Properties~
+common_title_group_def_total=Group Definition Total~
+common_title_icon = icon~
+common_title_id = ID~
+common_title_id_parent = Parent ID~
+common_title_info = Info~
+common_title_host = Host~
+common_title_inventory = Inventory~
+common_title_inventorySummary = Inventory Summary~
+common_title_lastUpdated=Zuletzt aktualisiert
+common_title_lastUpdatedBy=Zuletzt aktualisiert durch
+common_title_mashup=Mashup~
+common_title_message=Nachricht
+common_title_metric = Metrik
+common_title_mixedGroups = Gemischte Gruppen
+common_title_mixedGroups_total=Mixed Group Total~
+common_title_name = Name
+common_title_new_dashboard=New Dashboard~
+common_title_numeric_type=Numeric Type~
+common_title_operations=Operations~
+common_title_operations_range=Operation Range~
+common_title_over=Over~
+common_title_password = Passwort
+common_title_path = Pfad
+common_title_platform=Platform~
+common_title_platform_total=Platform Total~
+common_title_plugin = Plugin~
+common_title_port = Port
+common_title_providers=Providers~
+common_title_recently_added = Kürzlich hinzugefügte Ressourcen
+common_title_recent_alerts = Recent Alerts~
+common_title_recent_operations=Recent Operations~
+common_title_remove_column=Spalte löschen
+common_title_repositories=Repositories~
+common_title_resource = Ressource
+common_title_resource_group = Resource Group~
+common_title_resource_inventory=Resource Inventory~
+common_title_resource_id=Resource ID~
+common_title_resource_name=Resource Name~
+common_title_search = Suche
+common_title_scheduled_operations=Scheduled Operations~
+common_title_selected_resources=Ausgewählte Ressourcen
+common_title_server_total=Server Total~
+common_title_service_total=Service Total~
+common_title_settings=Settings~
+common_title_show=Show~
+common_title_start = Start~
+common_title_status=Status~
+common_title_summary=Zusammenfassung
+common_title_tag_cloud=Tag Cloud~
+common_title_the=The
+common_title_summary_counts=Summary Counts~
+common_title_timestamp =Date/Time~
+common_title_total=Total~
+common_title_type = Typ
+common_title_units = Einheiten
+common_title_user=Benutzer
+common_title_value = Wert
+common_title_version = Version
+common_title_view_mode=View Mode~
+common_title_web_address=Web Address~
+common_title_welcome=Wilkommen
+
+# Common Messages
+#--------------
+common_msg_areYouSure = Sind Sie sicher?
+common_msg_deleteConfirm = Are you sure you want to delete the # selected {0}?~
+common_msg_emphasizedNotePrefix = NOTE:~
+common_msg_loading = Laden...
+common_msg_noItemsToShow=No items to show~
+
+# Common Values
+#--------------
+common_val_for=for~
+common_val_no = Nein
+common_val_no_lower = nein
+common_val_yes = Ja
+common_val_yes_lower = ja
+common_val_never = Nie
+common_val_na = N/A~
+common_val_none = Kein(e)
+
+# Common Calendar
+#--------------
+common_calendar_january_short= Jan
+common_calendar_february_short=Feb
+common_calendar_march_short=Mar
+common_calendar_april_short=Apr
+common_calendar_may_short=May
+common_calendar_june_short=Jun
+common_calendar_july_short=Jul
+common_calendar_august_short=Aug
+common_calendar_september_short=Sept
+common_calendar_october_short=Oct
+common_calendar_november_short=Nov
+common_calendar_december_short=Dec
+
+
+#=================== Widgets =====================
+
+# Record Editor
+#--------------
+widget_recordEditor_title_view = View {0} [{1}]~
+widget_recordEditor_title_edit = Edit {0} [{1}]~
+widget_recordEditor_title_new = Create New {0}~
+# // dup in common
+widget_recordEditor_label_loading = Loading...~
+widget_recordEditor_error_invalidViewPath = Invalid view path: [{0}]~
+widget_recordEditor_error_noRecords = No records were returned - expected exactly one.~
+widget_recordEditor_error_multipleRecords = Multiple records were returned - expected exactly one.~
+widget_recordEditor_info_recordCreatedConcise = {0} created.~
+widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] created.~
+widget_recordEditor_info_recordUpdatedConcise = {0} updated.~
+widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] updated.~
+widget_recordEditor_info_recordsDeletedConcise = {0} {1} deleted.~
+widget_recordEditor_info_recordsDeletedDetailed = {0} {1} deleted: {2}.~
+widget_recordEditor_error_unsupportedOperationType = Unsupported operation type: [{0}]~
+
+# Resource Selector/Picker
+#--------------------------------
+widget_resourceSelector_selectResource=Wählen Sie eine Ressource aus
+widget_resourceSelector_pleaseSelectResource=Please select a resource~
+widget_resourceSelector_selectMultipleResources=Select Resources~
+widget_resourceSelector_pleaseSelectMultipleResource=Please select one or more resources~
+widget_resourceSelector_groupCategory=Group Category~
+
+# Resource Factory Wizard
+#--------------------------------
+widget_resourceFactoryWizard_uploadInProgress=The upload is in progress... This can take several minutes to complete for large distribution files.~
+widget_resourceFactoryWizard_uploadFileStepName=Upload Resource Content File~
+widget_resourceFactoryWizard_uploadFailure=Failed to upload file~
+widget_resourceFactoryWizard_editConfigStepName=Edit Configuration~
+widget_resourceFactoryWizard_infoStepName=Resource Information~
+widget_resourceFactoryWizard_namePrompt=New Resource Name~
+widget_resourceFactoryWizard_templatePrompt=Connection Settings Template~
+widget_resourceFactoryWizard_contentTemplatePrompt=Deployment Time Configuration Templates~
+widget_resourceFactoryWizard_configTemplatePrompt=Resource Configuration Templates~
+widget_resourceFactoryWizard_archPrompt=Package Architecture~
+widget_resourceFactoryWizard_versionPrompt=Package Version~
+widget_resourceFactoryWizard_importWizardWindowTitle=Resource Import Wizard~
+widget_resourceFactoryWizard_importWizardTitle=Import Resource of Type [{0}]~
+widget_resourceFactoryWizard_importFailure=Failed to manually import resource~
+widget_resourceFactoryWizard_importSubmitted=A request to import a new resource of type [{0}] has been submitted~
+widget_resourceFactoryWizard_createWizardWindowTitle=Resource Create Wizard~
+widget_resourceFactoryWizard_createWizardTitle=Create New Resource of Type [{0}]~
+widget_resourceFactoryWizard_execute1=Failed to create a new resource - there is no package version~
+widget_resourceFactoryWizard_execute2=Failed to create a new resource~
+widget_resourceFactoryWizard_createSubmitType=A request to create a resource of type [{0}] has been submitted successfully.~
+widget_resourceFactoryWizard_createSubmit=A request to create a resource with the name of [{0}] has been submitted successfully.~
+widget_resourceFactoryWizard_failedToGetType=Failed to get backing package type for new resource~
+widget_resourceFactoryWizard_failedToDeleteVersion=Failed to delete package version while canceling a resource create~
+
+#===================== Utils ======================
+
+# Disambiguation Report Decorator
+#-------------------------------------------------
+util_disambiguationReportDecorator_pluginSuffix = ({0} plugin)~
+
+# Monitoring Request Callback
+#------------------------------------------
+util_monitoringRequestCallback_error_checkServerStatusFailure = Unable to determine login status - check Server status.~
+
+# RPC Manager
+#----------------------
+util_rpcManager_activeRequests = {0} Aktive Anfragen
+
+# User Permissions Manager
+#--------------------------
+util_userPerm_loadFailGlobal = Failed to load your global permissions - none granted.~
+util_userPerm_loadFailGroup = Failed to load your permissions for Resource Group with id [{0}] - none granted.~
+util_userPerm_loadFailResource = Failed to load your permissions for Resource with id [{0}] - none granted.~
+
+# User Session Manager
+#--------------------------
+util_userSession_loadFailSubject = UserSessionManager: Failed to load user Subject~
+util_userSession_logoutFail = Failed to logout.~
+
+# Error Handler
+#--------------------
+util_errorHandler_nullException = exception was null~
+
+# Widgets Field
+#---------------------
+util_widgetsField_unlimited = Unbeschränkt
+
+
+#================== DataSources ====================
+
+# RPC (abstract)
+#-----------------------
+dataSource_rpc_error_transformRequestFailure = Failure in datasource while processing {0} request.~
+dataSource_rpc_error_unsupportedArrayFilterType = No support for passing array filters of type {0}.~
+dataSource_rpc_error_unsupportedEnumType = Please add an appropriate code block for enum {0} to RPCDataSource.getEnumArray(Class)~
+dataSource_rpc_yes = yes~
+dataSource_rpc_no = no~
+
+# ContentRepositoryTree
+#------
+dataSource_ContentRepoTree_error_load = Error loading repositories~
+dataSource_ContentRepoTree_field_parentId = Parent ID~
+
+
+# Users
+#------
+###### dup in common
+dataSource_users_field_id = ID~
+dataSource_users_field_name = Benutzername
+dataSource_users_field_ldap = LDAP Login?~
+dataSource_users_field_password = Passwort`
+dataSource_users_field_passwordVerify = Verify Password~
+dataSource_users_field_firstName = Vorname~
+dataSource_users_field_lastName = Nachname~
+dataSource_users_field_emailAddress = E-Mail-Addresse
+dataSource_users_field_phoneNumber = Telefonnummer
+dataSource_users_field_department = Abteilung
+dataSource_users_field_factive = Darf sich einloggen?~
+
+# Platforms
+#------
+dataSource_platforms_field_cpu=CPU~
+dataSource_platforms_field_memory=Memory~
+dataSource_platforms_field_swap=Swap~
+
+# Traits
+#------
+dataSource_traits_field_primaryKey=Primärschlüssel
+dataSource_traits_field_definitionID=Definition ID~
+dataSource_traits_field_lastChanged=Last Changed~
+dataSource_traits_field_trait=Trait~
+dataSource_traits_group_field_groupId=Group ID~
+dataSource_traits_group_field_memberResource=Member Resource~
+
+# Measurement OOBs
+#---------------------------------
+dataSource_measurementOob_field_scheduleName = Metrik
+dataSource_measurementOob_field_resourceName = Ressource
+dataSource_measurementOob_field_parentName = Parent~
+dataSource_measurementOob_field_formattedBaseband = Band~
+dataSource_measurementOob_field_formattedOutlier = Ausreisser
+dataSource_measurementOob_field_factor = Out of Range Factor (%)~
+dataSource_measurementOob_error_fetchFailure = Failed to load measurement OOB information~
+
+# Measurements
+#----------------------
+dataSource_definitions_loadFailed = Failed to load metric definitions~
+dataSource_schedules_loadFailed = Failed to load metric schedules~
+dataSource_schedules_field_resourceGroupId = Group ID~
+
+dataSource_schedules_enableFailure_resource=Failed to enable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
+dataSource_schedules_enableFailure_group=Failed to enable the collection of [{0}] metrics for group with ID [{1}]. The metrics were: [{2}]~
+
+dataSource_schedules_enableSuccessful_concise=You have enabled the collection of [{0}] measurements~
+dataSource_schedules_enableSuccessful_full_resource=You have enabled the collection of [{0}] measurements for the resource with ID [{1}]. The enabled measurements are: [{2}]~
+dataSource_schedules_enableSuccessful_full_group=You have enabled the collection of [{0}] measurements for the resource group with ID [{1}]. The enabled measurements are: [{2}]~
+
+dataSource_schedules_disableFailure_resource=Failed to disable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
+dataSource_schedules_disableFailure_group=Failed to disable the collection of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]~
+
+dataSource_schedules_disableSuccessful_concise=You have disabled the collection of [{0}] measurements~
+dataSource_schedules_disableSuccessful_full_resource=You have disabled the collection of [{0}] measurements for the resource with ID [{1}]. The disabled measurements are: [{2}]~
+dataSource_schedules_disableSuccessful_full_group=You have disabled the collection of [{0}] measurements for the resource group with ID [{1}]. The disabled measurements are: [{2}]~
+
+dataSource_schedules_updateFailure_resource=Failed to set the collection interval of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
+dataSource_schedules_updateFailure_group=Failed to set the collection interval of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
+
+dataSource_schedules_updateSuccessful_concise=A new collection interval of [{0}] seconds has been set on [{1}] measurements~
+dataSource_schedules_updateSuccessful_full_resource=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource with ID [{2}]. The updated measurements are: [{3}]~
+dataSource_schedules_updateSuccessful_full_group=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource group with ID [{2}]. The updated measurements are: [{3}]~
+
+
+# Problem Resources
+#------------------------------
+dataSource_problemResources_field_resource = Ressource
+dataSource_problemResources_field_location = Ort
+dataSource_problemResources_field_alerts = Alerts~
+dataSource_problemResources_field_available = Aktuelle Verfügbarkeit
+dataSource_problemResources_error_fetchFailure = Failed to load Resources with alerts/unavailability.~
+
+# Recent Operations
+#----------------------------
+dataSource_recentOperations_field_resource = Ressource
+dataSource_recentOperations_field_location = ort
+dataSource_recentOperations_field_operation = Operation~
+dataSource_recentOperations_field_time = Date/Time~
+dataSource_recentOperations_field_status = Status
+dataSource_recentOperations_error_fetchFailure = Failed to load recently completed operations.
+
+# Scheduled Operations
+#---------------------------------
+dataSource_scheduledOperations_field_resource = Ressource
+dataSource_scheduledOperations_field_location = Ort
+dataSource_scheduledOperations_field_operation = Operation~
+dataSource_scheduledOperations_field_time = Date/Time~
+dataSource_scheduledOperations_error_fetchFailure = Failed to load scheduled operations.
+
+# Operation History
+#---------------------------
+dataSource_operationHistory_error_fetchFailure = Failure loading operation histories.~
+
+# Configuration History
+#-------------------------------
+dataSource_configurationHistory_field_id = ID~
+dataSource_configurationHistory_field_resource = Ressource
+dataSource_configurationHistory_field_createdTime = Angelegt
+dataSource_configurationHistory_field_status = Status
+dataSource_configurationHistory_field_subject = Subject~
+dataSource_configurationHistory_error_fetchFailure = Unable to load configuration history.~
+
+# Resource Errors
+#-------------------------
+dataSource_resourceErrors_field_summary = Summary~
+dataSource_resourceErrors_field_detail = Detailed Message~
+dataSource_resourceErrors_field_errorType = Error Type~
+dataSource_resourceErrors_field_timeOccured = Time~
+dataSource_resourceErrors_error_fetchFailure = Failed to find Resource errors for Resource with id [{0}].~
+
+
+#********************************** VIEW-SPECIFIC *************************************
+
+#================= Administration ==================
+
+view_admin_administration = Verwaltung
+view_admin_landing = From this section, the RHQ global settings can be administered. This includes configuring Security, setting up Plugins, and managing RHQ servers and agents.~
+view_admin_configuration = Configuration~
+view_admin_security = Sicherheit
+view_admin_topology = Topology~
+
+view_adminSecurity_users = Benutzer
+view_adminSecurity_roles = Rollen
+
+view_adminTopology_affinityGroups = Affinity Groups~
+view_adminTopology_agents = Agenten
+view_adminTopology_partitionEvents = Partition Events~
+view_adminTopology_remoteAgentInstall = Remote Agent Install~
+view_adminTopology_servers = Servers~
+
+view_adminConfig_downloads = Downloads~
+view_adminConfig_license = License~
+view_adminConfig_plugins = Plugins~
+view_adminConfig_systemSettings = Systemeinstellungen
+view_adminConfig_templates = Templates~
+
+# Administration/Security/Users
+#--------------------------------
+view_adminUsersList_dataTypeName = Benutzer
+view_adminUsersList_dataTypeNamePlural = Benutzer
+
+# Administration/Security/Users/#
+#--------------------------------
+view_adminUsersDetails_dataTypeName = Benutzer
+
+# Administration/Security/Roles/#
+#--------------------------------
+view_adminRoles_assignedGroups = Assigned Resource Groups~
+view_adminRoles_assignedSubjects = Assigned Subjects~
+view_adminRoles_failLdap = Failed to determine if LDAP configured - assuming no LDAP.~
+view_adminRoles_failLdapGroups = Failed to retrieve available LDAP groups - assuming no LDAP groups.~
+view_adminRoles_failLdapGroupsRole = Failed to load LDAP groups available for role.~
+view_adminRoles_failRoles = Failed to fetch roles.~
+view_adminRoles_globalPerms = Global Permissions~
+view_adminRoles_ldapGroups = LDAP Groups~
+view_adminRoles_ldapGroupsReadOnly = LDAP group data is read only~
+view_adminRoles_noItems = No items to show~
+view_adminRoles_noLdap = The LDAP security integration is not configured. To configure LDAP go to <a {0}>{1}</a>.~
+view_adminRoles_perms = Permissions~
+view_adminRoles_resourcePerms = Resource Permissions~
+view_adminRoles_roleAdded = Rolle [{0}] hinzugefügt
+view_adminRoles_roleExists = A role named [{0}] already exists.~
+view_adminRoles_roleDeleteFailed = Failed to delete role [{0}].~
+view_adminRoles_roleDeleted = Role [{0}] deleted.~
+view_adminRoles_roleUpdateFailed = Failed to update role [{0}].~
+view_adminRoles_roleUpdated = Role [{0}] updated.~
+
+# Administration/Topology/RemoteAgentInstall/#
+#--------------------------------
+view_remoteAgentInstall_agentStatus = Agent Status~
+view_remoteAgentInstall_agentStatusDefault = -Click Update Status Button-~
+view_remoteAgentInstall_connInfo = Connection Information~
+view_remoteAgentInstall_buttonFindAgent = Find Agent~
+view_remoteAgentInstall_error_1 = Error occurred while trying to find agent install path~
+view_remoteAgentInstall_error_2 = Could not find an agent installed when looking in common locations
+view_remoteAgentInstall_error_3 = Could not find an agent installed at or under [{0}]
+view_remoteAgentInstall_error_4 = Failed to install agent~
+view_remoteAgentInstall_error_5 = Failed to start agent~
+view_remoteAgentInstall_error_6 = Failed to stop agent~
+
+view_remoteAgentInstall_installAgent = Install Agent~
+view_remoteAgentInstall_installInfo = Agent Installation Information~
+view_remoteAgentInstall_installPath = Agent Install Path~
+view_remoteAgentInstall_owner = Owner~
+view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install.~
+view_remoteAgentInstall_promptHost = The host where the agent is or will be installed~
+view_remoteAgentInstall_promptPassword =The credentials that are used to authenticate the user on the host via SSH~
+view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not specified, the default is 22~
+view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to the host via SSH~
+view_remoteAgentInstall_result = Result~
+view_remoteAgentInstall_resultCode = ResultCode~
+view_remoteAgentInstall_startAgent = Start Agent~
+view_remoteAgentInstall_startAgentResults = Agent start results: [{0}]~
+view_remoteAgentInstall_step = Step~
+view_remoteAgentInstall_stopAgent = Stop Agent~
+view_remoteAgentInstall_stopAgentResults = Agent stop results: [{0}]~
+view_remoteAgentInstall_success = Agent installation complete~
+view_remoteAgentInstall_updateStatus = Update Status~
+
+#==================== Alerts ======================
+view_alerts_table_title_group=Group Alert History~
+view_alerts_table_title_resource=Resource Alert History~
+view_alerts_table_filter_priority=Priority Filter~
+view_alerts_field_created_time=Creation Time~
+view_alerts_field_modified_time=Modified Time~
+view_alerts_field_enabled=Enabled~
+view_alerts_field_ack_time=Ack Time~
+view_alerts_field_ack_subject=Ack Subject~
+view_alerts_field_ack_status=Status~
+view_alerts_field_ack_status_empty=Not Yet Acknowledged~
+view_alerts_field_ack_status_filled={0} acknowledged on {1}~
+view_alerts_field_name=Name~
+view_alerts_field_condition_text=Condition Text~
+view_alerts_field_condition_text_none=No Conditions~
+view_alerts_field_condition_text_many=Multiple Conditions~
+view_alerts_field_condition_value=Condition Value~
+view_alerts_field_resource=Resource~
+view_alerts_field_priority=Priority~
+view_alerts_field_parent=Parent~
+view_alerts_field_protected=Protected~
+view_alerts_field_protected_tooltip=If true, this definition is protected from being changed by the parent definition. In other words, the parent definition settings will not override this definition.~
+view_alerts_loadFailed=Failed to fetch alerts data~
+view_alerts_delete_confirm=Delete the selected alert(s)?~
+view_alerts_delete_confirm_all=Delete all alerts from this source?~
+view_alerts_delete_success=Successfully deleted {0} alerts~
+view_alerts_delete_failure=Failed to delete alerts with id''s: {0}~
+view_alerts_delete_failure_all=Failed to delete all alerts from this source~
+view_alerts_ack_confirm=Ack the selected alert(s)?~
+view_alerts_ack_confirm_all=Ack all alerts from this source?~
+view_alerts_ack_success=Successfully acknowledged {0} alerts~
+view_alerts_ack_failure=Failed to acknowledge alerts with id''s: {0}~
+view_alerts_ack_failure_all=Failed to acknowledge all alerts from this source~
+view_alert_details_loadFailed=Failed to fetch alert details~
+view_alert_details_breadcrumb=Details~
+view_alert_details_field_ack_by=Acknowledged by~
+view_alert_details_field_ack_at=Acknowledged at~
+view_alert_details_field_recovery_info=Recovery Info~
+view_alert_definition_for_type=View Template~
+view_alert_definition_for_group=View Group Definition~
+view_alert_definitions_table_title_group=Group Alert Definitions~
+view_alert_definitions_table_title_resource=Resource Alert Definitions~
+view_alert_definitions_loadFailed=Failed to fetch alert definition data~
+view_alert_definitions_loadFailed_single=Failed to fetch data for alert definition with id {0}~
+view_alert_definitions_enable_confirm=Enable the selected alert definition(s)?~
+view_alert_definitions_enable_success=Successfully enabled {0} alert definitions~
+view_alert_definitions_enable_failure=Failed to enable the selected alert definitions~
+view_alert_definitions_disable_confirm=Disable the selected alert definition(s)?~
+view_alert_definitions_disable_success=Successfully disabled {0} alert definitions~
+view_alert_definitions_disable_failure=Failed to disable the selected alert definitions~
+view_alert_definitions_delete_confirm=Delete the selected alert definition(s)?~
+view_alert_definitions_delete_success=Successfully deleted {0} alert definitions~
+view_alert_definitions_delete_failure=Failed to deleted the selected alert definitions~
+view_alert_definitions_create_success=Alert definition successfully created~
+view_alert_definitions_create_failure=Alert definition creation failed~
+view_alert_definitions_update_success=Alert definition successfully updated~
+view_alert_definitions_update_failure=Alert definition update failed~
+view_alert_definition_condition_editor_option_label=Condition Type~
+view_alert_definition_condition_editor_option_availability=Availability Change~
+view_alert_definition_condition_editor_option_metric_threshold=Measurement Absolute Value Threshold~
+view_alert_definition_condition_editor_option_metric_baseline=Measurement Baseline Threshold~
+view_alert_definition_condition_editor_option_metric_change=Measurement Value Change~
+view_alert_definition_condition_editor_option_metric_calltime_threshold=Call Time Value Threshold~
+view_alert_definition_condition_editor_option_metric_calltime_change=Call Time Value Change~
+view_alert_definition_condition_editor_option_metric_trait_change=Trait Value Change~
+view_alert_definition_condition_editor_option_operation=Operation Execution~
+view_alert_definition_condition_editor_option_resource_configuration=Resource Configuration Change~
+view_alert_definition_condition_editor_option_event=Event Detection~
+view_alert_definition_condition_editor_avilability_tooltip=Specify the availability state change that will trigger the condition.~
+view_alert_definition_condition_editor_avilability_value=Availability~
+view_alert_definition_condition_editor_avilability_option_up=Comes up~
+view_alert_definition_condition_editor_avilability_option_down=Goes down~
+view_alert_definition_condition_editor_metric_common_definition_not_found=Should have found metric definition - something is wrong~
+view_alert_definition_condition_editor_metric_threshold_tooltip=Specify the threshold value that, when violated, triggers the condition. The value you specify is an absolute value with an optional units specifier.~
+view_alert_definition_condition_editor_metric_threshold_name=Metric~
+view_alert_definition_condition_editor_metric_threshold_value=Metric Value~
+view_alert_definition_condition_editor_metric_threshold_value_tooltip=The threshold value of the metric that will trigger the condition when compared using the selected comparator.~
+view_alert_definition_condition_editor_metric_threshold_comparator=Comparator~
+view_alert_definition_condition_editor_metric_threshold_comparator_less=Less than~
+view_alert_definition_condition_editor_metric_threshold_comparator_equal=Equal to~
+view_alert_definition_condition_editor_metric_threshold_comparator_greater=Greater Than~
+view_alert_definition_condition_editor_metric_threshold_comparator_tooltip=How a collected metric value should be compared to the given threshold value~
+view_alert_definition_condition_editor_metric_baseline_tooltip=Specify the baseline value that must be violated to trigger the condition. The value you specify is a percentage of the given baseline value.~
+view_alert_definition_condition_editor_metric_baseline_percentage=Baseline Percentage~
+view_alert_definition_condition_editor_metric_baseline_percentage_tooltip=A collected metric value will trigger this condition when compared to this percentage of the selected baseline value using the selected comparator~
+view_alert_definition_condition_editor_metric_baseline_value=Baseline~
+view_alert_definition_condition_editor_metric_change_tooltip=Specify the metric whose value must change to trigger the condition.~
+view_alert_definition_condition_editor_metric_calltime_threshold_tooltip=Specify the calltime threshold value that, when violated, triggers the condition. The value you specify is an absolute value with an optional units specifier. You also must specify which calltime limit to compare the value with (minimum, maximum or average calltime value).~
+view_alert_definition_condition_editor_metric_calltime_common_name=Call Time Metric~
+view_alert_definition_condition_editor_metric_calltime_common_limit=Call Time Limit~
+view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip=The calltime limit value that is to be compared with the given value~
+view_alert_definition_condition_editor_metric_calltime_common_regex=Regular Expression~
+view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip=If specified, this is a regular expression that must match a call destination in order to trigger the condition.~
+view_alert_definition_condition_editor_metric_calltime_common_comparator=Comparator~
+view_alert_definition_condition_editor_metric_calltime_common_comparator_shrinks=Shrinks~
+view_alert_definition_condition_editor_metric_calltime_common_comparator_grows=Grows~
+view_alert_definition_condition_editor_metric_calltime_common_comparator_changes=Changes~
+view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip=How a collected calltime value should be compared to the given calltime limit~
+view_alert_definition_condition_editor_metric_calltime_threshold_value=Call Time Value~
+view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip=The threshold value of the metric that will trigger the condition when compared using the selected comparator.~
+view_alert_definition_condition_editor_metric_calltime_change_tooltip=Specify the calltime value that, when changed at least a specified amount, triggers the condition. You must specify which calltime limit to check (minimum, maximum or average calltime value) and the percentage of change that must occur.~
+view_alert_definition_condition_editor_metric_calltime_change_percentage=Percentage Change~
+view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip=A collected calltime value will trigger this condition when it differs by at least this percentage of the selected calltime limit value~
+view_alert_definition_condition_editor_metric_trait_change_tooltip=Specify the trait whose value must change to trigger the condition.~
+view_alert_definition_condition_editor_metric_trait_change_value=Trait~
+view_alert_definition_condition_editor_operation_tooltip=Specify the result that must occur when the selected operation is executed in order to trigger the condition.~
+view_alert_definition_condition_editor_operation_value=Operation~
+view_alert_definition_condition_editor_operation_status=Operation Status~
+view_alert_definition_condition_editor_operation_status_inprogress=In Progress~
+view_alert_definition_condition_editor_operation_status_success=Success~
+view_alert_definition_condition_editor_operation_status_failure=Failure~
+view_alert_definition_condition_editor_operation_status_canceled=Canceled~
+view_alert_definition_condition_editor_resource_configuration_tooltip=This condition is triggered when the resource configuration changes.~
+view_alert_definition_condition_editor_event_tooltip=Specify the event severity that an event message must be reported with in order to trigger this condition. If you specify an optional regular expression, the event message must also match that regular expression in order for the condition to trigger.~
+view_alert_definition_condition_editor_event_severity=Event Severity~
+view_alert_definition_condition_editor_event_severity_debug=Debug~
+view_alert_definition_condition_editor_event_severity_info=Info~
+view_alert_definition_condition_editor_event_severity_warn=Warn~
+view_alert_definition_condition_editor_event_severity_error=Error~
+view_alert_definition_condition_editor_event_severity_fatal=Fatal~
+view_alert_definition_condition_editor_event_regex=Regular Expression~
+view_alert_definition_condition_editor_event_regex_tooltip=If specified, this is a regular expression that must match a collected event message in order to trigger the condition.~
+view_alert_definition_condition_editor_common_min=Minimum
+view_alert_definition_condition_editor_common_avg=Durchschnitt
+view_alert_definition_condition_editor_common_max=Maximum
+view_alert_definition_notification_editor_title_add=Add Notification~
+view_alert_definition_notification_editor_title_edit=Edit Notification~
+view_alert_definition_notification_editor_sender=Notification Sender~
+view_alert_definition_notification_editor_none_available=No alert senders available~
+view_alert_definition_notification_editor_loadFailed=Cannot get alert senders~
+view_alert_definition_notification_editor_loadFailed_single=Cannot get alert sender configuration definition~
+view_alert_definition_notification_editor_saveFailed=Cannot save the notification configuration~
+view_alert_definition_notification_editor_field_sender=Sender~
+view_alert_definition_notification_editor_field_configuration=Configuration~
+view_alert_definition_notification_editor_field_configuration_not_loaded=Unknown~
+view_alert_definition_notification_editor_field_configuration_loadFailed=Failed to get notification configuration preview~
+view_alert_definition_notification_editor_delete_confirm=Are you sure you want to delete the selected alert notifications?~
+view_alert_definition_notification_operation_editor_mode_title=Resource Selection Mode~
+view_alert_definition_notification_operation_editor_mode_this=This Resource~
+view_alert_definition_notification_operation_editor_mode_specific=Specific Resource~
+view_alert_definition_notification_operation_editor_mode_relative=Relative Resource~
+view_alert_definition_notification_operation_editor_mode_unknown=UNKNOWN OPTION - THIS IS A BUG~
+view_alert_definition_notification_operation_editor_common_operation=Operation~
+view_alert_definition_notification_operation_editor_specific_resource=Resource~
+view_alert_definition_notification_operation_editor_specific_pick_button=Pick~
+view_alert_definition_notification_operation_editor_specific_pick_text=Pick a resource...~
+view_alert_definition_notification_operation_editor_specific_pick_error_invalid=Please pick a resource~
+view_alert_definition_notification_operation_editor_specific_pick_error_no_operation=Please pick a resource that has one or more operations~
+view_alert_definition_notification_operation_editor_relative_ancestor=Start Search From~
+view_alert_definition_notification_operation_editor_relative_ancestor_tooltip=Select the top of the type hierarchy from which to search its descedant tree for the Filter By type~
+view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed=Cannot get type ancestry~
+view_alert_definition_notification_operation_editor_relative_ancestor_root=Root Ancestor Type~
+view_alert_definition_notification_operation_editor_relative_descendant=Then Filter By~
+view_alert_definition_notification_operation_editor_relative_descendant_tooltip=The resource type to search for under the root type defined in the Start Search From selection.~
+view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip=A specific name to uniquely identify a resource when more than one resource of the selected type might exist. This is optional if there will only ever be one resource of the resource type in the selected type hierarchy.~
+view_alert_definition_notification_operation_editor_relative_descendant_loadFailed=Cannot get type descendants~
+view_alert_definition_notification_operation_editor_operations_loadFailed=Failed to load the list of available operations~
+view_alert_definition_notification_operation_editor_operations_no_parameters=This operation does not take any parameters~
+view_alert_definition_notification_role_editor_loadFailed=Cannot determine current roles - starting empty~
+view_alert_definition_notification_role_editor_restoreFailed=Cannot use current roles - starting empty~
+view_alert_definition_notification_role_editor_saveFailed=Cannot save the selected roles~
+view_alert_definition_notification_user_editor_loadFailed=Cannot determine current users - starting empty~
+view_alert_definition_notification_user_editor_restoreFailed=Cannot use current users - starting empty~
+view_alert_definition_notification_user_editor_saveFailed=Cannot save the selected users~
+view_alert_definition_recovery_editor_disable_when_fired=Disable When Fired~
+view_alert_definition_recovery_editor_disable_when_fired_tooltip=Indicates if this alert will be disabled after it fires. Once disabled, the alert can be manually re-enabled or a recovery alert can be set up to automatically re-enable it. If this alert is a recovery alert itself, this setting cannot be turned on.~
+view_alert_definition_recovery_editor_recovery_alert=Recover Alert~
+view_alert_definition_recovery_editor_recovery_alert_tooltip=The target alert that will be recovered (i.e. re-enabled) after this alert triggers. Do not select an alert here if you are not defining a recovery alert.~
+view_alert_definition_recovery_editor_loadFailed=Cannot build recovery menu~
+view_alert_definition_recovery_editor_none_available=None~
+view_alert_common_tab_general=General Properties~
+view_alert_common_tab_conditions=Conditions~
+view_alert_common_tab_conditions_modal_title=Add Condition~
+view_alert_common_tab_conditions_expression=Fire alert when~
+view_alert_common_tab_conditions_expression_tooltip=Determines if ANY or ALL of the conditions must evaluate to true in order for the entire condition set to be considered true.~
+view_alert_common_tab_conditions_text=Condition~
+view_alert_common_tab_conditions_value=Value~
+view_alert_common_tab_conditions_type_availability=Availability Change~
+view_alert_common_tab_conditions_type_availability_down=Went down~
+view_alert_common_tab_conditions_type_availability_up=Came up~
+view_alert_common_tab_conditions_type_metric_threshold=Metric Value Exceeds Threshold~
+view_alert_common_tab_conditions_type_metric_calltime_threshold=Call Time Value Exceeds Threshold~
+view_alert_common_tab_conditions_type_metric_calltime_destination=with call destination matching~
+view_alert_common_tab_conditions_type_metric_calltime_change=Call Time Value Changes~
+view_alert_common_tab_conditions_type_metric_calltime_change_verb=by at least~
+view_alert_common_tab_conditions_type_metric_calltime_delta_grows=Grows~
+view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks=Shrinks~
+view_alert_common_tab_conditions_type_metric_calltime_delta_other=Changes~
+view_alert_common_tab_conditions_type_metric_baseline=Metric Value Exceeds Baseline~
+view_alert_common_tab_conditions_type_metric_baseline_verb=of~
+view_alert_common_tab_conditions_type_metric_change=Metric Value Change~
+view_alert_common_tab_conditions_type_metric_trait_change=Trait Change~
+view_alert_common_tab_conditions_type_operation=Operation Execution~
+view_alert_common_tab_conditions_type_operation_status=with result status~
+view_alert_common_tab_conditions_type_resource_configuration=Resource Configuration Change~
+view_alert_common_tab_conditions_type_event=Event Detection~
+view_alert_common_tab_conditions_type_event_matching=with event source matching~
+view_alert_common_tab_conditions_recovery_enabled=Triggered ''{0}'' to be re-enabled~
+view_alert_common_tab_conditions_recovery_disabled=This alert caused its alert definition to be disabled~
+view_alert_common_tab_notifications=Notifications~
+view_alert_common_tab_notifications_sender=Sender~
+view_alert_common_tab_notifications_status=Status
+view_alert_common_tab_notifications_message=Nachricht
+view_alert_common_tab_notifications_all_emails=Alle E-Mmails
+view_alert_common_tab_notifications_bad_emails=Bad Emails~
+view_alert_common_tab_dampening=Dampening~
+view_alert_common_tab_dampening_category_none=Keine
+view_alert_common_tab_dampening_category_none_tooltip=Dampening is disabled. Every time the condition set is true, an alert will be triggered.~
+view_alert_common_tab_dampening_category_consecutive_count=Consecutive~
+view_alert_common_tab_dampening_category_consecutive_count_tooltip=An alert is triggered once every X occurrences the condition set is true consecutively.~
+view_alert_common_tab_dampening_category_partial_count=Last N Evaluations~
+view_alert_common_tab_dampening_category_partial_count_tooltip=An alert is triggered once every X occurrences the condition set is true during the last N evaluations of the condition set.~
+view_alert_common_tab_dampening_category_duration_count=Time Period~
+view_alert_common_tab_dampening_category_duration_count_tooltip=An alert is triggered once every X occurrences the condition set is true within a given time period.~
+view_alert_common_tab_dampening_consecutive_occurrences_label=Occurrences~
+view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip=The number of times the condition set must be consecutively true before the alert is triggered~
+view_alert_common_tab_dampening_partial_occurrences_label=Occurrences~
+view_alert_common_tab_dampening_partial_occurrences_label_tooltip=The number of times the condition set must be true during the last N evaluations before the alert is triggered.~
+view_alert_common_tab_dampening_partial_evalatuions_label=Evaluations~
+view_alert_common_tab_dampening_partial_evalatuions_label_tooltip=The total number of times the condition set will be tested to see if the given number of occurrences are true.~
+view_alert_common_tab_dampening_duration_occurrences_label=Occurrences~
+view_alert_common_tab_dampening_duration_occurrences_label_tooltip=The number of times the condition set must be true during the given time period before the alert is triggered.~
+view_alert_common_tab_dampening_duration_period_label=Time Period~
+view_alert_common_tab_dampening_duration_period_label_tooltip=The time span in which the condition set will be tested to see if the given number of occurrences are true.~
+view_alert_common_tab_recovery=Recovery~
+view_alert_common_tab_invalid_condition_category=Invalid condition category - please report this as a bug: {0}~
+view_alert_common_tab_invalid_dampening_category=Invalid dampening category - please report this as a bug: {0}~
+view_alert_common_tab_invalid_time_units=Invalid time units - please report this as a bug: {0}~
+
+# Auto Discovery Queue
+#----------------------------
+view_autoDiscoveryQ_title=Autodiscovery Queue~
+view_autoDiscoveryQ_import=Import~
+view_autoDiscoveryQ_ignore=Ignore~
+view_autoDiscoveryQ_ignored=Ignored~
+view_autoDiscoveryQ_unignore=Unignore~
+view_autoDiscoveryQ_new=Neu
+view_autoDiscoveryQ_newAndIgnored=Neu und Ignored~
+view_autoDiscoveryQ_importFailure=Failed to import resources~
+view_autoDiscoveryQ_importSuccessful=You have successfully imported the selected resources.~
+view_autoDiscoveryQ_ignoreFailure=Failed to ignore resources~
+view_autoDiscoveryQ_ignoreSuccessful=You have successfully ignored the selected resources.~
+view_autoDiscoveryQ_unignoreFailure=Failed to unignore resources~
+view_autoDiscoveryQ_unignoreSuccessful=You have successfully unignored the selected resources.~
+view_autoDiscoveryQ_noperm=(Required manage inventory permissions missing. See Administrator to change)~
+view_autoDiscoveryQ_noItems=No items to show~
+view_autoDiscoveryQ_field_parentId=Parent ID~
+view_autoDiscoveryQ_field_name=Resource Name~
+view_autoDiscoveryQ_field_key=Resource Key~
+view_autoDiscoveryQ_field_discoveryTime=Discovery Time~
+view_autoDiscoveryQ_field_inventoryStatus=Inventory Status~
+view_autoDiscoveryQ_loadFailure=Failed to load the inventory discovery queue~
+
+#==================== Bundles ======================
+
+# some common bundle terms
+view_bundle_bundle = Bundle~
+view_bundle_bundles = Bundles~
+view_bundle_bundleDestinations=Bundle Destinations~
+view_bundle_bundleDeployment=Bundle Deployment~
+view_bundle_bundleDeployments=Bundle Deployments~
+view_bundle_bundleFiles=Bundle Files~
+view_bundle_bundleType=Bundle Type~
+view_bundle_bundleVersion=Bundle Version~
+view_bundle_bundleVersions=Bundle Versions~
+view_bundle_deploy=Deploy~
+view_bundle_deployed=Deployed~
+view_bundle_deployDir=Deploy Directory~
+view_bundle_deployments=Deployments~
+view_bundle_destinations=Destinations~
+view_bundle_files=Files~
+view_bundle_latestVersion=Latest Version~
+view_bundle_recipe=Recipe~
+view_bundle_revert=Revert~
+view_bundle_versions=Versions~
+
+# individual bundle views/wizards
+view_bundle_fileListView_fileSize=Dateigröße
+view_bundle_fileListView_loadFailure=Failed to load bundle file data~
+view_bundle_version_backToBundle=Back to Bundle~
+view_bundle_version_bundleVersionTagUpdateFailure=Failed to update bundle version tags~
+view_bundle_version_bundleVersionTagUpdateSuccessful=You have successfully updated the bundle version tags~
+view_bundle_version_loadFailure=Failed to load bundle version~
+view_bundle_tree_loadFailure=Failed to load bundle data~
+view_bundle_revertWizard_title=Bundle Revert~
+view_bundle_revertWizard_windowTitle=Bundle Revert Wizard~
+view_bundle_revertWizard_getInfoStep_name=Provide Revert Information~
+view_bundle_revertWizard_getInfoStep_revertDeployName=Revert Deploy Name~
+view_bundle_revertWizard_getInfoStep_revertDeployDesc=Revert Deploy Description~
+view_bundle_revertWizard_getInfoStep_revertDeployDescFull=[REVERT From]\\n{0}\\n\\n[REVERT To]\\n{1}~
+view_bundle_revertWizard_getInfoStep_cleanDeploy=Clean Deployment? (this will delete an old, existing deploy directory prior to starting the revert deployment)~
+view_bundle_revertWizard_getInfoStep_getNameFailure=Failed to get revert deployment name~
+view_bundle_revertWizard_confirmStep_name=Revert Deployment Confirmation~
+view_bundle_revertWizard_confirmStep_noLiveDeployment=No live deployment was found for the destination [{0}]~
+view_bundle_revertWizard_confirmStep_noPriorDeployment=The live deployment [{0}] cannot be reverted because there is no prior deployment for the destination [{1}]~
+view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment=Failed to find live deployment; cannot revert~
+view_bundle_revertWizard_confirmStep_liveDeployment=Live Deployment~
+view_bundle_revertWizard_confirmStep_prevDeployment=Previous Deployment~
+view_bundle_revertWizard_confirmStep_confirmation=Reverting Live Deployment to Previous Deployment. Click "Next" to continue...~
+view_bundle_revertWizard_revertStep_name=Deploy Bundle to Destination Platforms~
+view_bundle_revertWizard_revertStep_reverting=Reverting...~
+view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert deployment!~
+view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to revert the bundle deployment [{0}] from resource group [{1}]~
+view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert deployment!~
+view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
+view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
+view_bundle_list_versionsCount=Versions Count~
+view_bundle_list_destinationsCount=Destinations Count~
+view_bundle_list_loadWithLatestFailure=Failed to load bundle with the latest version data~
+view_bundleVersion_loadFailure=Failed to load bundle version data~
+view_bundle_list_backToAll=Back to All Bundles~
+view_bundle_list_tagUpdateFailure=Failed to update bundle tags~
+view_bundle_list_tagUpdateSuccessful=You have successfully updated the bundle tags~
+view_bundle_list_deleteConfirm=Are you sure you want to delete this bundle?~
+view_bundle_list_deleteFailure=Failed to delete the bundle [{0}]~
+view_bundle_list_deleteSuccessful=You successfully deleted the bundle named [{0}]~
+view_bundle_list_error1=Failed to load bundle to deploy [{0}]~
+view_bundle_list_error2=Failed to get a single bundle to deploy [{0}]~
+view_bundle_list_error3=Failed to load bundle~
+view_bundle_dest_group=Gruppe
+view_bundle_dest_created=Angelegt
+view_bundle_dest_deployDir=Deploy Directory~
+view_bundle_dest_lastDeployedVersion=Last Deployed Version~
+view_bundle_dest_lastDeploymentDate=Last Deployment Date~
+view_bundle_dest_lastDeploymentStatus=Last Deployment Status~
+view_bundle_dest_loadFailure=Failed to load bundle destinations~
+view_bundle_dest_loadFailureVersionInfo=Failed to load bundle destination deployed version information~
+view_bundle_dest_backToBundle=Back to Bundle~
+view_bundle_dest_tagUpdateFailure=Failed to update bundle destination tags~
+view_bundle_dest_tagUpdateSuccessful=You have successfully updated the bundle destination tags~
+view_bundle_resDeployDS_loadFailure=Failed to load bundle resource deployments~
+view_bundle_deploy_name=Deployment Name~
+view_bundle_deploy_time=Deployment Time~
+view_bundle_deploy_loadDeployFailure=Failed to load bundle deployments~
+view_bundle_deploy_action=Action~
+view_bundle_deploy_installDetails=Install Details~
+view_bundle_deploy_backButton=Back to Destination~
+view_bundle_deploy_tagUpdateFailure=Failed to update bundle deployment tags~
+view_bundle_deploy_tagUpdateSuccessful=You have successfully updated the bundle deployment tags~
+view_bundle_deploy_deploymentPlatforms=Deployment Platforms~
+view_bundle_deploy_selectARow=Select a row to show installation details~
+view_bundle_deploy_operatingSystem=Operating System~
+view_bundle_deploy_loadFailure=Failed to load bundle deployment~
+view_bundle_deploy_loadBundleFailure=Failed to find bundle~
+view_bundle_createWizard_title=Create Bundle~
+view_bundle_createWizard_windowTitle=Bundle Creation Wizard~
+view_bundle_createWizard_cancelSuccessful=Canceled the creation of bundle [{0}], version=[{1}]~
+view_bundle_createWizard_cancelFailure=Failed to fully cancel the creation of bundle [{0}], version=[{1}] - the bundle may still exist in the database~
+view_bundle_createWizard_noBundleTypesSupported=No bundle types are supported - you must deploy a valid plugin that supports bundle deployments~
+view_bundle_createWizard_noBundleTypesAvail=No bundle types are available~
+view_bundle_createWizard_loadBundleFileFailure=Cannot obtain bundle file information from server~
+view_bundle_createWizard_uploadInProgress=Upload is in progress... This can take several minutes for large files~
+view_bundle_createWizard_uploadStepName=Upload Bundle Files~
+view_bundle_createWizard_noAdditionalFilesNeeded=No additional files need to be uploaded for this bundle~
+view_bundle_createWizard_failedToUploadFile=Failed to upload bundle file~
+view_bundle_createWizard_failedToUploadDistroFile=Failed to upload bundle distribution file~
+view_bundle_createWizard_bundleDistro=Bundle Distribution~
+view_bundle_createWizard_youMustChooseOne=You must choose one option in order to create a bundle!
+view_bundle_createWizard_urlOption=URL
+view_bundle_createWizard_uploadOption=Upload~
+view_bundle_createWizard_recipeOption=Recipe~
+view_bundle_createWizard_uploadStepName=Provide a Bundle Distribution~
+view_bundle_createWizard_clickToUploadRecipe=Click to upload a recipe file~
+view_bundle_createWizard_createFailure=Failed to create the bundle~
+view_bundle_createWizard_createSuccessful=You have successfully created a bundle named [{0}] with a version of [{1}]~
+
+view_bundle_deployWizard_deploying = Deploying...~
+view_bundle_deployWizard_deployStep = Deploy Bundle to Destination Platforms~
+view_bundle_deployWizard_deploymentCreated = Created Deployment...~
+view_bundle_deployWizard_deploymentCreatedDetail = Created deployment [{0}] description [{1}]~
+view_bundle_deployWizard_destinationCreatedDetail = Created destination [{0}] description [{1}]~
+view_bundle_deployWizard_deploymentScheduled = Bundle Deployment Scheduled!~
+view_bundle_deployWizard_deploymentScheduledDetail = Scheduled bundle deployment [{0}] destination group [{1}]~
+view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel: {0}~
+view_bundle_deployWizard_error_2 = Failed to delete new destination on Cancel: {0}~
+view_bundle_deployWizard_error_3 = Failed to Schedule Deployment!~
+view_bundle_deployWizard_error_4 = Failed to schedule deployment: {0}~
+view_bundle_deployWizard_error_5 = Failed to Create Deployment!~
+view_bundle_deployWizard_error_6 = Failed to create deployment: {0}~
+view_bundle_deployWizard_error_7 = Failed to get deployment name.~
+view_bundle_deployWizard_error_8 = You must select a valid resource group from the drop down~
+view_bundle_deployWizard_error_9 = Failed to delete new destination in nextPage: [{0}]~
+view_bundle_deployWizard_error_10 = Failed to create destination, it may already exist. (Note, for an existing destination deploy from the Destination view)~
+view_bundle_deployWizard_error_11 = Failed to find defined deployments.~
+view_bundle_deployWizard_error_12 = Failed to find defined bundles.~
+view_bundle_deployWizard_getConfigStep = Set Deployment Configuration~
+view_bundle_deployWizard_getConfigSkip = No configuration needed for this bundle version.~
+view_bundle_deployWizard_getDestStep = New Destination~
+view_bundle_deployWizard_getDest_name = Destination Name~
+view_bundle_deployWizard_getDest_desc = Destination Description~
+view_bundle_deployWizard_getDest_deployDir = Root Deployment Directory (on destination platforms)~
+view_bundle_deployWizard_getInfoStep = Provide Deployment Information~
+view_bundle_deployWizard_getInfo_clean = Clean Deployment? (wipe deploy directory on destination platform)~
+view_bundle_deployWizard_getInfo_deploymentDesc = Deployment Description~
+view_bundle_deployWizard_getInfo_deploymentName = Deployment Name~
+view_bundle_deployWizard_getOptionsStep = Deploy Options~
+view_bundle_deployWizard_getOptions_deployLater = Deploy Later~
+view_bundle_deployWizard_getOptions_deployNow = Deploy Now~
+view_bundle_deployWizard_getOptions_deployTime = Deployment Time~
+view_bundle_deployWizard_selectBundleStep = Select Deployment Bundle~
+view_bundle_deployWizard_selectBundle_single = Select only a single bundle for deployment.~
+view_bundle_deployWizard_selectVersionStep = Select Deployment Bundle Version~
+view_bundle_deployWizard_selectVersion_latest = Latest Version [{0}]~
+view_bundle_deployWizard_selectVersion_live = Live Version [{0}]~
+view_bundle_deployWizard_selectVersion_select = Select Version from List:~
+view_bundle_deployWizard_title = Bundle Deployment Wizard~
+
+
+#=================== Components =====================
+
+view_configCompare_comparingConfigs = Comparing Configurations~
+view_configCompare_configCompare = Configuration Comparison~
+
+view_configEdit_addItem = Add Item to List~
+view_configEdit_confirm_1 = Are you sure you want to delete the selected properties from the set?~
+view_configEdit_confirm_2 = Are you sure you want to delete this row?~
+view_configEdit_confirm_3 = Are you sure you want to delete the [{0}] selected [{1}]?~
+view_configEdit_editRow = Edit Configuration Row~
+view_configEdit_enterPropName = Enter the name of the property to be added.~
+view_configEdit_error_1 = Configuration is not supported by this Resource.~
+view_configEdit_error_2 = Connection settings are not supported by this Resource.~
+view_configEdit_error_3 = Cannot add property named [{0}]. The property name is already used in the set.~
+view_configEdit_files = Dateien
+view_configEdit_hideAll= Alle verbergen
+view_configEdit_jumpToSection = Jump to Section~
+view_configEdit_msg_1 = Added property [{0}] to the set.~
+view_configEdit_msg_2 = Removed properties from the set.~
+view_configEdit_msg_3 = [{0} {1}] deleted from list.~
+view_configEdit_msg_4 = Item added to list.~
+view_configEdit_properties = Eigenschaften
+view_configEdit_tooltip_1 = Delete the selected items from the list.~
+view_configEdit_tooltip_2 = Add an item to the list.~
+
+view_groupConfigEdit_member = Member~
+view_groupConfigEdit_noListProps = List properties are not currently supported for group configurations.~
+view_groupConfigEdit_tooltip_1 = Member values differ - click icon to edit them.~
+view_groupConfigEdit_setAll = Set all values to:~
+view_groupConfigEdit_unset = Unset~
+view_groupConfigEdit_valsDiff = member values differ~
+view_groupConfigEdit_valsDiffForProp = Member Values for Property [{0}]~
+
+view_leftNav_unknownPage = Unknown page name [{0}] for section [{1}] - URL is invalid.~
+
+view_measure_nan = --keine Daten verfügbar--~
+view_measureRange_day = 1 Tag
+view_measureRange_days = {0} Tage
+view_measureRange_hour = 1 Stunde
+view_measureRange_hours = {0} Stunden
+view_measureRange_last = Letzte
+view_measureRange_minutes = {0} Minuten
+view_measureRange_range = Zeitraum
+view_measureRange_simple = Einfach...
+
+view_selector_assigned = Zugewiesen {0}
+view_selector_available = Verfügbar {0}
+
+view_subTab_error_disabled = Cannot select disabled subTab [{0}].~
+
+view_table_totalRows = Total Rows: {0} Selected: {1}~
+view_tableSection_backButton = Zurück zur Liste
+view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
+view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
+
+view_tags_tags = Tags
+view_tags_error_1 = Failed to load Tags~
+view_tags_title = Tags:~
+view_tags_tooltip_1 = Click to remove this Tag~
+view_tags_tooltip_2 = Click to edit Tags~
+view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
+
+# File Upload (various)
+view_upload_alreadyUploaded = File has already been uploaded~
+view_upload_bundleDistFile = Distribution File~
+view_upload_error_bundleDistFile = Error uploading Bundle Distribution File~
+view_upload_error_file = Error uploading file~
+view_upload_error_fileName = Error uploading file [{0}]~
+view_upload_error_fileName_2 = Error uploading file [{0}], check for invalid file path.~
+view_upload_error_packageVersionFile = Error uploading Package Version File~
+view_upload_error_results = Error uploading file, unexpected results: [{0}]~
+view_upload_inProgress = Can not submit, upload is currently in progress~
+view_upload_prompt_1 = [{0}] File to Upload~
+view_upload_prompt_2 = File to Upload~
+view_upload_tooltip_1 = Select a file to upload, then click Upload or Next~
+view_upload_tooltip_2 = File upload had previously failed~
+view_upload_success = File successfully uploaded~
+view_upload_upload = Upload~
+view_upload_uploadFile = UploadFile~
+
+# Group Create Wizard
+view_groupCreateWizard_membersStepName=Select Members~
+view_groupCreateWizard_createStepName=Group Settings~
+view_groupCreateWizard_createStep_recursive=Recursive~
+view_groupCreateWizard_title=Create Group~
+view_groupCreateWizard_windowTitle=Create Group~
+view_groupCreateWizard_createFailure=Failed to create the resource group~
+view_groupCreateWizard_createSuccessful_concise=You have created a new resource group. [<a href="{0}">View Group</a>]~
+view_groupCreateWizard_createSuccessful_full=You have created a new [{0}] resource group with the name [{1}] that contains [{2}] member resources~
+
+# Resource Type / Plugin View/Datasources
+view_type_resourceTypes=Resource Types~
+view_type_parentId=Parent ID~
+view_type_typeTreeLoadFailure=Failed to load resource type tree data~
+
+#=================== Dashboard =====================
+view_dashboard_favorites_error1=Failed to load favorite Resources.~
+view_dashboardManager_error=Failed to save dashboard to server~
+view_dashboardManager_saved=Saved dashboard {0} to server~
+view_dashboardManager_success=Saved dashboard~
+view_dashboardManager_deleted=Successfully deleted dashboard {0}~
+view_dashboards_title=Dashboard~
+view_dashboards_confirm1=Are you sure you want to delete~
+view_dashboardsManager_error1=Failed to add new dashboard~
+# // dup in common
+view_dashboardsManager_inventory_title=Inventory Summary~
+view_dashboardsManager_mashup_title=RHQ Neuigkeiten
+view_dashboardsManager_message_title=Wilkommen bei RHQ~
+view_dashboardsManager_message_title_details=<h1>Welcome to RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems management suite that provides extensible and integrated systems management for multiple products and platforms across a set of core features. The project is designed with layered modules that provide a flexible architecture for deployment. It delivers a core user interface that delivers audited and historical management across an entire enterprise. A Server/Agent architecture provides remote management and plugins implement all specific support for managed products.</p>\n <p>This default dashboard can be edited by clicking the (edit mode) button above.</p>~
+view_dashboardsManager_tagcloud_title=Tag Cloud~
+view_portlet_autodiscovery_config_platform_selection = Number of platforms to display~
+view_portlet_autodiscovery_help_msg = This portlet offers the ability to import newly discovered resources into the inventory for monitoring and management or to ignore them from further action.~
+view_portlet_autodiscovery_title = Discovery Queue~
+view_portlet_favoriteResources_msg=This portlet displays your favorite resources~
+view_portlet_favoriteResources_title=Favorite Resources~
+view_portlet_generic_help=Für dieses Portlet liegt keine Hilfe vor
+view_portlet_generic_unconfigured=No settings available for this portlet~
+view_portlet_graph_configure_resource_graph=The resource to graph~
+view_portlet_graph_configure_metricDefinition_graph=The metric definition id to graph~
+view_portlet_graph_configure_title=Graph Config~
+view_portlet_graph_configure_title_desc=Configuration of the graph portlet~
+view_portlet_graph_help_msg = This Portlet supports the graphing of a resource metric.~
+view_portlet_graph_help_title = Graph Portlet~
+view_portlet_graph_help_unconfigured=This graph is unconfigured, click the settings button to configure.~
+view_portlet_graph_title = Resource Graph~
+view_portlet_inventory_error1=Failed to retrieve inventory summary~
+view_portlet_mashup_config_title=MashupPorlet Configuration~
+view_portlet_mashup_config_title_desc=The configuration settings for the mashup portlet.~
+view_portlet_mashup_help=This portlet can include a web page via an HTTP request into an iframe on the dashboard.~
+view_portlet_mashup_unconfigured=Page address not yet configured, click the settings button to setup this portlet.~
+view_portlet_message_config_title=MessagePortlet Configuration~
+view_portlet_message_config_title_desc=The configuration settings for the message portlet.~
+view_portlet_message_help=This portlet can display an HTML message on the dashboard.~
+view_portlet_message_title=Message~
+view_portlet_message_unconfigured=Message not yet configured, click the settings button to setup this portlet.~
+view_portlet_operations_config_completed_maximum=Maximum number of Completed operations to display.~
+view_portlet_operations_config_completed_enable=Whether to enable completed operations results grouping for dashboard.~
+view_portlet_operations_config_scheduled_enable=Whether to enable scheduled operations results grouping for dashboard.~
+view_portlet_operations_config_scheduled_maximum=Maximum number of Scheduled operations to display.~
+view_portlet_operations_config_completed=completed operations~
+view_portlet_operations_config_show_last=show Last~
+view_portlet_operations_config_show_next=show Next~
+view_portlet_operations_config_title=OperationsPortlet Configuration~
+view_portlet_operations_config_title_desc=The configuration settings for the Operations portlet.~
+view_portlet_operations_disabled=(Results currently disabled. Change settings to enable results.~
+view_portlet_operations_help_msg=This portlet displays both operations that have occurred and are scheduled to occur.~
+view_portlet_platform_help_msg = This portlet displays information about platforms in inventory.~
+view_portlet_platform_platform_error_1 = Failed to load platform metrics~
+view_portlet_platform_title = Platforms Summary~
+view_portlet_platform_type_error_1 = Could not load type data~
+view_portlet_problem_resources_config_display_maximum=Maximum number of Problem resources to display.~
+view_portlet_problem_resources_config_display_range=Show problem resources going back this many hours.~
+view_portlet_problem_resources_config_display_range2 = From {0} to {1}~
+view_portlet_problem_resources_config_problem_label=problem resources on dashboard.~
+view_portlet_problem_resources_config_title=ProblemResourcesPortlet Configuration~
+view_portlet_problem_resources_config_title_desc=The configuration settings for the Problem resources portlet.~
+view_portlet_problem_resources_help=This portlet displays resources that have reported alerts or Down availability.~
+view_portlet_problem_resources_title=Has Alerts or Currently Unavailable~
+view_portlet_recentAlerts_config_members=Select Members~
+view_portlet_recentAlerts_config_priority_label = priority Alerts,~
+view_portlet_recentAlerts_config_when=within the past~
+view_portlet_recentAlerts_help_msg = Displays recent alerts fired on resources visible to the current user login.~
+# // dup in common
+view_portlet_recentAlerts_title = Recent Alerts~
+view_portlet_recentlyAdded_approved_platforms=recently approved platforms on dashboard.~
+view_portlet_recentlyAdded_error1=Failed to load recently added resources~
+view_portlet_recentlyAdded_help_msg=This portlet displays resources that have recently been imported into the inventory.~
+view_portlet_recentlyAdded_title =Recently Added Portlet~
+view_portlet_tagCloud_help=portlet displays the relative tag counts in the system visible to the current user.~
+view_portlet_tagCloud_title=TagCloud~
+
+
+#=================== Inventory =====================
+view_inventory_adq = Discovery Queue~
+view_inventory_sectionHelp = From this section, newly discovered Resources, inventoried Resources, and Groups can be viewed and managed.~
+view_inventory_cannotGetGlobalPerms = Could not determine global permissions - assuming none.~
+view_inventory_problemGroups=Problem Groups~
+view_inventory_collectionInterval=Collection Interval~
+view_inventory_mixed=gemischt
+view_inventory_downServers=Down Servers~
+view_inventory_groups = Gruppen
+view_inventory_allGroups = Alle Gruppen
+view_inventory_allResources = All Resources~
+view_inventory_platforms = Platformen
+view_inventory_servers = Server
+view_inventory_services = Dienste
+view_inventory_dynagroupDefs = Dynagroup Definitions~
+view_metric_traits=Traits~
+view_metric_viewTraitHistory=Value History for Trait [{0}]~
+view_inventory_eventHistory_groupEventHistory=Group Event History~
+view_inventory_eventHistory_resourceEventHistory=Resource Event History~
+view_inventory_eventHistory_sourceFilter=Source Filter~
+view_inventory_eventHistory_detailsFilter=Details Filter~
+view_inventory_eventHistory_severityFilter=Severity Filter~
+view_inventory_eventHistory_timestamp=Zeitunkt
+view_inventory_eventHistory_severity=Schwere
+view_inventory_eventHistory_details=Details
+view_inventory_eventHistory_sourceLocation=Source Location~
+view_inventory_eventHistory_deleteSuccessful=You have successfully deleted [{0}] events for [{1}]~
+view_inventory_eventHistory_deleteFailed=Failed to deleted selected events for [{0}]~
+view_inventory_eventHistory_purgeSuccessful=You have successfully purged [{0}] events for [{1}]~
+view_inventory_eventHistory_purgeFailed=Failed to purge events for [{0}]~
+view_inventory_eventDetails_loadFailed=An error occurred loading the event details~
+view_inventory_groups_resourceGroups=Ressource-Gruppen
+view_inventory_groups_children=Children~
+view_inventory_groups_descendants=Descendants~
+view_inventory_groups_deleteSuccessful=You have successfully deleted the selected resource groups~
+view_inventory_groups_deleteFailed=Failed to delete the selected resource groups~
+view_inventory_groups_loadFailed=Failed to load group composite data~
+view_inventory_resource_loadFailed=Resource with id [{0}] does not exist or is not accessible~
+view_inventory_resources_deleteConfirm=Are you sure you want to delete the selected resources?~
+view_inventory_resources_deleteSuccessful=You have successfully deleted the selected resources~
+view_inventory_resources_deleteFailed=Failed to delete the selected resources~
+view_inventory_resources_loadFailed=Failed to load resource composite data~
+view_inventory_resources_title=Member Resources~
+view_inventory_resources_title_children=Child Resources~
+view_inventory_resources_title_members=Member Resources~
+view_resource_monitor_availability_loadFailed=Failed to load availability history~
+view_resource_monitor_graphs_noneAvailable=No graphs available~
+view_resource_monitor_graphs_loadFailed=Failed to load graph data~
+view_resource_monitor_graphs_lookupFailed=Failed to find resource for graph~
+view_resource_monitor_graph_instructions=Point your mouse to a data point on the chart~
+view_resource_monitor_graph_live_tooltip=Click for a live graph of current values~
+view_resource_monitor_detailed_graph_label=Detailed Graph~
+view_resource_monitor_calltime_title=Call Time Data~
+view_resource_monitor_calltime_destination=Call Destination~
+view_resource_monitor_calltime_count=Anzahl
+view_resource_monitor_calltime_minimum=Minimum
+view_resource_monitor_calltime_average=Durchschnitt
+view_resource_monitor_calltime_maximum=Maximum
+view_resource_monitor_calltime_total=Gesamt
+view_resource_monitor_calltime_loadFailed=Could not load call time data~
+view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
+view_resource_monitor_calltime_editFailed=Call time data can not be edited~
+view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
+view_tree_common_loadFailed_generic=Failed to load data for tree~
+view_tree_common_loadFailed_root=Failed to load root for tree~
+view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
+view_tree_common_loadFailed_children=Failed to load children for node~
+view_tree_common_loadFailed_selection=Failed to select this node~
+view_tree_common_loadFailed_node=Failed to load data for this node~
+view_tree_common_loadFailed_create=Failed to create view for this node~
+view_tree_common_loadFailed_update=Failed to update view for this node~
+view_tree_common_contextMenu_type_name_label=Type: {0}
+view_tree_common_contextMenu_pluginConfiguration=Plugin Configuration~
+view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
+view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
+view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource Configuration~
+view_tree_common_contextMenu_operations=Operations~
+view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running operations~
+view_tree_common_contextMenu_measurements=Measurements~
+view_tree_common_contextMenu_addChartToDashboard=Add chart to dashboard [{0}]~
+view_tree_common_contextMenu_chart=Chart~
+view_tree_common_contextMenu_saveChartToDashboardSuccessful=You have saved dashboard [{0}]~
+view_tree_common_contextMenu_saveChartToDashboardFailure=Failed to save the dashboard~
+view_tree_common_contextMenu_loadFailed_dashboard=Failed to load user dashboards
+view_tree_common_contextMenu_loadFailed_manualAddChildren=Failed to load platform manual add children~
+view_tabs_common_summary=Zusammenfassung
+view_tabs_common_overview=Übersicht
+view_tabs_common_dashboard=Dashboard~
+view_tabs_common_timeline=Timeline~
+view_tabs_common_monitoring=Monitoring~
+view_tabs_common_graphs=Graphs~
+view_tabs_common_tables=Tabellen
+view_tabs_common_traits=Traits~
+view_tabs_common_availability=Verfügbarkeit
+view_tabs_common_schedules=Schedules~
+view_tabs_common_calltime=Calltime~
+view_tabs_common_inventory=Inventory~
+view_tabs_common_groups=Gruppen
+view_tabs_common_group_membership=Group Membership~
+view_tabs_common_members=Members~
+view_tabs_common_child_resources=Child Resources~
+view_tabs_common_child_history=Child History~
+view_tabs_common_connectionSettings=Connection Settings~
+view_tabs_common_connectionSettingsHistory=Connection Settings History~
+view_tabs_common_operations=Operations~
+view_tabs_common_history=History~
+view_tabs_common_scheduled=Scheduled~
+view_tabs_common_alerts=Alerts~
+view_tabs_common_definitions=Definitions~
+view_tabs_common_current=Current~
+view_tabs_common_events=Events~
+view_tabs_common_configuration=Configuration~
+view_tabs_common_content=Content~
+view_tabs_common_deployed=Deployed~
+view_tabs_common_new=Neu
+view_tabs_common_subscriptions=Subscriptions~
+view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
+view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
+view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
+view_titleBar_common_clickToRemoveFav=Click to remove this as a favorite~
+view_titleBar_common_clickToAddFav=Click to add this as a favorite~
+view_titleBar_common_removedFav=You have removed [{0}] as one of your favorites~
+view_titleBar_common_addedFav=You have added [{0}] as a favorite~
+view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your favorites~
+view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
+view_dynagroup_expressionSet=Expression Set~
+view_dynagroup_recalculationInterval=Recalculation Interval~
+view_dynagroup_lastCalculationTime=Last Calculation Time~
+view_dynagroup_nextCalculationTime=Next Calculation Time~
+view_dynagroup_definitionCreated=You have successfully created a group definition named [{0}]~
+view_dynagroup_definitionLoadFailure=Failed to load group definitions~
+view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
+view_dynagroup_saveSuccessful=You have successfully saved the group definition named [{0}]~
+view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
+view_dynagroup_singleSaveFailure=An error occurred - there should have been one created, but instead there were [{0}] created~
+view_dynagroup_saveAndRecalculate=Save & Recalculate~
+view_dynagroup_recalculate=Recalculate~
+view_dynagroup_recalcSuccessful=You have successfully recalculated this group definition~
+view_dynagroup_recalcFailure=Failed to recalculated this group definition~
+view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group definitions~
+view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group definitions~
+view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group definitions~
+view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
+view_dynagroup_children=DynaGroup Children~
+view_dynagroup_newGroupDefinition=New Group Definition~
+view_dynagroup_editing=Editing [{0}]~
+view_dynagroup_expression=Ausdruck
+view_dynagroup_recursive=Recursive~
+view_dynagroup_loadDefinitionFailure=Failed to load group definition [{0}]~
+view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
+view_dynagroup_permUnknown=Could not determine if you have the proper permissions - access is denied~
+view_dynagroup_permDenied=You do not have permission to view group definitions~
+view_dynagroup_definitions=DynaGroup Definitions~
+view_group_membership_saveFailure=Failed to update membership of group [{0}]~
+view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
+view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
+view_group_resConfig_edit_noperm=You do not have permission to edit this group configuration~
+view_group_resConfig_edit_saveInitiated_concise=The group configuration updates have been initiated~
+view_group_resConfig_edit_saveInitiated_full=The group configuration updates have been initiated for the [{0}] compatible group named [{1}]~
+view_group_resConfig_edit_saveFailure=Failed to initiate group configuration update for [{0}] compatible group named [{1}]~
+view_group_resConfig_edit_valid=All configuration properties have valid values, so the configuration can now be saved~
+view_group_resConfig_edit_invalid=The following configuration properties have invalid values and must be corrected before the configuration can be saved: [{0}]~
+view_group_pluginConfig_view_noperm=You do not have permissions to see the connection settings~
+view_group_pluginConfig_view_groupProperties=Group Properties~
+view_group_pluginConfig_table_title=Group Connection Settings History~
+view_group_pluginConfig_table_statusDetails=Status Details~
+view_group_pluginConfig_table_viewSettings=View Settings~
+view_group_pluginConfig_table_viewMemberHistory=View Member History~
+view_group_pluginConfig_table_deleteSuccessful=You have deleted [{0}] history items~
+view_group_pluginConfig_table_deleteFailure=Failed to delete group plugin config history~
+view_group_pluginConfig_table_msg1=View Member History for status of each individual resource~
+view_group_pluginConfig_table_statusSuccess=This group configuration update was successful~
+view_group_pluginConfig_table_statusInprogress=This group configuration update is still in progress~
+view_group_pluginConfig_table_statusNochange=No changes were made to this group configuration~
+view_group_pluginConfig_table_statusFailure=This group configuration update failed~
+view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
+view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
+view_group_pluginConfig_members_statusDetails=Status Details~
+view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
+view_group_pluginConfig_members_statusInprogress=This configuration update is still in progress~
+view_group_pluginConfig_members_statusNochange=No changes were made to this configuration~
+view_group_pluginConfig_members_statusFailure=This configuration update failed for an unknown reason~
+view_group_pluginConfig_members_fetchFailure=Failed to get plugin config update history for members of group [{0}]~
+view_group_pluginConfig_edit_currentGroupProperties=Current Group Properties~
+view_group_pluginConfig_edit_saveTooltip=Update the connection settings of all group members~
+view_group_pluginConfig_edit_noperm=You do not have permission to edit this group connection settings~
+view_group_pluginConfig_edit_saveInitiated_concise=The group connection setting updates have been initiated~
+view_group_pluginConfig_edit_saveInitiated_full=The group connection setting updates have been initiated for the [{0}] compatible group named [{1}]~
+view_group_pluginConfig_edit_saveFailure=Failed to initiate group connection setting update for [{0}] compatible group named [{1}]~
+view_group_pluginConfig_edit_valid=All connection setting properties have valid values, so the connection settings can now be saved~
+view_group_pluginConfig_edit_invalid=The following connection setting properties have invalid values and must be corrected before the connection settings can be saved: [{0}]~
+view_group_meas_schedules_title=Group Metric Collection Schedules~
+view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with ID [{0}] - could not change from [{1}] to [{2}]~
+view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group with ID [{0}] from [{1}] to [{2}]~
+view_group_summary_memberType=Member Type~
+view_group_summary_memberCount=Member Count~
+view_group_summary_dynamic=Dynamic~
+view_group_summary_recursive=Recursive~
+view_group_summary_groupDefinition=Group Definition~
+view_group_summary_mixed=Gemischt
+view_group_summary_descUpdateFailure=Failed to change the description of the resource group with ID [{0}]~
+view_group_summary_descUpdateSuccessful=You have changed the description of this resource group~
+view_group_summary_dynamicNote=Dynamic group names and descriptions are managed, and therefore are not editable~
+
+# Connection Settings Details
+#------------------------------------------
+view_connectionSettingsDetails_noPermission = You do not have permission to edit this Resource''s connection settings.~
+view_connectionSettingsDetails_error_updateFailure = Failed to update connection settings.~
+view_connectionSettingsDetails_messageConcise_updateSuccess = Connection settings updated.~
+view_connectionSettingsDetails_messageDetailed_updateSuccess = Connection settings updated for Resource [{0}].~
+view_connectionSettingsDetails_allPropertiesValid = All connection settings have valid values, so the settings can now be saved.~
+view_connectionSettingsDetails_somePropertiesInvalid = The following connection settings have invalid values: {0}. The values must be corrected before the settings can be saved.~
+
+# Resource Resource Groups
+#-----------------------------------------
+view_resourceResourceGroupList_error_fetchFailure = Failed to fetch Resource''s groups.~
+view_resourceResourceGroupList_error_updateFailure = Failed to update assigned Resource groups.~
+view_resourceResourceGroupList_message_updateSuccess = Group membership updated for [{0}].
+
+# Configuration Details
+#-------------------------------
+view_configurationDetails_noPermission = You do not have permission to edit this Resource''s configuration.~
+view_configurationDetails_error_updateFailure = Failed to update configuration.~
+view_configurationDetails_messageConcise = Configuration updated.~
+view_configurationDetails_messageDetailed = Configuration updated for Resource [{0}].~
+view_configurationDetails_allPropertiesValid = All configuration properties have valid values, so the configuration can now be saved.~
+view_configurationDetails_somePropertiesInvalid = The following configuration properties have invalid values: {0}. The values must be corrected before the configuration can be saved.~
+
+# Configuration History List
+view_configurationHistoryList_title = Configuration History~
+view_configurationHistoryList_itemNamePlural = configuration history items
+
+# Configuration History Details
+#------------------------------------------
+view_configurationHistoryDetails_dialogTitle = Configuration Details~
+view_configurationHistoryDetails_error_loadFailure = Unable to load configuration history.~
+
+# Operation History List
+#---------------------------------
+view_operationHistoryList_title = Operation History~
+view_operationHistoryList_button_runOperation = Run Operation~
+
+# Operation History Details
+#--------------------------------------
+view_operationHistoryDetails_error_fetchFailure = Failure loading operation history.~
+
+# Operation Create Wizard
+#-------------------------------------
+view_operationCreateWizard_title = Operation Wizard~
+view_operationCreateWizard_header = Execute {0} on {1}~
+view_operationCreateWizard_button_execute = Execute~
+view_operationCreateWizard_button_executeImmediately = Sofort ausführen
+view_operationCreateWizard_error_scheduleOperationFailure = Failed to schedule operation execution.~
+view_operationCreateWizard_message_scheduleOperationSuccess = Schedule operation [{0}] on Resource [{1}] with cron string [{2}].~
+view_operationCreateWizard_parametersStep_name = Operation Parameters~
+view_operationCreateWizard_parametersStep_noParameters = This operation does not take any parameters.~
+view_operationCreateWizard_schedulingStep_name = Schedule~
+view_operationCreateWizard_schedulingStep_label_start = Start~
+view_operationCreateWizard_schedulingStep_label_schedule = Schedule~
+view_operationCreateWizard_schedulingStep_label_recurrence = Recurrence~
+view_operationCreateWizard_schedulingStep_label_runAt = Run At~
+view_operationCreateWizard_schedulingStep_label_nMinutes = n Minuten
+view_operationCreateWizard_schedulingStep_label_hourly = Stündlich
+view_operationCreateWizard_schedulingStep_label_daily = Täglich
+view_operationCreateWizard_schedulingStep_label_weekly = Wöchtentlich
+view_operationCreateWizard_schedulingStep_label_monthly = Monatlich
+view_operationCreateWizard_schedulingStep_label_timePeriod = Time Period~
+view_operationCreateWizard_schedulingStep_label_startDate = Start Date~
+view_operationCreateWizard_schedulingStep_label_recurrenceEnd = Recurrence End~
+view_operationCreateWizard_schedulingStep_label_endDate = End Date~
+view_operationCreateWizard_schedulingStep_label_willExecuteImmediately = Will execute immediately~
+view_operationCreateWizard_schedulingStep_label_onceAt = Einmalig um
+view_operationCreateWizard_schedulingStep_label_date = Datum
+view_operationCreateWizard_schedulingStep_label_time = Zeit
+view_operationCreateWizard_schedulingStep_label_everyNMinutes = Alle n Minuten
+view_operationCreateWizard_schedulingStep_label_minuteInterval = Minute Interval~
+view_operationCreateWizard_schedulingStep_label_hourlyAt = Hourly At~
+view_operationCreateWizard_schedulingStep_label_minuteOfHour = Minute of Hour~
+view_operationCreateWizard_schedulingStep_label_dailyAt = Stündlich um
+view_operationCreateWizard_schedulingStep_label_timeOfDay = Time of Day~
+view_operationCreateWizard_schedulingStep_label_weeklyOn = Wöchentlich am
+view_operationCreateWizard_schedulingStep_label_dayOfWeek = Wochentag
+view_operationCreateWizard_schedulingStep_label_monthlyOn = Monatlich am
+view_operationCreateWizard_schedulingStep_label_dayOfMonth = Day of Month~
+
+# Summary Overview
+#-----------------------------
+view_summaryOverview_header_detectedErrors = Detected Errors~
+view_summaryOverview_tooltip_detectedErrors = Click on the rows to see the error details.~
+view_summaryOverview_title_errorDetailsWindow = Error Details~
+
+# Summary Overview Form
+#-------------------------------------
+view_summaryOverviewForm_field_type = Typ
+view_summaryOverviewForm_field_name = Name
+view_summaryOverviewForm_field_description = Beschreibung
+view_summaryOverviewForm_field_location = Ort
+view_summaryOverviewForm_field_version = Version~
+view_summaryOverviewForm_field_parent = Parent~
+view_summaryOverviewForm_error_traitsLoadFailure = Failed to load traits for {0}.~
+view_summaryOverviewForm_label_plugin = Plugin:
+view_summaryOverviewForm_label_type = Typ:
+view_summaryOverviewForm_header_summary = Zusammenfassung
+view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_nameChangeSuccess = "Name of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_descriptionChangeSuccess = "Description of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource with id {0} was changed from [{1}] to [{2}].~
+
+
+#==================== Reports ======================
+
+view_reportsTop_title = Reports~
+view_reportsTop_description = This section provides access to global reports.~
+view_reports_platforms = Cpu- und Speicherauslastung
+view_reports_subsystems = Subsysteme
+
+view_measurementOob_title = Suspect Metrics~
+
+view_tagCloud_title = Tag Cloud~
+view_tagCloud_error_fetchFailure = Failed to load tags.~
+view_tagCloud_error_tagUsedCount = Tag used {0} times.~
+
+view_taggedResources_title = Tagged Resources~
+
+
+#===================== Test =======================
+view_testTop_title = Test
+view_testTop_description = This section contains pages for testing various GUI components.~
+
+#=================== Top Level =====================
+
+# About Box
+#----------
+view_aboutBox_allRightsReserved = All Rights Reserved.~
+view_aboutBox_buildNumber = Build-Nummer:
+view_aboutBox_failedToLoad = Kann die Produktinformation nicht laden
+view_aboutBox_homepage = Homepage~
+view_aboutBox_jbossByRedHat = JBoss by Red Hat~
+view_aboutBox_title = Über {0}
+view_aboutBox_version = Version:
+
+# CoreGUI
+#--------------
+view_core_error_1 = New Alerts lookup failed~
+view_core_loggedInAs = Eingeloggt als {0}
+view_core_loggedOut = Ausgeloggt
+view_core_recentAlerts = [{0}] recent alerts~
+view_core_uncaught = Globally uncaught exception~
+
+# Login
+#--------------
+view_login_invalidEmail = Ungültige E-Mail-Adresse
+view_login_login = Einloggen
+view_login_logout = Auslogen
+view_login_noBackend = The backend datasource is unavailable.~
+view_login_noLdap = Note: Optional retrieval of ldap details unsuccessful. Manual entry is required.~
+view_login_noUser = The username or password provided does not match our records.~
+view_login_prompt = Bitte loggen Sie sich ein
+view_login_registerLater = (Logout - Complete registration later.)~
+view_login_registerLdapSuccess = Succesfully registered the new LDAP User.~
+view_login_registerUser = Benutzer Anlegen
+view_login_welcome = Wilkommen
+view_login_welcomeMsg = Willkommen bei JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
+
+
+# Menu Bar
+#--------------
+view_menuBar_help = Hilfe
+view_menuBar_logout = Ausloggen
+
+# Search Bar, GUI
+#-----------------
+view_searchBar_resources = Ressourcen
+view_searchBar_resourceGroups = Resource Groups~
+# TODO: i18n pluralization
+view_searchBar_welcomeMessage = search for {0}s~
+view_searchBar_defaultPattern = name your pattern~
+view_searchBar_error_selectSavedSearch = ''Error selecting saved search''~
+view_searchBar_query = Query~
+
+view_searchGUI_loginStatus = Unable to determine login status, check server status~
+
+# Message Center
+#--------------------------
+view_messageCenter_button_messages = Nachrichten
+view_messageCenter_noRecentMessages = Keine aktuellen Nachrichten
+view_messageCenter_messageTitle = Nachrichtencenter
+view_messageCenter_messageSeverity = Schwere
+view_messageCenter_messageTime = Zeitpukt
+view_messageCenter_messageDetail = Detail
+
commit 3ca57ee53471e5aee41b60e46c22702ba38b5549
Merge: 943d060... bcfc55f...
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Nov 19 12:06:57 2010 -0500
Merge branch 'master' of ssh://spinder@git.fedorahosted.org/git/rhq/rhq into track-master
Conflicts:
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
diff --cc modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
index 3372b61,4402029..52a7f7d
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
@@@ -184,22 -180,10 +183,24 @@@ public class ResourceSearchView extend
}
}
});*/
+
+
}
+ // /** Defines the double click handler action for ResourceSearch. This means that on double
+ // * click a (Resource-relative) url, specifically Summary/Overview is what will happen
+ // * with this action. Override in subclasses to define alternate behavior.
+ // */
+ // protected void configureDoubleClickHandler() {
+ // //adding cell double click handler
+ // getListGrid().addCellDoubleClickHandler(new CellDoubleClickHandler() {
+ // @Override
+ // public void onCellDoubleClick(CellDoubleClickEvent event) {
+ // CoreGUI.goToView("Resource/" + event.getRecord().getAttribute("id") + "/Summary/Overview");
+ // }
+ // });
+ // }
+
public int getMatches() {
return this.getListGrid().getTotalRows();
}
commit 943d06059cb871e137e78e71965ea8a172f4eaae
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Nov 19 11:59:56 2010 -0500
Numerous fixes:
i)added pingAgentForResource to agentManagerBean
ii)i18n of new titles/strings
iii)descriptive link for Resource/plugin errors.
iv)moved ResourceErrors table from Inv/Summary to element in Resource title
v)added missing agentDetails to Summary/View
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AgentGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AgentGWTService.java
index fd08d80..7b55598 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AgentGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AgentGWTService.java
@@ -29,4 +29,6 @@ public interface AgentGWTService extends RemoteService {
Agent getAgentForResource(int resourceId);
+ Boolean pingAgentForResource(int resourceId);
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
index cfae5a7..cc93832 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
@@ -20,15 +20,20 @@ package org.rhq.enterprise.gui.coregui.client.inventory.resource.detail;
import java.util.HashSet;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Set;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.Img;
+import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.events.CloseClickHandler;
+import com.smartgwt.client.widgets.events.CloseClientEvent;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.form.fields.LinkItem;
@@ -40,6 +45,7 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.ResourceError;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.tagging.Tag;
import org.rhq.core.domain.util.PageList;
@@ -49,6 +55,8 @@ import org.rhq.enterprise.gui.coregui.client.components.tagging.TagEditorView;
import org.rhq.enterprise.gui.coregui.client.components.tagging.TagsChangedCallback;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.summary.OverviewForm;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.summary.ResourceErrorsDataSource;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.summary.ResourceErrorsView;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
@@ -65,6 +73,7 @@ public class ResourceTitleBar extends LocatableVLayout {
private LocatableHLayout top;
//represents normally closed region of Resource details[to verbosely describe resource across all tabs]
private LocatableHLayout details;
+ private static String COMPONENT_ERROR_COUNT_MSG = MSG.common_title_component_errors();
private static final String FAV_ICON = "Favorite_24_Selected.png";
private static final String NOT_FAV_ICON = "Favorite_24.png";
@@ -128,7 +137,8 @@ public class ResourceTitleBar extends LocatableVLayout {
GWTServiceLookup.getTagService().updateResourceTags(resource.getId(), tags,
new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to update resource tags", caught);
+ CoreGUI.getErrorHandler()
+ .handleError(MSG.view_resource_title_tagUpdateFailed(), caught);
}
public void onSuccess(Void result) {
@@ -144,33 +154,93 @@ public class ResourceTitleBar extends LocatableVLayout {
loadTags(tagEditorView);
+ //creating link to put in resource title bar
pluginErrors = new LinkItem("plugin-errors");
pluginErrors.setTitle("");
- pluginErrors.setLinkTitle("Component errors (0)");
- pluginErrors.setPrompt("Managed component errors exist. Click for details");
- // pluginErrors.addClickHandler(new ClickHandler() {
- // public void onClick(ClickEvent event) {
- // SC.say("Hello World");
- // }
- // });
+ pluginErrors.setLinkTitle(COMPONENT_ERROR_COUNT_MSG + " (0)");
+ GWTServiceLookup.getResourceService().findResourceErrors(resourceComposite.getResource().getId(),
+ new AsyncCallback<List<ResourceError>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(
+ MSG.dataSource_resourceErrors_error_fetchFailure(String.valueOf(resourceComposite.getResource()
+ .getId())), caught);
+ }
+
+ public void onSuccess(List<ResourceError> result) {
+ if (result.isEmpty()) {
+ pluginErrors.setLinkTitle(COMPONENT_ERROR_COUNT_MSG + " (" + result.size() + ")");
+ } else {
+ pluginErrors.setLinkTitle("<font color='red'>" + COMPONENT_ERROR_COUNT_MSG + " ("
+ + result.size() + ")</font>");
+ }
+ markForRedraw();
+ }
+ });
+
+ //define tool tip
+ pluginErrors.setPrompt(MSG.view_resource_title_component_errors_tooltip());
+
+ //define click action to pop open detailed view of Component plugin errors
+ pluginErrors.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
+ @Override
+ public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {
+ final Window winModal = new Window();
+ winModal.setWidth("70%");
+ winModal.setHeight("70%");
+ winModal.setTitle(MSG.common_title_component_errors() + ":");
+ winModal.setShowMinimizeButton(false);
+ winModal.setIsModal(true);
+ winModal.setShowModalMask(true);
+ winModal.setShowCloseButton(true);
+ winModal.centerInPage();
+ winModal.addCloseClickHandler(new CloseClickHandler() {
+ @Override
+ public void onCloseClick(CloseClientEvent event) {
+ winModal.destroy();
+ }
+ });
+
+ LocatableVLayout form = new LocatableVLayout(extendLocatorId("_Modal_Form"));
+ form.setAlign(VerticalAlignment.CENTER);
+ form.setLayoutMargin(20);
+ form.setWidth100();
+ form.setHeight("40%");
+ ResourceErrorsView errorsGrid = new ResourceErrorsView(extendLocatorId("errors"), MSG
+ .view_summaryOverview_header_detectedErrors(), null, null,
+ new String[] { ResourceErrorsDataSource.Field.DETAIL });
+ errorsGrid.setWidth100();
+ errorsGrid.setHeight("400");
+
+ Resource resource = resourceComposite.getResource();
+ ResourceErrorsDataSource errors = new ResourceErrorsDataSource(resource.getId());
+
+ errorsGrid.setShowFooter(false);
+ errorsGrid.setDataSource(errors);
+ form.addMember(errorsGrid);
+ winModal.addChild(form);
+
+ winModal.show();
+ }
+ });
//top information
top.addMember(badge);
top.addMember(title);
top.addMember(tagEditorView);
- DynamicForm wrap = new DynamicForm();
- wrap.setFields(pluginErrors);
- top.addMember(wrap);
+ DynamicForm wrappedPluginErrors = new DynamicForm();
+ wrappedPluginErrors.setFields(pluginErrors);
+ top.addMember(wrappedPluginErrors);
top.addMember(availabilityImage);
top.addMember(favoriteButton);
//detail information
//checkbox
final CheckboxItem displayMore = new CheckboxItem();
- final String moreDetails = "Show more...";
+ final String moreDetails = MSG.common_title_show_more();
displayMore.setName("resourceDetails");
displayMore.setTitle(moreDetails);
displayMore.setWidth(120);
+ //conditionally expand more details section.
displayMore.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
Boolean displayMoreDetails = (Boolean) event.getValue();
@@ -183,6 +253,7 @@ public class ResourceTitleBar extends LocatableVLayout {
}
});
+ //wrap checkbox for inclusion in details form.
LocatableDynamicForm wrappedCheckbox = new LocatableDynamicForm(extendLocatorId("Title_Bar_Checkbox"));
wrappedCheckbox.setFields(displayMore);
detailsForm = new LocatableHLayout(extendLocatorId("_Resource_Details"));
@@ -190,16 +261,19 @@ public class ResourceTitleBar extends LocatableVLayout {
detailsForm.setHeight(10);
detailsForm.setAlign(Alignment.LEFT);
detailsForm.addMember(wrappedCheckbox);
+
detailsFormSummary = new OverviewForm(extendLocatorId("Title_Optional_Summary"), resourceComposite);
detailsFormSummary.setWidth100();
detailsFormSummary.setPadding(0);
detailsFormSummary.setMargin(0);
detailsFormSummary.setLayoutAlign(Alignment.LEFT);
+
//condense details for display
detailsFormSummary.setHeaderEnabled(false);
detailsFormSummary.setDisplayCondensed(true);
detailsFormSummary.hide();
detailsForm.addMember(detailsFormSummary);
+
SpacerItem widthSpace = new SpacerItem();
widthSpace.setWidth(40);
DynamicForm wrappedSpacer = new DynamicForm();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
index 087e912..3f45d55 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
@@ -19,29 +19,19 @@
package org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.summary;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
-import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.smartgwt.client.types.Alignment;
-import com.smartgwt.client.widgets.HTMLPane;
-import com.smartgwt.client.widgets.IButton;
-import com.smartgwt.client.widgets.Img;
-import com.smartgwt.client.widgets.Window;
-import com.smartgwt.client.widgets.events.ClickEvent;
-import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.FormItemIcon;
import com.smartgwt.client.widgets.form.fields.HeaderItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
-import com.smartgwt.client.widgets.grid.ListGridRecord;
-import com.smartgwt.client.widgets.grid.events.CellClickEvent;
-import com.smartgwt.client.widgets.grid.events.CellClickHandler;
import org.rhq.core.domain.resource.Agent;
-import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.components.table.Table;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -53,79 +43,108 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
*/
public class OverviewView extends LocatableVLayout {
- private Table errorsGrid;
- private Img availabilityImage;
+ private StaticTextItem nameValue;
+ private StaticTextItem addressValue;
+ private StaticTextItem portValue;
+ private StaticTextItem agentStatus;
+ private FormItemIcon agentStatusIcon;
+ private StaticTextItem lastAvailReportValue;
+ private StaticTextItem endpointValue;
public OverviewView(String locatorId, ResourceComposite resourceComposite) {
super(locatorId);
OverviewForm form = new OverviewForm(extendLocatorId("form"), resourceComposite);
LocatableDynamicForm currentAgentInfo = new LocatableDynamicForm(extendLocatorId("Agent_Info"));
populateAgentInfo(resourceComposite.getResource().getId(), currentAgentInfo);
- errorsGrid = new Table(extendLocatorId("errors"), MSG.view_summaryOverview_header_detectedErrors(), null, null,
- new String[] { ResourceErrorsDataSource.Field.DETAIL });
+ HTMLFlow separator = new HTMLFlow();
+ separator.setContents("<hr>");
- Resource resource = resourceComposite.getResource();
- ResourceErrorsDataSource errors = new ResourceErrorsDataSource(resource.getId());
-
- errorsGrid.setShowFooter(false);
- errorsGrid.setDataSource(errors);
-
- // form.setHeight("*");
form.setHeight("200");
- errorsGrid.setHeight(200); //this should be just enough to fit the maximum of 3 rows in this table (there's at most 1 error per type)
+ currentAgentInfo.setHeight(200);
+ setLeft("10%");
addMember(form);
+ addMember(separator);
addMember(currentAgentInfo);
- addMember(errorsGrid);
}
private void populateAgentInfo(final int id, final LocatableDynamicForm currentAgentInfo) {
if (currentAgentInfo != null) {
setLeft("10%");
setWidth("80%");
- // currentAgentInfo.setBorder("1px dashed black");
final List<FormItem> formItems = new ArrayList<FormItem>();
- HeaderItem headerItem = new HeaderItem("header", "Agent Managing this Resource");
+ HeaderItem headerItem = new HeaderItem("header", MSG.view_inventory_summary_agent_title());
headerItem.setValue("Agent Managing this Resource");
formItems.add(headerItem);
//populate remaining details
GWTServiceLookup.getAgentService().getAgentForResource(id, new AsyncCallback<Agent>() {
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to locate agent managing resource id " + id + ".",
- caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_inventory_summary_agent_error1() + id + ".", caught);
}
@Override
public void onSuccess(Agent agent) {
- Log.debug("############ Debug: agent:" + agent);
//name
String name = "name";
- StaticTextItem nameValue = new StaticTextItem(name, "Name");
+ nameValue = new StaticTextItem(name, MSG.common_title_name());
nameValue.setValue(agent.getName());
formItems.add(nameValue);
//address
String address = "address";
- StaticTextItem addressValue = new StaticTextItem(address, "Address");
+ addressValue = new StaticTextItem(address, MSG.common_title_address());
addressValue.setValue(agent.getAddress());
formItems.add(addressValue);
//port
String port = "port";
- StaticTextItem portValue = new StaticTextItem(port, "Port");
+ portValue = new StaticTextItem(port, MSG.common_title_port());
portValue.setValue(agent.getPort());
formItems.add(portValue);
- // AgentClient client = agentManager.getAgentClient(agent);
- // pingResults = client.ping(5000L);
- //
- // pingResults = agent.ping(5000L);
- // //Agent Communiation status
- // availabilityImage.setSrc("resources/availability_"
- // + (resource.getCurrentAvailability().getAvailabilityType() == AvailabilityType.UP ? "green" : "red")
- // + "_24.png");
+ //agent-comm-status
+ String agentComStatus = "agent-comm-status";
+ agentStatusIcon = new FormItemIcon();
+ agentStatusIcon.setSrc("resources/availability_grey_24.png");
+ agentStatus = new StaticTextItem(agentComStatus, MSG.view_inventory_summary_agent_status_title());
+ agentStatus.setIcons(agentStatusIcon);
+ agentStatus.setWrapTitle(false);
+ formItems.add(agentStatus);
+ GWTServiceLookup.getAgentService().pingAgentForResource(id, new AsyncCallback<Boolean>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(MSG.view_inventory_summary_agent_error2() + id + ".",
+ caught);
+ }
+
+ @Override
+ public void onSuccess(Boolean result) {
+ //update icon with correct status
+ agentStatusIcon.setSrc("resources/availability_" + (result ? "green" : "red") + "_24.png");
+ currentAgentInfo.markForRedraw();
+ }
+ });
//Last Received Avail report
+ String lastAvailReport = "last-avail-report";
+ lastAvailReportValue = new StaticTextItem(lastAvailReport, MSG
+ .view_inventory_summary_agent_last_title());
+ lastAvailReportValue.setWrapTitle(false);
+ lastAvailReportValue.setValue(new Date(agent.getLastAvailabilityReport()));
+ formItems.add(lastAvailReportValue);
+
//Full Endpoint
+ String fullEndpoint = "full-endpoint";
+ endpointValue = new StaticTextItem(fullEndpoint, MSG.view_inventory_summary_agent_fullEnpoint());
+ String remoteEndpoint = agent.getRemoteEndpoint();
+ if (remoteEndpoint != null) {
+ // some browsers (firefox in particular) won't wrap unless you put breaks in the string
+ remoteEndpoint = remoteEndpoint.replaceAll("&", " &");
+ } else {
+ remoteEndpoint = MSG.view_inventory_summary_agent_fullEnpoint_err1();
+ }
+ endpointValue.setValue(remoteEndpoint);
+ formItems.add(endpointValue);
+
currentAgentInfo.setItems(formItems.toArray(new FormItem[formItems.size()]));
currentAgentInfo.markForRedraw();
}
@@ -139,46 +158,5 @@ public class OverviewView extends LocatableVLayout {
@Override
public void onInit() {
super.onInit();
- initErrorsGrid();
}
-
- private void initErrorsGrid() {
- errorsGrid.setTooltip(MSG.view_summaryOverview_tooltip_detectedErrors());
- errorsGrid.getListGrid().addCellClickHandler(new CellClickHandler() {
- public void onCellClick(CellClickEvent event) {
- ListGridRecord record = event.getRecord();
- final Window w = new Window();
- w.setTitle(MSG.view_summaryOverview_title_errorDetailsWindow());
- w.setIsModal(true);
- w.setShowMinimizeButton(false);
- w.setShowModalMask(true);
- w.setWidth(640);
- w.setHeight(480);
- w.centerInPage();
- w.setCanDragResize(true);
-
- LocatableVLayout layout = new LocatableVLayout(errorsGrid.extendLocatorId("dialogLayout"), 10);
- layout.setDefaultLayoutAlign(Alignment.CENTER);
- layout.setLayoutMargin(10);
-
- w.addItem(layout);
-
- HTMLPane details = new HTMLPane();
- details.setContents("<pre>" + record.getAttribute(ResourceErrorsDataSource.Field.DETAIL) + "</pre>");
- layout.addMember(details);
-
- IButton ok = new IButton(MSG.common_button_ok());
- ok.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent event) {
- w.destroy();
- }
- });
-
- layout.addMember(ok);
-
- w.show();
- }
- });
- }
-
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsDataSource.java
index 2943b8e..7b55f56 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsDataSource.java
@@ -66,10 +66,10 @@ public class ResourceErrorsDataSource extends RPCDataSource<ResourceError> {
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- fields.add(new DataSourceTextField(Field.SUMMARY, MSG.dataSource_resourceErrors_field_summary()));
- fields.add(new DataSourceTextField(Field.DETAIL, MSG.dataSource_resourceErrors_field_detail()));
fields.add(new DataSourceEnumField(Field.ERROR_TYPE, MSG.dataSource_resourceErrors_field_errorType()));
fields.add(new DataSourceDateTimeField(Field.TIME_OCCURED, MSG.dataSource_resourceErrors_field_timeOccured()));
+ fields.add(new DataSourceTextField(Field.SUMMARY, MSG.dataSource_resourceErrors_field_summary()));
+ fields.add(new DataSourceTextField(Field.DETAIL, MSG.dataSource_resourceErrors_field_detail()));
return fields;
}
@@ -82,8 +82,7 @@ public class ResourceErrorsDataSource extends RPCDataSource<ResourceError> {
resourceService.findResourceErrors(resourceId, new AsyncCallback<List<ResourceError>>() {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
- MSG.dataSource_resourceErrors_error_fetchFailure(String.valueOf(resourceId)),
- caught);
+ MSG.dataSource_resourceErrors_error_fetchFailure(String.valueOf(resourceId)), caught);
response.setStatus(RPCResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java
new file mode 100644
index 0000000..9bc40ff
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java
@@ -0,0 +1,23 @@
+package org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.summary;
+
+import com.smartgwt.client.data.Criteria;
+
+import org.rhq.enterprise.gui.coregui.client.components.table.Table;
+
+public class ResourceErrorsView extends Table {
+ public ResourceErrorsView(String locatorId, String string, Criteria criteria, Object object, String[] strings) {
+ super(locatorId, MSG.view_bundle_bundles(), criteria);
+ }
+
+ /** Set order and width of table display
+ */
+ @Override
+ protected void configureTable() {
+ getListGrid().getField(ResourceErrorsDataSource.Field.ERROR_TYPE).setWidth("10%");
+ getListGrid().getField(ResourceErrorsDataSource.Field.TIME_OCCURED).setWidth("10%");
+ getListGrid().getField(ResourceErrorsDataSource.Field.SUMMARY).setWidth("20%");
+ getListGrid().getField(ResourceErrorsDataSource.Field.DETAIL).setWidth("60%");
+ getListGrid().setWrapCells(true);
+ getListGrid().setCellHeight(100);
+ }
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AgentGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AgentGWTServiceImpl.java
index 75a51a2..80bc779 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AgentGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AgentGWTServiceImpl.java
@@ -37,7 +37,7 @@ public class AgentGWTServiceImpl extends AbstractGWTServiceImpl implements Agent
@Override
public Agent getAgentForResource(int resourceId) {
try {
- //TODO: this needs security that was not handled before. No AgentManagerRemote... ??
+ //security handled in AgentManagerBean. requires View_Resource.
return SerialUtility.prepare(agentManager.getAgentByResourceId(getSessionSubject(), resourceId),
"AgentService.getAgentForResource");
} catch (Exception e) {
@@ -45,6 +45,17 @@ public class AgentGWTServiceImpl extends AbstractGWTServiceImpl implements Agent
}
}
+ @Override
+ public Boolean pingAgentForResource(int resourceId) {
+ try {
+ //security handled in AgentManagerBean. requires View_Resource.
+ return SerialUtility.prepare(agentManager.pingAgentByResourceId(getSessionSubject(), resourceId),
+ "AgentService.pingAgentForResource");
+ } catch (Exception e) {
+ throw new RuntimeException(ThrowableUtil.getAllMessages(e));
+ }
+ }
+
// public PageList<Availability> findAvailabilityForResource(int resourceId, PageControl pc) {
// try {
// return SerialUtility.prepare(availabilityManager.findAvailabilityForResource(getSessionSubject(),
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
index 201fccf..79b7190 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
@@ -547,4 +547,26 @@ public class AgentManagerBean implements AgentManagerLocal {
Long backfilledCount = (Long) query.getSingleResult();
return backfilledCount != 0L;
}
+
+ @ExcludeDefaultInterceptors
+ public Boolean pingAgentByResourceId(Subject subject, int resourceId) {
+ Boolean pingResults = Boolean.FALSE;
+ Agent agent;
+
+ try {
+ //insert call to method doing logged in check and view resources perm check as method calld from GWT*Service
+ agent = getAgentByResourceId(subject, resourceId);
+
+ //now ping
+ AgentClient client = getAgentClient(agent);
+ pingResults = client.ping(5000L);
+
+ } catch (NoResultException e) {
+ log.debug("Failed to lookup agent for resource with ID of [" + resourceId + "] : " + e);
+ agent = null;
+ }
+
+ return pingResults;
+ }
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerLocal.java
index 4821b91..a5a0a3b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerLocal.java
@@ -278,4 +278,14 @@ public interface AgentManagerLocal {
*/
boolean isAgentBackfilled(int agentId);
+ /**
+ * Returns <code>true</code> indicating successful ping of agent. Exposed so server could
+ * initiate N requests so gwt clients wont face Single Origin Policy issues.
+ *
+ * @param agentId the id of the agent
+ *
+ * @return <code>true</code> if the agent was successfully pinged.
+ */
+ Boolean pingAgentByResourceId(Subject subject, int resourceId);
+
}
\ No newline at end of file
commit bcfc55f8b74f8884abcf4f3dd96b2c2dfe0ef0a7
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Nov 19 11:31:41 2010 -0500
A HiddenItem FormItem now requires that its value be set via
setDefaultValue() as opposed to setValue(). With the latter signature
your getString() (for example) will now return "". This had completely
broken our file upload mechanism (bundles, etc).
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java
index 73c3e2e..4957d90 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java
@@ -48,7 +48,7 @@ public class BundleFileUploadForm extends FileUploadForm {
List<FormItem> onDrawItems = super.getOnDrawItems();
HiddenItem bundleVersionIdField = new HiddenItem("bundleVersionId");
- bundleVersionIdField.setValue(this.bundleVersion.getId());
+ bundleVersionIdField.setDefaultValue(this.bundleVersion.getId());
onDrawItems.add(bundleVersionIdField);
return onDrawItems;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/FileUploadForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/FileUploadForm.java
index bf834d8..62aba36 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/FileUploadForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/FileUploadForm.java
@@ -163,15 +163,15 @@ public class FileUploadForm extends DynamicCallbackForm {
List<FormItem> onDrawItems = new ArrayList<FormItem>();
HiddenItem sessionIdField = new HiddenItem("sessionid");
- sessionIdField.setValue(UserSessionManager.getSessionSubject().getSessionId().intValue());
+ sessionIdField.setDefaultValue(UserSessionManager.getSessionSubject().getSessionId().intValue());
onDrawItems.add(sessionIdField);
HiddenItem nameField = new HiddenItem("name");
- nameField.setValue(this.name);
+ nameField.setDefaultValue(this.name);
onDrawItems.add(nameField);
HiddenItem versionField = new HiddenItem("version");
- versionField.setValue(version);
+ versionField.setDefaultValue(version);
onDrawItems.add(versionField);
fileUploadItem = new UploadItem("fileUploadItem", name);
@@ -264,7 +264,13 @@ public class FileUploadForm extends DynamicCallbackForm {
super.onDraw();
List<FormItem> onDrawItems = getOnDrawItems();
- setNumCols(onDrawItems.size());
+ int numCols = 0;
+ for (FormItem fi : onDrawItems) {
+ if (!(fi instanceof HiddenItem)) {
+ ++numCols;
+ }
+ }
+ setNumCols(numCols);
setItems(onDrawItems.toArray(new FormItem[onDrawItems.size()]));
// push the form handler so it executes first if the form creator has also added a handler
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/PackageVersionFileUploadForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/PackageVersionFileUploadForm.java
index 80019f2..bd41379 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/PackageVersionFileUploadForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/PackageVersionFileUploadForm.java
@@ -68,7 +68,7 @@ public class PackageVersionFileUploadForm extends FileUploadForm {
if (null != archId) {
HiddenItem archIdField = new HiddenItem("archId");
- archIdField.setValue(archId);
+ archIdField.setDefaultValue(archId);
onDrawItems.add(archIdField);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/TextFileRetrieverForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/TextFileRetrieverForm.java
index 93282ee..e91a4a2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/TextFileRetrieverForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/TextFileRetrieverForm.java
@@ -56,10 +56,10 @@ public class TextFileRetrieverForm extends DynamicCallbackForm {
// the "retrieve" indicates to FileUploadServlet to expect a single text file and return its contents
// in the response.
HiddenItem retrieveField = new HiddenItem("retrieve");
- retrieveField.setValue(true);
+ retrieveField.setDefaultValue(true);
HiddenItem sessionIdField = new HiddenItem("sessionid");
- sessionIdField.setValue(UserSessionManager.getSessionSubject().getSessionId().intValue());
+ sessionIdField.setDefaultValue(UserSessionManager.getSessionSubject().getSessionId().intValue());
setNumCols(4);
commit ff901b3e71021fd2dfb0021f08a825bd1c7d364a
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Nov 19 11:27:32 2010 -0500
i18n the table component
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 2da98c7..67e1b4b 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
@@ -87,8 +87,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableMenu;
* @author Greg Hinkle
* @author Ian Springer
*/
-public class Table<DS extends RPCDataSource> extends LocatableHLayout
- implements RefreshableView {
+public class Table<DS extends RPCDataSource> extends LocatableHLayout implements RefreshableView {
private static final String FIELD_ID = "id";
private static final String FIELD_NAME = "name";
@@ -326,8 +325,8 @@ public class Table<DS extends RPCDataSource> extends LocatableHLayout
public void onClick(ClickEvent clickEvent) {
if (tableAction.confirmMessage != null) {
- String message = tableAction.confirmMessage.replaceAll("\\#", String
- .valueOf(listGrid.getSelection().length));
+ String message = tableAction.confirmMessage.replaceAll("\\#", String.valueOf(listGrid
+ .getSelection().length));
SC.ask(message, new BooleanCallback() {
public void execute(Boolean confirmed) {
@@ -355,15 +354,14 @@ public class Table<DS extends RPCDataSource> extends LocatableHLayout
@Override
public void onClick(MenuItemClickEvent event) {
- tableAction.getAction()
- .executeAction(listGrid.getSelection(), menuEntries.get(key));
+ tableAction.getAction().executeAction(listGrid.getSelection(), menuEntries.get(key));
}
});
menu.addItem(item);
}
- IMenuButton menuButton = new LocatableIMenuButton(tableAction.getLocatorId(), tableAction
- .getTitle(), menu);
+ IMenuButton menuButton = new LocatableIMenuButton(tableAction.getLocatorId(), tableAction.getTitle(),
+ menu);
menuButton.setDisabled(true);
// this makes it pretty tight, but maybe better than the default, which is pretty wide
menuButton.setAutoFit(true);
@@ -381,7 +379,7 @@ public class Table<DS extends RPCDataSource> extends LocatableHLayout
footer.addMember(new LayoutSpacer());
if (isShowFooterRefresh()) {
- IButton refreshButton = new LocatableIButton(extendLocatorId("Refresh"), "Refresh");
+ IButton refreshButton = new LocatableIButton(extendLocatorId("Refresh"), MSG.common_button_refresh());
refreshButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
listGrid.invalidateCache();
@@ -666,7 +664,8 @@ public class Table<DS extends RPCDataSource> extends LocatableHLayout
}
}
if (getTableInfo() != null) {
- getTableInfo().setContents("Total: " + listGrid.getTotalRows() + " (" + count + " selected)");
+ getTableInfo().setContents(
+ MSG.view_table_totalRows(String.valueOf(listGrid.getTotalRows()), String.valueOf(count)));
}
}
}
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 4b8da61..a581a4e 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
@@ -956,7 +956,7 @@ view_selector_available = Available {0}~
view_subTab_error_disabled = Cannot select disabled subTab [{0}].~
-view_table_totalRows = Total Rows: {0} Selected: {1}~
+view_table_totalRows = Total Rows: {0} (selected: {1})~
view_tableSection_backButton = Back to List~
view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
commit a4a294c5485cb675e4c2509f9f5da176e016840a
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Nov 19 11:03:07 2010 -0500
the search button now uses the specific common_button_search msg
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
index 1bbeccf..6b6c703 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
@@ -109,7 +109,7 @@ public class SearchBarPane extends LocatableHLayout {
ComboBoxItem resourceSearch = getResourceComboBox();
ComboBoxItem groupSearch = getGroupComboBox();
- ButtonItem search = new ButtonItem("Search", MSG.common_title_search());
+ ButtonItem search = new ButtonItem("Search", MSG.common_button_search());
search.setStartRow(false);
search.setEndRow(false);
search.setShowTitle(false);
commit 5eb03936b555b871be983fc003eea62560000ef1
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Nov 19 10:56:29 2010 -0500
add common button search title
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 eca963e..4b8da61 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
@@ -37,6 +37,7 @@ common_button_purgeAll=Purge All~
common_button_refresh = "Refresh"~
common_button_reset = Reset~
common_button_save = Save~
+common_button_search = Search~
common_button_showDetails = Show Details...~
common_button_uninventory = Uninventory~
commit 6278322e792ae6a1b5d79defad29398eb72f80eb
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Nov 19 09:57:01 2010 -0500
i18n one more alerts file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemUsersNotificationSenderForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemUsersNotificationSenderForm.java
index 5343148..894965b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemUsersNotificationSenderForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemUsersNotificationSenderForm.java
@@ -79,13 +79,14 @@ public class SystemUsersNotificationSenderForm extends AbstractNotificationSende
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Cannot determine current users - starting empty",
- caught);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_user_editor_loadFailed(), caught);
createNewSelector(null);
}
});
} catch (Exception e) {
- CoreGUI.getErrorHandler().handleError("Cannot use current users - starting empty", e);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_user_editor_restoreFailed(), e);
createNewSelector(null);
}
} else {
@@ -111,7 +112,8 @@ public class SystemUsersNotificationSenderForm extends AbstractNotificationSende
getConfiguration().put(new PropertySimple(PROPNAME, newPropValue));
return true;
} catch (Exception e) {
- CoreGUI.getErrorHandler().handleError("Cannot save the selected users", e);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definition_notification_user_editor_saveFailed(),
+ e);
return false;
}
}
commit d141aa16209e1439ba578f882ea60b09365b355e
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Nov 18 22:13:33 2010 -0500
fix a number of bugs in the user and role datasources and views; fix bug in permissions manager; make id field in Role entity an int, rather than an Integer
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
index ef58302..8bde98d 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
@@ -95,7 +95,7 @@ public class Role implements Serializable {
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "RHQ_ROLE_ID_SEQ")
@Id
- private Integer id;
+ private int id;
@Column(name = "NAME", nullable = false)
private String name;
@@ -133,11 +133,11 @@ public class Role implements Serializable {
this.name = name;
}
- public Integer getId() {
+ public int getId() {
return this.id;
}
- public void setId(Integer id) {
+ public void setId(int id) {
this.id = id;
}
@@ -296,7 +296,7 @@ public class Role implements Serializable {
@Override
public String toString() {
- return "org.rhq.core.domain.authz.Role[id=" + id + ", name=" + name + "]";
+ return "Role[id=" + this.id + ", name=" + this.name + ", permissions=" + this.permissions + "]";
}
@Override
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 1030227..229fedc 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
@@ -63,6 +63,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
* @author Ian Springer
*/
public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
+
// This must come first to ensure proper I18N class loading for dev mode
private static final Messages MSG = GWT.create(Messages.class);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserPermissionsManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserPermissionsManager.java
index acbb575..c26a2f4 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserPermissionsManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserPermissionsManager.java
@@ -84,6 +84,10 @@ public class UserPermissionsManager {
}
}
+ public Set<Permission> getGlobalPermissions() {
+ return this.globalPermissions;
+ }
+
public void loadResourcePermissions(ResourceComposite currentResource,
PermissionsLoadedListener permissionsLoadedListener) {
if ((this.currentContext != Context.RESOURCE) || (this.currentId != currentResource.getResource().getId())) {
@@ -199,6 +203,7 @@ public class UserPermissionsManager {
private void notifyGlobalPermissionsLoadedListener() {
if (this.globalPermissionsLoadedListener != null) {
this.globalPermissionsLoadedListener.onPermissionsLoaded(this.globalPermissions);
+ this.globalPermissionsLoadedListener = null;
}
}
@@ -243,6 +248,7 @@ public class UserPermissionsManager {
private void notifyResourcePermissionsLoadedListener() {
if (this.resourcePermissionsLoadedListener != null) {
this.resourcePermissionsLoadedListener.onPermissionsLoaded(this.resourcePermissions);
+ this.resourcePermissionsLoadedListener = null;
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
index fd14c4c..6a8adab 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
@@ -130,11 +130,6 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
}
}
- protected Record createNewRecord() {
- Role newRole = new Role();
- return getDataSource().copyValues(newRole);
- }
-
@Override
protected void editRecord(Record record) {
// A user can always view their own assigned roles, but only users with MANAGE_SECURITY can view or update
@@ -246,14 +241,15 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
// Grab the currently assigned sets from each of the selectors and stick them into the corresponding canvas
// items on the form, so when the form is saved, they'll get submitted along with the rest of the simple fields
// to the datasource's add or update methods .
- ListGridRecord[] groupRecords = this.groupSelector.getAssignedGrid().getSelection();
+ // TODO: Uncomment and fix the below lines.
+ /*ListGridRecord[] groupRecords = this.groupSelector.getAssignedGrid().getRecords();
getForm().setValue(RolesDataSource.Field.RESOURCE_GROUPS, groupRecords);
- ListGridRecord[] subjectRecords = this.subjectSelector.getAssignedGrid().getSelection();
+ ListGridRecord[] subjectRecords = this.subjectSelector.getAssignedGrid().getRecords();
getForm().setValue(RolesDataSource.Field.SUBJECTS, subjectRecords);
- ListGridRecord[] ldapGroupRecords = this.ldapGroupSelector.getAssignedGrid().getSelection();
- getForm().setValue(RolesDataSource.Field.LDAP_GROUPS, ldapGroupRecords);
+ ListGridRecord[] ldapGroupRecords = this.ldapGroupSelector.getAssignedGrid().getRecords();
+ getForm().setValue(RolesDataSource.Field.LDAP_GROUPS, ldapGroupRecords);*/
// Submit the form values to the datasource.
super.save();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index ba5f6e9..2cc5520 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -66,6 +66,10 @@ public class RolesDataSource extends RPCDataSource<Role> {
public static final String LDAP_GROUPS = "ldapGroups";
}
+ public static abstract class CriteriaField {
+ public static final String SUBJECT_ID = "subjectId";
+ }
+
public static final int ID_SUPERUSER = 1;
public static final int ID_ALL_RESOURCES = 2;
@@ -102,11 +106,11 @@ public class RolesDataSource extends RPCDataSource<Role> {
idDataField.setCanEdit(false);
fields.add(idDataField);
- DataSourceTextField nameField = new DataSourceTextField(Field.NAME, MSG.common_title_name(), 100, true);
+ DataSourceTextField nameField = createTextField(Field.NAME, MSG.common_title_name(), 3, 100, true);
fields.add(nameField);
- DataSourceTextField descriptionField = new DataSourceTextField(Field.DESCRIPTION, MSG
- .common_title_description(), 100, false);
+ DataSourceTextField descriptionField = createTextField(Field.DESCRIPTION, MSG.common_title_description(), null,
+ 100, false);
fields.add(descriptionField);
DataSourceField resourceGroupsField = new DataSourceField(Field.RESOURCE_GROUPS, FieldType.ANY, "Resource Groups");
@@ -128,7 +132,6 @@ public class RolesDataSource extends RPCDataSource<Role> {
}
public void executeFetch(final DSRequest request, final DSResponse response) {
-
RoleCriteria criteria = getFetchCriteria(request);
roleService.findRolesByCriteria(criteria, new AsyncCallback<PageList<Role>>() {
@@ -267,8 +270,10 @@ public class RolesDataSource extends RPCDataSource<Role> {
criteria.setPageControl(getPageControl(request));
// Filtering
- criteria.addFilterId(getFilter(request, Field.ID, Integer.class));
- Integer subjectId = request.getCriteria().getAttributeAsInt("subjectId");
+ Integer id = getFilter(request, Field.ID, Integer.class);
+ criteria.addFilterId(id);
+
+ Integer subjectId = request.getCriteria().getAttributeAsInt(CriteriaField.SUBJECT_ID);
if (subjectId != null) {
criteria.addFilterSubjectId(subjectId);
}
@@ -282,4 +287,5 @@ public class RolesDataSource extends RPCDataSource<Role> {
return criteria;
}
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
index 4b40221..57b3dc8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
@@ -18,12 +18,16 @@
*/
package org.rhq.enterprise.gui.coregui.client.admin.roles;
+import java.util.Set;
+
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
+import org.rhq.core.domain.authz.Permission;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
-import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction;
+import org.rhq.enterprise.gui.coregui.client.PermissionsLoadedListener;
+import org.rhq.enterprise.gui.coregui.client.UserPermissionsManager;
import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
import org.rhq.enterprise.gui.coregui.client.components.table.TableSection;
import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
@@ -35,7 +39,8 @@ import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
* @author Greg Hinkle
* @author Ian Springer
*/
-public class RolesView extends TableSection implements BookmarkableView {
+public class RolesView extends TableSection<RolesDataSource> implements BookmarkableView {
+
public static final ViewName VIEW_ID = new ViewName("Roles", MSG.view_adminSecurity_roles());
// TODO: We need a 24x24 version of the Role icon.
@@ -82,7 +87,17 @@ public class RolesView extends TableSection implements BookmarkableView {
}
});
- addTableAction(extendLocatorId("New"), MSG.common_button_new(), new AbstractTableAction() {
+ addTableAction(extendLocatorId("New"), MSG.common_button_new(), new TableAction() {
+ private boolean[] hasManageSecurityPermission = new boolean[] {false};
+ public boolean isEnabled(ListGridRecord[] selection) {
+ UserPermissionsManager.getInstance().loadGlobalPermissions(new PermissionsLoadedListener() {
+ public void onPermissionsLoaded(Set<Permission> globalPermissions) {
+ hasManageSecurityPermission[0] = globalPermissions.contains(Permission.MANAGE_SECURITY);
+ }
+ });
+ return hasManageSecurityPermission[0];
+ }
+
public void executeAction(ListGridRecord[] selection, Object actionValue) {
newDetails();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/templates/TemplateSchedulesView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/templates/TemplateSchedulesView.java
index 71f2f49..015fc6d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/templates/TemplateSchedulesView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/templates/TemplateSchedulesView.java
@@ -47,9 +47,10 @@ public class TemplateSchedulesView extends AbstractMeasurementScheduleListView {
}
@Override
- protected void configureTable() {
+ protected void configureTable() {
super.configureTable();
- addExtraWidget(new UpdateExistingSchedulesWidget(this));
+
+ addExtraWidget(new UpdateExistingSchedulesWidget(this));
}
public boolean isUpdateExistingSchedules() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
index 2f99ddf..8d40e67 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
@@ -79,12 +79,6 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
});
}
- protected Record createNewRecord() {
- Subject newSubject = new Subject();
- newSubject.setFactive(true);
- return getDataSource().copyValues(newSubject, false);
- }
-
@Override
protected void editRecord(Record record) {
// Don't allow the rhqadmin account to be disabled.
@@ -117,6 +111,15 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
super.editRecord(record);
}
+ @Override
+ protected void editNewRecord() {
+ super.editNewRecord();
+
+ // Make sure the new user is enabled by default.
+ FormItem enabledField = getForm().getField(UsersDataSource.Field.FACTIVE);
+ enabledField.setValue(Boolean.TRUE.toString());
+ }
+
//
// In general, a user with MANAGE_SECURITY can update assigned roles, with two exceptions:
//
@@ -193,7 +196,7 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
@Override
protected void save() {
- ListGridRecord[] roleRecords = this.roleSelector.getAssignedGrid().getSelection();
+ ListGridRecord[] roleRecords = this.roleSelector.getAssignedGrid().getRecords();
getForm().setValue(UsersDataSource.Field.ROLES, roleRecords);
super.save();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
index c24ac5b..5f84ce5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
@@ -30,6 +30,7 @@ import com.smartgwt.client.data.Record;
import com.smartgwt.client.data.fields.DataSourceIntegerField;
import com.smartgwt.client.data.fields.DataSourcePasswordField;
import com.smartgwt.client.data.fields.DataSourceTextField;
+import com.smartgwt.client.types.FieldType;
import com.smartgwt.client.widgets.form.validator.LengthRangeValidator;
import com.smartgwt.client.widgets.form.validator.MatchesFieldValidator;
import com.smartgwt.client.widgets.form.validator.RegExpValidator;
@@ -153,6 +154,9 @@ public class UsersDataSource extends RPCDataSource<Subject> {
true);
fields.add(enabledField);
+ DataSourceField rolesField = new DataSourceField(Field.ROLES, FieldType.ANY, "Roles");
+ fields.add(rolesField);
+
return fields;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
index e6c73c5..57c1327 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
@@ -18,11 +18,20 @@
*/
package org.rhq.enterprise.gui.coregui.client.admin.users;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import com.smartgwt.client.data.Record;
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.authz.Permission;
+import org.rhq.enterprise.gui.coregui.client.UserPermissionsManager;
import org.rhq.enterprise.gui.coregui.client.admin.AdministrationView;
+import org.rhq.enterprise.gui.coregui.client.admin.roles.RolesDataSource;
import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction;
import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement;
@@ -30,13 +39,15 @@ import org.rhq.enterprise.gui.coregui.client.components.table.TableSection;
import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
/**
- * A table that lists all users and provides the ability to view details of or delete those users and to create new
- * users.
+ * A table that lists all users and provides the ability to view or edit details of users, delete users, or create new
+ * users. For the logged in user to view or edit a user other than themselves, they must possess the
+ * {@link Permission#MANAGE_SECURITY MANAGE_SECURITY} permission. Furthermore, a user without MANAGE_SECURITY cannot
+ * update their assigned roles.
*
* @author Greg Hinkle
* @author Ian Springer
*/
-public class UsersView extends TableSection {
+public class UsersView extends TableSection<UsersDataSource> {
public static final ViewName VIEW_ID = new ViewName("Users", MSG.view_adminSecurity_users());
public static final String VIEW_PATH = AdministrationView.VIEW_ID + "/"
@@ -55,52 +66,90 @@ public class UsersView extends TableSection {
@Override
protected void configureTable() {
- getListGrid().setUseAllDataSourceFields(false);
+ List<ListGridField> fields = createFields();
+ setListGridFields(fields.toArray(new ListGridField[fields.size()]));
+
+ addTableAction(extendLocatorId("Delete"), MSG.common_button_delete(), getDeleteConfirmMessage(),
+ createDeleteAction());
+ addTableAction(extendLocatorId("New"), MSG.common_button_new(), createNewAction());
+ }
+
+ private List<ListGridField> createFields() {
+ List<ListGridField> fields = new ArrayList<ListGridField>();
ListGridField nameField = new ListGridField(UsersDataSource.Field.NAME, 120);
+ fields.add(nameField);
ListGridField activeField = new ListGridField(UsersDataSource.Field.FACTIVE, 90);
+ fields.add(activeField);
ListGridField ldapField = new ListGridField(UsersDataSource.Field.LDAP, 90);
+ fields.add(ldapField);
ListGridField firstNameField = new ListGridField(UsersDataSource.Field.FIRST_NAME, 150);
+ fields.add(firstNameField);
ListGridField lastNameField = new ListGridField(UsersDataSource.Field.LAST_NAME, 150);
+ fields.add(lastNameField);
ListGridField departmentField = new ListGridField(UsersDataSource.Field.DEPARTMENT, 150);
+ fields.add(departmentField);
+
+ Set<Permission> globalPermissions = UserPermissionsManager.getInstance().getGlobalPermissions();
+ if (globalPermissions.contains(Permission.MANAGE_SECURITY)) {
+ ListGridField rolesField = new ListGridField(UsersDataSource.Field.ROLES, 250);
+ rolesField.setCellFormatter(new CellFormatter() {
+ public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
+ Record[] roleRecords = record.getAttributeAsRecordArray(UsersDataSource.Field.ROLES);
+ StringBuilder formattedValue = new StringBuilder();
+ for (int i = 0; i < roleRecords.length; i++) {
+ Record roleRecord = roleRecords[i];
+ String roleName = roleRecord.getAttribute(RolesDataSource.Field.NAME);
+ formattedValue.append(roleName);
+ if (i != (roleRecords.length - 1)) {
+ formattedValue.append(", ");
+ }
+ }
+ return formattedValue.toString();
+ }
+ });
+ fields.add(rolesField);
+ }
- setListGridFields(nameField, activeField, ldapField, firstNameField, lastNameField, departmentField);
+ return fields;
+ }
- // TODO: fix msg
- addTableAction(extendLocatorId("Delete"), MSG.common_button_delete(), getDeleteConfirmMessage(),
- new TableAction() {
- public boolean isEnabled(ListGridRecord[] selection) {
- int count = selection.length;
- if (count == 0) {
- return false;
- }
+ private TableAction createDeleteAction() {
+ return new TableAction() {
+ public boolean isEnabled(ListGridRecord[] selection) {
+ int count = selection.length;
+ if (count == 0) {
+ return false;
+ }
- for (ListGridRecord record : selection) {
- int id = record.getAttributeAsInt(UsersDataSource.Field.ID);
- if (id == UsersDataSource.ID_OVERLORD || id == UsersDataSource.ID_RHQADMIN) {
- // The superuser and rhqadmin users cannot be deleted.
- return false;
- }
+ for (ListGridRecord record : selection) {
+ int id = record.getAttributeAsInt(UsersDataSource.Field.ID);
+ if (id == UsersDataSource.ID_OVERLORD || id == UsersDataSource.ID_RHQADMIN) {
+ // The superuser and rhqadmin users cannot be deleted.
+ return false;
}
- return true;
}
+ return true;
+ }
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- deleteSelectedRecords();
- }
- });
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ deleteSelectedRecords();
+ }
+ };
+ }
- addTableAction(extendLocatorId("New"), MSG.common_button_new(), new AbstractTableAction(
+ private AbstractTableAction createNewAction() {
+ return new AbstractTableAction(
TableActionEnablement.ALWAYS) {
public void executeAction(ListGridRecord[] selection, Object actionValue) {
newDetails();
}
- });
+ };
}
public Canvas getDetailsView(int subjectId) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
index 6aacb23..9fd74a1 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
@@ -126,6 +126,8 @@ public class AlertHistoryView extends TableSection {
}
setupTableInteractions();
+
+
}
private void setupTableInteractions() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java
index f7870eb..491bff5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java
@@ -43,7 +43,7 @@ import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
*
* @author John Mazzitelli
*/
-public abstract class AbstractAlertDefinitionsView extends TableSection {
+public abstract class AbstractAlertDefinitionsView extends TableSection<AbstractAlertDefinitionsDataSource> {
public AbstractAlertDefinitionsView(String locatorId, String tableTitle) {
super(locatorId, tableTitle);
@@ -51,7 +51,6 @@ public abstract class AbstractAlertDefinitionsView extends TableSection {
@Override
protected void configureTable() {
-
ListGrid listGrid = getListGrid();
AbstractAlertDefinitionsDataSource ds = getAlertDefinitionDataSource();
@@ -98,6 +97,8 @@ public abstract class AbstractAlertDefinitionsView extends TableSection {
refresh();
}
});
+
+
}
@Override
@@ -123,10 +124,10 @@ public abstract class AbstractAlertDefinitionsView extends TableSection {
newAlertDef.setDeleted(false);
newAlertDef.setEnabled(true);
newAlertDef.setPriority(AlertPriority.MEDIUM);
- newAlertDef.setParentId(Integer.valueOf(0));
+ newAlertDef.setParentId(0);
newAlertDef.setConditionExpression(BooleanExpression.ANY);
newAlertDef.setWillRecover(false);
- newAlertDef.setRecoveryId(Integer.valueOf(0));
+ newAlertDef.setRecoveryId(0);
newAlertDef.setAlertDampening(new AlertDampening(AlertDampening.Category.NONE));
newAlertDef.setNotifyFiltered(false);
newAlertDef.setControlFiltered(false);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsEditor.java
index d1dfadb..aa6d838 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsEditor.java
@@ -86,63 +86,73 @@ public class ConditionsEditor extends LocatableVLayout {
protected void onInit() {
super.onInit();
- table = new Table(extendLocatorId("conditionsTable"));
- table.setShowHeader(false);
+ table = new ConditionsTable(extendLocatorId("conditionsTable"));
- final ConditionDataSource dataSource = new ConditionDataSource();
- table.setDataSource(dataSource);
+ addMember(table);
+ }
- table.addTableAction(this.extendLocatorId("add"), MSG.common_button_add(), null, new AbstractTableAction() {
- @Override
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- final Window winModal = new LocatableWindow(ConditionsEditor.this
- .extendLocatorId("newConditionEditorWindow"));
- winModal.setTitle(MSG.view_alert_common_tab_conditions_modal_title());
- winModal.setOverflow(Overflow.VISIBLE);
- winModal.setShowMinimizeButton(false);
- winModal.setIsModal(true);
- winModal.setShowModalMask(true);
- winModal.setAutoSize(true);
- winModal.setAutoCenter(true);
- //winModal.setShowResizer(true);
- //winModal.setCanDragResize(true);
- winModal.centerInPage();
- winModal.addCloseClickHandler(new CloseClickHandler() {
- @Override
- public void onCloseClick(CloseClientEvent event) {
- winModal.markForDestroy();
- }
- });
-
- NewConditionEditor newConditionEditor = new NewConditionEditor(extendLocatorId("newConditionEditor"),
- conditions, ConditionsEditor.this.resourceType, new Runnable() {
+ public void setEditable(boolean editable) {
+ table.setTableActionDisableOverride(!editable);
+ }
+
+ private class ConditionsTable extends Table<ConditionDataSource> {
+ private ConditionsTable(String locatorId) {
+ super(locatorId);
+
+ setShowHeader(false);
+
+ final ConditionDataSource dataSource = new ConditionDataSource();
+ setDataSource(dataSource);
+ }
+
+ @Override
+ protected void configureTable() {
+ addTableAction(this.extendLocatorId("add"), "Add", null, new AbstractTableAction() {
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ final Window winModal = new LocatableWindow(ConditionsEditor.this
+ .extendLocatorId("newConditionEditorWindow"));
+ winModal.setTitle(MSG.view_alert_common_tab_conditions_modal_title());
+ winModal.setOverflow(Overflow.VISIBLE);
+ winModal.setShowMinimizeButton(false);
+ winModal.setIsModal(true);
+ winModal.setShowModalMask(true);
+ winModal.setAutoSize(true);
+ winModal.setAutoCenter(true);
+ //winModal.setShowResizer(true);
+ //winModal.setCanDragResize(true);
+ winModal.centerInPage();
+ winModal.addCloseClickHandler(new CloseClickHandler() {
@Override
- public void run() {
+ public void onCloseClick(CloseClientEvent event) {
winModal.markForDestroy();
- table.refresh();
}
});
- winModal.addItem(newConditionEditor);
- winModal.show();
- }
+
+ NewConditionEditor newConditionEditor = new NewConditionEditor(extendLocatorId("newConditionEditor"),
+ conditions, ConditionsEditor.this.resourceType, new Runnable() {
+ @Override
+ public void run() {
+ winModal.markForDestroy();
+ refresh();
+ }
+ });
+ winModal.addItem(newConditionEditor);
+ winModal.show();
+ }
});
+
table.addTableAction(this.extendLocatorId("delete"), MSG.common_button_delete(), MSG
.view_alert_definitions_delete_confirm(), new AbstractTableAction(TableActionEnablement.ANY) {
- @Override
public void executeAction(ListGridRecord[] selection, Object actionValue) {
for (ListGridRecord record : selection) {
- AlertCondition cond = dataSource.copyValues(record);
+ AlertCondition cond = getDataSource().copyValues(record);
conditions.remove(cond);
}
- table.refresh();
+ refresh();
}
});
- addMember(table);
- }
-
- public void setEditable(boolean editable) {
- table.setTableActionDisableOverride(!editable);
+ }
}
private class ConditionDataSource extends RPCDataSource<AlertCondition> {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewNotificationEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewNotificationEditor.java
index c1eb705..c36e7c2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewNotificationEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewNotificationEditor.java
@@ -25,6 +25,7 @@ package org.rhq.enterprise.gui.coregui.client.alert.definitions;
import java.util.ArrayList;
import java.util.LinkedHashMap;
+import java.util.List;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Alignment;
@@ -53,7 +54,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
public class NewNotificationEditor extends LocatableDynamicForm {
private final AlertDefinition alertDefinition; // the definition we are adding the notification to
- private final ArrayList<AlertNotification> notifications; // if we are creating a new notification, it gets added to this list
+ private final List<AlertNotification> notifications; // if we are creating a new notification, it gets added to this list
private final AlertNotification notificationToEdit; // the notification that this editor is editing (may be null)
private final Runnable closeFunction; // this is called after a button is pressed and the editor should close
@@ -61,7 +62,7 @@ public class NewNotificationEditor extends LocatableDynamicForm {
private CanvasItem senderCanvasItem;
public NewNotificationEditor(String locatorId, AlertDefinition alertDefinition,
- ArrayList<AlertNotification> notifs, AlertNotification notifToEdit, Runnable closeFunc) {
+ List<AlertNotification> notifs, AlertNotification notifToEdit, Runnable closeFunc) {
super(locatorId);
this.alertDefinition = alertDefinition;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NotificationsAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NotificationsAlertDefinitionForm.java
index f72846d..d63159b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NotificationsAlertDefinitionForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NotificationsAlertDefinitionForm.java
@@ -62,7 +62,7 @@ public class NotificationsAlertDefinitionForm extends LocatableVLayout implement
private static final String FIELD_CONFIGURATION = "configuration";
private AlertDefinition alertDefinition;
- private ArrayList<AlertNotification> notifications;
+ private List<AlertNotification> notifications;
private boolean formBuilt = false;
@@ -233,7 +233,7 @@ public class NotificationsAlertDefinitionForm extends LocatableVLayout implement
}
}
- private class NotificationTable extends Table {
+ private class NotificationTable extends Table<NotificationDataSource> {
public NotificationTable(String locatorId) {
super(locatorId);
setShowHeader(false);
@@ -258,7 +258,7 @@ public class NotificationsAlertDefinitionForm extends LocatableVLayout implement
ListGrid listGrid = (ListGrid) event.getSource();
ListGridRecord[] selectedRows = listGrid.getSelection();
if (selectedRows != null && selectedRows.length == 1) {
- AlertNotification notif = ((NotificationDataSource) getDataSource())
+ AlertNotification notif = (getDataSource())
.copyValues(selectedRows[0]);
popupNotificationEditor(notif);
}
@@ -278,7 +278,7 @@ public class NotificationsAlertDefinitionForm extends LocatableVLayout implement
@Override
public void executeAction(ListGridRecord[] selection, Object actionValue) {
for (ListGridRecord record : selection) {
- AlertNotification notif = ((NotificationDataSource) getDataSource()).copyValues(record);
+ AlertNotification notif = (getDataSource()).copyValues(record);
notifications.remove(notif);
}
table.refresh();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
index d2d2b9c..93a55a1 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
@@ -45,7 +45,6 @@ public class BundleDeploymentListView extends Table {
@Override
protected void configureTable() {
-
getListGrid().getField("id").setWidth("60");
getListGrid().getField("name").setWidth("25%");
getListGrid().getField("name").setCellFormatter(new CellFormatter() {
@@ -77,5 +76,6 @@ public class BundleDeploymentListView extends Table {
status.setValueIconHeight(11);
status.setWidth(80);
+
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
index 82995f2..f4052f7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
@@ -75,5 +75,6 @@ public class BundleDestinationListView extends Table {
status.setValueIconHeight(11);
status.setWidth(80);
+
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
index ccc31a1..bbe68f2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
@@ -133,6 +133,8 @@ public class BundlesListView extends Table {
});
}
});
+
+
}
public int getMatches() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java
index 68fd97a..6e8f401 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionListView.java
@@ -49,7 +49,6 @@ public class BundleVersionListView extends Table {
@Override
protected void configureTable() {
-
getListGrid().getField("id").setWidth("60");
getListGrid().getField("name").setWidth("25%");
getListGrid().getField("name").setCellFormatter(new CellFormatter() {
@@ -66,5 +65,6 @@ public class BundleVersionListView extends Table {
getListGrid().setSelectionType(SelectionStyle.NONE);
getListGrid().setSelectionAppearance(SelectionAppearance.ROW_STYLE);
+
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
index f246c19..2bf795c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
@@ -22,6 +22,7 @@ package org.rhq.enterprise.gui.coregui.client.components.form;
import java.util.EnumSet;
import java.util.List;
+import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.user.client.History;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.data.DSCallback;
@@ -61,9 +62,12 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
implements BookmarkableView, DetailsView {
private static final Label LOADING_LABEL = new Label(MSG.widget_recordEditor_label_loading());
+
private static final String FIELD_ID = "id";
private static final String FIELD_NAME = "name";
+ private static final int ID_NEW = 0;
+
private int recordId;
private TitleBar titleBar;
private VLayout editCanvas;
@@ -92,6 +96,7 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
// Add title bar. We'll set the actual title later.
this.titleBar = new TitleBar(null, headerIcon);
+ this.titleBar.hide();
addMember(this.titleBar);
}
@@ -113,27 +118,34 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
* @param isReadOnly whether or not the record editor should be in read-only mode
*/
protected void init(boolean isReadOnly) {
- this.isReadOnly = isReadOnly;
- this.editCanvas = buildEditor();
- this.editCanvas.hide();
- addMember(this.editCanvas);
-
- if (this.recordId == 0) {
- editNewRecord();
+ if (this.recordId == ID_NEW && isReadOnly) {
+ Message message =
+ new Message("You do not have the permissions required to create a new " + this.dataTypeName + ".",
+ Message.Severity.Error);
+ CoreGUI.goToView(getListViewPath(), message);
} else {
- fetchExistingRecord(this.recordId);
+ this.isReadOnly = isReadOnly;
+ this.editCanvas = buildEditor();
+ this.editCanvas.hide();
+ addMember(this.editCanvas);
+
+ if (this.recordId == ID_NEW) {
+ editNewRecord();
+
+ // Now that all the widgets have been created and initialized, make everything visible.
+ displayForm();
+ } else {
+ fetchExistingRecord(this.recordId);
+ }
}
}
private VLayout buildEditor() {
VLayout editorVLayout = new VLayout();
- boolean isNewRecord = (this.recordId == 0);
+ boolean isNewRecord = (this.recordId == ID_NEW);
this.form = new EnhancedDynamicForm(this.getLocatorId(), this.isReadOnly, isNewRecord);
this.form.setDataSource(this.dataSource);
- if (!isNewRecord) {
- this.form.setInitialCriteria(new Criteria(FIELD_ID, String.valueOf(this.recordId)));
- }
List<FormItem> items = createFormItems(isNewRecord);
this.form.setItems(items.toArray(new FormItem[items.size()]));
@@ -238,6 +250,11 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
+ " cannot be saved until these values are corrected.", Message.Severity.Warning, EnumSet.of(
Message.Option.Sticky, Message.Option.Transient));
CoreGUI.getMessageCenter().notify(message);
+ } else {
+ Message message = new Message("All fields now have valid values. This " + this.dataTypeName
+ + " can now be saved.", Message.Severity.Info, EnumSet.of(Message.Option.Sticky,
+ Message.Option.Transient));
+ CoreGUI.getMessageCenter().notify(message);
}
}
}
@@ -252,16 +269,30 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
if (response.getStatus() == RPCResponse.STATUS_SUCCESS) {
Record[] data = response.getData();
Record record = data[0];
+
String id = record.getAttribute(FIELD_ID);
String name = record.getAttribute(getTitleFieldName());
+
Message message;
- DSOperationType operationType = request.getOperationType();
String conciseMessage;
String detailedMessage;
+ DSOperationType operationType = request.getOperationType();
+ if (Log.isDebugEnabled()) {
+ Object dataObject = dataSource.copyValues(record);
+ if (operationType == DSOperationType.ADD) {
+ Log.debug("Created: " + dataObject);
+ } else {
+ Log.debug("Updated: " + dataObject);
+ }
+ }
switch (operationType) {
case ADD:
conciseMessage = MSG.widget_recordEditor_info_recordCreatedConcise(dataTypeName);
detailedMessage = MSG.widget_recordEditor_info_recordCreatedDetailed(dataTypeName, name);
+ if (CoreGUI.isDebugMode()) {
+ conciseMessage += " (" + FIELD_ID + "=" + id + ")";
+ detailedMessage += " (" + FIELD_ID + "=" + id + ")";
+ }
break;
case UPDATE:
conciseMessage = MSG.widget_recordEditor_info_recordUpdatedConcise(dataTypeName);
@@ -271,50 +302,61 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
throw new IllegalStateException(
MSG.widget_recordEditor_error_unsupportedOperationType(operationType.name()));
}
- if (CoreGUI.isDebugMode()) {
- conciseMessage += " (" + FIELD_ID + "=" + id + ")";
- detailedMessage += " (" + FIELD_ID + "=" + id + ")";
- }
+
message = new Message(conciseMessage, detailedMessage);
CoreGUI.goToView(getListViewPath(), message);
+ } else if (response.getStatus() == RPCResponse.STATUS_VALIDATION_ERROR) {
+ Message message = new Message("Operation failed - one or more fields have invalid values.",
+ Message.Severity.Error);
+ CoreGUI.getMessageCenter().notify(message);
+ } else {
+ // assume failure
+ Message message = new Message("Operation failed - an error occurred.", Message.Severity.Error);
+ CoreGUI.getMessageCenter().notify(message);
}
}
});
}
@SuppressWarnings("unchecked")
- protected void editRecord(final Record record) {
+ protected void editRecord(Record record) {
+ // Update the view title.
+ String recordName = record.getAttribute(getTitleFieldName());
+ String title = (this.isReadOnly) ? MSG.widget_recordEditor_title_view(this.dataTypeName, recordName) :
+ MSG.widget_recordEditor_title_edit(this.dataTypeName, recordName);
+ this.titleBar.setTitle(title);
+
// Load the data into the form.
this.form.editRecord(record);
- // This tells form.saveData() to invoke executeUpdate() on the dataSource.
- this.form.setSaveOperationType(DSOperationType.UPDATE);
-
- // Now that all the widgets have been created and initialized, make everything visible.
- displayForm();
+ // Perform up front validation for existing records.
+ // NOTE: We do *not* do this for new records, since we expect most of the required fields to be blank.
+ this.form.validate();
}
- private void editNewRecord() {
+ protected void editNewRecord() {
+ // Update the view title.
this.titleBar.setTitle("New " + this.dataTypeName);
- Record record = createNewRecord();
- this.form.editRecord(record);
+ // Clear the form
+ this.form.editNewRecord();
- // This tells form.saveData() to invoke executeAdd() on the dataSource.
- this.form.setSaveOperationType(DSOperationType.ADD);
-
- // Now that all the widgets have been created and initialized, make everything visible.
- displayForm();
+ // But make sure the value of the "id" field is set to "0", since a value of null could cause the dataSource's
+ // copyValues(Record) impl to choke.
+ FormItem idItem = this.form.getItem(FIELD_ID);
+ if (idItem != null) {
+ idItem.setDefaultValue(ID_NEW);
+ idItem.hide();
+ }
}
private void displayForm() {
LOADING_LABEL.hide();
+ this.titleBar.show();
this.editCanvas.show();
markForRedraw();
}
- protected abstract Record createNewRecord();
-
protected void fetchExistingRecord(final int recordId) {
Criteria criteria = new Criteria();
criteria.addCriteria(FIELD_ID, recordId);
@@ -329,26 +371,15 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
throw new IllegalStateException(MSG.widget_recordEditor_error_multipleRecords());
}
Record record = records[0];
- onExistingRecordFetched(record);
+ editRecord(record);
+
+ // Now that all the widgets have been created and initialized, make everything visible.
+ displayForm();
}
}
});
}
- protected void onExistingRecordFetched(Record record) {
- editRecord(record);
-
-
- // Perform up front validation for existing records.
- // NOTE: We do *not* do this for new records, since we expect most of the required fields to be blank.
- this.form.validate();
-
- String recordName = record.getAttribute(getTitleFieldName());
- String title = (this.isReadOnly) ? MSG.widget_recordEditor_title_view(this.dataTypeName, recordName) :
- MSG.widget_recordEditor_title_edit(this.dataTypeName, recordName);
- this.titleBar.setTitle(title);
- }
-
protected String getTitleFieldName() {
return FIELD_NAME;
}
@@ -360,7 +391,7 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
protected static ListGridRecord[] toListGridRecordArray(Record[] roleRecords) {
ListGridRecord[] roleListGridRecords = new ListGridRecord[roleRecords.length];
- for (int i = 0, roleRecordsLength = roleRecords.length; i < roleRecordsLength; i++) {
+ for (int i = ID_NEW, roleRecordsLength = roleRecords.length; i < roleRecordsLength; i++) {
Record roleRecord = roleRecords[i];
roleListGridRecords[i] = (ListGridRecord)roleRecord;
}
@@ -368,7 +399,7 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
}
private static String capitalize(String itemTitle) {
- return Character.toUpperCase(itemTitle.charAt(0)) + itemTitle.substring(1);
+ return Character.toUpperCase(itemTitle.charAt(ID_NEW)) + itemTitle.substring(1);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
index b013f36..496d896 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
@@ -32,6 +32,7 @@ import com.smartgwt.client.widgets.form.FormItemIfFunction;
import com.smartgwt.client.widgets.form.fields.BooleanItem;
import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.form.fields.FormItemIcon;
+import com.smartgwt.client.widgets.form.fields.HiddenItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
import com.smartgwt.client.widgets.form.fields.events.BlurEvent;
import com.smartgwt.client.widgets.form.fields.events.BlurHandler;
@@ -56,6 +57,9 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
* @author Ian Springer
*/
public class EnhancedDynamicForm extends LocatableDynamicForm {
+
+ private static final String FIELD_ID = "id";
+
private boolean isReadOnly;
private boolean isNewRecord;
@@ -85,14 +89,12 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
setHiliteRequiredFields(true);
setRequiredTitleSuffix(" <span class='requiredFieldMarker'>*</span> :");
- // DataSource Settings
- setAutoFetchData(true);
+ // DataSource Settings
setUseAllDataSourceFields(false);
// Validation Settings
setValidateOnChange(!isNewRecord);
setStopOnError(false);
-
}
@Override
@@ -103,7 +105,7 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
List<String> togglableTextItemNames = new ArrayList<String>();
boolean hasIdField = false;
for (FormItem item : items) {
- if (item.getName().equals("id")) {
+ if (item.getName().equals(FIELD_ID)) {
hasIdField = true;
}
if (this.isReadOnly) {
@@ -199,9 +201,14 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
}
}
- if (!this.isNewRecord && !hasIdField && getDataSource() != null && getField("id") != null
- && CoreGUI.isDebugMode()) {
- StaticTextItem idItem = new StaticTextItem("id", MSG.common_title_id());
+ // If the dataSource has an "id" field, make sure the form does too.
+ if (!hasIdField && getDataSource() != null && getDataSource().getField(FIELD_ID) != null) {
+ FormItem idItem;
+ if (this.isNewRecord || !CoreGUI.isDebugMode()) {
+ idItem = new HiddenItem(FIELD_ID);
+ } else {
+ idItem = new StaticTextItem(FIELD_ID, MSG.common_title_id());
+ }
itemsList.add(0, idItem);
}
@@ -210,7 +217,7 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
item.setValidateOnChange(true);
}
- item.setWidth("*"); // this causes a JavaScript exception ... :-(
+ //item.setWidth("*"); // this causes a JavaScript exception ... :-(
item.setWidth(240);
}
@@ -238,4 +245,5 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
}
markForRedraw();
}
+
}
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 3c15857..2da98c7 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
@@ -82,10 +82,13 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableListGrid;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableMenu;
/**
+ * A tabular view of set of data records from an {@link RPCDataSource}.
+ *
* @author Greg Hinkle
* @author Ian Springer
*/
-public class Table extends LocatableHLayout implements RefreshableView {
+public class Table<DS extends RPCDataSource> extends LocatableHLayout
+ implements RefreshableView {
private static final String FIELD_ID = "id";
private static final String FIELD_NAME = "name";
@@ -114,12 +117,13 @@ public class Table extends LocatableHLayout implements RefreshableView {
private boolean autoFetchData;
private boolean flexRowDisplay = true;
- private RPCDataSource dataSource;
+ private DS dataSource;
private DoubleClickHandler doubleClickHandler;
private List<TableActionInfo> tableActions = new ArrayList<TableActionInfo>();
private boolean tableActionDisableOverride = false;
protected List<Canvas> extraWidgets = new ArrayList<Canvas>();
+ private ToolStrip footer;
public Table(String locatorId) {
this(locatorId, null, null, null, null, true);
@@ -232,17 +236,13 @@ public class Table extends LocatableHLayout implements RefreshableView {
}
// Title
- title = new HTMLFlow();
- setTableTitle(tableTitle);
+ this.title = new HTMLFlow();
+ setTableTitle(this.tableTitle);
if (showHeader) {
titleLayout = new HLayout();
titleLayout.setAutoHeight();
titleLayout.setAlign(VerticalAlignment.BOTTOM);
- }
-
- // Add components to the view
- if (showHeader) {
contents.addMember(titleLayout, 0);
}
@@ -253,7 +253,7 @@ public class Table extends LocatableHLayout implements RefreshableView {
contents.addMember(listGrid);
// Footer
- ToolStrip footer = new ToolStrip();
+ this.footer = new ToolStrip();
footer.setPadding(5);
footer.setWidth100();
footer.setMembersMargin(15);
@@ -286,123 +286,137 @@ public class Table extends LocatableHLayout implements RefreshableView {
getTableInfo().setWrap(false);
if (showHeader) {
+ drawHeader();
+ }
- for (String headerIcon : headerIcons) {
- Img img = new Img(headerIcon, 24, 24);
- img.setPadding(4);
- titleLayout.addMember(img);
- }
+ if (showFooter) {
+ drawFooter();
+ }
+ } catch (Exception e) {
+ CoreGUI.getErrorHandler().handleError("Failed to draw Table [" + this + "].", e);
+ }
+ }
- titleLayout.addMember(title);
+ private void drawHeader() {
+ for (String headerIcon : headerIcons) {
+ Img img = new Img(headerIcon, 24, 24);
+ img.setPadding(4);
+ titleLayout.addMember(img);
+ }
- if (titleComponent != null) {
- titleLayout.addMember(new LayoutSpacer());
- titleLayout.addMember(titleComponent);
- }
+ titleLayout.addMember(title);
- }
+ if (titleComponent != null) {
+ titleLayout.addMember(new LayoutSpacer());
+ titleLayout.addMember(titleComponent);
+ }
+ }
- if (showFooter) {
+ private void drawFooter() {
+ footer.removeMembers(footer.getMembers());
- footer.removeMembers(footer.getMembers());
-
- for (final TableActionInfo tableAction : tableActions) {
-
- if (null == tableAction.getValueMap()) {
- // button action
- IButton button = new LocatableIButton(tableAction.getLocatorId(), tableAction.getTitle());
- button.setDisabled(true);
- button.setOverflow(Overflow.VISIBLE);
- button.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- if (tableAction.confirmMessage != null) {
-
- String message = tableAction.confirmMessage.replaceAll("\\#", String
- .valueOf(listGrid.getSelection().length));
-
- SC.ask(message, new BooleanCallback() {
- public void execute(Boolean confirmed) {
- if (confirmed) {
- tableAction.action.executeAction(listGrid.getSelection(), null);
- }
- }
- });
- } else {
- tableAction.action.executeAction(listGrid.getSelection(), null);
- }
- }
- });
-
- tableAction.actionCanvas = button;
- footer.addMember(button);
-
- } else {
- // menu action
- LocatableMenu menu = new LocatableMenu(tableAction.getLocatorId() + "Menu");
- final Map<String, ? extends Object> menuEntries = tableAction.getValueMap();
- for (final String key : menuEntries.keySet()) {
- MenuItem item = new MenuItem(key);
- item.addClickHandler(new com.smartgwt.client.widgets.menu.events.ClickHandler() {
-
- @Override
- public void onClick(MenuItemClickEvent event) {
- tableAction.getAction()
- .executeAction(listGrid.getSelection(), menuEntries.get(key));
+ for (final TableActionInfo tableAction : tableActions) {
+
+ if (null == tableAction.getValueMap()) {
+ // button action
+ IButton button = new LocatableIButton(tableAction.getLocatorId(), tableAction.getTitle());
+ button.setDisabled(true);
+ button.setOverflow(Overflow.VISIBLE);
+ button.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ if (tableAction.confirmMessage != null) {
+
+ String message = tableAction.confirmMessage.replaceAll("\\#", String
+ .valueOf(listGrid.getSelection().length));
+
+ SC.ask(message, new BooleanCallback() {
+ public void execute(Boolean confirmed) {
+ if (confirmed) {
+ tableAction.action.executeAction(listGrid.getSelection(), null);
+ }
}
});
- menu.addItem(item);
+ } else {
+ tableAction.action.executeAction(listGrid.getSelection(), null);
}
-
- IMenuButton menuButton = new LocatableIMenuButton(tableAction.getLocatorId(), tableAction
- .getTitle(), menu);
- menuButton.setDisabled(true);
- // this makes it pretty tight, but maybe better than the default, which is pretty wide
- menuButton.setAutoFit(true);
- menuButton.setOverflow(Overflow.VISIBLE);
-
- tableAction.actionCanvas = menuButton;
- footer.addMember(menuButton);
}
- }
-
- for (Canvas extraWidgetCanvas : extraWidgets) {
- footer.addMember(extraWidgetCanvas);
- }
+ });
- footer.addMember(new LayoutSpacer());
+ tableAction.actionCanvas = button;
+ footer.addMember(button);
- if (isShowFooterRefresh()) {
- IButton refreshButton = new LocatableIButton(extendLocatorId("Refresh"), "Refresh");
- refreshButton.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- listGrid.invalidateCache();
+ } else {
+ // menu action
+ LocatableMenu menu = new LocatableMenu(tableAction.getLocatorId() + "Menu");
+ final Map<String, ? extends Object> menuEntries = tableAction.getValueMap();
+ for (final String key : menuEntries.keySet()) {
+ MenuItem item = new MenuItem(key);
+ item.addClickHandler(new com.smartgwt.client.widgets.menu.events.ClickHandler() {
+
+ @Override
+ public void onClick(MenuItemClickEvent event) {
+ tableAction.getAction()
+ .executeAction(listGrid.getSelection(), menuEntries.get(key));
}
});
- footer.addMember(refreshButton);
+ menu.addItem(item);
}
- footer.addMember(tableInfo);
+ IMenuButton menuButton = new LocatableIMenuButton(tableAction.getLocatorId(), tableAction
+ .getTitle(), menu);
+ menuButton.setDisabled(true);
+ // this makes it pretty tight, but maybe better than the default, which is pretty wide
+ menuButton.setAutoFit(true);
+ menuButton.setOverflow(Overflow.VISIBLE);
- // Manages enable/disable buttons for the grid
- listGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
- public void onSelectionChanged(SelectionEvent selectionEvent) {
- refreshTableInfo();
- }
- });
+ tableAction.actionCanvas = menuButton;
+ footer.addMember(menuButton);
+ }
+ }
- listGrid.addDataArrivedHandler(new DataArrivedHandler() {
- public void onDataArrived(DataArrivedEvent dataArrivedEvent) {
- refreshTableInfo();
- fieldSizes.clear();
- }
- });
+ for (Canvas extraWidgetCanvas : extraWidgets) {
+ footer.addMember(extraWidgetCanvas);
+ }
+
+ footer.addMember(new LayoutSpacer());
+
+ if (isShowFooterRefresh()) {
+ IButton refreshButton = new LocatableIButton(extendLocatorId("Refresh"), "Refresh");
+ refreshButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ listGrid.invalidateCache();
+ }
+ });
+ footer.addMember(refreshButton);
+ }
- // Ensure buttons are initially set correctly.
+ footer.addMember(tableInfo);
+
+ // Manages enable/disable buttons for the grid
+ listGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
+ public void onSelectionChanged(SelectionEvent selectionEvent) {
refreshTableInfo();
}
- } catch (Exception e) {
- CoreGUI.getErrorHandler().handleError("Failed to draw Table [" + this + "].", e);
- }
+ });
+
+ listGrid.addDataArrivedHandler(new DataArrivedHandler() {
+ public void onDataArrived(DataArrivedEvent dataArrivedEvent) {
+ refreshTableInfo();
+ fieldSizes.clear();
+ }
+ });
+
+ // Ensure buttons are initially set correctly.
+ refreshTableInfo();
+ }
+
+ /**
+ * Subclasses can use this as a chance to configure the list grid after it has been
+ * created but before it has been drawn to the DOM. This is also the proper place to add table
+ * actions so that they're rendered in the footer.
+ */
+ protected void configureTable() {
+ return;
}
public void setFilterFormItems(FormItem... formItems) {
@@ -417,15 +431,6 @@ public class Table extends LocatableHLayout implements RefreshableView {
}
- /**
- * Overriding components can use this as a chance to configure the list grid after it has been
- * created but before it has been drawn to the DOM. This is also the proper place to add table
- * actions so that they're rendered in the footer.
- */
- protected void configureTable() {
-
- }
-
public String getTitle() {
return this.tableTitle;
}
@@ -499,11 +504,11 @@ public class Table extends LocatableHLayout implements RefreshableView {
title.markForRedraw();
}
- public RPCDataSource getDataSource() {
+ public DS getDataSource() {
return dataSource;
}
- public void setDataSource(RPCDataSource dataSource) {
+ public void setDataSource(DS dataSource) {
this.dataSource = dataSource;
}
@@ -771,6 +776,7 @@ public class Table extends LocatableHLayout implements RefreshableView {
LinkedHashMap<String, ? extends Object> valueMap, TableAction action) {
this.locatorId = locatorId;
this.title = title;
+ this.confirmMessage = confirmMessage;
this.valueMap = valueMap;
this.action = action;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java
index bf8bb55..1fc4fcd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java
@@ -26,6 +26,7 @@ import com.google.gwt.user.client.History;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.data.SortSpecifier;
import com.smartgwt.client.types.AnimationEffect;
+import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.widgets.AnimationCallback;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -38,12 +39,13 @@ import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.DetailsView;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
import org.rhq.enterprise.gui.coregui.client.components.buttons.BackButton;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
/**
* @author Greg Hinkle
* @author John Mazzitelli
*/
-public abstract class TableSection extends Table implements BookmarkableView {
+public abstract class TableSection<DS extends RPCDataSource> extends Table<DS> implements BookmarkableView {
private VLayout detailsHolder;
private Canvas detailsView;
@@ -85,9 +87,10 @@ public abstract class TableSection extends Table implements BookmarkableView {
super.onInit();
detailsHolder = new VLayout();
+ detailsHolder.setAlign(VerticalAlignment.TOP);
//detailsHolder.setWidth100();
//detailsHolder.setHeight100();
- detailsHolder.setMargin(5);
+ detailsHolder.setMargin(4);
detailsHolder.hide();
addMember(detailsHolder);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
index e8c6084..9baf529 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
@@ -27,7 +27,6 @@ import java.util.List;
import java.util.Map;
import com.allen_sauer.gwt.log.client.Log;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Overflow;
@@ -49,7 +48,6 @@ import org.rhq.core.domain.dashboard.Dashboard;
import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.Messages;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.queue.AutodiscoveryPortlet;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
index 8cfdde1..97b48cc 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
@@ -61,8 +61,6 @@ public class FavoriteResourcesPortlet extends ResourceSearchView implements Port
@Override
protected void configureTable() {
- super.configureTable();
-
Set<Integer> favoriteIds = UserSessionManager.getUserPreferences().getFavoriteResources();
Integer[] favArray = favoriteIds.toArray(new Integer[favoriteIds.size()]);
@@ -85,6 +83,7 @@ public class FavoriteResourcesPortlet extends ResourceSearchView implements Port
}
});
+ super.configureTable();
}
public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
index a582132..005c2be 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
@@ -99,6 +99,8 @@ public class ProblemResourcesPortlet extends Table implements CustomSettingsPort
listGrid.setWrapCells(true);
addExtraWidget(new TimeRange(this.getLocatorId(), this));
}
+
+
}
@Override
@@ -268,7 +270,7 @@ public class ProblemResourcesPortlet extends Table implements CustomSettingsPort
timeRange = new String[] { MeasurementUtility.getDateTimeFormatter().format(new Date(begin)),
MeasurementUtility.getDateTimeFormatter().format(new Date(end)) };
}
- for (Canvas extraWidget : extraWidgets) {
+ for (Object extraWidget : extraWidgets) {
if (extraWidget instanceof TableWidget) {
((TableWidget) extraWidget).refresh(getListGrid());
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListDetailView.java
index 9530979..b410a80 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListDetailView.java
@@ -56,9 +56,7 @@ public abstract class AbstractMeasurementDataTraitListDetailView extends Table {
}
@Override
- protected void configureTable() {
- super.configureTable();
-
+ protected void configureTable() {
ListGrid listGrid = getListGrid();
listGrid.setSelectionType(SelectionStyle.NONE);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListView.java
index 88918bb..c5cc4e2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementDataTraitListView.java
@@ -57,8 +57,6 @@ public abstract class AbstractMeasurementDataTraitListView extends TableSection
@Override
protected void configureTable() {
- super.configureTable();
-
ListGrid listGrid = getListGrid();
listGrid.setSelectionType(SelectionStyle.SINGLE);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java
index 8413cc1..0d3e524 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java
@@ -54,7 +54,6 @@ public abstract class AbstractMeasurementScheduleListView extends Table {
}
protected void configureTable() {
-
ListGrid listGrid = getListGrid();
// Set widths and cell formatters on the fields.
@@ -82,6 +81,8 @@ public abstract class AbstractMeasurementScheduleListView extends Table {
}
});
addExtraWidget(new UpdateCollectionIntervalWidget(this.getLocatorId(), this));
+
+
}
protected class CollectionEnabledCellFormatter extends BooleanCellFormatter {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java
index 8f2e10c..3434179 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/event/EventCompositeHistoryView.java
@@ -120,6 +120,8 @@ public class EventCompositeHistoryView extends TableSection {
setListGridFields(timestampField, severityField, detailsField, sourceField);
setupTableInteractions();
+
+
}
private void setupTableInteractions() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
index 7780095..0ecdbd2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
@@ -138,6 +138,8 @@ public class ResourceGroupListView extends Table {
CoreGUI.goToView("ResourceGroup/" + event.getRecord().getAttribute("id"));
}
});
+
+
}
// -------- Static Utility loaders ------------
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java
index b734425..3ea5d49 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/definitions/GroupDefinitionListView.java
@@ -57,7 +57,6 @@ public class GroupDefinitionListView extends TableSection {
@Override
protected void configureTable() {
-
ListGridField idField = new ListGridField("id", MSG.common_title_id(), 50);
ListGridField nameField = new ListGridField("name", MSG.common_title_name(), 150);
ListGridField descriptionField = new ListGridField("description", MSG.common_title_description());
@@ -144,6 +143,8 @@ public class GroupDefinitionListView extends TableSection {
});
}
});
+
+
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java
index 547af2d..32f363f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationMembers.java
@@ -168,6 +168,8 @@ public class HistoryGroupPluginConfigurationMembers extends LocatableVLayout {
listGrid.setFields(fieldResource, fieldDateCreated, fieldLastUpdated, fieldUser, fieldStatus);
listGrid.setLinkTextProperty("resourceName");
+
+
}
private String getStatusHtmlString(Record record) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java
index a3e4b63..4639767 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java
@@ -200,6 +200,8 @@ public class HistoryGroupPluginConfigurationTable extends Table {
+ "/" + selection[0].getAttribute("id") + "/Members");
}
});
+
+
}
private String getStatusHtmlString(Record record) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java
index 46ed7ad..3c7f368 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsDetailView.java
@@ -44,6 +44,8 @@ public class TraitsDetailView extends AbstractMeasurementDataTraitListDetailView
ListGridField resourceNameField = listGrid.getField(MeasurementDataTraitCriteria.SORT_FIELD_RESOURCE_NAME);
resourceNameField.setWidth("20%");
resourceNameField.setCanGroupBy(true);
+
+
}
private static Criteria createCriteria(int groupId, int definitionId) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java
index d35c6e7..f11c678 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/traits/TraitsView.java
@@ -54,6 +54,8 @@ public class TraitsView extends AbstractMeasurementDataTraitListView {
ListGridField resourceNameField = listGrid.getField(MeasurementDataTraitCriteria.SORT_FIELD_RESOURCE_NAME);
resourceNameField.setWidth("20%");
resourceNameField.setCanGroupBy(true);
+
+
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java
index d3e4922..0c4df49 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java
@@ -50,9 +50,6 @@ public class ResourceCompositeSearchView extends ResourceSearchView {
@Override
protected void configureTable() {
-
- super.configureTable();
-
addTableAction(extendLocatorId("Delete"), MSG.common_button_delete(), MSG
.view_inventory_resources_deleteConfirm(), new AbstractTableAction(TableActionEnablement.ANY) {
@@ -138,6 +135,7 @@ public class ResourceCompositeSearchView extends ResourceSearchView {
}
+ super.configureTable();
}
public ResourceComposite getParentResourceComposite() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
index 078461f..4402029 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
@@ -114,7 +114,6 @@ public class ResourceSearchView extends Table {
@Override
protected void configureTable() {
-
ListGridField iconField = new ListGridField("icon", MSG.common_title_icon(), 40);
iconField.setType(ListGridFieldType.IMAGE);
iconField.setImageURLPrefix("types/");
@@ -181,6 +180,8 @@ public class ResourceSearchView extends Table {
}
}
});*/
+
+
}
public int getMatches() {
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 767b151..6d3d59f 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
@@ -75,8 +75,6 @@ public class ConfigurationHistoryView extends TableSection {
@Override
protected void configureTable() {
- super.configureTable();
-
List<ListGridField> fields = new ArrayList<ListGridField>();
ListGridField idField = new ListGridField(ConfigurationHistoryDataSource.Field.ID, 60);
@@ -154,6 +152,7 @@ public class ConfigurationHistoryView extends TableSection {
}
});
+
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsDetailView.java
index da87700..bac2d47 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsDetailView.java
@@ -41,4 +41,11 @@ public class TraitsDetailView extends AbstractMeasurementDataTraitListDetailView
return criteria;
}
+
+ @Override
+ protected void configureTable() {
+ super.configureTable();
+
+
+ }
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsView.java
index 0d3b161..513fee8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/traits/TraitsView.java
@@ -42,6 +42,11 @@ public class TraitsView extends AbstractMeasurementDataTraitListView {
return new TraitsDetailView(extendLocatorId("Detail"), this.resourceId, definitionId);
}
+ @Override
+ protected void configureTable() {
+
+ }
+
private static Criteria createCriteria(int resourceId) {
Criteria criteria = new Criteria();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java
index 3b7accc..48cf7e9 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/OperationHistoryView.java
@@ -73,7 +73,6 @@ public class OperationHistoryView extends TableSection {
@Override
protected void configureTable() {
-
getListGrid().getField(OperationHistoryDataSource.Field.ID).setWidth(40);
getListGrid().getField(OperationHistoryDataSource.Field.OPERATION_NAME).setWidth("*");
getListGrid().getField(OperationHistoryDataSource.Field.STATUS).setWidth(100);
@@ -139,6 +138,7 @@ public class OperationHistoryView extends TableSection {
addExtraWidget(operationsButton);
}
+
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBView.java
index e70a673..a8a7f6f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/measurement/MeasurementOOBView.java
@@ -50,5 +50,8 @@ public class MeasurementOOBView extends Table {
return "<a href=\"#Resource/" + listGridRecord.getAttribute("resourceId") + "\">" + o + "</a>";
}
});
+
+
}
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
index 9f8b723..c2b1efd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/RPCDataSource.java
@@ -482,7 +482,7 @@ public abstract class RPCDataSource<T> extends DataSource {
}
}
- Log.debug("Result = " + result);
+ Log.debug("Result: " + paramName + "=[" + result + "]");
return result;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
index f1321b3..80fc211 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
@@ -191,31 +191,50 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
+ subjectToModify.getName() + "].");
}
- if (!subjectToModify.getFactive() && authorizationManager.isSystemSuperuser(subjectToModify)) {
+ boolean subjectToModifyIsSystemSuperuser = authorizationManager.isSystemSuperuser(subjectToModify);
+ if (!subjectToModify.getFactive() && subjectToModifyIsSystemSuperuser) {
throw new PermissionException("You cannot disable the system user [" + subjectToModify.getName()
+ "].");
}
- if (!isSecurityManager) {
- RoleCriteria subjectRolesCriteria = new RoleCriteria();
- subjectRolesCriteria.addFilterSubjectId(subjectToModify.getId());
- PageList<Role> currentRoles = roleManager.findRolesByCriteria(whoami, subjectRolesCriteria);
- Set<Role> newRoles = subjectToModify.getRoles();
- if (newRoles == null) {
- newRoles = Collections.emptySet();
+ RoleCriteria subjectRolesCriteria = new RoleCriteria();
+ subjectRolesCriteria.addFilterSubjectId(subjectToModify.getId());
+ PageList<Role> currentRoles = roleManager.findRolesByCriteria(whoami, subjectRolesCriteria);
+ Set<Role> newRoles = subjectToModify.getRoles();
+ if (newRoles == null) {
+ newRoles = Collections.emptySet();
+ }
+ boolean rolesModified = !(currentRoles.containsAll(newRoles) && newRoles.containsAll(currentRoles));
+
+ RoleCriteria subjectLdapRolesCriteria = new RoleCriteria();
+ subjectLdapRolesCriteria.addFilterLdapSubjectId(subjectToModify.getId());
+ PageList<Role> currentLdapRoles = roleManager.findRolesByCriteria(whoami, subjectLdapRolesCriteria);
+ Set<Role> newLdapRoles = subjectToModify.getLdapRoles();
+ if (newLdapRoles == null) {
+ newLdapRoles = Collections.emptySet();
+ }
+ boolean ldapRolesModified =
+ !(currentLdapRoles.containsAll(newLdapRoles) && newLdapRoles.containsAll(currentLdapRoles));
+
+ if (isSecurityManager) {
+ if (subjectToModifyIsSystemSuperuser) {
+ if (rolesModified) {
+ throw new PermissionException("You cannot alter the roles for user [" + subjectToModify.getName()
+ + "] - roles are fixed for this user");
+ }
+
+ if (ldapRolesModified) {
+ throw new PermissionException("You cannot alter the LDAP roles for user [" + subjectToModify.getName()
+ + "] - LDAP roles are fixed for this user");
+ }
}
- if (!(currentRoles.containsAll(newRoles) && newRoles.containsAll(currentRoles))) {
+ } else {
+ if (rolesModified) {
throw new PermissionException("You cannot change the roles assigned to [" + subjectToModify.getName()
+ "] - only a user with the MANAGE_SECURITY permission can do so.");
}
- RoleCriteria subjectLdapRolesCriteria = new RoleCriteria();
- subjectLdapRolesCriteria.addFilterLdapSubjectId(subjectToModify.getId());
- PageList<Role> currentLdapRoles = roleManager.findRolesByCriteria(whoami, subjectLdapRolesCriteria);
- Set<Role> newLdapRoles = subjectToModify.getLdapRoles();
- if (newLdapRoles == null) {
- newLdapRoles = Collections.emptySet();
- }
- if (!(currentLdapRoles.containsAll(newLdapRoles) && newLdapRoles.containsAll(currentLdapRoles))) {
+
+ if (ldapRolesModified) {
throw new PermissionException("You cannot change the LDAP roles assigned to [" + subjectToModify.getName()
+ "] - only a user with the MANAGE_SECURITY permission can do so.");
}
commit 01e83939b621fc772e902479803a8f350aa18aec
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Nov 18 18:50:54 2010 -0500
i18n for org.rhq.enterprise.gui.coregui.client.alert.definitions
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java
index bddd4b4..133683f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java
@@ -159,28 +159,28 @@ public class AlertFormatUtility {
break;
}
case CONTROL: {
- str.append(MSG.view_alert_common_tab_conditions_type_metric_operation());
+ str.append(MSG.view_alert_common_tab_conditions_type_operation());
str.append(" [");
str.append(condition.getName());
str.append("] ");
- str.append(MSG.view_alert_common_tab_conditions_type_metric_status());
+ str.append(MSG.view_alert_common_tab_conditions_type_operation_status());
str.append(" [");
str.append(condition.getOption());
str.append("]");
break;
}
case RESOURCE_CONFIG: {
- str.append(MSG.view_alert_common_tab_conditions_type_metric_resource_configuration());
+ str.append(MSG.view_alert_common_tab_conditions_type_resource_configuration());
break;
}
case EVENT: {
- str.append(MSG.view_alert_common_tab_conditions_type_metric_event());
+ str.append(MSG.view_alert_common_tab_conditions_type_event());
str.append(" [");
str.append(condition.getName());
str.append("]");
if (condition.getOption() != null && condition.getOption().length() > 0) {
str.append(" ");
- str.append(MSG.view_alert_common_tab_conditions_type_metric_event_matching());
+ str.append(MSG.view_alert_common_tab_conditions_type_event_matching());
str.append(" '");
str.append(condition.getOption());
str.append("'");
@@ -188,7 +188,7 @@ public class AlertFormatUtility {
break;
}
default: {
- str.append(MSG.view_alert_common_tab_conditions_type_invalid(category.name()));
+ str.append(MSG.view_alert_common_tab_invalid_condition_category(category.name()));
break;
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java
index d48c811..f960bc7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsDataSource.java
@@ -102,25 +102,26 @@ public abstract class AbstractAlertDefinitionsDataSource extends RPCDataSource<A
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceTextField nameField = new DataSourceTextField(FIELD_NAME, "Name");
+ DataSourceTextField nameField = new DataSourceTextField(FIELD_NAME, MSG.view_alerts_field_name());
fields.add(nameField);
- DataSourceTextField descriptionField = new DataSourceTextField(FIELD_DESCRIPTION, "Description");
+ DataSourceTextField descriptionField = new DataSourceTextField(FIELD_DESCRIPTION, MSG
+ .common_title_description());
fields.add(descriptionField);
- DataSourceTextField ctimeField = new DataSourceTextField(FIELD_CTIME, "Created Time");
+ DataSourceTextField ctimeField = new DataSourceTextField(FIELD_CTIME, MSG.view_alerts_field_created_time());
ctimeField.setType(FieldType.DATETIME);
fields.add(ctimeField);
- DataSourceTextField mtimeField = new DataSourceTextField(FIELD_MTIME, "Modified Time");
+ DataSourceTextField mtimeField = new DataSourceTextField(FIELD_MTIME, MSG.view_alerts_field_modified_time());
mtimeField.setType(FieldType.DATETIME);
fields.add(mtimeField);
- DataSourceTextField enabledField = new DataSourceTextField(FIELD_ENABLED, "Enabled");
+ DataSourceTextField enabledField = new DataSourceTextField(FIELD_ENABLED, MSG.view_alerts_field_enabled());
enabledField.setType(FieldType.BOOLEAN);
fields.add(enabledField);
- DataSourceImageField priorityField = new DataSourceImageField(FIELD_PRIORITY, "Priority");
+ DataSourceImageField priorityField = new DataSourceImageField(FIELD_PRIORITY, MSG.view_alerts_field_priority());
fields.add(priorityField);
return fields;
@@ -132,7 +133,7 @@ public abstract class AbstractAlertDefinitionsDataSource extends RPCDataSource<A
GWTServiceLookup.getAlertDefinitionService().findAlertDefinitionsByCriteria(criteria,
new AsyncCallback<PageList<AlertDefinition>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load alert definition data", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_loadFailed(), caught);
response.setStatus(DSResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java
index 8386cbe..f7870eb 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/AbstractAlertDefinitionsView.java
@@ -68,7 +68,7 @@ public abstract class AbstractAlertDefinitionsView extends TableSection {
boolean permitted = isAllowedToModifyAlertDefinitions();
TableActionEnablement enablement = (permitted) ? TableActionEnablement.ALWAYS : TableActionEnablement.NEVER;
- addTableAction(extendLocatorId("New"), "New", null, new AbstractTableAction(enablement) {
+ addTableAction(extendLocatorId("New"), MSG.common_button_new(), null, new AbstractTableAction(enablement) {
public void executeAction(ListGridRecord[] selection, Object actionValue) {
newButtonPressed(selection);
// I don't think you want this refresh, it will recreate the new alert detail
@@ -77,19 +77,22 @@ public abstract class AbstractAlertDefinitionsView extends TableSection {
});
enablement = (permitted) ? TableActionEnablement.ANY : TableActionEnablement.NEVER;
- addTableAction(extendLocatorId("Enable"), "Enable", "Are You Sure?", new AbstractTableAction(enablement) {
+ addTableAction(extendLocatorId("Enable"), MSG.common_button_enable(), MSG
+ .view_alert_definitions_enable_confirm(), new AbstractTableAction(enablement) {
public void executeAction(ListGridRecord[] selection, Object actionValue) {
enableButtonPressed(selection);
refresh();
}
});
- addTableAction(extendLocatorId("Disable"), "Disable", "Are You Sure?", new AbstractTableAction(enablement) {
+ addTableAction(extendLocatorId("Disable"), MSG.common_button_disable(), MSG
+ .view_alert_definitions_disable_confirm(), new AbstractTableAction(enablement) {
public void executeAction(ListGridRecord[] selection, Object actionValue) {
disableButtonPressed(selection);
refresh();
}
});
- addTableAction(extendLocatorId("Delete"), "Delete", "Are You Sure?", new AbstractTableAction(enablement) {
+ addTableAction(extendLocatorId("Delete"), MSG.common_button_delete(), MSG
+ .view_alert_definitions_delete_confirm(), new AbstractTableAction(enablement) {
public void executeAction(ListGridRecord[] selection, Object actionValue) {
deleteButtonPressed(selection);
refresh();
@@ -110,7 +113,7 @@ public abstract class AbstractAlertDefinitionsView extends TableSection {
}
@Override
- public SingleAlertDefinitionView getDetailsView(int id) {
+ public SingleAlertDefinitionView getDetailsView(final int id) {
final SingleAlertDefinitionView singleAlertDefinitionView = new SingleAlertDefinitionView(this
.extendLocatorId("singleAlertDefinitionView"), this);
@@ -138,7 +141,8 @@ public abstract class AbstractAlertDefinitionsView extends TableSection {
GWTServiceLookup.getAlertDefinitionService().findAlertDefinitionsByCriteria(criteria,
new AsyncCallback<PageList<AlertDefinition>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load alert definition data", caught);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definitions_loadFailed_single(String.valueOf(id)), caught);
}
public void onSuccess(PageList<AlertDefinition> result) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java
index 6991b2c..0e11a60 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsAlertDefinitionForm.java
@@ -136,7 +136,8 @@ public class ConditionsAlertDefinitionForm extends LocatableVLayout implements E
LocatableDynamicForm conditionExpressionForm;
conditionExpressionForm = new LocatableDynamicForm(this.extendLocatorId("conditionExpressionForm"));
- conditionExpression = new SelectItem("conditionExpression", "Fire alert when");
+ conditionExpression = new SelectItem("conditionExpression", MSG
+ .view_alert_common_tab_conditions_expression());
LinkedHashMap<String, String> condExprs = new LinkedHashMap<String, String>(2);
condExprs.put(BooleanExpression.ANY.name(), BooleanExpression.ANY.toString());
condExprs.put(BooleanExpression.ALL.name(), BooleanExpression.ALL.toString());
@@ -144,10 +145,10 @@ public class ConditionsAlertDefinitionForm extends LocatableVLayout implements E
conditionExpression.setDefaultValue(BooleanExpression.ANY.name());
conditionExpression.setWrapTitle(false);
conditionExpression.setHoverWidth(300);
- conditionExpression
- .setTooltip("Determines if ANY or ALL of the conditions must evaluate to true in order for the entire condition set to be considered true.");
+ conditionExpression.setTooltip(MSG.view_alert_common_tab_conditions_expression_tooltip());
- conditionExpressionStatic = new StaticTextItem("conditionExpressionStatic", "Fire alert when");
+ conditionExpressionStatic = new StaticTextItem("conditionExpressionStatic", MSG
+ .view_alert_common_tab_conditions_expression());
conditionExpressionStatic.setWrapTitle(false);
conditionExpressionForm.setFields(conditionExpression, conditionExpressionStatic);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsEditor.java
index 4824992..d1dfadb 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ConditionsEditor.java
@@ -92,12 +92,12 @@ public class ConditionsEditor extends LocatableVLayout {
final ConditionDataSource dataSource = new ConditionDataSource();
table.setDataSource(dataSource);
- table.addTableAction(this.extendLocatorId("add"), "Add", null, new AbstractTableAction() {
+ table.addTableAction(this.extendLocatorId("add"), MSG.common_button_add(), null, new AbstractTableAction() {
@Override
public void executeAction(ListGridRecord[] selection, Object actionValue) {
final Window winModal = new LocatableWindow(ConditionsEditor.this
.extendLocatorId("newConditionEditorWindow"));
- winModal.setTitle("Add Condition");
+ winModal.setTitle(MSG.view_alert_common_tab_conditions_modal_title());
winModal.setOverflow(Overflow.VISIBLE);
winModal.setShowMinimizeButton(false);
winModal.setIsModal(true);
@@ -126,8 +126,8 @@ public class ConditionsEditor extends LocatableVLayout {
winModal.show();
}
});
- table.addTableAction(this.extendLocatorId("delete"), "Delete", "Are you sure?", new AbstractTableAction(
- TableActionEnablement.ANY) {
+ table.addTableAction(this.extendLocatorId("delete"), MSG.common_button_delete(), MSG
+ .view_alert_definitions_delete_confirm(), new AbstractTableAction(TableActionEnablement.ANY) {
@Override
public void executeAction(ListGridRecord[] selection, Object actionValue) {
for (ListGridRecord record : selection) {
@@ -159,7 +159,8 @@ public class ConditionsEditor extends LocatableVLayout {
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceTextField conditionField = new DataSourceTextField(FIELD_CONDITION, "Condition");
+ DataSourceTextField conditionField = new DataSourceTextField(FIELD_CONDITION, MSG
+ .view_alert_common_tab_conditions_text());
fields.add(conditionField);
return fields;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java
index 1942004..d896479 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java
@@ -145,7 +145,7 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
break;
}
default: {
- throw new IllegalStateException("Invalid category - please report this as a bug: " + category); // should never happen
+ throw new IllegalStateException(MSG.view_alert_common_tab_invalid_dampening_category(category.name())); // should never happen
}
}
}
@@ -228,7 +228,7 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
break;
}
default: {
- throw new IllegalStateException("Bad dampening category - please report this bug: " + cat); // should never happen
+ throw new IllegalStateException(MSG.view_alert_common_tab_invalid_dampening_category(cat.name())); // should never happen
}
}
@@ -309,7 +309,7 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
break;
}
default: {
- throw new IllegalStateException("Bad dampening category - please report this bug: " + cat); // should never happen
+ throw new IllegalStateException(MSG.view_alert_common_tab_invalid_dampening_category(cat.name())); // should never happen
}
}
@@ -354,7 +354,7 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
break;
}
default: {
- throw new IllegalStateException("Bad dampening category - please report this bug: " + cat); // should never happen
+ throw new IllegalStateException(MSG.view_alert_common_tab_invalid_dampening_category(cat.name())); // should never happen
}
}
alertDefinition.setAlertDampening(alertDampening);
@@ -383,7 +383,7 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
private void buildForm() {
if (!formBuilt) {
- dampeningRuleSelection = new SelectItem("dampeningRule", "Dampening Rule");
+ dampeningRuleSelection = new SelectItem("dampeningRule", MSG.view_alert_common_tab_dampening());
LinkedHashMap<String, String> rules = new LinkedHashMap<String, String>(4);
rules.put(AlertDampening.Category.NONE.name(), getCategoryTitle(AlertDampening.Category.NONE));
rules.put(AlertDampening.Category.CONSECUTIVE_COUNT.name(),
@@ -405,7 +405,7 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
}
});
- dampeningRuleStatic = new StaticTextItem("dampeningRuleStatic", "Dampening Rule");
+ dampeningRuleStatic = new StaticTextItem("dampeningRuleStatic", MSG.view_alert_common_tab_dampening());
dampeningRuleStatic.setWrapTitle(false);
dampeningRuleStatic.setHoverWidth(300);
@@ -413,66 +413,75 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
// nothing to do - the none category has no ui components to render
// CONSECUTIVE_COUNT
- consecutiveOccurrencesSpinner = new SpinnerItem("consecutiveOccurrencesSpinner", "Occurrences");
+ consecutiveOccurrencesSpinner = new SpinnerItem("consecutiveOccurrencesSpinner", MSG
+ .view_alert_common_tab_dampening_consecutive_occurrences_label());
consecutiveOccurrencesSpinner.setWrapTitle(false);
consecutiveOccurrencesSpinner.setMin(1);
consecutiveOccurrencesSpinner.setMax(999999);
consecutiveOccurrencesSpinner.setStep(1);
consecutiveOccurrencesSpinner.setDefaultValue(1);
consecutiveOccurrencesSpinner.setHoverWidth(300);
- consecutiveOccurrencesSpinner
- .setTooltip("The number of times the condition set must be consecutively true before the alert is triggered.");
- consecutiveOccurrencesStatic = new StaticTextItem("consecutiveOccurrencesStatic", "Occurrences");
+ consecutiveOccurrencesSpinner.setTooltip(MSG
+ .view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip());
+ consecutiveOccurrencesStatic = new StaticTextItem("consecutiveOccurrencesStatic", MSG
+ .view_alert_common_tab_dampening_consecutive_occurrences_label());
consecutiveOccurrencesStatic.setWrapTitle(false);
// PARTIAL_COUNT
- partialOccurrencesSpinner = new SpinnerItem("partialOccurrencesSpinner", "Occurrences");
+ partialOccurrencesSpinner = new SpinnerItem("partialOccurrencesSpinner", MSG
+ .view_alert_common_tab_dampening_partial_occurrences_label());
partialOccurrencesSpinner.setWrapTitle(false);
partialOccurrencesSpinner.setMin(1);
partialOccurrencesSpinner.setMax(999999);
partialOccurrencesSpinner.setStep(1);
partialOccurrencesSpinner.setDefaultValue(1);
partialOccurrencesSpinner.setHoverWidth(300);
- partialOccurrencesSpinner
- .setTooltip("The number of times the condition set must be true during the last N evaluations before the alert is triggered.");
- partialOccurrencesStatic = new StaticTextItem("partialOccurrencesStatic", "Occurrences");
+ partialOccurrencesSpinner.setTooltip(MSG
+ .view_alert_common_tab_dampening_partial_occurrences_label_tooltip());
+ partialOccurrencesStatic = new StaticTextItem("partialOccurrencesStatic", MSG
+ .view_alert_common_tab_dampening_partial_occurrences_label());
partialOccurrencesStatic.setWrapTitle(false);
- partialEvaluationsSpinner = new SpinnerItem("partialEvaluationsSpinner", "Evaluations");
+ partialEvaluationsSpinner = new SpinnerItem("partialEvaluationsSpinner", MSG
+ .view_alert_common_tab_dampening_partial_evalatuions_label());
partialEvaluationsSpinner.setWrapTitle(false);
partialEvaluationsSpinner.setMin(1);
partialEvaluationsSpinner.setMax(999999);
partialEvaluationsSpinner.setStep(1);
partialEvaluationsSpinner.setDefaultValue(1);
partialEvaluationsSpinner.setHoverWidth(300);
- partialEvaluationsSpinner
- .setTooltip("The total number of times the condition set will be tested to see if the given number of occurrences are true.");
- partialEvaluationsStatic = new StaticTextItem("partialEvaluationStatic", "Evaluations");
+ partialEvaluationsSpinner.setTooltip(MSG
+ .view_alert_common_tab_dampening_partial_evalatuions_label_tooltip());
+ partialEvaluationsStatic = new StaticTextItem("partialEvaluationStatic", MSG
+ .view_alert_common_tab_dampening_partial_evalatuions_label());
partialEvaluationsStatic.setWrapTitle(false);
// DURATION_COUNT
- durationOccurrencesSpinner = new SpinnerItem("durationOccurrencesSpinner", "Occurrences");
+ durationOccurrencesSpinner = new SpinnerItem("durationOccurrencesSpinner", MSG
+ .view_alert_common_tab_dampening_duration_occurrences_label());
durationOccurrencesSpinner.setWrapTitle(false);
durationOccurrencesSpinner.setMin(1);
durationOccurrencesSpinner.setMax(999999);
durationOccurrencesSpinner.setStep(1);
durationOccurrencesSpinner.setDefaultValue(1);
durationOccurrencesSpinner.setHoverWidth(300);
- durationOccurrencesSpinner
- .setTooltip("The number of times the condition set must be true during the given time period before the alert is triggered.");
- durationOccurrencesStatic = new StaticTextItem("durationOccurrencesStatic", "Occurrences");
+ durationOccurrencesSpinner.setTooltip(MSG
+ .view_alert_common_tab_dampening_duration_occurrences_label_tooltip());
+ durationOccurrencesStatic = new StaticTextItem("durationOccurrencesStatic", MSG
+ .view_alert_common_tab_dampening_duration_occurrences_label());
durationOccurrencesStatic.setWrapTitle(false);
- durationTimePeriodSpinner = new SpinnerItem("durationTimePeriodSpinner", "Time Period");
+ durationTimePeriodSpinner = new SpinnerItem("durationTimePeriodSpinner", MSG
+ .view_alert_common_tab_dampening_duration_period_label());
durationTimePeriodSpinner.setWrapTitle(false);
durationTimePeriodSpinner.setMin(1);
durationTimePeriodSpinner.setMax(999999);
durationTimePeriodSpinner.setStep(1);
durationTimePeriodSpinner.setDefaultValue(1);
durationTimePeriodSpinner.setHoverWidth(300);
- durationTimePeriodSpinner
- .setTooltip("The time span in which the condition set will be tested to see if the given number of occurrences are true.");
- durationTimePeriodStatic = new StaticTextItem("durationTimePeriodStatic", "Time Period");
+ durationTimePeriodSpinner.setTooltip(MSG.view_alert_common_tab_dampening_duration_period_label_tooltip());
+ durationTimePeriodStatic = new StaticTextItem("durationTimePeriodStatic", MSG
+ .view_alert_common_tab_dampening_duration_period_label());
durationTimePeriodStatic.setWrapTitle(false);
durationTimeUnitsSelection = new SelectItem("durationTimeUnits", "");
@@ -527,7 +536,8 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
break;
}
default: {
- throw new IllegalStateException("Invalid category - please report this as a bug: " + cat); // should never happen
+ throw new IllegalStateException(MSG
+ .view_alert_common_tab_invalid_dampening_category(cat.name())); // should never happen
}
}
markForRedraw();
@@ -548,19 +558,19 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
private String getCategoryTitle(AlertDampening.Category category) {
switch (category) {
case NONE: {
- return "None";
+ return MSG.view_alert_common_tab_dampening_category_none();
}
case CONSECUTIVE_COUNT: {
- return "Consecutive";
+ return MSG.view_alert_common_tab_dampening_category_consecutive_count();
}
case PARTIAL_COUNT: {
- return "Last N Evaluations";
+ return MSG.view_alert_common_tab_dampening_category_partial_count();
}
case DURATION_COUNT: {
- return "Time Period";
+ return MSG.view_alert_common_tab_dampening_category_duration_count();
}
default: {
- throw new IllegalStateException("Invalid category - please report this as a bug: " + category); // should never happen
+ throw new IllegalStateException(MSG.view_alert_common_tab_invalid_dampening_category(category.name())); // should never happen
}
}
}
@@ -568,32 +578,32 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
private String getTimeUnitsTitle(AlertDampening.TimeUnits units) {
switch (units) {
case MINUTES: {
- return "minutes";
+ return MSG.common_label_month();
}
case HOURS: {
- return "hours";
+ return MSG.common_label_hours();
}
case DAYS: {
- return "days";
+ return MSG.common_label_days();
}
case WEEKS: {
- return "weeks";
+ return MSG.common_label_weeks();
}
default: {
- throw new IllegalStateException("Invalid time units - please report this as a bug: " + units); // should never happen
+ throw new IllegalStateException(MSG.view_alert_common_tab_invalid_time_units(units.name())); // should never happen
}
}
}
private String getCategoryHelp(String categorySelection) {
if (AlertDampening.Category.NONE.name().equals(categorySelection)) {
- return "Dampening is disabled. Every time the condition set is true, an alert will be triggered.";
+ return MSG.view_alert_common_tab_dampening_category_none_tooltip();
} else if (AlertDampening.Category.CONSECUTIVE_COUNT.name().equals(categorySelection)) {
- return "An alert is triggered once every X occurrences the condition set is true consecutively.";
+ return MSG.view_alert_common_tab_dampening_category_consecutive_count_tooltip();
} else if (AlertDampening.Category.PARTIAL_COUNT.name().equals(categorySelection)) {
- return "An alert is triggered once every X occurrences the condition set is true during the last N evaluations of the condition set.";
+ return MSG.view_alert_common_tab_dampening_category_partial_count_tooltip();
} else if (AlertDampening.Category.DURATION_COUNT.name().equals(categorySelection)) {
- return "An alert is triggered once every X occurrences the condition set is true within a given time period.";
+ return MSG.view_alert_common_tab_dampening_category_duration_count_tooltip();
}
return null; // should never happen
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java
index 12e27d9..8795043 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GeneralPropertiesAlertDefinitionForm.java
@@ -100,10 +100,10 @@ public class GeneralPropertiesAlertDefinitionForm extends LocatableDynamicForm i
priorityStatic.setValue(alertDef.getPriority().name());
enabledSelection.setValue(alertDef.getEnabled() ? "yes" : "no");
- enabledStatic.setValue(alertDef.getEnabled() ? "Yes" : "No");
+ enabledStatic.setValue(alertDef.getEnabled() ? MSG.common_val_yes() : MSG.common_val_no());
readOnlySelection.setValue(alertDef.isReadOnly() ? "yes" : "no");
- readOnlyStatic.setValue(alertDef.isReadOnly() ? "Yes" : "No");
+ readOnlyStatic.setValue(alertDef.isReadOnly() ? MSG.common_val_yes() : MSG.common_val_no());
}
markForRedraw();
@@ -204,17 +204,17 @@ public class GeneralPropertiesAlertDefinitionForm extends LocatableDynamicForm i
private void buildForm() {
if (!formBuilt) {
- nameTextField = new TextItem("name", "Name");
+ nameTextField = new TextItem("name", MSG.common_title_name());
nameTextField.setWidth(300);
nameTextField.setDefaultValue("");
- nameStatic = new StaticTextItem("nameStatic", "Name");
+ nameStatic = new StaticTextItem("nameStatic", MSG.common_title_name());
- descriptionTextField = new TextAreaItem("description", "Description");
+ descriptionTextField = new TextAreaItem("description", MSG.common_title_description());
descriptionTextField.setWidth(300);
descriptionTextField.setDefaultValue("");
- descriptionStatic = new StaticTextItem("descriptionStatic", "Description");
+ descriptionStatic = new StaticTextItem("descriptionStatic", MSG.common_title_description());
- prioritySelection = new SelectItem("priority", "Priority");
+ prioritySelection = new SelectItem("priority", MSG.view_alerts_field_priority());
LinkedHashMap<String, String> priorities = new LinkedHashMap<String, String>(3);
priorities.put(AlertPriority.HIGH.name(), AlertPriority.HIGH.name());
priorities.put(AlertPriority.MEDIUM.name(), AlertPriority.MEDIUM.name());
@@ -226,26 +226,25 @@ public class GeneralPropertiesAlertDefinitionForm extends LocatableDynamicForm i
prioritySelection.setValueMap(priorities);
prioritySelection.setValueIcons(priorityIcons);
prioritySelection.setDefaultValue(AlertPriority.MEDIUM.name());
- priorityStatic = new StaticTextItem("priorityStatic", "Priority");
+ priorityStatic = new StaticTextItem("priorityStatic", MSG.view_alerts_field_priority());
priorityStatic.setValueIcons(priorityIcons);
- enabledSelection = new RadioGroupItem("enabled", "Enabled");
+ enabledSelection = new RadioGroupItem("enabled", MSG.view_alerts_field_enabled());
LinkedHashMap<String, String> enabledYesNo = new LinkedHashMap<String, String>(2);
- enabledYesNo.put("yes", "Yes");
- enabledYesNo.put("no", "No");
+ enabledYesNo.put("yes", MSG.common_val_yes());
+ enabledYesNo.put("no", MSG.common_val_no());
enabledSelection.setValueMap(enabledYesNo);
enabledSelection.setDefaultValue("yes");
- enabledStatic = new StaticTextItem("enabledStatic", "Enabled");
+ enabledStatic = new StaticTextItem("enabledStatic", MSG.view_alerts_field_enabled());
- readOnlySelection = new RadioGroupItem("readOnly", "Protected");
+ readOnlySelection = new RadioGroupItem("readOnly", MSG.view_alerts_field_protected());
LinkedHashMap<String, String> readOnlyYesNo = new LinkedHashMap<String, String>(2);
- readOnlyYesNo.put("yes", "Yes");
- readOnlyYesNo.put("no", "No");
+ readOnlyYesNo.put("yes", MSG.common_val_yes());
+ readOnlyYesNo.put("no", MSG.common_val_no());
readOnlySelection.setValueMap(readOnlyYesNo);
readOnlySelection.setDefaultValue("yes");
- readOnlySelection
- .setPrompt("If true, this definition is protected from being changed by the parent definition. In other words, the parent definition settings will not override this definition.");
- readOnlyStatic = new StaticTextItem("readOnlyStatic", "Protected");
+ readOnlySelection.setPrompt(MSG.view_alerts_field_protected_tooltip());
+ readOnlyStatic = new StaticTextItem("readOnlyStatic", MSG.view_alerts_field_protected());
setFields(nameTextField, nameStatic, descriptionTextField, descriptionStatic, prioritySelection,
priorityStatic, enabledSelection, enabledStatic, readOnlySelection, readOnlyStatic);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java
index e632915..eeac74a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/GroupAlertDefinitionsView.java
@@ -53,7 +53,7 @@ public class GroupAlertDefinitionsView extends AbstractAlertDefinitionsView {
private ResourcePermission permissions;
public GroupAlertDefinitionsView(String locatorId, ResourceGroupComposite groupComposite) {
- super(locatorId, "Group Alert Definitions");
+ super(locatorId, MSG.view_alert_definitions_table_title_group());
this.group = groupComposite.getResourceGroup();
this.permissions = groupComposite.getResourcePermission();
@@ -131,13 +131,13 @@ public class GroupAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(Integer result) {
CoreGUI.getMessageCenter().notify(
- new Message("[" + result + "] group alert definitions enabled.", Severity.Info));
+ new Message(MSG.view_alert_definitions_enable_success(String.valueOf(result)), Severity.Info));
GroupAlertDefinitionsView.this.refresh();
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to enable group alert definitions", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_enable_failure(), caught);
}
});
}
@@ -159,13 +159,13 @@ public class GroupAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(Integer result) {
CoreGUI.getMessageCenter().notify(
- new Message("[" + result + "] group alert definitions disabled.", Severity.Info));
+ new Message(MSG.view_alert_definitions_disable_success(String.valueOf(result)), Severity.Info));
GroupAlertDefinitionsView.this.refresh();
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to disable group alert definitions.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_disable_failure(), caught);
}
});
}
@@ -187,13 +187,13 @@ public class GroupAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(Integer result) {
CoreGUI.getMessageCenter().notify(
- new Message("[" + result + "] group alert definitions deleted.", Severity.Info));
+ new Message(MSG.view_alert_definitions_delete_success(String.valueOf(result)), Severity.Info));
GroupAlertDefinitionsView.this.refresh();
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to delete group alert definitions.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_delete_failure(), caught);
}
});
}
@@ -205,13 +205,14 @@ public class GroupAlertDefinitionsView extends AbstractAlertDefinitionsView {
Integer.valueOf(this.group.getId()), new AsyncCallback<Integer>() {
@Override
public void onSuccess(Integer result) {
- CoreGUI.getMessageCenter().notify(new Message("Alert definition is created", Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_alert_definitions_create_success(), Severity.Info));
alertDefinition.setId(result.intValue());
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to create alert definition.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_create_failure(), caught);
}
});
} else {
@@ -220,12 +221,12 @@ public class GroupAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(AlertDefinition result) {
CoreGUI.getMessageCenter().notify(
- new Message("Group alert definition is updated.", Severity.Info));
+ new Message(MSG.view_alert_definitions_update_success(), Severity.Info));
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to update group alert definition.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_update_failure(), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java
index 361ad78..3f4a4bd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java
@@ -145,29 +145,40 @@ public class NewConditionEditor extends LocatableDynamicForm {
setMargin(20);
- conditionTypeSelectItem = new SelectItem("conditionType", "Condition Type");
+ conditionTypeSelectItem = new SelectItem("conditionType", MSG
+ .view_alert_definition_condition_editor_option_label());
LinkedHashMap<String, String> condTypes = new LinkedHashMap<String, String>(7);
- condTypes.put(AlertConditionCategory.AVAILABILITY.name(), "Availability Change");
+ condTypes.put(AlertConditionCategory.AVAILABILITY.name(), MSG
+ .view_alert_definition_condition_editor_option_availability());
if (supportsMetrics) {
- condTypes.put(AlertConditionCategory.THRESHOLD.name(), "Measurement Absolute Value Threshold");
- condTypes.put(AlertConditionCategory.BASELINE.name(), "Measurement Baseline Threshold");
- condTypes.put(AlertConditionCategory.CHANGE.name(), "Measurement Value Change");
+ condTypes.put(AlertConditionCategory.THRESHOLD.name(), MSG
+ .view_alert_definition_condition_editor_option_metric_threshold());
+ condTypes.put(AlertConditionCategory.BASELINE.name(), MSG
+ .view_alert_definition_condition_editor_option_metric_baseline());
+ condTypes.put(AlertConditionCategory.CHANGE.name(), MSG
+ .view_alert_definition_condition_editor_option_metric_change());
}
if (supportsCalltimeMetrics) {
- condTypes.put(ALERT_CONDITION_CATEGORY_CALLTIME_THRESHOLD, "Calltime Value Threshold");
- condTypes.put(ALERT_CONDITION_CATEGORY_CALLTIME_CHANGE, "Calltime Value Change");
+ condTypes.put(ALERT_CONDITION_CATEGORY_CALLTIME_THRESHOLD, MSG
+ .view_alert_definition_condition_editor_option_metric_calltime_threshold());
+ condTypes.put(ALERT_CONDITION_CATEGORY_CALLTIME_CHANGE, MSG
+ .view_alert_definition_condition_editor_option_metric_calltime_change());
}
if (supportsTraits) {
- condTypes.put(AlertConditionCategory.TRAIT.name(), "Trait Value Change");
+ condTypes.put(AlertConditionCategory.TRAIT.name(), MSG
+ .view_alert_definition_condition_editor_option_metric_trait_change());
}
if (supportsOperations) {
- condTypes.put(AlertConditionCategory.CONTROL.name(), "Operation Execution");
+ condTypes.put(AlertConditionCategory.CONTROL.name(), MSG
+ .view_alert_definition_condition_editor_option_operation());
}
if (supportsResourceConfig) {
- condTypes.put(AlertConditionCategory.RESOURCE_CONFIG.name(), "Resource Configuration Change");
+ condTypes.put(AlertConditionCategory.RESOURCE_CONFIG.name(), MSG
+ .view_alert_definition_condition_editor_option_resource_configuration());
}
if (supportsEvents) {
- condTypes.put(AlertConditionCategory.EVENT.name(), "Event Detection");
+ condTypes.put(AlertConditionCategory.EVENT.name(), MSG
+ .view_alert_definition_condition_editor_option_event());
}
conditionTypeSelectItem.setValueMap(condTypes);
conditionTypeSelectItem.setDefaultValue(AlertConditionCategory.AVAILABILITY.name());
@@ -183,7 +194,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
spacer2.setColSpan(2);
spacer2.setHeight(5);
- ButtonItem ok = new ButtonItem("okButtonItem", "OK");
+ ButtonItem ok = new ButtonItem("okButtonItem", MSG.common_button_ok());
ok.setEndRow(false);
ok.setAlign(Alignment.RIGHT);
ok.addClickHandler(new ClickHandler() {
@@ -196,7 +207,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
}
});
- ButtonItem cancel = new ButtonItem("cancelButtonItem", "Cancel");
+ ButtonItem cancel = new ButtonItem("cancelButtonItem", MSG.common_button_cancel());
cancel.setStartRow(false);
cancel.setAlign(Alignment.LEFT);
cancel.addClickHandler(new ClickHandler() {
@@ -354,7 +365,8 @@ public class NewConditionEditor extends LocatableDynamicForm {
}
default: {
- CoreGUI.getErrorHandler().handleError("Invalid alert category selected: " + category); // should never happen
+ CoreGUI.getErrorHandler()
+ .handleError(MSG.view_alert_common_tab_invalid_condition_category(category.name())); // should never happen
break;
}
}
@@ -367,17 +379,17 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(AlertConditionCategory.THRESHOLD);
- String helpStr = "Specify the threshold value that, when violated, triggers the condition. The value you specify is an absolute value with an optional units specifier.";
+ String helpStr = MSG.view_alert_definition_condition_editor_metric_threshold_tooltip();
StaticTextItem helpItem = buildHelpTextItem("thresholdHelp", helpStr, ifFunc);
formItems.add(helpItem);
formItems.add(buildMetricDropDownMenu(THRESHOLD_METRIC_ITEMNAME, false, ifFunc));
formItems.add(buildComparatorDropDownMenu(THRESHOLD_COMPARATOR_ITEMNAME, ifFunc));
- TextItem absoluteValue = new TextItem(THRESHOLD_ABSVALUE_ITEMNAME, "Metric Value");
+ TextItem absoluteValue = new TextItem(THRESHOLD_ABSVALUE_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_threshold_value());
absoluteValue.setWrapTitle(false);
absoluteValue.setRequired(true);
- absoluteValue
- .setTooltip("The threshold value of the metric that will trigger the condition when compared using the selected comparator.");
+ absoluteValue.setTooltip(MSG.view_alert_definition_condition_editor_metric_threshold_value_tooltip());
absoluteValue.setShowIfCondition(ifFunc);
formItems.add(absoluteValue);
@@ -390,7 +402,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(AlertConditionCategory.BASELINE);
- String helpStr = "Specify the baseline value that must be violated to trigger the condition. The value you specify is a percentage of the given baseline value.";
+ String helpStr = MSG.view_alert_definition_condition_editor_metric_baseline_tooltip();
StaticTextItem helpItem = buildHelpTextItem("baselineHelp", helpStr, ifFunc);
formItems.add(helpItem);
@@ -398,19 +410,20 @@ public class NewConditionEditor extends LocatableDynamicForm {
formItems.add(buildMetricDropDownMenu(BASELINE_METRIC_ITEMNAME, true, ifFunc));
formItems.add(buildComparatorDropDownMenu(BASELINE_COMPARATOR_ITEMNAME, ifFunc));
- TextItem baselinePercentage = new TextItem(BASELINE_PERCENTAGE_ITEMNAME, "Baseline Percentage");
+ TextItem baselinePercentage = new TextItem(BASELINE_PERCENTAGE_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_baseline_percentage());
baselinePercentage.setWrapTitle(false);
baselinePercentage.setRequired(true);
- baselinePercentage
- .setTooltip("A collected metric value will trigger this condition when compared to this percentage of the selected baseline value using the selected comparator");
+ baselinePercentage.setTooltip(MSG.view_alert_definition_condition_editor_metric_baseline_percentage_tooltip());
baselinePercentage.setShowIfCondition(ifFunc);
formItems.add(baselinePercentage);
- SelectItem baselineSelection = new SelectItem(BASELINE_SELECTION_ITEMNAME, "Baseline");
+ SelectItem baselineSelection = new SelectItem(BASELINE_SELECTION_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_baseline_value());
LinkedHashMap<String, String> baselines = new LinkedHashMap<String, String>(3);
- baselines.put("min", "Minimum"); // TODO can we have the current value of the min baseline
- baselines.put("mean", "Average"); // TODO can we have the current value of the avg baseline
- baselines.put("max", "Maximum"); // TODO can we have the current value of the max baseline
+ baselines.put("min", MSG.view_alert_definition_condition_editor_common_min()); // TODO can we have the current value of the min baseline
+ baselines.put("mean", MSG.view_alert_definition_condition_editor_common_avg()); // TODO can we have the current value of the avg baseline
+ baselines.put("max", MSG.view_alert_definition_condition_editor_common_max()); // TODO can we have the current value of the max baseline
baselineSelection.setValueMap(baselines);
baselineSelection.setDefaultValue("mean");
baselineSelection.setWrapTitle(false);
@@ -427,7 +440,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(AlertConditionCategory.CHANGE);
- String helpStr = "Specify the metric whose value must change to trigger the condition.";
+ String helpStr = MSG.view_alert_definition_condition_editor_metric_change_tooltip();
StaticTextItem helpItem = buildHelpTextItem("changeMetricHelp", helpStr, ifFunc);
formItems.add(helpItem);
@@ -441,18 +454,20 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(ALERT_CONDITION_CATEGORY_CALLTIME_THRESHOLD);
- String helpStr = "Specify the calltime threshold value that, when violated, triggers the condition. The value you specify is an absolute value with an optional units specifier. You also must specify which calltime limit to compare the value with (minimum, maximum or average calltime value).";
+ String helpStr = MSG.view_alert_definition_condition_editor_metric_calltime_threshold_tooltip();
StaticTextItem helpItem = buildHelpTextItem("calltimeThresholdHelp", helpStr, ifFunc);
formItems.add(helpItem);
formItems.add(buildCalltimeMetricDropDownMenu(CALLTIME_THRESHOLD_METRIC_ITEMNAME, ifFunc));
- SelectItem minMaxAvgSelection = new SelectItem(CALLTIME_THRESHOLD_MINMAXAVG_ITEMNAME, "Calltime Limit");
+ SelectItem minMaxAvgSelection = new SelectItem(CALLTIME_THRESHOLD_MINMAXAVG_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_calltime_common_limit());
LinkedHashMap<String, String> limits = new LinkedHashMap<String, String>(3);
- limits.put("MIN", "Minimum");
- limits.put("AVG", "Average");
- limits.put("MAX", "Maximum");
- minMaxAvgSelection.setTooltip("The calltime limit value that is to be compared with the given value");
+ limits.put("MIN", MSG.view_alert_definition_condition_editor_common_min());
+ limits.put("AVG", MSG.view_alert_definition_condition_editor_common_avg());
+ limits.put("MAX", MSG.view_alert_definition_condition_editor_common_max());
+ minMaxAvgSelection
+ .setTooltip(MSG.view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip());
minMaxAvgSelection.setValueMap(limits);
minMaxAvgSelection.setDefaultValue("AVG");
minMaxAvgSelection.setWrapTitle(false);
@@ -462,18 +477,18 @@ public class NewConditionEditor extends LocatableDynamicForm {
formItems.add(minMaxAvgSelection);
formItems.add(buildComparatorDropDownMenu(CALLTIME_THRESHOLD_COMPARATOR_ITEMNAME, ifFunc));
- TextItem absoluteValue = new TextItem(CALLTIME_THRESHOLD_ABSVALUE_ITEMNAME, "Calltime Value");
+ TextItem absoluteValue = new TextItem(CALLTIME_THRESHOLD_ABSVALUE_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_calltime_threshold_value());
absoluteValue.setWrapTitle(false);
absoluteValue.setRequired(true);
- absoluteValue
- .setTooltip("The threshold value of the metric that will trigger the condition when compared using the selected comparator.");
+ absoluteValue.setTooltip(MSG.view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip());
absoluteValue.setShowIfCondition(ifFunc);
formItems.add(absoluteValue);
- TextItem regex = new TextItem(CALLTIME_THRESHOLD_REGEX_ITEMNAME, "Regular Expression");
+ TextItem regex = new TextItem(CALLTIME_THRESHOLD_REGEX_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_calltime_common_regex());
regex.setRequired(false);
- regex
- .setTooltip("If specified, this is a regular expression that must match a call destination in order to trigger the condition.");
+ regex.setTooltip(MSG.view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip());
regex.setWrapTitle(false);
regex.setShowIfCondition(ifFunc);
formItems.add(regex);
@@ -486,18 +501,20 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(ALERT_CONDITION_CATEGORY_CALLTIME_CHANGE);
- String helpStr = "Specify the calltime value that, when changed at least a specified amount, triggers the condition. You must specify which calltime limit to check (minimum, maximum or average calltime value) and the percentage of change that must occur.";
+ String helpStr = MSG.view_alert_definition_condition_editor_metric_calltime_change_tooltip();
StaticTextItem helpItem = buildHelpTextItem("calltimeChangeHelp", helpStr, ifFunc);
formItems.add(helpItem);
formItems.add(buildCalltimeMetricDropDownMenu(CALLTIME_CHANGE_METRIC_ITEMNAME, ifFunc));
- SelectItem minMaxAvgSelection = new SelectItem(CALLTIME_CHANGE_MINMAXAVG_ITEMNAME, "Calltime Limit");
+ SelectItem minMaxAvgSelection = new SelectItem(CALLTIME_CHANGE_MINMAXAVG_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_calltime_common_limit());
LinkedHashMap<String, String> limits = new LinkedHashMap<String, String>(3);
- limits.put("MIN", "Minimum");
- limits.put("AVG", "Average");
- limits.put("MAX", "Maximum");
- minMaxAvgSelection.setTooltip("The calltime limit value that is to be checked for change");
+ limits.put("MIN", MSG.view_alert_definition_condition_editor_common_min());
+ limits.put("AVG", MSG.view_alert_definition_condition_editor_common_avg());
+ limits.put("MAX", MSG.view_alert_definition_condition_editor_common_max());
+ minMaxAvgSelection
+ .setTooltip(MSG.view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip());
minMaxAvgSelection.setValueMap(limits);
minMaxAvgSelection.setDefaultValue("AVG");
minMaxAvgSelection.setWrapTitle(false);
@@ -508,18 +525,18 @@ public class NewConditionEditor extends LocatableDynamicForm {
formItems.add(buildCalltimeComparatorDropDownMenu(CALLTIME_CHANGE_COMPARATOR_ITEMNAME, ifFunc));
- TextItem percentage = new TextItem(CALLTIME_CHANGE_PERCENTAGE_ITEMNAME, "Percentage Change");
+ TextItem percentage = new TextItem(CALLTIME_CHANGE_PERCENTAGE_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_calltime_change_percentage());
percentage.setWrapTitle(false);
percentage.setRequired(true);
- percentage
- .setTooltip("A collected calltime value will trigger this condition when it differs by at least this percentage of the selected calltime limit value");
+ percentage.setTooltip(MSG.view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip());
percentage.setShowIfCondition(ifFunc);
formItems.add(percentage);
- TextItem regex = new TextItem(CALLTIME_CHANGE_REGEX_ITEMNAME, "Regular Expression");
+ TextItem regex = new TextItem(CALLTIME_CHANGE_REGEX_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_calltime_common_regex());
regex.setRequired(false);
- regex
- .setTooltip("If specified, this is a regular expression that must match a call destination in order to trigger the condition.");
+ regex.setTooltip(MSG.view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip());
regex.setWrapTitle(false);
regex.setShowIfCondition(ifFunc);
formItems.add(regex);
@@ -532,7 +549,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(AlertConditionCategory.TRAIT);
- String helpStr = "Specify the trait whose value must change to trigger the condition.";
+ String helpStr = MSG.view_alert_definition_condition_editor_metric_trait_change_tooltip();
StaticTextItem helpItem = buildHelpTextItem("traitHelp", helpStr, ifFunc);
formItems.add(helpItem);
@@ -543,7 +560,8 @@ public class NewConditionEditor extends LocatableDynamicForm {
}
}
- SelectItem traitSelection = new SelectItem(TRAIT_METRIC_ITEMNAME, "Trait");
+ SelectItem traitSelection = new SelectItem(TRAIT_METRIC_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_metric_trait_change_value());
traitSelection.setValueMap(traitsMap);
traitSelection.setDefaultValue(traitsMap.keySet().iterator().next()); // just use the first one
traitSelection.setWidth("*");
@@ -559,14 +577,15 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(AlertConditionCategory.AVAILABILITY);
- String helpStr = "Specify the availability state change that will trigger the condition.";
+ String helpStr = MSG.view_alert_definition_condition_editor_avilability_tooltip();
StaticTextItem helpItem = buildHelpTextItem("availabilityHelp", helpStr, ifFunc);
formItems.add(helpItem);
- SelectItem selection = new SelectItem(AVAILABILITY_ITEMNAME, "Availability");
+ SelectItem selection = new SelectItem(AVAILABILITY_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_avilability_value());
LinkedHashMap<String, String> avails = new LinkedHashMap<String, String>(2);
- avails.put(AvailabilityType.UP.name(), "Goes UP");
- avails.put(AvailabilityType.DOWN.name(), "Goes DOWN");
+ avails.put(AvailabilityType.UP.name(), MSG.view_alert_definition_condition_editor_avilability_option_up());
+ avails.put(AvailabilityType.DOWN.name(), MSG.view_alert_definition_condition_editor_avilability_option_down());
selection.setValueMap(avails);
selection.setDefaultValue(AvailabilityType.DOWN.name());
selection.setShowIfCondition(ifFunc);
@@ -580,7 +599,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(AlertConditionCategory.CONTROL);
- String helpStr = "Specify the result that must occur when the selected operation is executed in order to trigger the condition.";
+ String helpStr = MSG.view_alert_definition_condition_editor_operation_tooltip();
StaticTextItem helpItem = buildHelpTextItem("operationHelp", helpStr, ifFunc);
formItems.add(helpItem);
@@ -589,7 +608,8 @@ public class NewConditionEditor extends LocatableDynamicForm {
ops.put(opDef.getName(), opDef.getDisplayName());
}
- SelectItem opSelection = new SelectItem(OPERATION_NAME_ITEMNAME, "Operation");
+ SelectItem opSelection = new SelectItem(OPERATION_NAME_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_operation_value());
opSelection.setValueMap(ops);
opSelection.setDefaultValue(ops.keySet().iterator().next()); // just use the first one
opSelection.setWidth("*");
@@ -597,12 +617,17 @@ public class NewConditionEditor extends LocatableDynamicForm {
opSelection.setShowIfCondition(ifFunc);
formItems.add(opSelection);
- SelectItem opResultsSelection = new SelectItem(OPERATION_RESULTS_ITEMNAME, "Operation Status");
+ SelectItem opResultsSelection = new SelectItem(OPERATION_RESULTS_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_operation_status());
LinkedHashMap<String, String> operationStatuses = new LinkedHashMap<String, String>(4);
- operationStatuses.put(OperationRequestStatus.INPROGRESS.name(), OperationRequestStatus.INPROGRESS.name());
- operationStatuses.put(OperationRequestStatus.SUCCESS.name(), OperationRequestStatus.SUCCESS.name());
- operationStatuses.put(OperationRequestStatus.FAILURE.name(), OperationRequestStatus.FAILURE.name());
- operationStatuses.put(OperationRequestStatus.CANCELED.name(), OperationRequestStatus.CANCELED.name());
+ operationStatuses.put(OperationRequestStatus.INPROGRESS.name(), MSG
+ .view_alert_definition_condition_editor_operation_status_inprogress());
+ operationStatuses.put(OperationRequestStatus.SUCCESS.name(), MSG
+ .view_alert_definition_condition_editor_operation_status_success());
+ operationStatuses.put(OperationRequestStatus.FAILURE.name(), MSG
+ .view_alert_definition_condition_editor_operation_status_failure());
+ operationStatuses.put(OperationRequestStatus.CANCELED.name(), MSG
+ .view_alert_definition_condition_editor_operation_status_canceled());
opResultsSelection.setValueMap(operationStatuses);
opResultsSelection.setDefaultValue(OperationRequestStatus.FAILURE.name());
opResultsSelection.setWrapTitle(false);
@@ -617,27 +642,28 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(AlertConditionCategory.EVENT);
- String helpStr = "Specify the event severity that an event message must be reported with in order to trigger this condition. If you specify an optional regular expression, the event message must also match that regular expression in order for the condition to trigger.";
+ String helpStr = MSG.view_alert_definition_condition_editor_event_tooltip();
StaticTextItem helpItem = buildHelpTextItem("eventHelp", helpStr, ifFunc);
formItems.add(helpItem);
- SelectItem eventSeveritySelection = new SelectItem(EVENT_SEVERITY_ITEMNAME, "Event Severity");
+ SelectItem eventSeveritySelection = new SelectItem(EVENT_SEVERITY_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_event_severity());
LinkedHashMap<String, String> severities = new LinkedHashMap<String, String>(5);
- severities.put(EventSeverity.DEBUG.name(), EventSeverity.DEBUG.name());
- severities.put(EventSeverity.INFO.name(), EventSeverity.INFO.name());
- severities.put(EventSeverity.WARN.name(), EventSeverity.WARN.name());
- severities.put(EventSeverity.ERROR.name(), EventSeverity.ERROR.name());
- severities.put(EventSeverity.FATAL.name(), EventSeverity.FATAL.name());
+ severities.put(EventSeverity.DEBUG.name(), MSG.view_alert_definition_condition_editor_event_severity_debug());
+ severities.put(EventSeverity.INFO.name(), MSG.view_alert_definition_condition_editor_event_severity_info());
+ severities.put(EventSeverity.WARN.name(), MSG.view_alert_definition_condition_editor_event_severity_warn());
+ severities.put(EventSeverity.ERROR.name(), MSG.view_alert_definition_condition_editor_event_severity_error());
+ severities.put(EventSeverity.FATAL.name(), MSG.view_alert_definition_condition_editor_event_severity_fatal());
eventSeveritySelection.setValueMap(severities);
eventSeveritySelection.setDefaultValue(EventSeverity.ERROR.name());
eventSeveritySelection.setWrapTitle(false);
eventSeveritySelection.setShowIfCondition(ifFunc);
formItems.add(eventSeveritySelection);
- TextItem eventRegex = new TextItem(EVENT_REGEX_ITEMNAME, "Regular Expression");
+ TextItem eventRegex = new TextItem(EVENT_REGEX_ITEMNAME, MSG
+ .view_alert_definition_condition_editor_event_regex());
eventRegex.setRequired(false);
- eventRegex
- .setTooltip("If specified, this is a regular expression that must match a collected event message in order to trigger the condition.");
+ eventRegex.setTooltip(MSG.view_alert_definition_condition_editor_event_regex_tooltip());
eventRegex.setWrapTitle(false);
eventRegex.setShowIfCondition(ifFunc);
formItems.add(eventRegex);
@@ -650,7 +676,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
ShowIfCategoryFunction ifFunc = new ShowIfCategoryFunction(AlertConditionCategory.RESOURCE_CONFIG);
- String helpStr = "This condition is triggered when the resource configuration changes.";
+ String helpStr = MSG.view_alert_definition_condition_editor_resource_configuration_tooltip();
StaticTextItem helpItem = buildHelpTextItem("changeConfigHelp", helpStr, ifFunc);
formItems.add(helpItem);
@@ -668,7 +694,8 @@ public class NewConditionEditor extends LocatableDynamicForm {
}
}
- SelectItem metricSelection = new SelectItem(itemName, "Metric");
+ SelectItem metricSelection = new SelectItem(itemName, MSG
+ .view_alert_definition_condition_editor_metric_threshold_name());
metricSelection.setValueMap(metricsMap);
metricSelection.setDefaultValue(metricsMap.keySet().iterator().next()); // just use the first one
metricSelection.setWidth("*");
@@ -686,7 +713,8 @@ public class NewConditionEditor extends LocatableDynamicForm {
}
}
- SelectItem metricSelection = new SelectItem(itemName, "Metric");
+ SelectItem metricSelection = new SelectItem(itemName, MSG
+ .view_alert_definition_condition_editor_metric_calltime_common_name());
metricSelection.setValueMap(metricsMap);
metricSelection.setDefaultValue(metricsMap.keySet().iterator().next()); // just use the first one
metricSelection.setWidth("*");
@@ -698,14 +726,19 @@ public class NewConditionEditor extends LocatableDynamicForm {
private SelectItem buildComparatorDropDownMenu(String itemName, FormItemIfFunction ifFunc) {
LinkedHashMap<String, String> comparators = new LinkedHashMap<String, String>(3);
- comparators.put("<", "< (Less than)");
- comparators.put("=", "= (Equal to)");
- comparators.put(">", "> (Greater than)");
-
- SelectItem comparatorSelection = new SelectItem(itemName, "Comparator");
+ comparators.put("<", "< (" + MSG.view_alert_definition_condition_editor_metric_threshold_comparator_less()
+ + ")");
+ comparators.put("=", "= (" + MSG.view_alert_definition_condition_editor_metric_threshold_comparator_equal()
+ + ")");
+ comparators.put(">", "> (" + MSG.view_alert_definition_condition_editor_metric_threshold_comparator_greater()
+ + ")");
+
+ SelectItem comparatorSelection = new SelectItem(itemName, MSG
+ .view_alert_definition_condition_editor_metric_threshold_comparator());
comparatorSelection.setValueMap(comparators);
comparatorSelection.setDefaultValue("<");
- comparatorSelection.setTooltip("How a collected metric value should be compared to the given threshold value");
+ comparatorSelection
+ .setTooltip(MSG.view_alert_definition_condition_editor_metric_threshold_comparator_tooltip());
comparatorSelection.setShowIfCondition(ifFunc);
return comparatorSelection;
}
@@ -713,14 +746,16 @@ public class NewConditionEditor extends LocatableDynamicForm {
private SelectItem buildCalltimeComparatorDropDownMenu(String itemName, FormItemIfFunction ifFunc) {
LinkedHashMap<String, String> comparators = new LinkedHashMap<String, String>(3);
- comparators.put("LO", "Shrinks");
- comparators.put("CH", "Changes");
- comparators.put("HI", "Grows");
+ comparators.put("LO", MSG.view_alert_definition_condition_editor_metric_calltime_common_comparator_shrinks());
+ comparators.put("CH", MSG.view_alert_definition_condition_editor_metric_calltime_common_comparator_changes());
+ comparators.put("HI", MSG.view_alert_definition_condition_editor_metric_calltime_common_comparator_grows());
- SelectItem comparatorSelection = new SelectItem(itemName, "Comparator");
+ SelectItem comparatorSelection = new SelectItem(itemName, MSG
+ .view_alert_definition_condition_editor_metric_calltime_common_comparator());
comparatorSelection.setValueMap(comparators);
comparatorSelection.setDefaultValue("CH");
- comparatorSelection.setTooltip("How a collected calltime value should be compared to the given calltime limit");
+ comparatorSelection.setTooltip(MSG
+ .view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip());
comparatorSelection.setShowIfCondition(ifFunc);
return comparatorSelection;
}
@@ -742,7 +777,8 @@ public class NewConditionEditor extends LocatableDynamicForm {
return def;
}
}
- CoreGUI.getErrorHandler().handleError("Should have found metric definition - something is wrong");
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_condition_editor_metric_common_definition_not_found());
return null;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewNotificationEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewNotificationEditor.java
index 68c07f4..c1eb705 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewNotificationEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewNotificationEditor.java
@@ -81,7 +81,8 @@ public class NewNotificationEditor extends LocatableDynamicForm {
senderCanvasItem.setShowTitle(false);
senderCanvasItem.setColSpan(2);
- notificationSenderSelectItem = new SelectItem("notificationSender", "Notification Sender");
+ notificationSenderSelectItem = new SelectItem("notificationSender", MSG
+ .view_alert_definition_notification_editor_sender());
notificationSenderSelectItem.setDefaultToFirstOption(true);
notificationSenderSelectItem.setWrapTitle(false);
notificationSenderSelectItem.setRedrawOnChange(true);
@@ -115,13 +116,15 @@ public class NewNotificationEditor extends LocatableDynamicForm {
switchToAlertSender(result[0]);
senderCanvasItem.show();
} else {
- CoreGUI.getErrorHandler().handleError("No alert senders available");
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_editor_none_available());
}
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Cannot get alert senders", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definition_notification_editor_loadFailed(),
+ caught);
}
});
}
@@ -142,7 +145,7 @@ public class NewNotificationEditor extends LocatableDynamicForm {
spacer2.setColSpan(2);
spacer2.setHeight(5);
- ButtonItem ok = new ButtonItem("okButtonItem", "OK");
+ ButtonItem ok = new ButtonItem("okButtonItem", MSG.common_button_ok());
ok.setEndRow(false);
ok.setAlign(Alignment.RIGHT);
ok.addClickHandler(new ClickHandler() {
@@ -159,7 +162,7 @@ public class NewNotificationEditor extends LocatableDynamicForm {
}
});
- ButtonItem cancel = new ButtonItem("cancelButtonItem", "Cancel");
+ ButtonItem cancel = new ButtonItem("cancelButtonItem", MSG.common_button_cancel());
cancel.setStartRow(false);
cancel.setAlign(Alignment.LEFT);
cancel.addClickHandler(new ClickHandler() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NotificationsAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NotificationsAlertDefinitionForm.java
index 947ca60..f72846d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NotificationsAlertDefinitionForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NotificationsAlertDefinitionForm.java
@@ -178,10 +178,12 @@ public class NotificationsAlertDefinitionForm extends LocatableVLayout implement
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceTextField senderField = new DataSourceTextField(FIELD_SENDER, "Sender");
+ DataSourceTextField senderField = new DataSourceTextField(FIELD_SENDER, MSG
+ .view_alert_definition_notification_editor_field_sender());
fields.add(senderField);
- DataSourceTextField configField = new DataSourceTextField(FIELD_CONFIGURATION, "Configuration");
+ DataSourceTextField configField = new DataSourceTextField(FIELD_CONFIGURATION, MSG
+ .view_alert_definition_notification_editor_field_configuration());
fields.add(configField);
return fields;
@@ -198,7 +200,8 @@ public class NotificationsAlertDefinitionForm extends LocatableVLayout implement
record.setAttribute(FIELD_OBJECT, from);
record.setAttribute(FIELD_SENDER, from.getSenderName());
// our executeFetch will fill in the real value for FIELD_CONFIGURATION
- record.setAttribute(FIELD_CONFIGURATION, "(unknown)");
+ record.setAttribute(FIELD_CONFIGURATION, "("
+ + MSG.view_alert_definition_notification_editor_field_configuration_not_loaded() + ")");
return record;
}
@@ -221,8 +224,8 @@ public class NotificationsAlertDefinitionForm extends LocatableVLayout implement
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to get notification configuration preview",
- caught);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_editor_field_configuration_loadFailed(), caught);
response.setData(records);
processResponse(request.getRequestId(), response);
}
@@ -241,9 +244,11 @@ public class NotificationsAlertDefinitionForm extends LocatableVLayout implement
@Override
protected void configureTable() {
- ListGridField senderField = new ListGridField(FIELD_SENDER, "Sender");
+ ListGridField senderField = new ListGridField(FIELD_SENDER, MSG
+ .view_alert_definition_notification_editor_field_sender());
senderField.setWidth("25%");
- ListGridField configField = new ListGridField(FIELD_CONFIGURATION, "Configuration");
+ ListGridField configField = new ListGridField(FIELD_CONFIGURATION, MSG
+ .view_alert_definition_notification_editor_field_configuration());
configField.setWidth("75%");
getListGrid().setFields(senderField, configField);
@@ -260,34 +265,34 @@ public class NotificationsAlertDefinitionForm extends LocatableVLayout implement
}
});
- addTableAction(this.extendLocatorId("add"), "Add", null, new AbstractTableAction() {
+ addTableAction(this.extendLocatorId("add"), MSG.common_button_add(), null, new AbstractTableAction() {
@Override
public void executeAction(ListGridRecord[] selection, Object actionValue) {
popupNotificationEditor(null);
}
});
- addTableAction(this.extendLocatorId("delete"), "Delete",
- "Are you sure you want to delete the selected alert notifications?", new AbstractTableAction(
- TableActionEnablement.ANY) {
- @Override
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- for (ListGridRecord record : selection) {
- AlertNotification notif = ((NotificationDataSource) getDataSource()).copyValues(record);
- notifications.remove(notif);
- }
- table.refresh();
+ addTableAction(this.extendLocatorId("delete"), MSG.common_button_delete(), MSG
+ .view_alert_definition_notification_editor_delete_confirm(), new AbstractTableAction(
+ TableActionEnablement.ANY) {
+ @Override
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ for (ListGridRecord record : selection) {
+ AlertNotification notif = ((NotificationDataSource) getDataSource()).copyValues(record);
+ notifications.remove(notif);
}
- });
+ table.refresh();
+ }
+ });
}
private void popupNotificationEditor(AlertNotification notifToEdit) {
final Window winModal = new LocatableWindow(NotificationsAlertDefinitionForm.this
.extendLocatorId("notificationEditorWindow"));
if (notifToEdit == null) {
- winModal.setTitle("Add Notification");
+ winModal.setTitle(MSG.view_alert_definition_notification_editor_title_add());
} else {
- winModal.setTitle("Edit Notification");
+ winModal.setTitle(MSG.view_alert_definition_notification_editor_title_edit());
}
winModal.setOverflow(Overflow.VISIBLE);
winModal.setShowMinimizeButton(false);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java
index cf8af6a..a3cfea1 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/RecoveryAlertDefinitionForm.java
@@ -95,7 +95,7 @@ public class RecoveryAlertDefinitionForm extends LocatableDynamicForm implements
refreshWidgets(allAlertDefinitions);
disableWhenFiredSelection.setValue(alertDef.getWillRecover() ? "yes" : "no");
- disableWhenFiredStatic.setValue(alertDef.getWillRecover() ? "Yes" : "No");
+ disableWhenFiredStatic.setValue(alertDef.getWillRecover() ? MSG.common_val_yes() : MSG.common_val_no());
}
markForRedraw();
@@ -150,28 +150,31 @@ public class RecoveryAlertDefinitionForm extends LocatableDynamicForm implements
private void buildForm() {
if (!formBuilt) {
- disableWhenFiredSelection = new RadioGroupItem("disableWhenFired", "Disable When Fired");
+ disableWhenFiredSelection = new RadioGroupItem("disableWhenFired", MSG
+ .view_alert_definition_recovery_editor_disable_when_fired());
LinkedHashMap<String, String> yesNo = new LinkedHashMap<String, String>(2);
- yesNo.put("yes", "Yes");
- yesNo.put("no", "No");
+ yesNo.put("yes", MSG.common_val_yes());
+ yesNo.put("no", MSG.common_val_no());
disableWhenFiredSelection.setValueMap(yesNo);
disableWhenFiredSelection.setDefaultValue("no");
disableWhenFiredSelection.setWrapTitle(false);
disableWhenFiredSelection.setWidth(300);
disableWhenFiredSelection.setHoverWidth(300);
disableWhenFiredSelection
- .setTooltip("Indicates if this alert will be disabled after it fires. Once disabled, the alert can be manually re-enabled or a recovery alert can be set up to automatically re-enable it. If this alert is a recovery alert itself, this setting cannot be turned on.");
- disableWhenFiredStatic = new StaticTextItem("disableWhenFiredStatic", "Disable When Fired");
+ .setTooltip(MSG.view_alert_definition_recovery_editor_disable_when_fired_tooltip());
+ disableWhenFiredStatic = new StaticTextItem("disableWhenFiredStatic", MSG
+ .view_alert_definition_recovery_editor_disable_when_fired());
disableWhenFiredStatic.setWrapTitle(false);
- recoverAlertSelection = new SelectItem("recoveryAlert", "Recover Alert");
+ recoverAlertSelection = new SelectItem("recoveryAlert", MSG
+ .view_alert_definition_recovery_editor_recovery_alert());
recoverAlertSelection.setDefaultValue("0");
recoverAlertSelection.setWrapTitle(false);
recoverAlertSelection.setHoverWidth(300);
- recoverAlertSelection
- .setTooltip("The target alert that will be recovered (i.e. re-enabled) after this alert triggers. Do not select an alert here if you are not defining a recovery alert.");
+ recoverAlertSelection.setTooltip(MSG.view_alert_definition_recovery_editor_recovery_alert_tooltip());
- recoverAlertStatic = new StaticTextItem("recoveryAlertStatic", "Recover Alert");
+ recoverAlertStatic = new StaticTextItem("recoveryAlertStatic", MSG
+ .view_alert_definition_recovery_editor_recovery_alert());
recoverAlertStatic.setDefaultValue(getNoRecoveryMenuItemTitle());
recoverAlertStatic.setWrapTitle(false);
recoverAlertStatic.setWidth(300);
@@ -217,7 +220,8 @@ public class RecoveryAlertDefinitionForm extends LocatableDynamicForm implements
GWTServiceLookup.getAlertDefinitionService().findAlertDefinitionsByCriteria(criteria,
new AsyncCallback<PageList<AlertDefinition>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Cannot build recovery menu", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definition_recovery_editor_loadFailed(),
+ caught);
}
public void onSuccess(PageList<AlertDefinition> result) {
@@ -275,7 +279,7 @@ public class RecoveryAlertDefinitionForm extends LocatableDynamicForm implements
private String getNoRecoveryMenuItemTitle() {
StringBuilder str = new StringBuilder();
str.append("-- ");
- str.append("None");
+ str.append(MSG.view_alert_definition_recovery_editor_none_available());
str.append(" --");
return str.toString();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java
index b9c4dca..97acbd2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsDataSource.java
@@ -64,17 +64,17 @@ public class ResourceAlertDefinitionsDataSource extends AbstractAlertDefinitions
if ((parentId == null || parentId.intValue() == 0) && (groupAlertDefinition == null)) {
record.setAttribute(FIELD_PARENT, "");
record.setLinkText("");
- record.setAttribute(FIELD_READONLY, "N/A");
+ record.setAttribute(FIELD_READONLY, MSG.common_val_na());
} else {
// TODO: fix the URLs so they point to the new GWT pages when they are implemented
if (parentId != null && parentId.intValue() != 0) {
record.setAttribute(FIELD_PARENT, "/alerts/Config.do?mode=viewRoles&type="
+ this.resource.getResourceType().getId() + "&from=" + from.getId() + "&ad=" + parentId);
- record.setLinkText("View Template");
+ record.setLinkText(MSG.view_alert_definition_for_type());
} else {
record.setAttribute(FIELD_PARENT, "#ResourceGroup/" + groupAlertDefinition.getResourceGroup().getId()
+ "/Alerts/Definitions/" + groupAlertDefinition.getId());
- record.setLinkText("View Group Definition");
+ record.setLinkText(MSG.view_alert_definition_for_group());
}
record.setAttribute(FIELD_READONLY, readOnly);
}
@@ -87,10 +87,10 @@ public class ResourceAlertDefinitionsDataSource extends AbstractAlertDefinitions
List<DataSourceField> fields = super.addDataSourceFields();
// add two more columns
- DataSourceLinkField parentIdField = new DataSourceLinkField(FIELD_PARENT, "Parent");
+ DataSourceLinkField parentIdField = new DataSourceLinkField(FIELD_PARENT, MSG.view_alerts_field_parent());
fields.add(parentIdField);
- DataSourceTextField readOnlyField = new DataSourceTextField(FIELD_READONLY, "Read Only");
+ DataSourceTextField readOnlyField = new DataSourceTextField(FIELD_READONLY, MSG.view_alerts_field_protected());
fields.add(readOnlyField);
return fields;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
index d7d499c..cf8398c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
@@ -129,13 +129,13 @@ public class ResourceAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(Integer result) {
CoreGUI.getMessageCenter().notify(
- new Message("[" + result + "] alert definitions enabled.", Severity.Info));
+ new Message(MSG.view_alert_definitions_enable_success(String.valueOf(result)), Severity.Info));
ResourceAlertDefinitionsView.this.refresh();
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to enable alert definitions", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_enable_failure(), caught);
}
});
}
@@ -156,13 +156,13 @@ public class ResourceAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(Integer result) {
CoreGUI.getMessageCenter().notify(
- new Message("[" + result + "] alert definitions disabled.", Severity.Info));
+ new Message(MSG.view_alert_definitions_disable_success(String.valueOf(result)), Severity.Info));
ResourceAlertDefinitionsView.this.refresh();
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to disable alert definitions.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_disable_failure(), caught);
}
});
}
@@ -183,13 +183,13 @@ public class ResourceAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(Integer result) {
CoreGUI.getMessageCenter().notify(
- new Message("[" + result + "] alert definitions deleted.", Severity.Info));
+ new Message(MSG.view_alert_definitions_delete_success(String.valueOf(result)), Severity.Info));
ResourceAlertDefinitionsView.this.refresh();
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to delete alert definitions.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_delete_failure(), caught);
}
});
}
@@ -201,13 +201,14 @@ public class ResourceAlertDefinitionsView extends AbstractAlertDefinitionsView {
Integer.valueOf(resource.getId()), new AsyncCallback<Integer>() {
@Override
public void onSuccess(Integer result) {
- CoreGUI.getMessageCenter().notify(new Message("Alert definition is created", Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_alert_definitions_create_success(), Severity.Info));
alertDefinition.setId(result.intValue());
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to create alert definition.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_create_failure(), caught);
}
});
} else {
@@ -215,12 +216,13 @@ public class ResourceAlertDefinitionsView extends AbstractAlertDefinitionsView {
alertDefinition, true, new AsyncCallback<AlertDefinition>() {
@Override
public void onSuccess(AlertDefinition result) {
- CoreGUI.getMessageCenter().notify(new Message("Alert definition is updated.", Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_alert_definitions_update_success(), Severity.Info));
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to update alert definition.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_update_failure(), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationInfo.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationInfo.java
index d8f4b46..c4df95a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationInfo.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationInfo.java
@@ -20,6 +20,8 @@
package org.rhq.enterprise.gui.coregui.client.alert.definitions;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.Messages;
/**
* Convienence class that encapsulates the different configuration properties that a notification
@@ -28,6 +30,9 @@ import org.rhq.core.domain.configuration.Configuration;
* @author John Mazzitelli
*/
public class ResourceOperationNotificationInfo {
+
+ static Messages MSG = CoreGUI.getMessages();
+
public enum Constants {
SELECTION_MODE("selection-mode"), // self, specific, relative
SPECIFIC_RESOURCE_ID("selection-specific-resource-id"), //
@@ -55,16 +60,16 @@ public class ResourceOperationNotificationInfo {
public String getDisplayString() {
switch (ordinal()) {
case 0: {
- return "This Resource";
+ return MSG.view_alert_definition_notification_operation_editor_mode_this();
}
case 1: {
- return "Specific Resource";
+ return MSG.view_alert_definition_notification_operation_editor_mode_specific();
}
case 2: {
- return "Relative Resource";
+ return MSG.view_alert_definition_notification_operation_editor_mode_relative();
}
default: {
- return "UNKNOWN OPTION - THIS IS A BUG"; // should never happen
+ return MSG.view_alert_definition_notification_operation_editor_mode_unknown(); // should never happen
}
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationSenderForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationSenderForm.java
index cf3adb4..22f5569 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationSenderForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceOperationNotificationSenderForm.java
@@ -108,7 +108,8 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
operationArgumentsCanvasItem.setHeight(400);
operationArgumentsCanvasItem.setWidth(500);
- operationSelectItem = new SelectItem("operationSelectItem", "Operation");
+ operationSelectItem = new SelectItem("operationSelectItem", MSG
+ .view_alert_definition_notification_operation_editor_common_operation());
operationSelectItem.setStartRow(true);
operationSelectItem.setEndRow(true);
operationSelectItem.setWrapTitle(false);
@@ -125,7 +126,8 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
// for SPECIFIC mode
- singleResourceTextItem = new StaticTextItem("singleResourceTextItem", "Resource");
+ singleResourceTextItem = new StaticTextItem("singleResourceTextItem", MSG
+ .view_alert_definition_notification_operation_editor_specific_resource());
singleResourceTextItem.setStartRow(true);
singleResourceTextItem.setEndRow(false);
singleResourceTextItem.setValue("Pick a resource...");
@@ -133,7 +135,8 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
singleResourceTextItem.setAttribute(RESOURCE_ID_ATTRIBUTE, 0); // we hide the resource ID in this attribute
singleResourceTextItem.setValidators(new ResourceIdValidator(singleResourceTextItem));
- ButtonItem singleResourceButtonItem = new ButtonItem("singleResourceButtonItem", "Pick");
+ ButtonItem singleResourceButtonItem = new ButtonItem("singleResourceButtonItem", MSG
+ .view_alert_definition_notification_operation_editor_specific_pick_button());
singleResourceButtonItem.setStartRow(false);
singleResourceButtonItem.setEndRow(true);
singleResourceButtonItem.setShowTitle(false);
@@ -156,15 +159,16 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
// for RELATIVE mode
- ancestorTypeSelectItem = new SelectItem("ancestorTypeSelectItem", "Start Search From");
+ ancestorTypeSelectItem = new SelectItem("ancestorTypeSelectItem", MSG
+ .view_alert_definition_notification_operation_editor_relative_ancestor());
ancestorTypeSelectItem.setStartRow(true);
ancestorTypeSelectItem.setEndRow(true);
ancestorTypeSelectItem.setWrapTitle(false);
ancestorTypeSelectItem.setRedrawOnChange(true);
ancestorTypeSelectItem.setDefaultToFirstOption(true);
ancestorTypeSelectItem.setHoverWidth(200);
- ancestorTypeSelectItem
- .setTooltip("Select the top of the type hierarchy from which to search its descedant tree for the Filter By type");
+ ancestorTypeSelectItem.setTooltip(MSG
+ .view_alert_definition_notification_operation_editor_relative_ancestor_tooltip());
ancestorTypeSelectItem.setShowIfCondition(new ShowIfModeFunction(ResourceSelectionMode.RELATIVE));
ancestorTypeSelectItem.addChangedHandler(new ChangedHandler() {
@Override
@@ -173,15 +177,16 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
}
});
- descendantTypeSelectItem = new SelectItem("descendantTypeSelectItem", "Then Filter By");
+ descendantTypeSelectItem = new SelectItem("descendantTypeSelectItem", MSG
+ .view_alert_definition_notification_operation_editor_relative_descendant());
descendantTypeSelectItem.setStartRow(true);
descendantTypeSelectItem.setEndRow(false);
descendantTypeSelectItem.setWrapTitle(false);
descendantTypeSelectItem.setRedrawOnChange(true);
descendantTypeSelectItem.setDefaultToFirstOption(true);
descendantTypeSelectItem.setHoverWidth(200);
- descendantTypeSelectItem
- .setTooltip("The resource type to search for under the root type defined in the Start Search From selection.");
+ descendantTypeSelectItem.setTooltip(MSG
+ .view_alert_definition_notification_operation_editor_relative_descendant_tooltip());
descendantTypeSelectItem.setShowIfCondition(new ShowIfModeFunction(ResourceSelectionMode.RELATIVE));
descendantTypeSelectItem.addChangedHandler(new ChangedHandler() {
@Override
@@ -195,14 +200,15 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
descendantNameTextItem.setEndRow(true);
descendantNameTextItem.setShowTitle(false);
descendantNameTextItem.setRequired(false);
- descendantNameTextItem
- .setTooltip("A specific name to uniquely identify a resource when more than one resource of the selected type might exist. This is optional if there will only ever be one resource of the resource type in the selected type hierarchy.");
+ descendantNameTextItem.setTooltip(MSG
+ .view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip());
descendantNameTextItem.setHoverWidth(200);
descendantNameTextItem.setShowIfCondition(new ShowIfModeFunction(ResourceSelectionMode.RELATIVE));
// the mode selector menu
- modeSelectItem = new SelectItem("modeSelectItem", "Resource Selection Mode");
+ modeSelectItem = new SelectItem("modeSelectItem", MSG
+ .view_alert_definition_notification_operation_editor_mode_title());
modeSelectItem.setStartRow(true);
modeSelectItem.setEndRow(true);
modeSelectItem.setWrapTitle(false);
@@ -222,7 +228,8 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
break;
}
case SPECIFIC: {
- singleResourceTextItem.setValue("Pick a resource...");
+ singleResourceTextItem.setValue(MSG
+ .view_alert_definition_notification_operation_editor_specific_pick_text());
singleResourceTextItem.setAttribute(RESOURCE_ID_ATTRIBUTE, 0);
hideOperationDropDownMenu();
break;
@@ -299,7 +306,8 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Cannot get type ancestry", caught);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed(), caught);
}
};
@@ -331,7 +339,8 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
@Override
public void onSuccess(HashMap<Integer, String> results) {
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>(results.size() + 1);
- map.put(String.valueOf(rootResourceTypeId), "Root Ancestor Type");
+ map.put(String.valueOf(rootResourceTypeId), MSG
+ .view_alert_definition_notification_operation_editor_relative_ancestor_root());
for (Map.Entry<Integer, String> entry : results.entrySet()) {
map.put(entry.getKey().toString(), entry.getValue());
}
@@ -349,7 +358,9 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Cannot get type descendants", caught);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_operation_editor_relative_descendant_loadFailed(),
+ caught);
}
});
}
@@ -418,7 +429,9 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
@Override
public void onSuccess(PageList<ResourceType> result) {
if (result == null || result.size() != 1) {
- CoreGUI.getErrorHandler().handleError("Error getting operations: " + result);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_operation_editor_operations_loadFailed() + ": "
+ + result);
hideOperationDropDownMenu();
return;
}
@@ -453,7 +466,8 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load the list of available operations", caught);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_operation_editor_operations_loadFailed(), caught);
hideOperationDropDownMenu();
}
});
@@ -480,13 +494,15 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
singleResourceTextItem.setValue(resource.getName());
setOperationDropDownMenuValues(resource.getResourceType().getId(), opId, args);
} else {
- onFailure(new Exception("query returns no results"));
+ onFailure(new Exception(MSG
+ .view_alert_definition_notification_operation_editor_operations_loadFailed()));
}
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Cannot determine resource name", caught);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_operation_editor_operations_loadFailed(), caught);
singleResourceTextItem.setValue(resourceId);
hideOperationDropDownMenu();
}
@@ -526,7 +542,7 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
ConfigurationEditor configEditor = new ConfigurationEditor(extendLocatorId("opArgs"), def, config);
operationArgumentsCanvasItem.addMember(configEditor);
} else {
- Label l = new Label("This operation does not take any parameters");
+ Label l = new Label(MSG.view_alert_definition_notification_operation_editor_operations_no_parameters());
l.setWrap(false);
operationArgumentsCanvasItem.addMember(l);
}
@@ -607,7 +623,7 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
return false;
}
} catch (Exception e) {
- CoreGUI.getErrorHandler().handleError("Cannot save the notification configuration", e);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definition_notification_editor_saveFailed(), e);
return false;
}
}
@@ -638,13 +654,14 @@ public class ResourceOperationNotificationSenderForm extends AbstractNotificatio
Integer id = Integer.valueOf(idItem.getAttributeAsInt(RESOURCE_ID_ATTRIBUTE));
boolean valid = (id != null && id.intValue() != 0);
if (!valid) {
- setErrorMessage("Please pick a resource");
+ setErrorMessage(MSG.view_alert_definition_notification_operation_editor_specific_pick_error_invalid());
} else {
LinkedHashMap<Integer, OperationDefinition> ops = (LinkedHashMap<Integer, OperationDefinition>) operationSelectItem
.getAttributeAsObject(OPERATION_DEFS_ATTRIBUTE);
if (ops == null || ops.isEmpty()) {
valid = false;
- setErrorMessage("Please pick a resource that has one or more operations");
+ setErrorMessage(MSG
+ .view_alert_definition_notification_operation_editor_specific_pick_error_no_operation());
}
}
return valid;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SimpleNotificationSenderForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SimpleNotificationSenderForm.java
index 65ddcd9..1095a28 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SimpleNotificationSenderForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SimpleNotificationSenderForm.java
@@ -65,7 +65,7 @@ public class SimpleNotificationSenderForm extends AbstractNotificationSenderForm
@Override
public void onFailure(Throwable caught) {
- String errMsg = "Cannot get alert sender configuration definition";
+ String errMsg = MSG.view_alert_definition_notification_editor_loadFailed_single();
CoreGUI.getErrorHandler().handleError(errMsg, caught);
Label label = new Label(errMsg);
label.setIcon("[SKIN]/Dialog/error.png");
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java
index 2e3caf0..6ef3b00 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SingleAlertDefinitionView.java
@@ -65,25 +65,28 @@ public class SingleAlertDefinitionView extends LocatableVLayout {
LocatableTabSet tabSet = new LocatableTabSet(this.getLocatorId());
tabSet.setHeight100();
- Tab generalPropertiesTab = new LocatableTab(tabSet.extendLocatorId("General"), "General Properties");
+ Tab generalPropertiesTab = new LocatableTab(tabSet.extendLocatorId("General"), MSG
+ .view_alert_common_tab_general());
generalProperties = new GeneralPropertiesAlertDefinitionForm(this.getLocatorId(), alertDefinition);
generalPropertiesTab.setPane(generalProperties);
- Tab conditionsTab = new LocatableTab(tabSet.extendLocatorId("Conditions"), "Conditions");
+ Tab conditionsTab = new LocatableTab(tabSet.extendLocatorId("Conditions"), MSG
+ .view_alert_common_tab_conditions());
conditions = new ConditionsAlertDefinitionForm(this.getLocatorId(), alertDefView.getResourceType(),
alertDefinition);
conditionsTab.setPane(conditions);
- Tab notificationsTab = new LocatableTab(tabSet.extendLocatorId("Notifications"), "Notifications");
+ Tab notificationsTab = new LocatableTab(tabSet.extendLocatorId("Notifications"), MSG
+ .view_alert_common_tab_notifications());
notifications = new NotificationsAlertDefinitionForm(this.getLocatorId(), alertDefinition);
notificationsTab.setPane(notifications);
- Tab recoveryTab = new LocatableTab(tabSet.extendLocatorId("Recovery"), "Recovery");
+ Tab recoveryTab = new LocatableTab(tabSet.extendLocatorId("Recovery"), MSG.view_alert_common_tab_recovery());
recovery = new RecoveryAlertDefinitionForm(this.getLocatorId(), alertDefView.getAlertDefinitionDataSource(),
alertDefinition);
recoveryTab.setPane(recovery);
- Tab dampeningTab = new LocatableTab(tabSet.extendLocatorId("Dampening"), "Dampening");
+ Tab dampeningTab = new LocatableTab(tabSet.extendLocatorId("Dampening"), MSG.view_alert_common_tab_dampening());
dampening = new DampeningAlertDefinitionForm(this.getLocatorId(), alertDefinition);
dampeningTab.setPane(dampening);
@@ -92,9 +95,9 @@ public class SingleAlertDefinitionView extends LocatableVLayout {
final HLayout buttons = new HLayout();
buttons.setMembersMargin(20);
- editButton = new LocatableButton(this.extendLocatorId("Edit"), "Edit");
- saveButton = new LocatableButton(this.extendLocatorId("Save"), "Save");
- cancelButton = new LocatableButton(this.extendLocatorId("Cancel"), "Cancel");
+ editButton = new LocatableButton(this.extendLocatorId("Edit"), MSG.common_button_edit());
+ saveButton = new LocatableButton(this.extendLocatorId("Save"), MSG.common_button_save());
+ cancelButton = new LocatableButton(this.extendLocatorId("Cancel"), MSG.common_button_cancel());
editButton.show();
saveButton.hide();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemRolesNotificationSenderForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemRolesNotificationSenderForm.java
index 8319e36..a0d3e52 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemRolesNotificationSenderForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/SystemRolesNotificationSenderForm.java
@@ -78,13 +78,14 @@ public class SystemRolesNotificationSenderForm extends AbstractNotificationSende
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler()
- .handleError("Cannot determine current roles - starting empty", caught);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_role_editor_loadFailed(), caught);
createNewSelector(null);
}
});
} catch (Exception e) {
- CoreGUI.getErrorHandler().handleError("Cannot use current roles - starting empty", e);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_role_editor_restoreFailed(), e);
createNewSelector(null);
}
} else {
@@ -110,7 +111,8 @@ public class SystemRolesNotificationSenderForm extends AbstractNotificationSende
getConfiguration().put(new PropertySimple(PROPNAME, newPropValue));
return true;
} catch (Exception e) {
- CoreGUI.getErrorHandler().handleError("Cannot save the selected roles", e);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definition_notification_role_editor_saveFailed(),
+ e);
return false;
}
}
@@ -187,5 +189,5 @@ public class SystemRolesNotificationSenderForm extends AbstractNotificationSende
return "role";
}
}
-
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java
index ef91200..0394520 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/TemplateAlertDefinitionsView.java
@@ -128,13 +128,14 @@ public class TemplateAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(Void v) {
CoreGUI.getMessageCenter().notify(
- new Message("[" + alertDefIds.length + "] alert templates enabled.", Severity.Info));
+ new Message(MSG.view_alert_definitions_enable_success(String.valueOf(alertDefIds.length)),
+ Severity.Info));
TemplateAlertDefinitionsView.this.refresh();
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to enable alert templates", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_enable_failure(), caught);
}
});
}
@@ -156,13 +157,14 @@ public class TemplateAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(Void v) {
CoreGUI.getMessageCenter().notify(
- new Message("[" + alertDefIds.length + "] alert templates disabled.", Severity.Info));
+ new Message(MSG.view_alert_definitions_disable_success(String.valueOf(alertDefIds.length)),
+ Severity.Info));
TemplateAlertDefinitionsView.this.refresh();
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to disable alert templates", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_disable_failure(), caught);
}
});
}
@@ -184,13 +186,14 @@ public class TemplateAlertDefinitionsView extends AbstractAlertDefinitionsView {
@Override
public void onSuccess(Void v) {
CoreGUI.getMessageCenter().notify(
- new Message("[" + alertDefIds.length + "] alert templates deleted.", Severity.Info));
+ new Message(MSG.view_alert_definitions_delete_success(String.valueOf(alertDefIds.length)),
+ Severity.Info));
TemplateAlertDefinitionsView.this.refresh();
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to delete alert templates", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_delete_failure(), caught);
}
});
}
@@ -202,13 +205,14 @@ public class TemplateAlertDefinitionsView extends AbstractAlertDefinitionsView {
Integer.valueOf(this.resourceType.getId()), new AsyncCallback<Integer>() {
@Override
public void onSuccess(Integer result) {
- CoreGUI.getMessageCenter().notify(new Message("Alert template is created", Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_alert_definitions_create_success(), Severity.Info));
alertDefinition.setId(result.intValue());
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to create alert template.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_create_failure(), caught);
}
});
} else {
@@ -216,12 +220,13 @@ public class TemplateAlertDefinitionsView extends AbstractAlertDefinitionsView {
new AsyncCallback<AlertDefinition>() {
@Override
public void onSuccess(AlertDefinition result) {
- CoreGUI.getMessageCenter().notify(new Message("Alert template is updated.", Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_alert_definitions_update_success(), Severity.Info));
}
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to update alert template.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_definitions_update_failure(), caught);
}
});
}
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 106476e..eca963e 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
@@ -15,6 +15,7 @@ common_buildInfo_gwtVersion = ${gwt.version}~
#--------------
common_button_ack = Ack~
common_button_ack_all = Ack All~
+common_button_add = Add~
common_button_advanced = Advanced...~
common_button_apply = Apply~
common_button_cancel = Cancel~
@@ -24,6 +25,7 @@ common_button_create_child = Create Child~
common_button_delete = Delete~
common_button_delete_all = Delete All~
common_button_disable = Disable~
+common_button_edit = Edit~
common_button_enable = Enable~
common_button_finish = Finish~
common_button_import = Import~
@@ -61,6 +63,7 @@ common_label_unlimited = unlimited~
common_label_user = user~
common_label_users = users~
common_label_week=week~
+common_label_weeks=weeks~
# Common Titles
#--------------
@@ -499,6 +502,8 @@ view_alerts_table_title_group=Group Alert History~
view_alerts_table_title_resource=Resource Alert History~
view_alerts_table_filter_priority=Priority Filter~
view_alerts_field_created_time=Creation Time~
+view_alerts_field_modified_time=Modified Time~
+view_alerts_field_enabled=Enabled~
view_alerts_field_ack_time=Ack Time~
view_alerts_field_ack_subject=Ack Subject~
view_alerts_field_ack_status=Status~
@@ -511,6 +516,9 @@ view_alerts_field_condition_text_many=Multiple Conditions~
view_alerts_field_condition_value=Condition Value~
view_alerts_field_resource=Resource~
view_alerts_field_priority=Priority~
+view_alerts_field_parent=Parent~
+view_alerts_field_protected=Protected~
+view_alerts_field_protected_tooltip=If true, this definition is protected from being changed by the parent definition. In other words, the parent definition settings will not override this definition.~
view_alerts_loadFailed=Failed to fetch alerts data~
view_alerts_delete_confirm=Delete the selected alert(s)?~
view_alerts_delete_confirm_all=Delete all alerts from this source?~
@@ -527,13 +535,148 @@ view_alert_details_breadcrumb=Details~
view_alert_details_field_ack_by=Acknowledged by~
view_alert_details_field_ack_at=Acknowledged at~
view_alert_details_field_recovery_info=Recovery Info~
-view_alert_common_tab_general=General~
+view_alert_definition_for_type=View Template~
+view_alert_definition_for_group=View Group Definition~
+view_alert_definitions_table_title_group=Group Alert Definitions~
+view_alert_definitions_table_title_resource=Resource Alert Definitions~
+view_alert_definitions_loadFailed=Failed to fetch alert definition data~
+view_alert_definitions_loadFailed_single=Failed to fetch data for alert definition with id {0}~
+view_alert_definitions_enable_confirm=Enable the selected alert definition(s)?~
+view_alert_definitions_enable_success=Successfully enabled {0} alert definitions~
+view_alert_definitions_enable_failure=Failed to enable the selected alert definitions~
+view_alert_definitions_disable_confirm=Disable the selected alert definition(s)?~
+view_alert_definitions_disable_success=Successfully disabled {0} alert definitions~
+view_alert_definitions_disable_failure=Failed to disable the selected alert definitions~
+view_alert_definitions_delete_confirm=Delete the selected alert definition(s)?~
+view_alert_definitions_delete_success=Successfully deleted {0} alert definitions~
+view_alert_definitions_delete_failure=Failed to deleted the selected alert definitions~
+view_alert_definitions_create_success=Alert definition successfully created~
+view_alert_definitions_create_failure=Alert definition creation failed~
+view_alert_definitions_update_success=Alert definition successfully updated~
+view_alert_definitions_update_failure=Alert definition update failed~
+view_alert_definition_condition_editor_option_label=Condition Type~
+view_alert_definition_condition_editor_option_availability=Availability Change~
+view_alert_definition_condition_editor_option_metric_threshold=Measurement Absolute Value Threshold~
+view_alert_definition_condition_editor_option_metric_baseline=Measurement Baseline Threshold~
+view_alert_definition_condition_editor_option_metric_change=Measurement Value Change~
+view_alert_definition_condition_editor_option_metric_calltime_threshold=Call Time Value Threshold~
+view_alert_definition_condition_editor_option_metric_calltime_change=Call Time Value Change~
+view_alert_definition_condition_editor_option_metric_trait_change=Trait Value Change~
+view_alert_definition_condition_editor_option_operation=Operation Execution~
+view_alert_definition_condition_editor_option_resource_configuration=Resource Configuration Change~
+view_alert_definition_condition_editor_option_event=Event Detection~
+view_alert_definition_condition_editor_avilability_tooltip=Specify the availability state change that will trigger the condition.~
+view_alert_definition_condition_editor_avilability_value=Availability~
+view_alert_definition_condition_editor_avilability_option_up=Comes up~
+view_alert_definition_condition_editor_avilability_option_down=Goes down~
+view_alert_definition_condition_editor_metric_common_definition_not_found=Should have found metric definition - something is wrong~
+view_alert_definition_condition_editor_metric_threshold_tooltip=Specify the threshold value that, when violated, triggers the condition. The value you specify is an absolute value with an optional units specifier.~
+view_alert_definition_condition_editor_metric_threshold_name=Metric~
+view_alert_definition_condition_editor_metric_threshold_value=Metric Value~
+view_alert_definition_condition_editor_metric_threshold_value_tooltip=The threshold value of the metric that will trigger the condition when compared using the selected comparator.~
+view_alert_definition_condition_editor_metric_threshold_comparator=Comparator~
+view_alert_definition_condition_editor_metric_threshold_comparator_less=Less than~
+view_alert_definition_condition_editor_metric_threshold_comparator_equal=Equal to~
+view_alert_definition_condition_editor_metric_threshold_comparator_greater=Greater Than~
+view_alert_definition_condition_editor_metric_threshold_comparator_tooltip=How a collected metric value should be compared to the given threshold value~
+view_alert_definition_condition_editor_metric_baseline_tooltip=Specify the baseline value that must be violated to trigger the condition. The value you specify is a percentage of the given baseline value.~
+view_alert_definition_condition_editor_metric_baseline_percentage=Baseline Percentage~
+view_alert_definition_condition_editor_metric_baseline_percentage_tooltip=A collected metric value will trigger this condition when compared to this percentage of the selected baseline value using the selected comparator~
+view_alert_definition_condition_editor_metric_baseline_value=Baseline~
+view_alert_definition_condition_editor_metric_change_tooltip=Specify the metric whose value must change to trigger the condition.~
+view_alert_definition_condition_editor_metric_calltime_threshold_tooltip=Specify the calltime threshold value that, when violated, triggers the condition. The value you specify is an absolute value with an optional units specifier. You also must specify which calltime limit to compare the value with (minimum, maximum or average calltime value).~
+view_alert_definition_condition_editor_metric_calltime_common_name=Call Time Metric~
+view_alert_definition_condition_editor_metric_calltime_common_limit=Call Time Limit~
+view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip=The calltime limit value that is to be compared with the given value~
+view_alert_definition_condition_editor_metric_calltime_common_regex=Regular Expression~
+view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip=If specified, this is a regular expression that must match a call destination in order to trigger the condition.~
+view_alert_definition_condition_editor_metric_calltime_common_comparator=Comparator~
+view_alert_definition_condition_editor_metric_calltime_common_comparator_shrinks=Shrinks~
+view_alert_definition_condition_editor_metric_calltime_common_comparator_grows=Grows~
+view_alert_definition_condition_editor_metric_calltime_common_comparator_changes=Changes~
+view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip=How a collected calltime value should be compared to the given calltime limit~
+view_alert_definition_condition_editor_metric_calltime_threshold_value=Call Time Value~
+view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip=The threshold value of the metric that will trigger the condition when compared using the selected comparator.~
+view_alert_definition_condition_editor_metric_calltime_change_tooltip=Specify the calltime value that, when changed at least a specified amount, triggers the condition. You must specify which calltime limit to check (minimum, maximum or average calltime value) and the percentage of change that must occur.~
+view_alert_definition_condition_editor_metric_calltime_change_percentage=Percentage Change~
+view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip=A collected calltime value will trigger this condition when it differs by at least this percentage of the selected calltime limit value~
+view_alert_definition_condition_editor_metric_trait_change_tooltip=Specify the trait whose value must change to trigger the condition.~
+view_alert_definition_condition_editor_metric_trait_change_value=Trait~
+view_alert_definition_condition_editor_operation_tooltip=Specify the result that must occur when the selected operation is executed in order to trigger the condition.~
+view_alert_definition_condition_editor_operation_value=Operation~
+view_alert_definition_condition_editor_operation_status=Operation Status~
+view_alert_definition_condition_editor_operation_status_inprogress=In Progress~
+view_alert_definition_condition_editor_operation_status_success=Success~
+view_alert_definition_condition_editor_operation_status_failure=Failure~
+view_alert_definition_condition_editor_operation_status_canceled=Canceled~
+view_alert_definition_condition_editor_resource_configuration_tooltip=This condition is triggered when the resource configuration changes.~
+view_alert_definition_condition_editor_event_tooltip=Specify the event severity that an event message must be reported with in order to trigger this condition. If you specify an optional regular expression, the event message must also match that regular expression in order for the condition to trigger.~
+view_alert_definition_condition_editor_event_severity=Event Severity~
+view_alert_definition_condition_editor_event_severity_debug=Debug~
+view_alert_definition_condition_editor_event_severity_info=Info~
+view_alert_definition_condition_editor_event_severity_warn=Warn~
+view_alert_definition_condition_editor_event_severity_error=Error~
+view_alert_definition_condition_editor_event_severity_fatal=Fatal~
+view_alert_definition_condition_editor_event_regex=Regular Expression~
+view_alert_definition_condition_editor_event_regex_tooltip=If specified, this is a regular expression that must match a collected event message in order to trigger the condition.~
+view_alert_definition_condition_editor_common_min=Minimum~
+view_alert_definition_condition_editor_common_avg=Average~
+view_alert_definition_condition_editor_common_max=Maximum~
+view_alert_definition_notification_editor_title_add=Add Notification~
+view_alert_definition_notification_editor_title_edit=Edit Notification~
+view_alert_definition_notification_editor_sender=Notification Sender~
+view_alert_definition_notification_editor_none_available=No alert senders available~
+view_alert_definition_notification_editor_loadFailed=Cannot get alert senders~
+view_alert_definition_notification_editor_loadFailed_single=Cannot get alert sender configuration definition~
+view_alert_definition_notification_editor_saveFailed=Cannot save the notification configuration~
+view_alert_definition_notification_editor_field_sender=Sender~
+view_alert_definition_notification_editor_field_configuration=Configuration~
+view_alert_definition_notification_editor_field_configuration_not_loaded=Unknown~
+view_alert_definition_notification_editor_field_configuration_loadFailed=Failed to get notification configuration preview~
+view_alert_definition_notification_editor_delete_confirm=Are you sure you want to delete the selected alert notifications?~
+view_alert_definition_notification_operation_editor_mode_title=Resource Selection Mode~
+view_alert_definition_notification_operation_editor_mode_this=This Resource~
+view_alert_definition_notification_operation_editor_mode_specific=Specific Resource~
+view_alert_definition_notification_operation_editor_mode_relative=Relative Resource~
+view_alert_definition_notification_operation_editor_mode_unknown=UNKNOWN OPTION - THIS IS A BUG~
+view_alert_definition_notification_operation_editor_common_operation=Operation~
+view_alert_definition_notification_operation_editor_specific_resource=Resource~
+view_alert_definition_notification_operation_editor_specific_pick_button=Pick~
+view_alert_definition_notification_operation_editor_specific_pick_text=Pick a resource...~
+view_alert_definition_notification_operation_editor_specific_pick_error_invalid=Please pick a resource~
+view_alert_definition_notification_operation_editor_specific_pick_error_no_operation=Please pick a resource that has one or more operations~
+view_alert_definition_notification_operation_editor_relative_ancestor=Start Search From~
+view_alert_definition_notification_operation_editor_relative_ancestor_tooltip=Select the top of the type hierarchy from which to search its descedant tree for the Filter By type~
+view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed=Cannot get type ancestry~
+view_alert_definition_notification_operation_editor_relative_ancestor_root=Root Ancestor Type~
+view_alert_definition_notification_operation_editor_relative_descendant=Then Filter By~
+view_alert_definition_notification_operation_editor_relative_descendant_tooltip=The resource type to search for under the root type defined in the Start Search From selection.~
+view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip=A specific name to uniquely identify a resource when more than one resource of the selected type might exist. This is optional if there will only ever be one resource of the resource type in the selected type hierarchy.~
+view_alert_definition_notification_operation_editor_relative_descendant_loadFailed=Cannot get type descendants~
+view_alert_definition_notification_operation_editor_operations_loadFailed=Failed to load the list of available operations~
+view_alert_definition_notification_operation_editor_operations_no_parameters=This operation does not take any parameters~
+view_alert_definition_notification_role_editor_loadFailed=Cannot determine current roles - starting empty~
+view_alert_definition_notification_role_editor_restoreFailed=Cannot use current roles - starting empty~
+view_alert_definition_notification_role_editor_saveFailed=Cannot save the selected roles~
+view_alert_definition_notification_user_editor_loadFailed=Cannot determine current users - starting empty~
+view_alert_definition_notification_user_editor_restoreFailed=Cannot use current users - starting empty~
+view_alert_definition_notification_user_editor_saveFailed=Cannot save the selected users~
+view_alert_definition_recovery_editor_disable_when_fired=Disable When Fired~
+view_alert_definition_recovery_editor_disable_when_fired_tooltip=Indicates if this alert will be disabled after it fires. Once disabled, the alert can be manually re-enabled or a recovery alert can be set up to automatically re-enable it. If this alert is a recovery alert itself, this setting cannot be turned on.~
+view_alert_definition_recovery_editor_recovery_alert=Recover Alert~
+view_alert_definition_recovery_editor_recovery_alert_tooltip=The target alert that will be recovered (i.e. re-enabled) after this alert triggers. Do not select an alert here if you are not defining a recovery alert.~
+view_alert_definition_recovery_editor_loadFailed=Cannot build recovery menu~
+view_alert_definition_recovery_editor_none_available=None~
+view_alert_common_tab_general=General Properties~
view_alert_common_tab_conditions=Conditions~
-view_alert_common_tab_conditions_text=Matching Condition~
+view_alert_common_tab_conditions_modal_title=Add Condition~
+view_alert_common_tab_conditions_expression=Fire alert when~
+view_alert_common_tab_conditions_expression_tooltip=Determines if ANY or ALL of the conditions must evaluate to true in order for the entire condition set to be considered true.~
+view_alert_common_tab_conditions_text=Condition~
view_alert_common_tab_conditions_value=Value~
view_alert_common_tab_conditions_type_availability=Availability Change~
-view_alert_common_tab_conditions_type_availability_down=Went down
-view_alert_common_tab_conditions_type_availability_up=Came up
+view_alert_common_tab_conditions_type_availability_down=Went down~
+view_alert_common_tab_conditions_type_availability_up=Came up~
view_alert_common_tab_conditions_type_metric_threshold=Metric Value Exceeds Threshold~
view_alert_common_tab_conditions_type_metric_calltime_threshold=Call Time Value Exceeds Threshold~
view_alert_common_tab_conditions_type_metric_calltime_destination=with call destination matching~
@@ -546,12 +689,11 @@ view_alert_common_tab_conditions_type_metric_baseline=Metric Value Exceeds Basel
view_alert_common_tab_conditions_type_metric_baseline_verb=of~
view_alert_common_tab_conditions_type_metric_change=Metric Value Change~
view_alert_common_tab_conditions_type_metric_trait_change=Trait Change~
-view_alert_common_tab_conditions_type_metric_operation=Operation Execution~
-view_alert_common_tab_conditions_type_metric_status=with result status~
-view_alert_common_tab_conditions_type_metric_resource_configuration=Resource Configuration Change~
-view_alert_common_tab_conditions_type_metric_event=Event Detection~
-view_alert_common_tab_conditions_type_metric_event_matching=with event source matching~
-view_alert_common_tab_conditions_type_invalid=Unsupported Category: {0}~
+view_alert_common_tab_conditions_type_operation=Operation Execution~
+view_alert_common_tab_conditions_type_operation_status=with result status~
+view_alert_common_tab_conditions_type_resource_configuration=Resource Configuration Change~
+view_alert_common_tab_conditions_type_event=Event Detection~
+view_alert_common_tab_conditions_type_event_matching=with event source matching~
view_alert_common_tab_conditions_recovery_enabled=Triggered ''{0}'' to be re-enabled~
view_alert_common_tab_conditions_recovery_disabled=This alert caused its alert definition to be disabled~
view_alert_common_tab_notifications=Notifications~
@@ -561,6 +703,28 @@ view_alert_common_tab_notifications_message=Message~
view_alert_common_tab_notifications_all_emails=All Emails~
view_alert_common_tab_notifications_bad_emails=Bad Emails~
view_alert_common_tab_dampening=Dampening~
+view_alert_common_tab_dampening_category_none=None~
+view_alert_common_tab_dampening_category_none_tooltip=Dampening is disabled. Every time the condition set is true, an alert will be triggered.~
+view_alert_common_tab_dampening_category_consecutive_count=Consecutive~
+view_alert_common_tab_dampening_category_consecutive_count_tooltip=An alert is triggered once every X occurrences the condition set is true consecutively.~
+view_alert_common_tab_dampening_category_partial_count=Last N Evaluations~
+view_alert_common_tab_dampening_category_partial_count_tooltip=An alert is triggered once every X occurrences the condition set is true during the last N evaluations of the condition set.~
+view_alert_common_tab_dampening_category_duration_count=Time Period~
+view_alert_common_tab_dampening_category_duration_count_tooltip=An alert is triggered once every X occurrences the condition set is true within a given time period.~
+view_alert_common_tab_dampening_consecutive_occurrences_label=Occurrences~
+view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip=The number of times the condition set must be consecutively true before the alert is triggered~
+view_alert_common_tab_dampening_partial_occurrences_label=Occurrences~
+view_alert_common_tab_dampening_partial_occurrences_label_tooltip=The number of times the condition set must be true during the last N evaluations before the alert is triggered.~
+view_alert_common_tab_dampening_partial_evalatuions_label=Evaluations~
+view_alert_common_tab_dampening_partial_evalatuions_label_tooltip=The total number of times the condition set will be tested to see if the given number of occurrences are true.~
+view_alert_common_tab_dampening_duration_occurrences_label=Occurrences~
+view_alert_common_tab_dampening_duration_occurrences_label_tooltip=The number of times the condition set must be true during the given time period before the alert is triggered.~
+view_alert_common_tab_dampening_duration_period_label=Time Period~
+view_alert_common_tab_dampening_duration_period_label_tooltip=The time span in which the condition set will be tested to see if the given number of occurrences are true.~
+view_alert_common_tab_recovery=Recovery~
+view_alert_common_tab_invalid_condition_category=Invalid condition category - please report this as a bug: {0}~
+view_alert_common_tab_invalid_dampening_category=Invalid dampening category - please report this as a bug: {0}~
+view_alert_common_tab_invalid_time_units=Invalid time units - please report this as a bug: {0}~
# Auto Discovery Queue
#----------------------------
commit 3d8e1f032985f1ef53f65a4c9e28914fb0df7919
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Nov 18 17:43:26 2010 -0500
I18N - add missing prop for Admin landing page blurb
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
index c253fda..a4dcde9 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
@@ -87,9 +87,7 @@ public class AdministrationView extends AbstractSectionedLeftNavigationView {
}
protected HTMLFlow defaultView() {
- String contents = "<h1>Administration</h1>\n"
- + "From this section, the RHQ global settings can be administered. This includes configuring \n"
- + "<a href=\"\">Security</a>, setting up <a href=\"\">Plugins</a> and various other stuff.";
+ String contents = "<h1>" + MSG.view_admin_administration() + "</h1>\n" + MSG.view_admin_landing();
HTMLFlow flow = new HTMLFlow(contents);
flow.setPadding(20);
return flow;
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 79592b2..106476e 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
@@ -411,6 +411,7 @@ dataSource_resourceErrors_error_fetchFailure = Failed to find Resource errors fo
#================= Administration ==================
view_admin_administration = Administration~
+view_admin_landing = From this section, the RHQ global settings can be administered. This includes configuring Security, setting up Plugins, and managing RHQ servers and agents.~
view_admin_configuration = Configuration~
view_admin_security = Security~
view_admin_topology = Topology~
commit 03e49ccb3c9f366476ab4e3b0654300e3391d183
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Nov 18 17:23:38 2010 -0500
I18N
- fixed a problem with LHS section headers displaying name and not title
- replaced a lurking literal
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 05037fe..3c15857 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
@@ -72,7 +72,6 @@ import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent;
import com.smartgwt.client.widgets.toolbar.ToolStrip;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.Messages;
import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
@@ -557,7 +556,7 @@ public class Table extends LocatableHLayout implements RefreshableView {
ListGridField[] newFields = new ListGridField[fields.length + dataSourceFieldNamesSet.size()];
int destIndex = 0;
if (dataSourceFieldNamesSet.contains(FIELD_ID)) {
- listGridIdField = new ListGridField(FIELD_ID, "ID", 55);
+ listGridIdField = new ListGridField(FIELD_ID, MSG.common_title_id(), 55);
// Override the DataSource id field metadata for consistent display across all Tables.
listGridIdField.setType(ListGridFieldType.INTEGER);
listGridIdField.setCanEdit(false);
@@ -677,8 +676,9 @@ public class Table extends LocatableHLayout implements RefreshableView {
recordNames.add(name);
}
- Message message = new Message(MSG.widget_recordEditor_info_recordUpdatedConcise(getDataTypeNamePlural()),
- MSG.widget_recordEditor_info_recordsDeletedDetailed(String.valueOf(deletedRecords.length),
+ Message message = new Message(MSG
+ .widget_recordEditor_info_recordUpdatedConcise(getDataTypeNamePlural()), MSG
+ .widget_recordEditor_info_recordsDeletedDetailed(String.valueOf(deletedRecords.length),
getDataTypeNamePlural(), recordNames.toString()));
CoreGUI.getMessageCenter().notify(message);
}
@@ -701,7 +701,6 @@ public class Table extends LocatableHLayout implements RefreshableView {
return MSG.common_msg_deleteConfirm(getDataTypeNamePlural());
}
-
// -------------- Inner utility classes ------------- //
/**
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java
index bee3bb6..7a027ac 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java
@@ -137,6 +137,7 @@ public abstract class AbstractSectionedLeftNavigationView extends LocatableHLayo
private void addSection(final TreeGrid treeGrid) {
final String sectionName = treeGrid.getTree().getRoot().getName();
+ final String sectionTitle = treeGrid.getTree().getRoot().getTitle();
this.treeGrids.put(sectionName, treeGrid);
treeGrid.addCellClickHandler(new CellClickHandler() {
@@ -154,7 +155,7 @@ public abstract class AbstractSectionedLeftNavigationView extends LocatableHLayo
}
});
- SectionStackSection section = new SectionStackSection(sectionName);
+ SectionStackSection section = new SectionStackSection(sectionTitle);
section.setExpanded(true);
section.addItem(treeGrid);
commit f68033f4b94d0f57e2b680836ffeae773f948bb3
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Nov 18 17:21:52 2010 -0500
Fix I18N classloading issue (in dev mode) by ensuring the I18N Messages is
created up front.
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 5f4ed59..1030227 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
@@ -63,7 +63,8 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
* @author Ian Springer
*/
public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
- private static final Messages MSG = CoreGUI.getMessages();
+ // This must come first to ensure proper I18N class loading for dev mode
+ private static final Messages MSG = GWT.create(Messages.class);
private static final String DEFAULT_VIEW_PATH = DashboardsView.VIEW_ID.getName();
@@ -92,8 +93,6 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
private static CoreGUI coreGUI;
- public static Messages messages = GWT.create(Messages.class);
-
private static Message pendingMessage;
public void onModuleLoad() {
@@ -298,7 +297,7 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
}
public static Messages getMessages() {
- return messages;
+ return MSG;
}
private class RootCanvas extends VLayout implements BookmarkableView {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/Locatable.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/Locatable.java
index 61d1b25..1cfe874 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/Locatable.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/Locatable.java
@@ -1,7 +1,6 @@
package org.rhq.enterprise.gui.coregui.client.util.selenium;
-import com.google.gwt.core.client.GWT;
-
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.Messages;
/**
@@ -9,7 +8,7 @@ import org.rhq.enterprise.gui.coregui.client.Messages;
*/
public interface Locatable {
- Messages MSG = GWT.create(Messages.class);
+ Messages MSG = CoreGUI.getMessages();
/**
* Returns the locatorId. This can be useful for constructing more granular locatorIds. For example, if
commit ba2ad202df8e13b694a65e327eb7e5d17e941c4d
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Nov 18 16:05:25 2010 -0500
I18N Added properties for a few missed literals. Removed 3 of 4 redundant
properties for "Search", settling on common_title_search as the
preferred prop.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
index ae10b19..e7f3af7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
@@ -159,7 +159,7 @@ public class LoginView extends LocatableCanvas {
window = new Window();
window.setWidth(400);
window.setHeight(275);
- window.setTitle("Welcome");
+ window.setTitle(MSG.view_login_welcome());
// forced focused, static size, can't close / dismiss
window.setIsModal(true);
@@ -204,7 +204,7 @@ public class LoginView extends LocatableCanvas {
VLayout column = new VLayout();
HeaderItem header = new HeaderItem();
- header.setValue(MSG.view_login_welcome());
+ header.setValue(MSG.view_login_welcomeMsg());
//build ui elements for registration screen
first = new TextItem(FIRST, MSG.dataSource_users_field_firstName());
{
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleSelector.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleSelector.java
index 16ce137..e4799ae 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleSelector.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleSelector.java
@@ -52,7 +52,7 @@ public class BundleSelector extends AbstractSelector<Bundle> {
protected DynamicForm getAvailableFilterForm() {
DynamicForm availableFilterForm = new DynamicForm();
availableFilterForm.setNumCols(4);
- final TextItem search = new TextItem("search", MSG.common_button_search());
+ final TextItem search = new TextItem("search", MSG.common_title_search());
final SelectItem bundleTypeSelect = new SelectItem("bundleType", MSG.view_bundle_bundleType());
bundleService.getAllBundleTypes(new AsyncCallback<ArrayList<BundleType>>() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceGroupSelector.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceGroupSelector.java
index d296cdb..30a4bea 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceGroupSelector.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceGroupSelector.java
@@ -46,7 +46,7 @@ public class ResourceGroupSelector extends AbstractSelector<ResourceGroup> {
availableFilterForm.setWidth100();
availableFilterForm.setNumCols(4);
- final TextItem search = new TextItem("search", MSG.common_label_search());
+ final TextItem search = new TextItem("search", MSG.common_title_search());
SelectItem groupCategorySelect = new SelectItem("groupCategory", MSG.widget_resourceSelector_groupCategory());
groupCategorySelect.setValueMap("Compatible", "Mixed"); // I don't think we can i18n these, may need these literal values - need to double check this
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java
index 77c3485..1278490 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/selection/ResourceSelector.java
@@ -67,7 +67,7 @@ public class ResourceSelector extends AbstractSelector<Resource> {
availableFilterForm = new LocatableDynamicForm("ResSelectAvailFilterForm");
availableFilterForm.setNumCols(6);
availableFilterForm.setWidth("75%");
- final TextItem search = new TextItem("search", MSG.common_label_search());
+ final TextItem search = new TextItem("search", MSG.common_title_search());
final SelectItem categorySelect;
typeSelectItem = new IPickTreeItem("type", MSG.common_title_type());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
index 99bb780..1bbeccf 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
@@ -94,7 +94,7 @@ public class SearchBarPane extends LocatableHLayout {
form.setNumCols(6);
form.setColWidths("120", "140", "400");
- final SelectItem searchType = new SelectItem("searchType", MSG.view_searchBar_search());
+ final SelectItem searchType = new SelectItem("searchType", MSG.common_title_search());
String[] valueMap = SearchType.getValueMap();
searchType.setValueMap(valueMap);
searchType.setValue(valueMap[0]);
@@ -109,7 +109,7 @@ public class SearchBarPane extends LocatableHLayout {
ComboBoxItem resourceSearch = getResourceComboBox();
ComboBoxItem groupSearch = getGroupComboBox();
- ButtonItem search = new ButtonItem("Search", MSG.common_button_search());
+ ButtonItem search = new ButtonItem("Search", MSG.common_title_search());
search.setStartRow(false);
search.setEndRow(false);
search.setShowTitle(false);
@@ -160,10 +160,10 @@ public class SearchBarPane extends LocatableHLayout {
}
private ComboBoxItem getBaseComboBox(final SearchType searchType) {
- final ComboBoxItem comboBox = new ComboBoxItem("query", "Query");
+ final ComboBoxItem comboBox = new ComboBoxItem("query", MSG.view_searchBar_query());
comboBox.setWidth(400);
comboBox.setShowTitle(false);
- comboBox.setHint("search");
+ comboBox.setHint(MSG.common_title_search().toLowerCase());
comboBox.setShowHintInField(true);
comboBox.setPickListWidth(800);
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 c52b8d4..79592b2 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
@@ -35,7 +35,6 @@ common_button_purgeAll=Purge All~
common_button_refresh = "Refresh"~
common_button_reset = Reset~
common_button_save = Save~
-common_button_search = Search~
common_button_showDetails = Show Details...~
common_button_uninventory = Uninventory~
@@ -55,7 +54,6 @@ common_label_month=month~
common_label_none = none~
common_label_role = role~
common_label_roles = roles~
-common_label_search=Search~
common_label_scheduled_operations=scheduled operations~
common_label_seconds=seconds~
common_label_selected_resources = selected resources~
@@ -1277,7 +1275,8 @@ view_login_prompt = Please Login~
view_login_registerLater = (Logout - Complete registration later.)~
view_login_registerLdapSuccess = Succesfully registered the new LDAP User.~
view_login_registerUser = Register User~
-view_login_welcome = Welcome to JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
+view_login_welcome = Welcome~
+view_login_welcomeMsg = Welcome to JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
# Menu Bar
@@ -1287,13 +1286,13 @@ view_menuBar_logout = Logout~
# Search Bar, GUI
#-----------------
-view_searchBar_search = Search~
view_searchBar_resources = Resources~
view_searchBar_resourceGroups = Resource Groups~
# TODO: i18n pluralization
view_searchBar_welcomeMessage = search for {0}s~
view_searchBar_defaultPattern = name your pattern~
view_searchBar_error_selectSavedSearch = ''Error selecting saved search''~
+view_searchBar_query = Query~
view_searchGUI_loginStatus = Unable to determine login status, check server status~
commit dac5b4350293f50bd3ae083adbe99c3bbf2101ad
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Nov 18 15:11:37 2010 -0500
I18N - packages:
org.rhq.enterprise.gui.coregui.client.bundle.deploy
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/BundleDeployWizard.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/BundleDeployWizard.java
index 270fc40..90e3ea7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/BundleDeployWizard.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/BundleDeployWizard.java
@@ -79,8 +79,8 @@ public class BundleDeployWizard extends AbstractBundleDeployWizard {
}
private List<WizardStep> init() {
- setWindowTitle("Bundle Deployment Wizard");
- setTitle("Bundle Deployment");
+ setWindowTitle(MSG.view_bundle_deployWizard_title());
+ setTitle(MSG.view_bundle_bundleDeployment());
ArrayList<WizardStep> steps = new ArrayList<WizardStep>();
setSteps(steps);
@@ -121,8 +121,7 @@ public class BundleDeployWizard extends AbstractBundleDeployWizard {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
- "Failed to delete new deployment on Cancel: " + caught.getMessage(),
- caught);
+ MSG.view_bundle_deployWizard_error_1(caught.getMessage()), caught);
}
});
}
@@ -132,7 +131,7 @@ public class BundleDeployWizard extends AbstractBundleDeployWizard {
public void onFailure(Throwable caught) {
// should not really get here
CoreGUI.getErrorHandler().handleError(
- "Failed to delete new deployment on Cancel: " + caught.getMessage(), caught);
+ MSG.view_bundle_deployWizard_error_1(caught.getMessage()), caught);
deleteNewDestination();
}
});
@@ -153,7 +152,7 @@ public class BundleDeployWizard extends AbstractBundleDeployWizard {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
- "Failed to delete new destination on Cancel: " + caught.getMessage(), caught);
+ MSG.view_bundle_deployWizard_error_2(caught.getMessage()), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/DeployStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/DeployStep.java
index ca30431..bef5d91 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/DeployStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/DeployStep.java
@@ -51,7 +51,7 @@ public class DeployStep extends AbstractWizardStep {
}
public String getName() {
- return "Deploy Bundle to Destination Platforms";
+ return MSG.view_bundle_deployWizard_deployStep();
}
public Canvas getCanvas() {
@@ -66,7 +66,7 @@ public class DeployStep extends AbstractWizardStep {
deployingImage.setWidth(50);
deployingImage.setHeight(15);
- final Label deployingMessage = new Label("Deploying...");
+ final Label deployingMessage = new Label(MSG.view_bundle_deployWizard_deploying());
deployingMessage.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
canvas.addMember(deployingImage);
@@ -77,10 +77,10 @@ public class DeployStep extends AbstractWizardStep {
new AsyncCallback<BundleDeployment>() {
public void onSuccess(BundleDeployment result) {
deployingImage.setSrc("/images/status_complete.gif");
- deployingMessage.setText("Created Deployment...");
+ deployingMessage.setText(MSG.view_bundle_deployWizard_deploymentCreated());
CoreGUI.getMessageCenter().notify(
- new Message("Created deployment [" + result.getName() + "] description ["
- + result.getDescription() + "]", Severity.Info));
+ new Message(MSG.view_bundle_deployWizard_deploymentCreatedDetail(result.getName(), result
+ .getDescription()), Severity.Info));
wizard.setNewDeployment(result);
bundleServer.scheduleBundleDeployment(wizard.getNewDeployment().getId(), wizard
@@ -88,29 +88,28 @@ public class DeployStep extends AbstractWizardStep {
new AsyncCallback<BundleDeployment>() {
public void onSuccess(BundleDeployment result) {
deployingImage.setSrc("/images/status_complete.gif");
- deployingMessage.setText("Bundle Deployment Scheduled!");
+ deployingMessage.setText(MSG.view_bundle_deployWizard_deploymentScheduled());
CoreGUI.getMessageCenter().notify(
- new Message("Scheduled bundle deployment [" + result.getName()
- + "] resource group [" + result.getDestination().getGroup() + "]",
- Severity.Info));
+ new Message(MSG.view_bundle_deployWizard_deploymentScheduledDetail(result
+ .getName(), result.getDestination().getGroup().getName()), Severity.Info));
CoreGUI.refresh();
wizard.setNewDeployment(result);
}
public void onFailure(Throwable caught) {
deployingImage.setSrc("/images/status_error.gif");
- deployingMessage.setText("Failed to Schedule Deployment!");
+ deployingMessage.setText(MSG.view_bundle_deployWizard_error_3());
CoreGUI.getErrorHandler().handleError(
- "Failed to schedule deployment: " + caught.getMessage(), caught);
+ MSG.view_bundle_deployWizard_error_4(caught.getMessage()), caught);
}
});
}
public void onFailure(Throwable caught) {
deployingImage.setSrc("/images/status_error.gif");
- deployingMessage.setText("Failed to create deployment!");
- CoreGUI.getErrorHandler().handleError("Failed to create deployment: " + caught.getMessage(),
- caught);
+ deployingMessage.setText(MSG.view_bundle_deployWizard_error_5());
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_bundle_deployWizard_error_6(caught.getMessage()), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentConfigStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentConfigStep.java
index 8d704be..a28845c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentConfigStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentConfigStep.java
@@ -37,7 +37,7 @@ public class GetDeploymentConfigStep extends AbstractWizardStep {
}
public String getName() {
- return "Set Deployment Configuration";
+ return MSG.view_bundle_deployWizard_getConfigStep();
}
public Canvas getCanvas() {
@@ -51,7 +51,7 @@ public class GetDeploymentConfigStep extends AbstractWizardStep {
// This has started behaving badly. Instead of moving ahead let's give them a message
// and a chance to go back to the previous screen.
// this.wizard.getView().incrementStep();
- HeaderLabel label = new HeaderLabel("No configuration needed for this bundle version");
+ HeaderLabel label = new HeaderLabel(MSG.view_bundle_deployWizard_getConfigSkip());
label.setWidth100();
editor = new VLayout();
editor.addMember(label);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentInfoStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentInfoStep.java
index 63750d8..9416294 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentInfoStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentInfoStep.java
@@ -48,7 +48,7 @@ public class GetDeploymentInfoStep extends AbstractWizardStep {
}
public String getName() {
- return "Provide Deployment Information";
+ return MSG.view_bundle_deployWizard_getInfoStep();
}
public Canvas getCanvas() {
@@ -63,13 +63,14 @@ public class GetDeploymentInfoStep extends AbstractWizardStep {
new AsyncCallback<String>() {
public void onSuccess(String result) {
- final StaticTextItem nameTextItem = new StaticTextItem("name", "Deployment Name");
+ final StaticTextItem nameTextItem = new StaticTextItem("name", MSG
+ .view_bundle_deployWizard_getInfo_deploymentName());
nameTextItem.setWidth(300);
wizard.setSubtitle(result);
nameTextItem.setValue(result);
- final TextAreaItem descriptionTextAreaItem = new TextAreaItem("description",
- "Deployment Description");
+ final TextAreaItem descriptionTextAreaItem = new TextAreaItem("description", MSG
+ .view_bundle_deployWizard_getInfo_deploymentDesc());
descriptionTextAreaItem.setWidth(300);
descriptionTextAreaItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
@@ -81,8 +82,8 @@ public class GetDeploymentInfoStep extends AbstractWizardStep {
}
});
- final CheckboxItem cleanDeploymentCBItem = new CheckboxItem("cleanDeployment",
- "Clean Deployment? (wipe deploy directory on destination platform)");
+ final CheckboxItem cleanDeploymentCBItem = new CheckboxItem("cleanDeployment", MSG
+ .view_bundle_deployWizard_getInfo_clean());
cleanDeploymentCBItem.setValue(wizard.isCleanDeployment());
cleanDeploymentCBItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
@@ -95,7 +96,7 @@ public class GetDeploymentInfoStep extends AbstractWizardStep {
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to get deployment name.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_deployWizard_error_7(), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentOptionsStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentOptionsStep.java
index 0079fc8..625738d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentOptionsStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDeploymentOptionsStep.java
@@ -53,10 +53,10 @@ public class GetDeploymentOptionsStep extends AbstractWizardStep {
form.setNumCols(2);
form.setColWidths("50%", "*");
- rgDeployTimeItem = new RadioGroupItem("deployTime", "Deployment Time");
+ rgDeployTimeItem = new RadioGroupItem("deployTime", MSG.view_bundle_deployWizard_getOptions_deployTime());
LinkedHashMap<String, String> deployTimeValues = new LinkedHashMap<String, String>();
- deployTimeValues.put(DEPLOY_NOW, "Deploy Now");
- deployTimeValues.put(DEPLOY_LATER, "Deploy Later");
+ deployTimeValues.put(DEPLOY_NOW, MSG.view_bundle_deployWizard_getOptions_deployNow());
+ deployTimeValues.put(DEPLOY_LATER, MSG.view_bundle_deployWizard_getOptions_deployLater());
rgDeployTimeItem.setRequired(true);
rgDeployTimeItem.setValueMap(deployTimeValues);
rgDeployTimeItem.setValue(DEPLOY_NOW);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java
index 0c8cf78..ee0122e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java
@@ -55,7 +55,7 @@ public class GetDestinationStep extends AbstractWizardStep {
}
public String getName() {
- return "New Destination";
+ return MSG.view_bundle_deployWizard_getDestStep();
}
public Canvas getCanvas() {
@@ -66,7 +66,7 @@ public class GetDestinationStep extends AbstractWizardStep {
this.valForm.setNumCols(2);
this.valForm.setColWidths("50%", "*");
- final TextItem nameTextItem = new TextItem("name", "Destination Name");
+ final TextItem nameTextItem = new TextItem("name", MSG.view_bundle_deployWizard_getDest_name());
nameTextItem.setWidth(300);
nameTextItem.setRequired(true);
nameTextItem.addChangedHandler(new ChangedHandler() {
@@ -80,7 +80,8 @@ public class GetDestinationStep extends AbstractWizardStep {
}
});
- final TextAreaItem descriptionTextAreaItem = new TextAreaItem("description", "Destination Description");
+ final TextAreaItem descriptionTextAreaItem = new TextAreaItem("description", MSG
+ .view_bundle_deployWizard_getDest_desc());
descriptionTextAreaItem.setWidth(300);
descriptionTextAreaItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
@@ -92,8 +93,8 @@ public class GetDestinationStep extends AbstractWizardStep {
}
});
- final TextItem deployDirTextItem = new TextItem("deployDir",
- "Root Deployment Directory (on destination platforms)");
+ final TextItem deployDirTextItem = new TextItem("deployDir", MSG
+ .view_bundle_deployWizard_getDest_deployDir());
deployDirTextItem.setWidth(300);
deployDirTextItem.setRequired(true);
deployDirTextItem.addChangedHandler(new ChangedHandler() {
@@ -106,11 +107,11 @@ public class GetDestinationStep extends AbstractWizardStep {
}
});
- this.selector = new SinglePlatformResourceGroupSelector("group", "Resource Group");
+ this.selector = new SinglePlatformResourceGroupSelector("group", MSG.common_title_resource_group());
this.selector.setWidth(300);
this.selector.setRequired(true);
Validator validator = new IsIntegerValidator();
- validator.setErrorMessage("You must select a valid resource group from the drop down");
+ validator.setErrorMessage(MSG.view_bundle_deployWizard_error_8());
this.selector.setValidators(validator);
this.valForm.setItems(nameTextItem, descriptionTextAreaItem, deployDirTextItem, selector);
@@ -145,7 +146,7 @@ public class GetDestinationStep extends AbstractWizardStep {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
- "Failed to delete new destination in nextPage: " + caught.getMessage(), caught);
+ MSG.view_bundle_deployWizard_error_9(caught.getMessage()), caught);
// try anyway and potentially fail again from there
createDestination();
}
@@ -168,14 +169,14 @@ public class GetDestinationStep extends AbstractWizardStep {
wizard.setDestination(result);
wizard.setNewDestination(true);
CoreGUI.getMessageCenter().notify(
- new Message("Created destination [" + result.getName() + "] description ["
- + result.getDescription() + "]", Severity.Info));
+ new Message(MSG.view_bundle_deployWizard_destinationCreatedDetail(result.getName(), result
+ .getDescription()), Severity.Info));
createInProgress = false;
wizard.getView().incrementStep();
}
public void onFailure(Throwable caught) {
- String message = "Failed to create destination, it may already exist. (Note, for an existing destination deploy from the Destination view)";
+ String message = MSG.view_bundle_deployWizard_error_10();
wizard.getView().showMessage(message);
CoreGUI.getErrorHandler().handleError(message + ": " + caught.getMessage(), caught);
createInProgress = false;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleStep.java
index 90b2789..9dd3420 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleStep.java
@@ -39,7 +39,7 @@ public class SelectBundleStep extends AbstractWizardStep {
}
public String getName() {
- return "Select Deployment Bundle";
+ return MSG.view_bundle_deployWizard_selectBundleStep();
}
public Canvas getCanvas() {
@@ -50,7 +50,7 @@ public class SelectBundleStep extends AbstractWizardStep {
public boolean nextPage() {
Set<Integer> selection = this.selector.getSelection();
if (selection.size() != 1) {
- SC.warn("Select only a single bundle for deployment.");
+ SC.warn(MSG.view_bundle_deployWizard_selectBundle_single());
return false;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java
index 71f0a38..750bb6a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java
@@ -62,7 +62,7 @@ public class SelectBundleVersionStep extends AbstractWizardStep {
}
public String getName() {
- return "Select Deployment Bundle Version";
+ return MSG.view_bundle_deployWizard_selectVersionStep();
}
public Canvas getCanvas() {
@@ -143,8 +143,8 @@ public class SelectBundleVersionStep extends AbstractWizardStep {
new AsyncCallback<PageList<BundleDeployment>>() {
public void onSuccess(PageList<BundleDeployment> result) {
- radioGroupValues.put(LATEST_VERSION, "Latest Version [ " + latestVersion.getVersion()
- + " ]");
+ radioGroupValues.put(LATEST_VERSION, MSG
+ .view_bundle_deployWizard_selectVersion_latest(latestVersion.getVersion()));
if (!result.isEmpty()) {
BundleDeployment liveDeployment = result.get(0);
@@ -154,11 +154,12 @@ public class SelectBundleVersionStep extends AbstractWizardStep {
liveDeployment.setBundleVersion(bundleVersions.get(i));
wizard.setLiveDeployment(liveDeployment);
liveVersion = liveDeployment.getBundleVersion();
- radioGroupValues.put(LIVE_VERSION, "Live Version [ " + liveVersion.getVersion()
- + " ]");
+ radioGroupValues.put(LIVE_VERSION, MSG
+ .view_bundle_deployWizard_selectVersion_live(liveVersion.getVersion()));
}
- radioGroupValues.put(SELECT_VERSION, "Select Version from List:");
+ radioGroupValues.put(SELECT_VERSION, MSG
+ .view_bundle_deployWizard_selectVersion_select());
selectVersionItem.setValueMap(selectVersionValues);
selectVersionItem.setValue(latestVersion.getVersion());
selectVersionItem.redraw();
@@ -172,13 +173,13 @@ public class SelectBundleVersionStep extends AbstractWizardStep {
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to find defined deployments.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_deployWizard_error_11(), caught);
}
});
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to find defined bundles.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_deployWizard_error_12(), caught);
}
});
}
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 070f51c..c52b8d4 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
@@ -704,6 +704,7 @@ view_bundle_deployWizard_deploying = Deploying...~
view_bundle_deployWizard_deployStep = Deploy Bundle to Destination Platforms~
view_bundle_deployWizard_deploymentCreated = Created Deployment...~
view_bundle_deployWizard_deploymentCreatedDetail = Created deployment [{0}] description [{1}]~
+view_bundle_deployWizard_destinationCreatedDetail = Created destination [{0}] description [{1}]~
view_bundle_deployWizard_deploymentScheduled = Bundle Deployment Scheduled!~
view_bundle_deployWizard_deploymentScheduledDetail = Scheduled bundle deployment [{0}] destination group [{1}]~
view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel: {0}~
@@ -713,8 +714,17 @@ view_bundle_deployWizard_error_4 = Failed to schedule deployment: {0}~
view_bundle_deployWizard_error_5 = Failed to Create Deployment!~
view_bundle_deployWizard_error_6 = Failed to create deployment: {0}~
view_bundle_deployWizard_error_7 = Failed to get deployment name.~
+view_bundle_deployWizard_error_8 = You must select a valid resource group from the drop down~
+view_bundle_deployWizard_error_9 = Failed to delete new destination in nextPage: [{0}]~
+view_bundle_deployWizard_error_10 = Failed to create destination, it may already exist. (Note, for an existing destination deploy from the Destination view)~
+view_bundle_deployWizard_error_11 = Failed to find defined deployments.~
+view_bundle_deployWizard_error_12 = Failed to find defined bundles.~
view_bundle_deployWizard_getConfigStep = Set Deployment Configuration~
view_bundle_deployWizard_getConfigSkip = No configuration needed for this bundle version.~
+view_bundle_deployWizard_getDestStep = New Destination~
+view_bundle_deployWizard_getDest_name = Destination Name~
+view_bundle_deployWizard_getDest_desc = Destination Description~
+view_bundle_deployWizard_getDest_deployDir = Root Deployment Directory (on destination platforms)~
view_bundle_deployWizard_getInfoStep = Provide Deployment Information~
view_bundle_deployWizard_getInfo_clean = Clean Deployment? (wipe deploy directory on destination platform)~
view_bundle_deployWizard_getInfo_deploymentDesc = Deployment Description~
@@ -723,7 +733,12 @@ view_bundle_deployWizard_getOptionsStep = Deploy Options~
view_bundle_deployWizard_getOptions_deployLater = Deploy Later~
view_bundle_deployWizard_getOptions_deployNow = Deploy Now~
view_bundle_deployWizard_getOptions_deployTime = Deployment Time~
-
+view_bundle_deployWizard_selectBundleStep = Select Deployment Bundle~
+view_bundle_deployWizard_selectBundle_single = Select only a single bundle for deployment.~
+view_bundle_deployWizard_selectVersionStep = Select Deployment Bundle Version~
+view_bundle_deployWizard_selectVersion_latest = Latest Version [{0}]~
+view_bundle_deployWizard_selectVersion_live = Live Version [{0}]~
+view_bundle_deployWizard_selectVersion_select = Select Version from List:~
view_bundle_deployWizard_title = Bundle Deployment Wizard~
commit b019c1c7dd542faa060601835f51dea5448e6a94
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Nov 18 14:23:13 2010 -0500
i18n
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 8df9966..070f51c 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
@@ -593,6 +593,7 @@ view_autoDiscoveryQ_loadFailure=Failed to load the inventory discovery queue~
view_bundle_bundle = Bundle~
view_bundle_bundles = Bundles~
view_bundle_bundleDestinations=Bundle Destinations~
+view_bundle_bundleDeployment=Bundle Deployment~
view_bundle_bundleDeployments=Bundle Deployments~
view_bundle_bundleFiles=Bundle Files~
view_bundle_bundleType=Bundle Type~
@@ -677,6 +678,54 @@ view_bundle_deploy_selectARow=Select a row to show installation details~
view_bundle_deploy_operatingSystem=Operating System~
view_bundle_deploy_loadFailure=Failed to load bundle deployment~
view_bundle_deploy_loadBundleFailure=Failed to find bundle~
+view_bundle_createWizard_title=Create Bundle~
+view_bundle_createWizard_windowTitle=Bundle Creation Wizard~
+view_bundle_createWizard_cancelSuccessful=Canceled the creation of bundle [{0}], version=[{1}]~
+view_bundle_createWizard_cancelFailure=Failed to fully cancel the creation of bundle [{0}], version=[{1}] - the bundle may still exist in the database~
+view_bundle_createWizard_noBundleTypesSupported=No bundle types are supported - you must deploy a valid plugin that supports bundle deployments~
+view_bundle_createWizard_noBundleTypesAvail=No bundle types are available~
+view_bundle_createWizard_loadBundleFileFailure=Cannot obtain bundle file information from server~
+view_bundle_createWizard_uploadInProgress=Upload is in progress... This can take several minutes for large files~
+view_bundle_createWizard_uploadStepName=Upload Bundle Files~
+view_bundle_createWizard_noAdditionalFilesNeeded=No additional files need to be uploaded for this bundle~
+view_bundle_createWizard_failedToUploadFile=Failed to upload bundle file~
+view_bundle_createWizard_failedToUploadDistroFile=Failed to upload bundle distribution file~
+view_bundle_createWizard_bundleDistro=Bundle Distribution~
+view_bundle_createWizard_youMustChooseOne=You must choose one option in order to create a bundle!
+view_bundle_createWizard_urlOption=URL~
+view_bundle_createWizard_uploadOption=Upload~
+view_bundle_createWizard_recipeOption=Recipe~
+view_bundle_createWizard_uploadStepName=Provide a Bundle Distribution~
+view_bundle_createWizard_clickToUploadRecipe=Click to upload a recipe file~
+view_bundle_createWizard_createFailure=Failed to create the bundle~
+view_bundle_createWizard_createSuccessful=You have successfully created a bundle named [{0}] with a version of [{1}]~
+
+view_bundle_deployWizard_deploying = Deploying...~
+view_bundle_deployWizard_deployStep = Deploy Bundle to Destination Platforms~
+view_bundle_deployWizard_deploymentCreated = Created Deployment...~
+view_bundle_deployWizard_deploymentCreatedDetail = Created deployment [{0}] description [{1}]~
+view_bundle_deployWizard_deploymentScheduled = Bundle Deployment Scheduled!~
+view_bundle_deployWizard_deploymentScheduledDetail = Scheduled bundle deployment [{0}] destination group [{1}]~
+view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel: {0}~
+view_bundle_deployWizard_error_2 = Failed to delete new destination on Cancel: {0}~
+view_bundle_deployWizard_error_3 = Failed to Schedule Deployment!~
+view_bundle_deployWizard_error_4 = Failed to schedule deployment: {0}~
+view_bundle_deployWizard_error_5 = Failed to Create Deployment!~
+view_bundle_deployWizard_error_6 = Failed to create deployment: {0}~
+view_bundle_deployWizard_error_7 = Failed to get deployment name.~
+view_bundle_deployWizard_getConfigStep = Set Deployment Configuration~
+view_bundle_deployWizard_getConfigSkip = No configuration needed for this bundle version.~
+view_bundle_deployWizard_getInfoStep = Provide Deployment Information~
+view_bundle_deployWizard_getInfo_clean = Clean Deployment? (wipe deploy directory on destination platform)~
+view_bundle_deployWizard_getInfo_deploymentDesc = Deployment Description~
+view_bundle_deployWizard_getInfo_deploymentName = Deployment Name~
+view_bundle_deployWizard_getOptionsStep = Deploy Options~
+view_bundle_deployWizard_getOptions_deployLater = Deploy Later~
+view_bundle_deployWizard_getOptions_deployNow = Deploy Now~
+view_bundle_deployWizard_getOptions_deployTime = Deployment Time~
+
+view_bundle_deployWizard_title = Bundle Deployment Wizard~
+
#=================== Components =====================
@@ -1241,3 +1290,4 @@ view_messageCenter_messageTitle = Message Center~
view_messageCenter_messageSeverity = Severity~
view_messageCenter_messageTime = Time~
view_messageCenter_messageDetail = Detail~
+
commit 3423a4491a09c34038fa2b48e6a4e4ea2f5c7612
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Nov 18 14:22:52 2010 -0500
i18n
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/AbstractBundleCreateWizard.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/AbstractBundleCreateWizard.java
index a3bd629..9aa7a1e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/AbstractBundleCreateWizard.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/AbstractBundleCreateWizard.java
@@ -72,13 +72,13 @@ public abstract class AbstractBundleCreateWizard extends AbstractWizard {
bundleServer.deleteBundleVersion(bv.getId(), true, new AsyncCallback<Void>() {
public void onSuccess(Void result) {
CoreGUI.getMessageCenter().notify(
- new Message("Canceled bundle [" + bv.getName() + "] version [" + bv.getVersion() + "]",
+ new Message(MSG.view_bundle_createWizard_cancelSuccessful(bv.getName(), bv.getVersion()),
Severity.Info));
}
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
- "Failed to fully cancel - bundle may still exist in the database", caught);
+ MSG.view_bundle_createWizard_cancelFailure(bv.getName(), bv.getVersion()), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleCreateWizard.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleCreateWizard.java
index 238ca4b..b63e3f4 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleCreateWizard.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleCreateWizard.java
@@ -25,8 +25,8 @@ import org.rhq.enterprise.gui.coregui.client.components.wizard.WizardStep;
public class BundleCreateWizard extends AbstractBundleCreateWizard {
public BundleCreateWizard() {
- setWindowTitle("Bundle Creation Wizard");
- setTitle("Create Bundle");
+ setWindowTitle(MSG.view_bundle_createWizard_windowTitle());
+ setTitle(MSG.view_bundle_createWizard_title());
ArrayList<WizardStep> steps = new ArrayList<WizardStep>();
steps.add(new BundleUploadDistroFileStep(this));
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleSummaryStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleSummaryStep.java
index fe4fb1f..8a886bd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleSummaryStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleSummaryStep.java
@@ -45,32 +45,32 @@ public class BundleSummaryStep extends AbstractWizardStep {
form.setNumCols(2);
form.setMargin(20);
- StaticTextItem bundleTypeLabel = new StaticTextItem("bundleType", "Type");
+ StaticTextItem bundleTypeLabel = new StaticTextItem("bundleType", MSG.view_bundle_bundleType());
bundleTypeLabel.setTitleAlign(Alignment.LEFT);
bundleTypeLabel.setAlign(Alignment.LEFT);
bundleTypeLabel.setWrap(false);
bundleTypeLabel.setValue(wizard.getBundleVersion().getBundle().getBundleType().getName());
- StaticTextItem nameLabel = new StaticTextItem("name", "Name");
+ StaticTextItem nameLabel = new StaticTextItem("name", MSG.common_title_name());
nameLabel.setTitleAlign(Alignment.LEFT);
nameLabel.setAlign(Alignment.LEFT);
nameLabel.setWrap(false);
nameLabel.setValue(wizard.getBundleVersion().getBundle().getName());
- StaticTextItem versionLabel = new StaticTextItem("Version");
+ StaticTextItem versionLabel = new StaticTextItem("Version", MSG.common_title_version());
versionLabel.setTitleAlign(Alignment.LEFT);
versionLabel.setTitleAlign(Alignment.LEFT);
versionLabel.setAlign(Alignment.LEFT);
versionLabel.setWrap(false);
versionLabel.setValue(wizard.getBundleVersion().getVersion());
- StaticTextItem descriptionLabel = new StaticTextItem("Description");
+ StaticTextItem descriptionLabel = new StaticTextItem("Description", MSG.common_title_description());
descriptionLabel.setTitleAlign(Alignment.LEFT);
descriptionLabel.setAlign(Alignment.LEFT);
descriptionLabel.setWrap(false);
descriptionLabel.setValue(wizard.getBundleVersion().getBundle().getDescription());
- StaticTextItem filesLabel = new StaticTextItem("Files");
+ StaticTextItem filesLabel = new StaticTextItem("Files", MSG.view_bundle_files());
filesLabel.setTitleVAlign(VerticalAlignment.TOP);
filesLabel.setTitleAlign(Alignment.LEFT);
filesLabel.setAlign(Alignment.LEFT);
@@ -93,6 +93,6 @@ public class BundleSummaryStep extends AbstractWizardStep {
}
public String getName() {
- return "Summary";
+ return MSG.common_title_summary();
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleTypeDropDownSelectItem.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleTypeDropDownSelectItem.java
index 540d13e..959237b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleTypeDropDownSelectItem.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleTypeDropDownSelectItem.java
@@ -43,7 +43,7 @@ public class BundleTypeDropDownSelectItem extends SelectItem {
private BundleType selected = null;
public BundleTypeDropDownSelectItem(String name) {
- super(name, "Bundle Type");
+ super(name, CoreGUI.getMessages().view_bundle_bundleType());
buildDropDownMenu();
}
@@ -74,7 +74,9 @@ public class BundleTypeDropDownSelectItem extends SelectItem {
public void onSuccess(ArrayList<BundleType> result) {
if (result == null || result.size() == 0) {
setSelected(null);
- CoreGUI.getMessageCenter().notify(new Message("No bundle types are supported", Severity.Error));
+ CoreGUI.getMessageCenter().notify(
+ new Message(CoreGUI.getMessages().view_bundle_createWizard_noBundleTypesSupported(),
+ Severity.Error));
return;
}
@@ -96,7 +98,8 @@ public class BundleTypeDropDownSelectItem extends SelectItem {
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("No bundle types available", caught);
+ CoreGUI.getErrorHandler().handleError(
+ CoreGUI.getMessages().view_bundle_createWizard_noBundleTypesAvail(), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java
index e62b908..a5490bf 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDataStep.java
@@ -82,7 +82,7 @@ public class BundleUploadDataStep extends AbstractWizardStep {
public void onFailure(Throwable caught) {
wizard.setAllBundleFilesStatus(null);
- CoreGUI.getErrorHandler().handleError("Cannot obtain bundle file information from server", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_createWizard_loadBundleFileFailure(), caught);
}
});
@@ -100,8 +100,8 @@ public class BundleUploadDataStep extends AbstractWizardStep {
for (BundleFileUploadForm uploadForm : this.uploadForms) {
if (uploadForm.isUploadInProgress()) {
- handleUploadError("[" + uploadForm.getName()
- + "] Upload is in progress... This can take several minutes for large files.", false);
+ handleUploadError("[" + uploadForm.getName() + "] " + MSG.view_bundle_createWizard_uploadInProgress(),
+ false);
return false;
}
}
@@ -110,7 +110,7 @@ public class BundleUploadDataStep extends AbstractWizardStep {
}
public String getName() {
- return "Upload Bundle Files";
+ return MSG.view_bundle_createWizard_uploadStepName();
}
private boolean isFinished() {
@@ -125,8 +125,8 @@ public class BundleUploadDataStep extends AbstractWizardStep {
boolean needToUpload = false;
for (BundleFileUploadForm uploadForm : this.uploadForms) {
if (uploadForm.isUploadInProgress()) {
- handleUploadError("[" + uploadForm.getName()
- + "] Upload is in progress... This can take several minutes for large files.", false);
+ handleUploadError("[" + uploadForm.getName() + "] " + MSG.view_bundle_createWizard_uploadInProgress(),
+ false);
needToUpload = true;
} else if (uploadForm.getUploadResult() == null) {
needToUpload = true;
@@ -160,7 +160,7 @@ public class BundleUploadDataStep extends AbstractWizardStep {
}
if (noFilesNeedToBeUploaded) {
- HeaderLabel label = new HeaderLabel("No additional files need to be uploaded for this bundle");
+ HeaderLabel label = new HeaderLabel(MSG.view_bundle_createWizard_noAdditionalFilesNeeded());
label.setWidth100();
mainLayout.addMember(label);
uploadForms = null;
@@ -192,7 +192,7 @@ public class BundleUploadDataStep extends AbstractWizardStep {
uploadForm.addFormHandler(new DynamicFormHandler() {
public void onSubmitComplete(DynamicFormSubmitCompleteEvent event) {
String results = event.getResults();
- if (!results.contains("Failed to upload bundle file")) {
+ if (!results.contains("Failed to upload bundle file")) { // this is looking for an error message coming from the server, its not i18n'ed
allFilesStatus.put(uploadForm.getName(), Boolean.TRUE);
} else {
allFilesStatus.put(uploadForm.getName(), Boolean.FALSE);
@@ -204,7 +204,8 @@ public class BundleUploadDataStep extends AbstractWizardStep {
uploadForm.addFormSubmitFailedHandler(new FormSubmitFailedHandler() {
public void onFormSubmitFailed(FormSubmitFailedEvent event) {
allFilesStatus.put(uploadForm.getName(), Boolean.FALSE);
- CoreGUI.getMessageCenter().notify(new Message("Failed to upload file", Message.Severity.Error));
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_bundle_createWizard_failedToUploadFile(), Message.Severity.Error));
}
});
@@ -225,7 +226,8 @@ public class BundleUploadDataStep extends AbstractWizardStep {
if (sendToMessageCenter) {
CoreGUI.getMessageCenter().notify(
- new Message("Failed to upload bundle distribution file. " + errorMessage, Severity.Error));
+ new Message(MSG.view_bundle_createWizard_failedToUploadDistroFile() + ": " + errorMessage,
+ Severity.Error));
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDistroFileStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDistroFileStep.java
index bccf37b..8c4b280 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDistroFileStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/create/BundleUploadDistroFileStep.java
@@ -59,6 +59,10 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
private DynamicCallbackForm recipeForm;
private RadioGroupWithComponentsItem radioGroup;
+ private final String URL_OPTION = MSG.view_bundle_createWizard_urlOption();
+ private final String UPLOAD_OPTION = MSG.view_bundle_createWizard_uploadOption();
+ private final String RECIPE_OPTION = MSG.view_bundle_createWizard_recipeOption();
+
public BundleUploadDistroFileStep(AbstractBundleCreateWizard bundleCreationWizard) {
this.wizard = bundleCreationWizard;
}
@@ -66,13 +70,13 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
public Canvas getCanvas() {
if (mainCanvasForm == null) {
LinkedHashMap<String, DynamicForm> radioItems = new LinkedHashMap<String, DynamicForm>();
- radioItems.put("URL", createUrlForm());
- radioItems.put("Upload", createUploadForm());
- radioItems.put("Recipe", createRecipeForm());
+ radioItems.put(URL_OPTION, createUrlForm());
+ radioItems.put(UPLOAD_OPTION, createUploadForm());
+ radioItems.put(RECIPE_OPTION, createRecipeForm());
mainCanvasForm = new DynamicForm();
- radioGroup = new RadioGroupWithComponentsItem("bundleDistRadioGroup", "Bundle Distribution", radioItems,
- mainCanvasForm);
+ radioGroup = new RadioGroupWithComponentsItem("bundleDistRadioGroup", MSG
+ .view_bundle_createWizard_bundleDistro(), radioItems, mainCanvasForm);
radioGroup.setShowTitle(false);
mainCanvasForm.setItems(radioGroup);
@@ -91,24 +95,23 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
wizard.getView().hideMessage();
if (uploadDistroForm.isUploadInProgress()) {
- handleUploadError("Upload is in progress... This can take several minutes for large distribution files.",
- false);
+ handleUploadError(MSG.view_bundle_createWizard_uploadInProgress(), false);
return false;
}
if (wizard.getBundleVersion() == null) {
String selected = radioGroup.getSelected();
- if ("URL".equals(selected)) {
+ if (URL_OPTION.equals(selected)) {
processUrl();
- } else if ("Upload".equals(selected)) {
+ } else if (UPLOAD_OPTION.equals(selected)) {
uploadDistroForm.submitForm();
// on certain errors the form may never be submitted, report these errors outside submit handlers
handleUploadError(uploadDistroForm.getUploadError(), false);
- } else if ("Recipe".equals(selected)) {
+ } else if (RECIPE_OPTION.equals(selected)) {
processRecipe();
} else {
- wizard.getView().showMessage("You must choose one option for creating your Bundle!");
+ wizard.getView().showMessage(MSG.view_bundle_createWizard_youMustChooseOne());
return false;
}
return false;
@@ -121,11 +124,11 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
}
public String getName() {
- return "Provide A Bundle Distribution";
+ return MSG.view_bundle_createWizard_uploadStepName();
}
private DynamicForm createUrlForm() {
- urlTextItem = new TextItem("url", "URL");
+ urlTextItem = new TextItem("url", URL_OPTION);
urlTextItem.setRequired(false);
urlTextItem.setShowTitle(false);
urlTextItem.setWidth(400);
@@ -158,7 +161,7 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
recipeForm.setShowInlineErrors(false);
final LinkItem showUpload = new LinkItem("recipeUploadLink");
- showUpload.setValue("Click To Upload A Recipe File");
+ showUpload.setValue(MSG.view_bundle_createWizard_clickToUploadRecipe());
showUpload.setShowTitle(false);
final CanvasItem upload = new CanvasItem("recipeUploadCanvas");
@@ -204,7 +207,7 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
bundleServer.createBundleVersionViaURL(urlString, new AsyncCallback<BundleVersion>() {
public void onSuccess(BundleVersion result) {
CoreGUI.getMessageCenter().notify(
- new Message("Created bundle [" + result.getName() + "] version [" + result.getVersion() + "]",
+ new Message(MSG.view_bundle_createWizard_createSuccessful(result.getName(), result.getVersion()),
Message.Severity.Info));
wizard.setBundleVersion(result);
setButtonsDisableMode(false);
@@ -213,7 +216,7 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
public void onFailure(Throwable caught) {
wizard.getView().showMessage(caught.getMessage());
- CoreGUI.getErrorHandler().handleError("Failed to create bundle", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_createWizard_createFailure(), caught);
wizard.setBundleVersion(null);
setButtonsDisableMode(false);
}
@@ -231,7 +234,7 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
public void onSuccess(PageList<BundleVersion> result) {
BundleVersion bv = result.get(0);
CoreGUI.getMessageCenter().notify(
- new Message("Created bundle [" + bv.getName() + "] version [" + bv.getVersion() + "]",
+ new Message(MSG.view_bundle_createWizard_createSuccessful(bv.getName(), bv.getVersion()),
Message.Severity.Info));
wizard.setBundleVersion(bv);
setButtonsDisableMode(false);
@@ -240,7 +243,7 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
public void onFailure(Throwable caught) {
wizard.getView().showMessage(caught.getMessage());
- CoreGUI.getErrorHandler().handleError("Failed to create bundle", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_createWizard_createFailure(), caught);
wizard.setBundleVersion(null);
setButtonsDisableMode(false);
}
@@ -259,7 +262,7 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
bundleServer.createBundleVersionViaRecipe(this.wizard.getRecipe(), new AsyncCallback<BundleVersion>() {
public void onSuccess(BundleVersion result) {
CoreGUI.getMessageCenter().notify(
- new Message("Created bundle [" + result.getName() + "] version [" + result.getVersion() + "]",
+ new Message(MSG.view_bundle_createWizard_createSuccessful(result.getName(), result.getVersion()),
Message.Severity.Info));
wizard.setBundleVersion(result);
setButtonsDisableMode(false);
@@ -268,7 +271,7 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
public void onFailure(Throwable caught) {
wizard.getView().showMessage(caught.getMessage());
- CoreGUI.getErrorHandler().handleError("Failed to create bundle", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_createWizard_createFailure(), caught);
wizard.setBundleVersion(null);
wizard.setRecipe("");
setButtonsDisableMode(false);
@@ -290,7 +293,8 @@ public class BundleUploadDistroFileStep extends AbstractWizardStep {
if (sendToMessageCenter) {
CoreGUI.getMessageCenter().notify(
- new Message("Failed to upload bundle distribution file. " + errorMessage, Severity.Error));
+ new Message(MSG.view_bundle_createWizard_failedToUploadDistroFile() + ": " + errorMessage,
+ Severity.Error));
}
}
}
commit db64b2c53b8669ee58ffc4c50c18eb47999cedd7
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Nov 18 13:53:21 2010 -0500
various users/roles views tweaks and fixes
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
index 4173bcf..fd14c4c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
@@ -57,7 +57,6 @@ import org.rhq.enterprise.gui.coregui.client.inventory.resource.selection.Resour
*/
public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implements BookmarkableView {
- private static final String DATA_TYPE_NAME = "role";
private static final String HEADER_ICON = "global/Role_16.png";
private PermissionEditorView permissionEditorItem;
@@ -75,7 +74,7 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
private boolean isLdapConfigured;
public RoleEditView(String locatorId, int roleId) {
- super(locatorId, new RolesDataSource(), roleId, DATA_TYPE_NAME, HEADER_ICON);
+ super(locatorId, new RolesDataSource(), roleId, MSG.common_label_role(), HEADER_ICON);
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index 7eb099c..ba5f6e9 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -31,6 +31,7 @@ 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.widgets.grid.ListGridRecord;
import org.rhq.core.domain.authz.Permission;
@@ -65,6 +66,9 @@ public class RolesDataSource extends RPCDataSource<Role> {
public static final String LDAP_GROUPS = "ldapGroups";
}
+ public static final int ID_SUPERUSER = 1;
+ public static final int ID_ALL_RESOURCES = 2;
+
private static RolesDataSource INSTANCE;
private RoleGWTServiceAsync roleService = GWTServiceLookup.getRoleService();
@@ -93,7 +97,7 @@ public class RolesDataSource extends RPCDataSource<Role> {
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceField idDataField = new DataSourceIntegerField(Field.ID, "ID");
+ DataSourceIntegerField idDataField = new DataSourceIntegerField(Field.ID, "ID");
idDataField.setPrimaryKey(true);
idDataField.setCanEdit(false);
fields.add(idDataField);
@@ -105,6 +109,21 @@ public class RolesDataSource extends RPCDataSource<Role> {
.common_title_description(), 100, false);
fields.add(descriptionField);
+ DataSourceField resourceGroupsField = new DataSourceField(Field.RESOURCE_GROUPS, FieldType.ANY, "Resource Groups");
+ fields.add(resourceGroupsField);
+
+ DataSourceField globalPermissionsField = new DataSourceField(Field.GLOBAL_PERMISSIONS, FieldType.ANY, "Global Permissions");
+ fields.add(globalPermissionsField);
+
+ DataSourceField resourcePermissionsField = new DataSourceField(Field.RESOURCE_PERMISSIONS, FieldType.ANY, "Resource Permissions");
+ fields.add(resourcePermissionsField);
+
+ DataSourceField subjectsField = new DataSourceField(Field.SUBJECTS, FieldType.ANY, "Subjects");
+ fields.add(subjectsField);
+
+ DataSourceField ldapGroupsField = new DataSourceField(Field.LDAP_GROUPS, FieldType.ANY, "LDAP Groups");
+ fields.add(ldapGroupsField);
+
return fields;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
index 35417e7..4b40221 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
@@ -38,9 +38,6 @@ import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
public class RolesView extends TableSection implements BookmarkableView {
public static final ViewName VIEW_ID = new ViewName("Roles", MSG.view_adminSecurity_roles());
- private static final int ID_SUPERUSER = 1;
- private static final int ID_ALL_RESOURCES = 2;
-
// TODO: We need a 24x24 version of the Role icon.
private static final String HEADER_ICON = "global/Role_16.png";
@@ -72,7 +69,7 @@ public class RolesView extends TableSection implements BookmarkableView {
for (ListGridRecord record : selection) {
int id = record.getAttributeAsInt(RolesDataSource.Field.ID);
- if (id == ID_SUPERUSER || id == ID_ALL_RESOURCES) {
+ if (id == RolesDataSource.ID_SUPERUSER || id == RolesDataSource.ID_ALL_RESOURCES) {
// The superuser and all-resources roles cannot be deleted.
return false;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
index 3bec8c3..2f99ddf 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
@@ -53,7 +53,6 @@ import org.rhq.enterprise.gui.coregui.client.components.selector.AssignedItemsCh
*/
public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
- private static final String DATA_TYPE_NAME = "user";
private static final String HEADER_ICON = "global/User_24.png";
private static final int SUBJECT_ID_RHQADMIN = 2;
@@ -62,7 +61,7 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
private boolean hasManageSecurityPermission;
public UserEditView(String locatorId, int subjectId) {
- super(locatorId, new UsersDataSource(), subjectId, DATA_TYPE_NAME, HEADER_ICON);
+ super(locatorId, new UsersDataSource(), subjectId, MSG.common_label_user(), HEADER_ICON);
}
@Override
@@ -204,4 +203,5 @@ public class UserEditView extends AbstractRecordEditor<UsersDataSource> {
super.reset();
this.roleSelector.reset();
}
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
index 8a3ce83..c24ac5b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
@@ -74,6 +74,9 @@ public class UsersDataSource extends RPCDataSource<Subject> {
public static final String PASSWORD_VERIFY = "passwordVerify";
}
+ public static final int ID_OVERLORD = 1;
+ public static final int ID_RHQADMIN = 2;
+
private final SubjectGWTServiceAsync subjectService = GWTServiceLookup.getSubjectService();
public static UsersDataSource getInstance() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
index 7118d31..e6c73c5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
@@ -22,14 +22,12 @@ import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.admin.AdministrationView;
import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction;
import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
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.util.message.Message;
/**
* A table that lists all users and provides the ability to view details of or delete those users and to create new
@@ -44,13 +42,8 @@ public class UsersView extends TableSection {
public static final String VIEW_PATH = AdministrationView.VIEW_ID + "/"
+ AdministrationView.SECTION_SECURITY_VIEW_ID + "/" + VIEW_ID;
- private static final int ID_OVERLORD = 1;
- private static final int ID_RHQADMIN = 2;
-
private static final String HEADER_ICON = "global/User_24.png";
- private static Message message;
-
public UsersView(String locatorId) {
super(locatorId, MSG.view_adminSecurity_users());
@@ -61,15 +54,6 @@ public class UsersView extends TableSection {
}
@Override
- public void refresh() {
- super.refresh();
- if (UsersView.message != null) {
- CoreGUI.getMessageCenter().notify(UsersView.message);
- UsersView.message = null;
- }
- }
-
- @Override
protected void configureTable() {
getListGrid().setUseAllDataSourceFields(false);
@@ -97,8 +81,8 @@ public class UsersView extends TableSection {
}
for (ListGridRecord record : selection) {
- int id = record.getAttributeAsInt("id");
- if (id == ID_OVERLORD || id == ID_RHQADMIN) {
+ int id = record.getAttributeAsInt(UsersDataSource.Field.ID);
+ if (id == UsersDataSource.ID_OVERLORD || id == UsersDataSource.ID_RHQADMIN) {
// The superuser and rhqadmin users cannot be deleted.
return false;
}
@@ -125,12 +109,12 @@ public class UsersView extends TableSection {
@Override
protected String getDataTypeName() {
- return "user";
+ return MSG.common_label_user();
}
@Override
protected String getDataTypeNamePlural() {
- return "users";
+ return MSG.common_label_users();
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
index 865ca35..f246c19 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
@@ -287,18 +287,30 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
// Load the data into the form.
this.form.editRecord(record);
+ // This tells form.saveData() to invoke executeUpdate() on the dataSource.
+ this.form.setSaveOperationType(DSOperationType.UPDATE);
+
// Now that all the widgets have been created and initialized, make everything visible.
- LOADING_LABEL.hide();
- this.editCanvas.show();
- markForRedraw();
+ displayForm();
}
private void editNewRecord() {
this.titleBar.setTitle("New " + this.dataTypeName);
+
Record record = createNewRecord();
- editRecord(record);
+ this.form.editRecord(record);
+
// This tells form.saveData() to invoke executeAdd() on the dataSource.
this.form.setSaveOperationType(DSOperationType.ADD);
+
+ // Now that all the widgets have been created and initialized, make everything visible.
+ displayForm();
+ }
+
+ private void displayForm() {
+ LOADING_LABEL.hide();
+ this.editCanvas.show();
+ markForRedraw();
}
protected abstract Record createNewRecord();
@@ -325,8 +337,7 @@ public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends Loc
protected void onExistingRecordFetched(Record record) {
editRecord(record);
- // This tells form.saveData() to invoke executeUpdate() on the dataSource.
- this.form.setSaveOperationType(DSOperationType.UPDATE);
+
// Perform up front validation for existing records.
// NOTE: We do *not* do this for new records, since we expect most of the required fields to be blank.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
index de483de..b013f36 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/EnhancedDynamicForm.java
@@ -87,6 +87,7 @@ public class EnhancedDynamicForm extends LocatableDynamicForm {
// DataSource Settings
setAutoFetchData(true);
+ setUseAllDataSourceFields(false);
// Validation Settings
setValidateOnChange(!isNewRecord);
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 4e7c1ed..8df9966 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
@@ -1241,4 +1241,3 @@ view_messageCenter_messageTitle = Message Center~
view_messageCenter_messageSeverity = Severity~
view_messageCenter_messageTime = Time~
view_messageCenter_messageDetail = Detail~
-
commit 66048d45468042a5658bbfad836900e749620747
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Nov 18 13:43:43 2010 -0500
I18N work - packages:
org.rhq.enterprise.gui.coregui.client.admin.agent.install
org.rhq.enterprise.gui.coregui.client.admin.roles
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java
index 86e7f11..3adcf47 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java
@@ -102,41 +102,41 @@ public class RemoteAgentInstallView extends LocatableVLayout {
connectionForm.setMargin(20);
HeaderItem connectionHeader = new HeaderItem();
- connectionHeader.setDefaultValue("Connection Information");
+ connectionHeader.setDefaultValue(MSG.view_remoteAgentInstall_connInfo());
- TextItem host = new TextItem("host", "Hostname");
+ TextItem host = new TextItem("host", MSG.common_title_host());
host.setRequired(true);
host.setWidth("100%");
- host.setPrompt("The host where the agent is or will be installed");
+ host.setPrompt(MSG.view_remoteAgentInstall_promptHost());
host.setColSpan(2);
- TextItem port = new TextItem("port", "Port");
+ TextItem port = new TextItem("port", MSG.common_title_port());
port.setRequired(false);
port.setWidth("90");
- port.setPrompt("The port the SSH server is listening to. If not specified, the default is 22");
+ port.setPrompt(MSG.view_remoteAgentInstall_promptPort());
port.setColSpan(1);
- TextItem username = new TextItem("username", "Username");
+ TextItem username = new TextItem("username", MSG.common_title_user());
username.setRequired(true);
username.setWidth("100%");
- username.setPrompt("The name of the user whose credentials are passed to the host via SSH");
+ username.setPrompt(MSG.view_remoteAgentInstall_promptUser());
username.setColSpan(2);
- PasswordItem password = new PasswordItem("password", "Password");
+ PasswordItem password = new PasswordItem("password", MSG.common_title_password());
password.setRequired(false);
password.setWidth("100%");
- password.setPrompt("The credentials that are used to authenticate the user on the host via SSH");
+ password.setPrompt(MSG.view_remoteAgentInstall_promptPassword());
password.setColSpan(2);
- TextItem agentInstallPath = new TextItem("agentInstallPath", "Agent Install Path");
+ TextItem agentInstallPath = new TextItem("agentInstallPath", MSG.view_remoteAgentInstall_installPath());
agentInstallPath.setRequired(true);
agentInstallPath.setWidth("100%");
- agentInstallPath
- .setPrompt("Where the agent is or will be installed. If you aren't sure where an agent is installed, enter a parent directory and click the 'Find Agent' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install.");
+ agentInstallPath.setPrompt(MSG.view_remoteAgentInstall_promptInstallPath());
agentInstallPath.setStartRow(true);
agentInstallPath.setEndRow(false);
- ButtonItem findAgentInstallPathButton = new ButtonItem("findAgentInstallPathButton", "Find Agent");
+ ButtonItem findAgentInstallPathButton = new ButtonItem("findAgentInstallPathButton", MSG
+ .view_remoteAgentInstall_buttonFindAgent());
findAgentInstallPathButton.setStartRow(false);
findAgentInstallPathButton.setEndRow(true);
findAgentInstallPathButton.addClickHandler(new ClickHandler() {
@@ -147,15 +147,15 @@ public class RemoteAgentInstallView extends LocatableVLayout {
}
});
- StaticTextItem agentStatus = new StaticTextItem("agentStatus", "Agent Status");
- agentStatus.setDefaultValue("-Click Update Status Button-");
+ StaticTextItem agentStatus = new StaticTextItem("agentStatus", MSG.view_remoteAgentInstall_agentStatus());
+ agentStatus.setDefaultValue(MSG.view_remoteAgentInstall_agentStatusDefault());
agentStatus.setRedrawOnChange(true);
agentStatus.setRedrawOnChange(true);
agentStatus.setWidth("100%");
agentStatus.setStartRow(true);
agentStatus.setEndRow(false);
- ButtonItem statusCheckButton = new ButtonItem("updateStatus", "Update Status");
+ ButtonItem statusCheckButton = new ButtonItem("updateStatus", MSG.view_remoteAgentInstall_updateStatus());
statusCheckButton.setStartRow(false);
statusCheckButton.setEndRow(true);
statusCheckButton.addClickHandler(new ClickHandler() {
@@ -180,13 +180,13 @@ public class RemoteAgentInstallView extends LocatableVLayout {
buttonsForm.setColWidths("10%", "30%", "30%", "30%");
HeaderItem buttonsHeader = new HeaderItem();
- buttonsHeader.setDefaultValue("Operations");
+ buttonsHeader.setDefaultValue(MSG.common_title_operations());
SpacerItem spacerItem = new SpacerItem();
spacerItem.setStartRow(true);
spacerItem.setEndRow(false);
- installButton = new ButtonItem("install", "Install Agent");
+ installButton = new ButtonItem("install", MSG.view_remoteAgentInstall_installAgent());
installButton.setStartRow(false);
installButton.setEndRow(false);
installButton.setRedrawOnChange(true);
@@ -198,7 +198,7 @@ public class RemoteAgentInstallView extends LocatableVLayout {
}
});
- startButton = new ButtonItem("start", "Start Agent");
+ startButton = new ButtonItem("start", MSG.view_remoteAgentInstall_startAgent());
startButton.setStartRow(false);
startButton.setEndRow(false);
// startButton.setShowIfCondition(new FormItemIfFunction() {
@@ -214,7 +214,7 @@ public class RemoteAgentInstallView extends LocatableVLayout {
}
});
- stopButton = new ButtonItem("stop", "Stop Agent");
+ stopButton = new ButtonItem("stop", MSG.view_remoteAgentInstall_stopAgent());
stopButton.setStartRow(false);
stopButton.setEndRow(true);
stopButton.addClickHandler(new ClickHandler() {
@@ -237,7 +237,7 @@ public class RemoteAgentInstallView extends LocatableVLayout {
remoteInstallService.findAgentInstallPath(getRemoteAccessInfo(), parentPath, new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
disableButtons(false);
- CoreGUI.getErrorHandler().handleError("Error occurred while trying to find agent install path", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_remoteAgentInstall_error_1(), caught);
}
public void onSuccess(String result) {
@@ -247,9 +247,9 @@ public class RemoteAgentInstallView extends LocatableVLayout {
} else {
String err;
if (parentPath == null || parentPath.length() == 0) {
- err = "Could not find an agent installed when looking in common locations";
+ err = MSG.view_remoteAgentInstall_error_2();
} else {
- err = "Could not find an agent installed at or under [" + parentPath + "]";
+ err = MSG.view_remoteAgentInstall_error_3(parentPath);
}
CoreGUI.getErrorHandler().handleError(err);
}
@@ -293,13 +293,13 @@ public class RemoteAgentInstallView extends LocatableVLayout {
new AsyncCallback<AgentInstallInfo>() {
public void onFailure(Throwable caught) {
disableButtons(false);
- CoreGUI.getErrorHandler().handleError("Failed to install agent", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_remoteAgentInstall_error_4(), caught);
}
public void onSuccess(AgentInstallInfo result) {
disableButtons(false);
CoreGUI.getMessageCenter().notify(
- new Message("Agent installation completed", Message.Severity.Info));
+ new Message(MSG.view_remoteAgentInstall_success(), Message.Severity.Info));
for (Canvas child : agentInfoLayout.getChildren()) {
child.destroy();
@@ -316,12 +316,13 @@ public class RemoteAgentInstallView extends LocatableVLayout {
remoteInstallService.startAgent(getRemoteAccessInfo(), getAgentInstallPath(), new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
disableButtons(false);
- CoreGUI.getErrorHandler().handleError("Failed to start agent", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_remoteAgentInstall_error_5(), caught);
}
public void onSuccess(String result) {
disableButtons(false);
- CoreGUI.getMessageCenter().notify(new Message("Agent start results: " + result, Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_remoteAgentInstall_startAgentResults(result), Message.Severity.Info));
agentStatusCheck();
}
});
@@ -332,12 +333,13 @@ public class RemoteAgentInstallView extends LocatableVLayout {
remoteInstallService.stopAgent(getRemoteAccessInfo(), getAgentInstallPath(), new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
disableButtons(false);
- CoreGUI.getErrorHandler().handleError("Failed to stop agent", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_remoteAgentInstall_error_6(), caught);
}
public void onSuccess(String result) {
disableButtons(false);
- CoreGUI.getMessageCenter().notify(new Message("Agent stop results: " + result, Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_remoteAgentInstall_stopAgentResults(result), Message.Severity.Info));
agentStatusCheck();
}
});
@@ -350,18 +352,18 @@ public class RemoteAgentInstallView extends LocatableVLayout {
infoForm.setHeight100();
HeaderItem infoHeader = new HeaderItem();
- infoHeader.setValue("Agent Installation Information");
+ infoHeader.setValue(MSG.view_remoteAgentInstall_installInfo());
- StaticTextItem version = new StaticTextItem("version", "Version");
+ StaticTextItem version = new StaticTextItem("version", MSG.common_title_version());
version.setValue(info.getVersion());
- StaticTextItem path = new StaticTextItem("path", "Path");
+ StaticTextItem path = new StaticTextItem("path", MSG.common_title_path());
path.setValue(info.getPath());
- StaticTextItem owner = new StaticTextItem("owner", "Owner");
+ StaticTextItem owner = new StaticTextItem("owner", MSG.view_remoteAgentInstall_owner());
owner.setValue(info.getOwner());
- StaticTextItem config = new StaticTextItem("config", "Configuration");
+ StaticTextItem config = new StaticTextItem("config", MSG.common_title_configuration());
config.setValue(info.getConfigurationStartString());
CanvasItem listCanvas = new CanvasItem();
@@ -385,10 +387,10 @@ public class RemoteAgentInstallView extends LocatableVLayout {
listGrid.setCanExpandRecords(true);
listGrid.setExpansionMode(ExpansionMode.DETAIL_FIELD);
listGrid.setDetailField("result");
- ListGridField step = new ListGridField("description", "Step");
- ListGridField result = new ListGridField("result", "Result");
- ListGridField resultCode = new ListGridField("resultCode", "Result Code", 90);
- ListGridField duration = new ListGridField("duration", "Duration", 90);
+ ListGridField step = new ListGridField("description", MSG.view_remoteAgentInstall_step());
+ ListGridField result = new ListGridField("result", MSG.view_remoteAgentInstall_result());
+ ListGridField resultCode = new ListGridField("resultCode", MSG.view_remoteAgentInstall_resultCode(), 90);
+ ListGridField duration = new ListGridField("duration", MSG.common_title_duration(), 90);
listGrid.setFields(step, result, resultCode, duration);
listGrid.setData(getStepRecords(info));
@@ -409,7 +411,7 @@ public class RemoteAgentInstallView extends LocatableVLayout {
rec.setAttribute("description", step.getDescription());
String result = step.getResult();
if (result == null || result.trim().length() == 0) {
- result = "Result code=" + step.getResultCode();
+ result = MSG.view_remoteAgentInstall_resultCode() + "=" + step.getResultCode();
}
rec.setAttribute("result", result);
rec.setAttribute("resultCode", "" + step.getResultCode());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java
index a85dbb9..589b0e3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/PermissionEditorView.java
@@ -33,12 +33,15 @@ import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.form.fields.HeaderItem;
import org.rhq.core.domain.authz.Permission;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.Messages;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
/**
* @author Greg Hinkle
*/
public class PermissionEditorView extends CanvasItem {
+ private static Messages MSG = CoreGUI.getMessages();
private Set<Permission> selectedPermissions = EnumSet.noneOf(Permission.class);
@@ -60,16 +63,16 @@ public class PermissionEditorView extends CanvasItem {
List<FormItem> items = new ArrayList<FormItem>();
- HeaderItem globalPermsHeader = new HeaderItem("globalPermissions", "Global Permissions");
- globalPermsHeader.setValue("Global Permissions");
+ HeaderItem globalPermsHeader = new HeaderItem("globalPermissions", MSG.view_adminRoles_globalPerms());
+ globalPermsHeader.setValue(MSG.view_adminRoles_globalPerms());
items.add(globalPermsHeader);
for (Permission permission : Permission.GLOBAL_ALL) {
- CheckboxItem checkboxItem = new CheckboxItem(permission.name(), permission.name());
+ CheckboxItem checkboxItem = new CheckboxItem(permission.name(), permission.name());
items.add(checkboxItem);
}
- HeaderItem resourcePermsHeader = new HeaderItem("resourcePermissions", "Resource Permissions");
- resourcePermsHeader.setValue("Resource Permissions");
+ HeaderItem resourcePermsHeader = new HeaderItem("resourcePermissions", MSG.view_adminRoles_resourcePerms());
+ resourcePermsHeader.setValue(MSG.view_adminRoles_resourcePerms());
items.add(resourcePermsHeader);
for (Permission permission : Permission.RESOURCE_ALL) {
CheckboxItem checkboxItem = new CheckboxItem(permission.name(), permission.name());
@@ -110,5 +113,5 @@ public class PermissionEditorView extends CanvasItem {
public Set<Permission> getPermissions() {
return selectedPermissions;
}
-
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
index d9ba0c0..4173bcf 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
@@ -81,8 +81,7 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
@Override
public void renderView(ViewPath viewPath) {
super.renderView(viewPath);
- UserPermissionsManager.getInstance().loadGlobalPermissions(
- new PermissionsLoadedListener() {
+ UserPermissionsManager.getInstance().loadGlobalPermissions(new PermissionsLoadedListener() {
public void onPermissionsLoaded(Set<Permission> globalPermissions) {
RoleEditView.this.hasManageSecurityPermission = globalPermissions.contains(Permission.MANAGE_SECURITY);
checkIfLdapConfigured();
@@ -98,7 +97,7 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to determine if LDAP configured - assuming not.", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_adminRoles_failLdap(), caught);
RoleEditView.this.isLdapConfigured = false;
fetchAvailableLdapGroups();
}
@@ -109,23 +108,21 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
final boolean isReadOnly = (!this.hasManageSecurityPermission);
if (this.isLdapConfigured) {
final Set<LdapGroup> availableLdapGroups = null;
- GWTServiceLookup.getLdapService().findAvailableGroups(
- new AsyncCallback<Set<Map<String, String>>>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to retrieve available LDAP groups - assuming none.",
- caught);
- Set<LdapGroup> availableLdapGroups = Collections.emptySet();
- init(isReadOnly);
- }
+ GWTServiceLookup.getLdapService().findAvailableGroups(new AsyncCallback<Set<Map<String, String>>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(MSG.view_adminRoles_failLdapGroups(), caught);
+ Set<LdapGroup> availableLdapGroups = Collections.emptySet();
+ init(isReadOnly);
+ }
- public void onSuccess(Set<Map<String, String>> result) {
- // Get assigned LDAP groups.
- Set<LdapGroup> availableLdapGroups = RoleLdapGroupSelector.convertToCollection(result);
- // Update record with both objects.
- //record.setAttribute("ldapGroupsAvailable", availableGroups);
- init(isReadOnly);
- }
- });
+ public void onSuccess(Set<Map<String, String>> result) {
+ // Get assigned LDAP groups.
+ Set<LdapGroup> availableLdapGroups = RoleLdapGroupSelector.convertToCollection(result);
+ // Update record with both objects.
+ //record.setAttribute("ldapGroupsAvailable", availableGroups);
+ init(isReadOnly);
+ }
+ });
} else {
// LDAP not configured - we won't display an LDAP group selector.
// TODO: Should we display a message stating that LDAP is not configured with a link to Admin Settings view?
@@ -140,7 +137,7 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
}
@Override
- protected void editRecord(Record record) {
+ protected void editRecord(Record record) {
// A user can always view their own assigned roles, but only users with MANAGE_SECURITY can view or update
// other users' assigned roles.
Subject whoami = UserSessionManager.getSessionSubject();
@@ -184,9 +181,11 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
});
this.ldapGroupsItem.setCanvas(this.ldapGroupSelector);
} else {
- Label label = new Label("<b>NOTE:</b> The LDAP security integration is not configured. To configure " +
- "it, go to <a href='#Administration/Configuration/SystemSettings'>System " +
- "Settings</a>.");
+ Label label = new Label("<b>"
+ + MSG.common_msg_emphasizedNotePrefix()
+ + "</b> "
+ + MSG.view_adminRoles_noLdap("href='#Administration/Configuration/SystemSettings'", MSG
+ .view_adminConfig_systemSettings()));
label.setWidth100();
label.setPadding(6);
this.ldapGroupsItem.setCanvas(label);
@@ -205,34 +204,35 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
protected List<FormItem> createFormItems(boolean newUser) {
List<FormItem> items = new ArrayList<FormItem>();
- TextItem nameItem = new TextItem(RolesDataSource.Field.NAME, "Name");
+ TextItem nameItem = new TextItem(RolesDataSource.Field.NAME, MSG.common_title_name());
items.add(nameItem);
- TextItem descriptionItem = new TextItem(RolesDataSource.Field.DESCRIPTION, "Description");
+ TextItem descriptionItem = new TextItem(RolesDataSource.Field.DESCRIPTION, MSG.common_title_description());
descriptionItem.setColSpan(getForm().getNumCols());
descriptionItem.setWidth("*");
items.add(descriptionItem);
- permissionEditorItem = new PermissionEditorView(this.getLocatorId(), "permissionsEditor", "Permissions", this);
+ permissionEditorItem = new PermissionEditorView(this.getLocatorId(), "permissionsEditor", MSG
+ .view_adminRoles_perms(), this);
permissionEditorItem.setShowTitle(false);
permissionEditorItem.setColSpan(getForm().getNumCols());
items.add(permissionEditorItem);
- resourceGroupsItem = new CanvasItem(RolesDataSource.Field.RESOURCE_GROUPS, "Assigned Resource Groups");
+ resourceGroupsItem = new CanvasItem(RolesDataSource.Field.RESOURCE_GROUPS, MSG.view_adminRoles_assignedGroups());
resourceGroupsItem.setShowTitle(false);
resourceGroupsItem.setTitleOrientation(TitleOrientation.TOP);
resourceGroupsItem.setColSpan(getForm().getNumCols());
resourceGroupsItem.setCanvas(new Canvas());
items.add(resourceGroupsItem);
- subjectsItem = new CanvasItem(RolesDataSource.Field.SUBJECTS, "Assigned Subjects");
+ subjectsItem = new CanvasItem(RolesDataSource.Field.SUBJECTS, MSG.view_adminRoles_assignedSubjects());
subjectsItem.setShowTitle(false);
subjectsItem.setTitleOrientation(TitleOrientation.TOP);
subjectsItem.setColSpan(getForm().getNumCols());
subjectsItem.setCanvas(new Canvas());
items.add(subjectsItem);
- ldapGroupsItem = new CanvasItem(RolesDataSource.Field.LDAP_GROUPS, "LDAP Groups");
+ ldapGroupsItem = new CanvasItem(RolesDataSource.Field.LDAP_GROUPS, MSG.view_adminRoles_ldapGroups());
ldapGroupsItem.setShowTitle(false);
ldapGroupsItem.setTitleOrientation(TitleOrientation.TOP);
ldapGroupsItem.setColSpan(getForm().getNumCols());
@@ -267,5 +267,5 @@ public class RoleEditView extends AbstractRecordEditor<RolesDataSource> implemen
this.subjectSelector.reset();
this.ldapGroupSelector.reset();
}
-
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java
index 73552aa..80194f7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java
@@ -87,7 +87,7 @@ public class RoleLdapGroupSelector extends AbstractSelector<PageList<LdapGroup>>
availableFilterForm.setWidth100();
availableFilterForm.setNumCols(2);
- final TextItem search = new TextItem("search", "Search");
+ final TextItem search = new TextItem("search", MSG.common_title_search());
availableFilterForm.setItems(search, new SpacerItem());
return availableFilterForm;
@@ -112,7 +112,7 @@ public class RoleLdapGroupSelector extends AbstractSelector<PageList<LdapGroup>>
new AsyncCallback<PageList<LdapGroup>>() {
public void onFailure(Throwable throwable) {
CoreGUI.getErrorHandler().handleError(
- "Failed to load LdapGroups available for role.", throwable);
+ MSG.view_adminRoles_failLdapGroupsRole(), throwable);
}
public void onSuccess(PageList<LdapGroup> currentlyAssignedLdapGroups) {
@@ -174,9 +174,6 @@ public class RoleLdapGroupSelector extends AbstractSelector<PageList<LdapGroup>>
public class LdapGroupsDataSource extends RPCDataSource<PageList<LdapGroup>> {
- public static final String LDAP_NOT_CONFIGURED_EMPTY_MESSAGE = "(LDAP not configured. 'Administrator'->System Settings to change)";
- public static final String EMPTY_MESSAGE = "No items to show";
-
public LdapGroupsDataSource() {
DataSourceTextField nameField = new DataSourceTextField(name, name);
nameField.setPrimaryKey(true);
@@ -215,7 +212,7 @@ public class RoleLdapGroupSelector extends AbstractSelector<PageList<LdapGroup>>
@Override
public PageList<LdapGroup> copyValues(Record from) {
- throw new UnsupportedOperationException("Ldap Group data is read only");
+ throw new UnsupportedOperationException(MSG.view_adminRoles_ldapGroupsReadOnly());
}
@Override
@@ -232,13 +229,13 @@ public class RoleLdapGroupSelector extends AbstractSelector<PageList<LdapGroup>>
@Override
public void onSuccess(Boolean ldapConfigured) {
if (ldapConfigured) {
- availableGrid.setEmptyMessage(EMPTY_MESSAGE);
+ availableGrid.setEmptyMessage(MSG.view_adminRoles_noItems());
GWTServiceLookup.getLdapService().findAvailableGroups(
new AsyncCallback<Set<Map<String, String>>>() {
public void onFailure(Throwable throwable) {
- CoreGUI.getErrorHandler().handleError(
- "Failed to load LdapGroups available for role.", throwable);
+ CoreGUI.getErrorHandler().handleError(MSG.view_adminRoles_failLdapGroupsRole(),
+ throwable);
}
public void onSuccess(Set<Map<String, String>> locatedGroups) {
@@ -260,9 +257,12 @@ public class RoleLdapGroupSelector extends AbstractSelector<PageList<LdapGroup>>
}
});//end of findAvailableGroups
} else {//ldap not configured
- Log.debug("(LDAP not currently enabled. " + EMPTY_MESSAGE);
+ Log.debug("(LDAP not currently enabled. " + MSG.view_adminRoles_noItems());
response.setTotalRows(0);
- availableGrid.setEmptyMessage(LDAP_NOT_CONFIGURED_EMPTY_MESSAGE);
+ String message = "("
+ + MSG.view_adminRoles_noLdap("href='#Administration/Configuration/SystemSettings'", MSG
+ .view_adminConfig_systemSettings()) + ")";
+ availableGrid.setEmptyMessage(message);
processResponse(request.getRequestId(), response);
}
}//end onSuccess
@@ -366,8 +366,7 @@ public class RoleLdapGroupSelector extends AbstractSelector<PageList<LdapGroup>>
new AsyncCallback<PageList<LdapGroup>>() {
public void onFailure(Throwable throwable) {
- CoreGUI.getErrorHandler().handleError("Failed to load LdapGroups available for role.",
- throwable);
+ CoreGUI.getErrorHandler().handleError(MSG.view_adminRoles_failLdapGroupsRole(), throwable);
}
public void onSuccess(PageList<LdapGroup> currentlyAssignedLdapGroups) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleSubjectSelector.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleSubjectSelector.java
index cd504f6..305b5bf 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleSubjectSelector.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleSubjectSelector.java
@@ -22,8 +22,6 @@
*/
package org.rhq.enterprise.gui.coregui.client.admin.roles;
-import java.util.Collection;
-
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -61,12 +59,12 @@ public class RoleSubjectSelector extends AbstractSelector<Subject> {
@Override
protected String getItemTitle() {
- return "user";
+ return MSG.common_title_user();
}
@Override
protected String getItemIcon() {
return ITEM_ICON;
}
-
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index cd10a48..7eb099c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -98,10 +98,11 @@ public class RolesDataSource extends RPCDataSource<Role> {
idDataField.setCanEdit(false);
fields.add(idDataField);
- DataSourceTextField nameField = new DataSourceTextField(Field.NAME, "Name", 100, true);
+ DataSourceTextField nameField = new DataSourceTextField(Field.NAME, MSG.common_title_name(), 100, true);
fields.add(nameField);
- DataSourceTextField descriptionField = new DataSourceTextField(Field.DESCRIPTION, "Description", 100, false);
+ DataSourceTextField descriptionField = new DataSourceTextField(Field.DESCRIPTION, MSG
+ .common_title_description(), 100, false);
fields.add(descriptionField);
return fields;
@@ -113,7 +114,7 @@ public class RolesDataSource extends RPCDataSource<Role> {
roleService.findRolesByCriteria(criteria, new AsyncCallback<PageList<Role>>() {
public void onFailure(Throwable caught) {
- sendFailureResponse(request, response, "Failed to fetch role(s).", caught);
+ sendFailureResponse(request, response, MSG.view_adminRoles_failRoles(), caught);
}
public void onSuccess(PageList<Role> result) {
@@ -130,12 +131,12 @@ public class RolesDataSource extends RPCDataSource<Role> {
roleService.createRole(roleToAdd, new AsyncCallback<Role>() {
public void onFailure(Throwable caught) {
Map<String, String> errorMessages = new HashMap<String, String>();
- errorMessages.put(Field.NAME, "A role named [" + rolename + "] already exists.");
+ errorMessages.put(Field.NAME, MSG.view_adminRoles_roleExists(rolename));
sendValidationErrorResponse(request, response, errorMessages);
}
public void onSuccess(Role addedRole) {
- sendSuccessResponse(request, response, addedRole, new Message("Role [" + rolename + "] added."));
+ sendSuccessResponse(request, response, addedRole, new Message(MSG.view_adminRoles_roleAdded(rolename)));
}
});
@@ -143,17 +144,18 @@ public class RolesDataSource extends RPCDataSource<Role> {
@Override
protected void executeUpdate(Record recordToUpdate, Record oldRecord, final DSRequest request,
- final DSResponse response) {
+ final DSResponse response) {
Role roleToUpdate = copyValues(recordToUpdate);
final String rolename = roleToUpdate.getName();
roleService.updateRole(roleToUpdate, new AsyncCallback<Role>() {
public void onFailure(Throwable caught) {
- sendFailureResponse(request, response, "Failed to update role [" + rolename + "].", caught);
+ sendFailureResponse(request, response, MSG.view_adminRoles_roleUpdateFailed(rolename), caught);
}
public void onSuccess(Role updatedRole) {
- sendSuccessResponse(request, response, updatedRole, new Message("Role [" + rolename + "] updated."));
+ sendSuccessResponse(request, response, updatedRole, new Message(MSG
+ .view_adminRoles_roleUpdated(rolename)));
}
});
}
@@ -165,12 +167,12 @@ public class RolesDataSource extends RPCDataSource<Role> {
final String rolename = roleToRemove.getName();
roleService.removeRoles(new int[] { roleToRemove.getId() }, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- sendFailureResponse(request, response, "Failed to delete role [" + rolename + "].", caught);
+ sendFailureResponse(request, response, MSG.view_adminRoles_roleDeleteFailed(rolename), caught);
}
public void onSuccess(Void result) {
- sendSuccessResponse(request, response, roleToRemove, new Message("Role [" + roleToRemove.getName()
- + "] deleted."));
+ sendSuccessResponse(request, response, roleToRemove, new Message(MSG
+ .view_adminRoles_roleDeleted(rolename)));
}
});
@@ -200,7 +202,8 @@ public class RolesDataSource extends RPCDataSource<Role> {
targetRecord.setAttribute(Field.NAME, sourceRole.getName());
targetRecord.setAttribute(Field.DESCRIPTION, sourceRole.getDescription());
- ListGridRecord[] resourceGroupRecords = ResourceGroupsDataSource.getInstance().buildRecords(sourceRole.getResourceGroups());
+ ListGridRecord[] resourceGroupRecords = ResourceGroupsDataSource.getInstance().buildRecords(
+ sourceRole.getResourceGroups());
targetRecord.setAttribute(Field.RESOURCE_GROUPS, resourceGroupRecords);
// First split the set of permissions into two subsets - one for global perms and one for resource perms.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
index 393293c..35417e7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
@@ -99,12 +99,12 @@ public class RolesView extends TableSection implements BookmarkableView {
@Override
protected String getDataTypeName() {
- return "role";
+ return MSG.common_label_role();
}
@Override
protected String getDataTypeNamePlural() {
- return "roles";
+ return MSG.common_label_roles();
}
}
\ No newline at end of file
commit 9f002f91f6f32eeed39f1cbfe66db7b268b0fd09
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Nov 18 13:29:01 2010 -0500
i18n
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java
index e564499..48f6849 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentDataSource.java
@@ -60,23 +60,24 @@ public class BundleDeploymentDataSource extends RPCDataSource<BundleDeployment>
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField id = new DataSourceIntegerField("id", "ID");
+ DataSourceIntegerField id = new DataSourceIntegerField("id", MSG.common_title_id());
id.setPrimaryKey(true);
fields.add(id);
- DataSourceTextField name = new DataSourceTextField("name", "Deployment Name");
+ DataSourceTextField name = new DataSourceTextField("name", MSG.view_bundle_deploy_name());
fields.add(name);
- DataSourceTextField bundleVersion = new DataSourceTextField("bundleVersionVersion", "Bundle Version");
+ DataSourceTextField bundleVersion = new DataSourceTextField("bundleVersionVersion", MSG
+ .view_bundle_bundleVersion());
fields.add(bundleVersion);
- DataSourceTextField description = new DataSourceTextField("description", "Description");
+ DataSourceTextField description = new DataSourceTextField("description", MSG.common_title_description());
fields.add(description);
- DataSourceTextField status = new DataSourceTextField("status", "Status");
+ DataSourceTextField status = new DataSourceTextField("status", MSG.common_title_status());
fields.add(status);
- DataSourceDateTimeField created = new DataSourceDateTimeField("deploymentTime", "Deployment Time");
+ DataSourceDateTimeField created = new DataSourceDateTimeField("deploymentTime", MSG.view_bundle_deploy_time());
fields.add(created);
return fields;
@@ -114,7 +115,7 @@ public class BundleDeploymentDataSource extends RPCDataSource<BundleDeployment>
bundleService.findBundleDeploymentsByCriteria(criteria, new AsyncCallback<PageList<BundleDeployment>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load bundle deployments", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_deploy_loadDeployFailure(), caught);
}
public void onSuccess(PageList<BundleDeployment> result) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
index e5dcc33..d2d2b9c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
@@ -38,7 +38,7 @@ import org.rhq.enterprise.gui.coregui.client.components.table.Table;
public class BundleDeploymentListView extends Table {
public BundleDeploymentListView(String locatorId, Criteria criteria) {
- super(locatorId, "Bundle Deployments", criteria);
+ super(locatorId, MSG.view_bundle_bundleDeployments(), criteria);
setDataSource(new BundleDeploymentDataSource());
setHeaderIcon("subsystems/bundle/BundleDeployment_24.png");
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
index 54e425e..6d4df01 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
@@ -95,7 +95,7 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
this.version = bundleDeployment.getBundleVersion();
this.bundle = bundleDeployment.getBundleVersion().getBundle();
- addMember(new BackButton(extendLocatorId("BackButton"), "Back to Destination: "
+ addMember(new BackButton(extendLocatorId("BackButton"), MSG.view_bundle_deploy_backButton() + ": "
+ deployment.getDestination().getName(), "Bundles/Bundle/" + version.getBundle().getId() + "/destinations/"
+ deployment.getDestination().getId()));
@@ -105,7 +105,7 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
form.setNumCols(4);
LinkItem bundleName = new LinkItem("bundle");
- bundleName.setTitle("Bundle");
+ bundleName.setTitle(MSG.view_bundle_bundle());
bundleName.setValue("#Bundles/Bundle/" + bundle.getId());
bundleName.setLinkTitle(bundle.getName());
bundleName.setTarget("_self");
@@ -118,13 +118,13 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
GWTServiceLookup.getTagService().updateBundleDeploymentTags(deployment.getId(), tags,
new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to update bundle deployment's tags",
- caught);
+ CoreGUI.getErrorHandler()
+ .handleError(MSG.view_bundle_deploy_tagUpdateFailure(), caught);
}
public void onSuccess(Void result) {
CoreGUI.getMessageCenter().notify(
- new Message("Bundle Deployment Tags updated", Message.Severity.Info));
+ new Message(MSG.view_bundle_deploy_tagUpdateSuccessful(), Message.Severity.Info));
}
});
}
@@ -133,16 +133,16 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
tagItem.setCanvas(tagEditor);
tagItem.setRowSpan(4);
- StaticTextItem deployed = new StaticTextItem("deployed", "Deployed");
+ StaticTextItem deployed = new StaticTextItem("deployed", MSG.view_bundle_deployed());
deployed.setValue(new Date(deployment.getCtime()));
LinkItem destinationGroup = new LinkItem("group");
- destinationGroup.setTitle("Group");
+ destinationGroup.setTitle(MSG.common_title_resource_group());
destinationGroup.setValue(LinkManager.getResourceGroupLink(deployment.getDestination().getGroup().getId()));
destinationGroup.setLinkTitle(deployment.getDestination().getGroup().getName());
destinationGroup.setTarget("_self");
- StaticTextItem path = new StaticTextItem("path", "Path");
+ StaticTextItem path = new StaticTextItem("path", MSG.view_bundle_deployDir());
path.setValue(deployment.getDestination().getDeployDir());
form.setFields(bundleName, tagItem, deployed, destinationGroup, path);
@@ -158,9 +158,9 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
}
private Table addMemberDeploymentsTable() {
- Table table = new Table(extendLocatorId("Deployments"), "Deployment Machines");
+ Table table = new Table(extendLocatorId("Deployments"), MSG.view_bundle_deploy_deploymentPlatforms());
- table.setTitleComponent(new HTMLFlow("Select a row to show install details."));
+ table.setTitleComponent(new HTMLFlow(MSG.view_bundle_deploy_selectARow()));
ListGridField resourceIcon = new ListGridField("resourceAvailability", "");
HashMap<String, String> icons = new HashMap<String, String>();
@@ -175,7 +175,7 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
});
resourceIcon.setWidth(30);
- ListGridField resource = new ListGridField("resource", "Platform");
+ ListGridField resource = new ListGridField("resource", MSG.common_title_platform());
resource.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
return "<a href=\"" + LinkManager.getResourceLink(listGridRecord.getAttributeAsInt("resourceId"))
@@ -183,8 +183,8 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
}
});
- ListGridField resourceVersion = new ListGridField("resourceVersion", "Operating System");
- ListGridField status = new ListGridField("status", "Status");
+ ListGridField resourceVersion = new ListGridField("resourceVersion", MSG.view_bundle_deploy_operatingSystem());
+ ListGridField status = new ListGridField("status", MSG.common_title_status());
HashMap<String, String> statusIcons = new HashMap<String, String>();
statusIcons.put(BundleDeploymentStatus.IN_PROGRESS.name(), "subsystems/bundle/install-loader.gif");
statusIcons.put(BundleDeploymentStatus.FAILURE.name(), "subsystems/bundle/Warning_11.png");
@@ -276,7 +276,7 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
bundleService = GWTServiceLookup.getBundleService();
bundleService.findBundleDeploymentsByCriteria(criteria, new AsyncCallback<PageList<BundleDeployment>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load budle version", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_deploy_loadFailure(), caught);
}
public void onSuccess(PageList<BundleDeployment> result) {
@@ -287,7 +287,7 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
bundleCriteria.addFilterId(deployment.getBundleVersion().getBundle().getId());
bundleService.findBundlesByCriteria(bundleCriteria, new AsyncCallback<PageList<Bundle>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to find bundle", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_deploy_loadBundleFailure(), caught);
}
public void onSuccess(PageList<Bundle> result) {
@@ -305,7 +305,7 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
new AsyncCallback<PageList<BundleResourceDeployment>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load deployment detail", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_deploy_loadFailure(), caught);
}
public void onSuccess(PageList<BundleResourceDeployment> result) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
index d9c00cd..9073dc9 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
@@ -71,9 +71,9 @@ public class BundleResourceDeploymentHistoryListView extends LocatableVLayout {
grid.setWidth100();
grid.setHeight100();
- ListGridField action = new ListGridField("action", "Action");
- ListGridField message = new ListGridField("info", "Info");
- ListGridField status = new ListGridField("status", "status");
+ ListGridField action = new ListGridField("action", MSG.view_bundle_deploy_action());
+ ListGridField message = new ListGridField("info", MSG.common_title_info());
+ ListGridField status = new ListGridField("status", MSG.common_title_status());
HashMap<String, String> icons = new HashMap<String, String>();
icons.put(BundleDeploymentStatus.IN_PROGRESS.name(), "subsystems/bundle/install-loader.gif");
@@ -89,7 +89,7 @@ public class BundleResourceDeploymentHistoryListView extends LocatableVLayout {
grid.setExpansionMode(ExpansionMode.DETAIL_FIELD);
grid.setDetailField("message");
- ListGridField details = new ListGridField("attachment", "Details");
+ ListGridField details = new ListGridField("attachment", MSG.common_title_details());
details.setWidth(50);
details.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
@@ -112,23 +112,23 @@ public class BundleResourceDeploymentHistoryListView extends LocatableVLayout {
DynamicForm form = new DynamicForm();
- StaticTextItem action = new StaticTextItem("action", "Action");
- StaticTextItem info = new StaticTextItem("info", "Info");
- StaticTextItem category = new StaticTextItem("category", "Category");
- StaticTextItem message = new StaticTextItem("message", "Message");
+ StaticTextItem action = new StaticTextItem("action", MSG.view_bundle_deploy_action());
+ StaticTextItem info = new StaticTextItem("info", MSG.common_title_info());
+ StaticTextItem category = new StaticTextItem("category", MSG.common_title_category());
+ StaticTextItem message = new StaticTextItem("message", MSG.common_title_message());
- AutoFitTextAreaItem detail = new AutoFitTextAreaItem("attachement", "Detail");
+ AutoFitTextAreaItem detail = new AutoFitTextAreaItem("attachement", MSG.common_title_details());
detail.setTitleOrientation(TitleOrientation.TOP);
detail.setColSpan(2);
- ButtonItem close = new ButtonItem("close", "Close");
+ ButtonItem close = new ButtonItem("close", MSG.common_button_close());
form.setItems(action, info, category, message, detail, close);
form.editRecord(record);
final Window window = new Window();
- window.setTitle("Install Details");
+ window.setTitle(MSG.view_bundle_deploy_installDetails());
window.setWidth(800);
window.setHeight(600);
window.setIsModal(true);
@@ -149,12 +149,9 @@ public class BundleResourceDeploymentHistoryListView extends LocatableVLayout {
ArrayList<ListGridRecord> records = new ArrayList<ListGridRecord>();
for (BundleResourceDeploymentHistory step : resourceDeployment.getBundleResourceDeploymentHistories()) {
-
ListGridRecord record = new ListGridRecord();
record.setAttribute("id", step.getId());
-
record.setAttribute("action", step.getAction());
-
record.setAttribute("info", step.getInfo());
if (step.getCategory() != null) {
@@ -162,11 +159,8 @@ public class BundleResourceDeploymentHistoryListView extends LocatableVLayout {
}
record.setAttribute("message", step.getMessage());
-
record.setAttribute("attachment", step.getAttachment());
-
record.setAttribute("status", step.getStatus().name());
-
records.add(record);
}
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 df253d2..4e7c1ed 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
@@ -53,11 +53,15 @@ common_label_milliseconds=milliseconds~
common_label_minutes=minutes~
common_label_month=month~
common_label_none = none~
+common_label_role = role~
+common_label_roles = roles~
common_label_search=Search~
common_label_scheduled_operations=scheduled operations~
common_label_seconds=seconds~
common_label_selected_resources = selected resources~
common_label_unlimited = unlimited~
+common_label_user = user~
+common_label_users = users~
common_label_week=week~
# Common Titles
@@ -79,6 +83,7 @@ common_title_dashboard_name=Dashboard Name~
common_title_dateCreated=Date Created~
common_title_default=Default~
common_title_description=Description~
+common_title_details=Details~
common_title_display=Display~
common_title_display_name=Display Name~
common_title_duration=Duration~
@@ -91,12 +96,14 @@ common_title_group_def_total=Group Definition Total~
common_title_icon = icon~
common_title_id = ID~
common_title_id_parent = Parent ID~
+common_title_info = Info~
common_title_host = Host~
common_title_inventory = Inventory~
common_title_inventorySummary = Inventory Summary~
common_title_lastUpdated=Last Updated~
common_title_lastUpdatedBy=Last Updated By~
common_title_mashup=Mashup~
+common_title_message=Message~
common_title_metric = Metric~
common_title_mixedGroups = Mixed Groups~
common_title_mixedGroups_total=Mixed Group Total~
@@ -108,6 +115,7 @@ common_title_operations_range=Operation Range~
common_title_over=Over~
common_title_password = Password~
common_title_path = Path~
+common_title_platform=Platform~
common_title_platform_total=Platform Total~
common_title_plugin = Plugin~
common_title_port = Port~
@@ -156,6 +164,7 @@ common_msg_noItemsToShow=No items to show~
# Common Values
#--------------
+common_val_for=for~
common_val_no = No~
common_val_no_lower = no~
common_val_yes = Yes~
@@ -423,6 +432,11 @@ view_adminConfig_plugins = Plugins~
view_adminConfig_systemSettings = System Settings~
view_adminConfig_templates = Templates~
+# Administration/Security/Users
+#--------------------------------
+view_adminUsersList_dataTypeName = user~
+view_adminUsersList_dataTypeNamePlural = users~
+
# Administration/Security/Users/#
#--------------------------------
view_adminUsersDetails_dataTypeName = user~
@@ -434,6 +448,7 @@ view_adminRoles_assignedSubjects = Assigned Subjects~
view_adminRoles_failLdap = Failed to determine if LDAP configured - assuming no LDAP.~
view_adminRoles_failLdapGroups = Failed to retrieve available LDAP groups - assuming no LDAP groups.~
view_adminRoles_failLdapGroupsRole = Failed to load LDAP groups available for role.~
+view_adminRoles_failRoles = Failed to fetch roles.~
view_adminRoles_globalPerms = Global Permissions~
view_adminRoles_ldapGroups = LDAP Groups~
view_adminRoles_ldapGroupsReadOnly = LDAP group data is read only~
@@ -441,7 +456,12 @@ view_adminRoles_noItems = No items to show~
view_adminRoles_noLdap = The LDAP security integration is not configured. To configure LDAP go to <a {0}>{1}</a>.~
view_adminRoles_perms = Permissions~
view_adminRoles_resourcePerms = Resource Permissions~
-
+view_adminRoles_roleAdded = Role [{0}] added.~
+view_adminRoles_roleExists = A role named [{0}] already exists.~
+view_adminRoles_roleDeleteFailed = Failed to delete role [{0}].~
+view_adminRoles_roleDeleted = Role [{0}] deleted.~
+view_adminRoles_roleUpdateFailed = Failed to update role [{0}].~
+view_adminRoles_roleUpdated = Role [{0}] updated.~
# Administration/Topology/RemoteAgentInstall/#
#--------------------------------
@@ -532,7 +552,7 @@ view_alert_common_tab_conditions_type_metric_status=with result status~
view_alert_common_tab_conditions_type_metric_resource_configuration=Resource Configuration Change~
view_alert_common_tab_conditions_type_metric_event=Event Detection~
view_alert_common_tab_conditions_type_metric_event_matching=with event source matching~
-view_alert_common_tab_conditions_type_invalid=Unsupported Category: {0}
+view_alert_common_tab_conditions_type_invalid=Unsupported Category: {0}~
view_alert_common_tab_conditions_recovery_enabled=Triggered ''{0}'' to be re-enabled~
view_alert_common_tab_conditions_recovery_disabled=This alert caused its alert definition to be disabled~
view_alert_common_tab_notifications=Notifications~
@@ -572,19 +592,22 @@ view_autoDiscoveryQ_loadFailure=Failed to load the inventory discovery queue~
# some common bundle terms
view_bundle_bundle = Bundle~
view_bundle_bundles = Bundles~
-view_bundle_deployments=Deployments~
-view_bundle_bundleVersions=Bundle Versions~
-view_bundle_bundleVersion=Bundle Version~
-view_bundle_versions=Versions~
+view_bundle_bundleDestinations=Bundle Destinations~
+view_bundle_bundleDeployments=Bundle Deployments~
view_bundle_bundleFiles=Bundle Files~
+view_bundle_bundleType=Bundle Type~
+view_bundle_bundleVersion=Bundle Version~
+view_bundle_bundleVersions=Bundle Versions~
+view_bundle_deploy=Deploy~
+view_bundle_deployed=Deployed~
+view_bundle_deployDir=Deploy Directory~
+view_bundle_deployments=Deployments~
view_bundle_destinations=Destinations~
-view_bundle_bundleDestinations=Bundle Destinations~
view_bundle_files=Files~
+view_bundle_latestVersion=Latest Version~
view_bundle_recipe=Recipe~
-view_bundle_bundleType=Bundle Type~
-view_bundle_deploy=Deploy~
view_bundle_revert=Revert~
-view_bundle_latestVersion=Latest Version~
+view_bundle_versions=Versions~
# individual bundle views/wizards
view_bundle_fileListView_fileSize=File Size~
@@ -614,8 +637,6 @@ view_bundle_revertWizard_revertStep_reverting=Reverting...~
view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert deployment!~
view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to revert the bundle deployment [{0}] from resource group [{1}]~
view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert deployment!~
-view_bundle_list_deleteFailure=Failed to delete bundle [{0}]~
-view_bundle_list_deleteSuccessful=You deleted the bundle named [{0}]~
view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
view_bundle_list_versionsCount=Versions Count~
@@ -643,6 +664,19 @@ view_bundle_dest_backToBundle=Back to Bundle~
view_bundle_dest_tagUpdateFailure=Failed to update bundle destination tags~
view_bundle_dest_tagUpdateSuccessful=You have successfully updated the bundle destination tags~
view_bundle_resDeployDS_loadFailure=Failed to load bundle resource deployments~
+view_bundle_deploy_name=Deployment Name~
+view_bundle_deploy_time=Deployment Time~
+view_bundle_deploy_loadDeployFailure=Failed to load bundle deployments~
+view_bundle_deploy_action=Action~
+view_bundle_deploy_installDetails=Install Details~
+view_bundle_deploy_backButton=Back to Destination~
+view_bundle_deploy_tagUpdateFailure=Failed to update bundle deployment tags~
+view_bundle_deploy_tagUpdateSuccessful=You have successfully updated the bundle deployment tags~
+view_bundle_deploy_deploymentPlatforms=Deployment Platforms~
+view_bundle_deploy_selectARow=Select a row to show installation details~
+view_bundle_deploy_operatingSystem=Operating System~
+view_bundle_deploy_loadFailure=Failed to load bundle deployment~
+view_bundle_deploy_loadBundleFailure=Failed to find bundle~
#=================== Components =====================
commit 492a3d71091b9affbda6c86566cf8b93697204d9
Merge: 2187b1d... 27cf8cf...
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Thu Nov 18 13:09:18 2010 -0500
Merge branch 'master' of ssh://spinder@git.fedorahosted.org/git/rhq/rhq into track-master
-pulling in i18n changes from merge effort and a few additional i18n fixes.
Conflicts:
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
diff --cc modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
index b894bb6,ae10b19..70165ba
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
@@@ -158,7 -159,7 +161,7 @@@ public class LoginView extends Locatabl
window = new Window();
window.setWidth(400);
window.setHeight(275);
-- window.setTitle("Welcome");
++ window.setTitle(MSG.common_title_welcome());
// forced focused, static size, can't close / dismiss
window.setIsModal(true);
@@@ -250,7 -249,7 +251,7 @@@
HStack row = new HStack();
row.setMembersMargin(5);
row.setAlign(VerticalAlignment.CENTER);
-- IButton okButton = new IButton("OK");
++ IButton okButton = new IButton(MSG.common_button_ok());
okButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
//F5 refresh check? If they've reloaded the form for some reason then bail.
diff --cc modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
index 0340675,d2596c9..a81c97f
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
@@@ -381,7 -385,7 +385,7 @@@ public class RecentAlertsPortlet extend
// build resource selection drop down
//------------- Build second combobox for timeframe for problem resources search.
final SelectItem alertResourcesComboBox = new SelectItem(ALERT_RANGE_RESOURCES_VALUE);
-- alertResourcesComboBox.setTitle("for");
++ alertResourcesComboBox.setTitle(MSG.common_val_for());
alertResourcesComboBox.setHint("");
alertResourcesComboBox.setType("selection");
String[] acceptableResourceDisplayValues = { RESOURCES_ALL, RESOURCES_SELECTED };
diff --cc modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
index 6ee4da6,078461f..3372b61
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
@@@ -137,32 -142,27 +142,30 @@@ public class ResourceSearchView extend
setListGridFields(iconField, nameField, descriptionField, typeNameField, pluginNameField, categoryField,
availabilityField);
- addTableAction(extendLocatorId("Uninventory"), "Uninventory",
- "Are you sure you want to uninventory # resources?", new AbstractTableAction(TableActionEnablement.ANY) {
- public void executeAction(ListGridRecord[] selection) {
- int[] resourceIds = TableUtility.getIds(selection);
- ResourceGWTServiceAsync resourceManager = GWTServiceLookup.getResourceService();
-
- resourceManager.uninventoryResources(resourceIds, new AsyncCallback<List<Integer>>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to uninventory selected resources", caught);
- }
-
- public void onSuccess(List<Integer> result) {
- CoreGUI.getMessageCenter()
- .notify(
- new Message("Successfully uninventoried " + result.size() + " resources",
- Severity.Info));
-
- ResourceSearchView.this.refresh();
- }
- });
- }
- });
+ addTableAction(extendLocatorId("Uninventory"), MSG.common_button_uninventory(), MSG
+ .view_inventory_resources_deleteConfirm(), new AbstractTableAction(TableActionEnablement.ANY) {
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ int[] resourceIds = TableUtility.getIds(selection);
+ ResourceGWTServiceAsync resourceManager = GWTServiceLookup.getResourceService();
+
+ resourceManager.uninventoryResources(resourceIds, new AsyncCallback<List<Integer>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(MSG.view_inventory_resources_deleteFailed(), caught);
+ }
+
+ public void onSuccess(List<Integer> result) {
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_inventory_resources_deleteSuccessful(), Severity.Info));
+
+ ResourceSearchView.this.refresh();
+ }
+ });
+ }
+ });
+ // //load double click handler for this table
+ // configureDoubleClickHandler();
+
/*searchBox.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
if ((event.getCharacterValue() != null) && (event.getCharacterValue() == KeyCodes.KEY_ENTER)) {
diff --cc modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
index e5e65dc,9c5a1b8..3cd120d
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
@@@ -25,13 -25,6 +25,12 @@@ import java.util.Comparator
import java.util.EnumSet;
import java.util.List;
+import com.google.gwt.user.client.rpc.AsyncCallback;
- import com.smartgwt.client.util.SC;
+import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.HeaderItem;
+import com.smartgwt.client.widgets.form.fields.SpacerItem;
+import com.smartgwt.client.widgets.form.fields.StaticTextItem;
+
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
@@@ -48,8 -41,14 +47,8 @@@ import org.rhq.enterprise.gui.coregui.c
import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.smartgwt.client.widgets.form.fields.FormItem;
-import com.smartgwt.client.widgets.form.fields.HeaderItem;
-import com.smartgwt.client.widgets.form.fields.SpacerItem;
-import com.smartgwt.client.widgets.form.fields.StaticTextItem;
-
/**
- * The Resource Summary>Overview tab, the form with resource data.
+ * The Resource Summary>Overview tab - Resource general properties + summary traits.
*
* @author Greg Hinkle
* @author Ian Springer
@@@ -106,26 -93,30 +100,26 @@@ public class OverviewForm extends Enhan
private void loadTraitValues() {
final Resource resource = resourceComposite.getResource();
- GWTServiceLookup.getMeasurementDataService().findCurrentTraitsForResource(
- resource.getId(),
- DisplayType.SUMMARY,
- new AsyncCallback<List<MeasurementDataTrait>>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(
- MSG.view_summaryOverviewForm_error_traitsLoadFailure(resource.toString()),
- caught);
- }
+ GWTServiceLookup.getMeasurementDataService().findCurrentTraitsForResource(resource.getId(),
+ DisplayType.SUMMARY, new AsyncCallback<List<MeasurementDataTrait>>() {
+ public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load traits for " + resource + ".", caught);
++ CoreGUI.getErrorHandler().handleError(
++ MSG.view_summaryOverviewForm_error_traitsLoadFailure(resource.toString()), caught);
+ }
- public void onSuccess(List<MeasurementDataTrait> result) {
- // TODO: Implement this method.
- for (MeasurementDataTrait trait : result) {
- String formId = trait.getName().replaceAll("\\.", "_").replaceAll(" ", "__");
- FormItem item = getItem(formId);
+ public void onSuccess(List<MeasurementDataTrait> result) {
+ // TODO: Implement this method.
+ for (MeasurementDataTrait trait : result) {
+ String formId = trait.getName().replaceAll("\\.", "_").replaceAll(" ", "__");
+ FormItem item = getItem(formId);
- if (item != null) {
- setValue(formId, trait.getValue());
- }
+ if (item != null) {
+ setValue(formId, trait.getValue());
}
- markForRedraw();
}
+ markForRedraw();
}
- );
+ });
-
}
private void buildForm(ResourceType type) {
@@@ -145,14 -136,13 +139,15 @@@
List<FormItem> formItems = new ArrayList<FormItem>();
- HeaderItem headerItem = new HeaderItem("header", MSG.view_summaryOverviewForm_header_summary());
- headerItem.setValue(MSG.view_summaryOverviewForm_header_summary());
- formItems.add(headerItem);
+ if (isHeaderEnabled()) {//conditionally display header
- HeaderItem headerItem = new HeaderItem("header", "Summary");
- headerItem.setValue("Summary");
++ HeaderItem headerItem = new HeaderItem("header", MSG.view_summaryOverviewForm_header_summary());
++ headerItem.setValue(MSG.view_summaryOverviewForm_header_summary());
+ formItems.add(headerItem);
+ }
- StaticTextItem typeItem = new StaticTextItem("type", "Type");
- typeItem.setTooltip("Plugin: " + type.getPlugin() + "\n<br>" + "Type: " + type.getName());
+ StaticTextItem typeItem = new StaticTextItem("type", MSG.view_summaryOverviewForm_field_type());
+ typeItem.setTooltip(MSG.view_summaryOverviewForm_label_plugin() + type.getPlugin() + "\n<br>"
+ + MSG.view_summaryOverviewForm_label_type() + type.getName());
typeItem.setValue(type.getName() + " (" + type.getPlugin() + ")");
formItems.add(typeItem);
@@@ -174,9 -164,9 +169,9 @@@
resource.setName(newName);
OverviewForm.this.resourceService.updateResource(resource, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_summaryOverviewForm_error_nameChangeFailure(
- String.valueOf(resource.getId()),
- oldName, newName), caught);
+ CoreGUI.getErrorHandler().handleError(
- "Failed to change name of Resource with id " + resource.getId() + " from \"" + oldName
- + "\" to \"" + newName + "\".", caught);
++ MSG.view_summaryOverviewForm_error_nameChangeFailure(String.valueOf(resource.getId()),
++ oldName, newName), caught);
// We failed to update it on the Server, so change back the Resource and the form item to
// the original value.
resource.setName(oldName);
@@@ -184,9 -174,10 +179,9 @@@
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(new Message(MSG.view_summaryOverviewForm_message_nameChangeSuccess(
- String.valueOf(resource.getId()),
- oldName, newName)
- , Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(
- new Message("Name of Resource with id " + resource.getId() + " was changed from \""
- + oldName + "\" to \"" + newName + "\".", Message.Severity.Info));
++ new Message(MSG.view_summaryOverviewForm_message_nameChangeSuccess(String
++ .valueOf(resource.getId()), oldName, newName), Message.Severity.Info));
}
});
}
@@@ -209,9 -200,9 +204,9 @@@
resource.setDescription(newDescription);
OverviewForm.this.resourceService.updateResource(resource, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_summaryOverviewForm_error_descriptionChangeFailure(
- String.valueOf(resource.getId()),
- oldDescription, newDescription), caught);
+ CoreGUI.getErrorHandler().handleError(
- "Failed to change description of Resource with id " + resource.getId() + " from \""
- + oldDescription + "\" to \"" + newDescription + "\".", caught);
++ MSG.view_summaryOverviewForm_error_descriptionChangeFailure(String.valueOf(resource
++ .getId()), oldDescription, newDescription), caught);
// We failed to update it on the Server, so change back the Resource and the form item to
// the original value.
resource.setDescription(oldDescription);
@@@ -219,10 -210,9 +214,11 @@@
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new Message("Description of Resource with id " + resource.getId()
- + " was changed from \"" + oldDescription + "\" to \"" + newDescription + "\".",
- Message.Severity.Info));
- CoreGUI.getMessageCenter().notify(new Message(MSG.view_summaryOverviewForm_message_nameChangeSuccess(
- String.valueOf(resource.getId()),
- oldDescription, newDescription), Message.Severity.Info));
++ CoreGUI.getMessageCenter()
++ .notify(
++ new Message(MSG.view_summaryOverviewForm_message_nameChangeSuccess(String
++ .valueOf(resource.getId()), oldDescription, newDescription),
++ Message.Severity.Info));
}
});
}
@@@ -245,9 -235,9 +241,9 @@@
resource.setLocation(newLocation);
OverviewForm.this.resourceService.updateResource(resource, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_summaryOverviewForm_error_locationChangeFailure(
- String.valueOf(resource.getId()),
- oldLocation, newLocation), caught);
+ CoreGUI.getErrorHandler().handleError(
- "Failed to change location of Resource with id " + resource.getId() + " from \""
- + oldLocation + "\" to \"" + newLocation + "\".", caught);
++ MSG.view_summaryOverviewForm_error_locationChangeFailure(String.valueOf(resource
++ .getId()), oldLocation, newLocation), caught);
// We failed to update it on the Server, so change back the Resource and the form item to
// the original value.
resource.setLocation(oldLocation);
@@@ -255,9 -245,9 +251,9 @@@
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(new Message(MSG.view_summaryOverviewForm_message_nameChangeSuccess(
- String.valueOf(resource.getId()),
- oldLocation, newLocation), Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(
- new Message("Location of Resource with id " + resource.getId() + " was changed from \""
- + oldLocation + "\" to \"" + newLocation + "\".", Message.Severity.Info));
++ new Message(MSG.view_summaryOverviewForm_message_nameChangeSuccess(String
++ .valueOf(resource.getId()), oldLocation, newLocation), Message.Severity.Info));
}
});
}
@@@ -265,10 -255,11 +261,10 @@@
}
formItems.add(locationItem);
- StaticTextItem versionItem = new StaticTextItem("version", "Version");
-
+ StaticTextItem versionItem = new StaticTextItem("version", MSG.view_summaryOverviewForm_field_version());
formItems.add(versionItem);
- StaticTextItem parentItem = new StaticTextItem("parent", "Parent");
+ StaticTextItem parentItem = new StaticTextItem("parent", MSG.view_summaryOverviewForm_field_parent());
formItems.add(parentItem);
for (MeasurementDefinition trait : traits) {
@@@ -296,25 -286,11 +292,27 @@@
setValue("name", resource.getName());
setValue("description", resource.getDescription());
setValue("location", resource.getLocation());
- setValue("version", (resource.getVersion() != null) ? resource.getVersion() : "<i>none</i>");
- setValue("version", (resource.getVersion() != null) ? resource.getVersion() : "<i>" + MSG.common_label_none() + "</i>");
++ setValue("version", (resource.getVersion() != null) ? resource.getVersion() : "<i>" + MSG.common_label_none()
++ + "</i>");
Resource parentResource = resource.getParentResource();
- setValue("parent", parentResource != null ?
- ("<a href=\"#Resource/" + parentResource.getId() + "\">" +
- parentResource.getName() + "</a>") : "<i>" + MSG.common_label_none() + "</i>");
+ setValue("parent", parentResource != null ? ("<a href=\"#Resource/" + parentResource.getId() + "\">"
+ + parentResource.getName() + "</a>") : "<i>none</i>");
+ }
+
+ public boolean isHeaderEnabled() {
+ return headerEnabled;
}
-
+
+ public void setHeaderEnabled(boolean headerEnabled) {
+ this.headerEnabled = headerEnabled;
+ }
+
+ public boolean isDisplayCondensed() {
+ return displayCondensed;
+ }
+
+ public void setDisplayCondensed(boolean displayCondensed) {
+ this.displayCondensed = displayCondensed;
+ }
++
}
diff --cc modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
index 71f3824,754ad0d..087e912
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
@@@ -53,100 -40,35 +53,97 @@@ import org.rhq.enterprise.gui.coregui.c
*/
public class OverviewView extends LocatableVLayout {
- private OverviewForm form;
private Table errorsGrid;
-
+ private Img availabilityImage;
+
public OverviewView(String locatorId, ResourceComposite resourceComposite) {
super(locatorId);
- form = new OverviewForm(extendLocatorId("form"), resourceComposite);
+ OverviewForm form = new OverviewForm(extendLocatorId("form"), resourceComposite);
- errorsGrid = new Table(extendLocatorId("errors"), MSG.view_summaryOverview_header_detectedErrors(), null, null, new String[]
- { ResourceErrorsDataSource.Field.DETAIL });
+ LocatableDynamicForm currentAgentInfo = new LocatableDynamicForm(extendLocatorId("Agent_Info"));
+ populateAgentInfo(resourceComposite.getResource().getId(), currentAgentInfo);
-
- errorsGrid = new Table(extendLocatorId("errors"), "Detected errors", null, null,
- new String[] { ResourceErrorsDataSource.DETAIL_ID });
++ errorsGrid = new Table(extendLocatorId("errors"), MSG.view_summaryOverview_header_detectedErrors(), null, null,
++ new String[] { ResourceErrorsDataSource.Field.DETAIL });
- Resource resource = resourceComposite.getResource();
+ Resource resource = resourceComposite.getResource();
ResourceErrorsDataSource errors = new ResourceErrorsDataSource(resource.getId());
-
+
errorsGrid.setShowFooter(false);
errorsGrid.setDataSource(errors);
-
- form.setHeight("*");
+
+ // form.setHeight("*");
+ form.setHeight("200");
errorsGrid.setHeight(200); //this should be just enough to fit the maximum of 3 rows in this table (there's at most 1 error per type)
-
+
addMember(form);
+ addMember(currentAgentInfo);
addMember(errorsGrid);
-
}
- @Override
+ private void populateAgentInfo(final int id, final LocatableDynamicForm currentAgentInfo) {
+ if (currentAgentInfo != null) {
+ setLeft("10%");
+ setWidth("80%");
+ // currentAgentInfo.setBorder("1px dashed black");
+ final List<FormItem> formItems = new ArrayList<FormItem>();
+ HeaderItem headerItem = new HeaderItem("header", "Agent Managing this Resource");
+ headerItem.setValue("Agent Managing this Resource");
+ formItems.add(headerItem);
+ //populate remaining details
+ GWTServiceLookup.getAgentService().getAgentForResource(id, new AsyncCallback<Agent>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to locate agent managing resource id " + id + ".",
+ caught);
+ }
+
+ @Override
+ public void onSuccess(Agent agent) {
+ Log.debug("############ Debug: agent:" + agent);
+ //name
+ String name = "name";
+ StaticTextItem nameValue = new StaticTextItem(name, "Name");
+ nameValue.setValue(agent.getName());
+ formItems.add(nameValue);
+ //address
+ String address = "address";
+ StaticTextItem addressValue = new StaticTextItem(address, "Address");
+ addressValue.setValue(agent.getAddress());
+ formItems.add(addressValue);
+ //port
+ String port = "port";
+ StaticTextItem portValue = new StaticTextItem(port, "Port");
+ portValue.setValue(agent.getPort());
+ formItems.add(portValue);
+
+ // AgentClient client = agentManager.getAgentClient(agent);
+ // pingResults = client.ping(5000L);
+ //
+ // pingResults = agent.ping(5000L);
+ // //Agent Communiation status
+ // availabilityImage.setSrc("resources/availability_"
+ // + (resource.getCurrentAvailability().getAvailabilityType() == AvailabilityType.UP ? "green" : "red")
+ // + "_24.png");
+
+ //Last Received Avail report
+ //Full Endpoint
+ currentAgentInfo.setItems(formItems.toArray(new FormItem[formItems.size()]));
+ currentAgentInfo.markForRedraw();
+ }
+ });
+
+ //final form population
+ currentAgentInfo.setItems(formItems.toArray(new FormItem[formItems.size()]));
+ }
+ }
+
+ @Override
public void onInit() {
super.onInit();
initErrorsGrid();
}
-
- private void initErrorsGrid() {
+
+ private void initErrorsGrid() {
- errorsGrid.setTooltip("Click on the rows to see the error details.");
+ errorsGrid.setTooltip(MSG.view_summaryOverview_tooltip_detectedErrors());
errorsGrid.getListGrid().addCellClickHandler(new CellClickHandler() {
public void onCellClick(CellClickEvent event) {
ListGridRecord record = event.getRecord();
@@@ -163,14 -85,14 +160,14 @@@
LocatableVLayout layout = new LocatableVLayout(errorsGrid.extendLocatorId("dialogLayout"), 10);
layout.setDefaultLayoutAlign(Alignment.CENTER);
layout.setLayoutMargin(10);
-
+
w.addItem(layout);
-
- HTMLPane details = new HTMLPane();
+
+ HTMLPane details = new HTMLPane();
- details.setContents("<pre>" + record.getAttribute(ResourceErrorsDataSource.DETAIL_ID) + "</pre>");
+ details.setContents("<pre>" + record.getAttribute(ResourceErrorsDataSource.Field.DETAIL) + "</pre>");
layout.addMember(details);
-
+
- IButton ok = new IButton("Ok");
+ IButton ok = new IButton(MSG.common_button_ok());
ok.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
w.destroy();
@@@ -183,4 -105,5 +180,5 @@@
}
});
}
-
++
}
diff --cc modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
index 0d413a4,edc98dee..8bf33ca
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
@@@ -90,8 -95,6 +95,7 @@@
<entry-point class='org.rhq.enterprise.gui.coregui.client.CoreGUI'/>
<entry-point class='org.rhq.enterprise.gui.coregui.client.SearchGUI'/>
-
+ <servlet path="/AgentGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AgentGWTServiceImpl"/>
<servlet path="/AlertGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AlertGWTServiceImpl"/>
<servlet path="/AlertDefinitionGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AlertDefinitionGWTServiceImpl"/>
<servlet path="/AlertTemplateGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AlertTemplateGWTServiceImpl"/>
commit fe23b660f2981ee678e8aded645fdeb53ec0f039
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Nov 18 13:05:28 2010 -0500
i18n for org.rhq.enterprise.gui.coregui.client.alert
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
index d45eb59..5b58ab2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDataSource.java
@@ -76,28 +76,36 @@ public class AlertDataSource extends RPCDataSource<Alert> {
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceDateField ctimeField = new DataSourceDateField(AlertCriteria.SORT_FIELD_CTIME, "Creation Time");
+ DataSourceDateField ctimeField = new DataSourceDateField(AlertCriteria.SORT_FIELD_CTIME, MSG
+ .view_alerts_field_created_time());
addField(ctimeField);
- DataSourceIntegerField ackTimeField = new DataSourceIntegerField("acknowledgeTime", "Ack Time");
+ DataSourceIntegerField ackTimeField = new DataSourceIntegerField("acknowledgeTime", MSG
+ .view_alerts_field_ack_time());
addField(ackTimeField);
- DataSourceTextField ackSubjectField = new DataSourceTextField("acknowledgingSubject", "Ack Subject");
+ DataSourceTextField ackSubjectField = new DataSourceTextField("acknowledgingSubject", MSG
+ .view_alerts_field_ack_subject());
addField(ackSubjectField);
- DataSourceTextField nameField = new DataSourceTextField(AlertCriteria.SORT_FIELD_NAME, "Name");
+ DataSourceTextField nameField = new DataSourceTextField(AlertCriteria.SORT_FIELD_NAME, MSG
+ .view_alerts_field_name());
addField(nameField);
- DataSourceTextField conditionTextField = new DataSourceTextField("conditionText", "Condition Text");
+ DataSourceTextField conditionTextField = new DataSourceTextField("conditionText", MSG
+ .view_alerts_field_condition_text());
addField(conditionTextField);
- DataSourceTextField conditionValueField = new DataSourceTextField("conditionValue", "Condition Value");
+ DataSourceTextField conditionValueField = new DataSourceTextField("conditionValue", MSG
+ .view_alerts_field_condition_value());
addField(conditionValueField);
- DataSourceTextField resourceNameField = new DataSourceTextField("resourceName", "Resource");
+ DataSourceTextField resourceNameField = new DataSourceTextField("resourceName", MSG
+ .view_alerts_field_resource());
addField(resourceNameField);
- DataSourceTextField priorityField = new DataSourceTextField(AlertCriteria.SORT_FIELD_PRIORITY, "Priority", 15);
+ DataSourceTextField priorityField = new DataSourceTextField(AlertCriteria.SORT_FIELD_PRIORITY, MSG
+ .view_alerts_field_priority(), 15);
addField(priorityField);
return fields;
@@ -113,14 +121,14 @@ public class AlertDataSource extends RPCDataSource<Alert> {
this.alertService.findAlertsByCriteria(criteria, new AsyncCallback<PageList<Alert>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to fetch alerts data", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alerts_loadFailed(), caught);
response.setStatus(RPCResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
public void onSuccess(PageList<Alert> result) {
long fetchTime = System.currentTimeMillis() - start;
- com.allen_sauer.gwt.log.client.Log.info(result.size() + " alerts fetched in: " + fetchTime + "ms");
+ Log.info(result.size() + " alerts fetched in: " + fetchTime + "ms");
response.setData(buildRecords(result));
// For paging to work, we have to specify size of full result set.
response.setTotalRows(result.getTotalSize());
@@ -171,7 +179,7 @@ public class AlertDataSource extends RPCDataSource<Alert> {
String conditionText;
String conditionValue;
if (conditionLogs.size() > 1) {
- conditionText = "Multiple Conditions";
+ conditionText = MSG.view_alerts_field_condition_text_many();
conditionValue = "--";
} else if (conditionLogs.size() == 1) {
AlertConditionLog conditionLog = conditionLogs.iterator().next();
@@ -183,7 +191,7 @@ public class AlertDataSource extends RPCDataSource<Alert> {
.getMeasurementDefinition().getUnits(), true);
}
} else {
- conditionText = "No Conditions";
+ conditionText = MSG.view_alerts_field_condition_text_none();
conditionValue = "--";
}
record.setAttribute("conditionText", conditionText);
@@ -225,7 +233,7 @@ public class AlertDataSource extends RPCDataSource<Alert> {
return record;
}
- protected void executeRemove(Record recordToRemove, final DSRequest request, final DSResponse response) {
+ protected void executeRemove(Record recordToRemove, final DSRequest request, final DSResponse response) {
// TODO
Window.alert(String.valueOf(recordToRemove.getAttributeAsInt("id")));
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java
index 47a97c9..256ee7e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java
@@ -80,7 +80,7 @@ public class AlertDetailsView extends LocatableVLayout implements BookmarkableVi
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failure loading event details", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alert_details_loadFailed(), caught);
}
});
}
@@ -91,7 +91,7 @@ public class AlertDetailsView extends LocatableVLayout implements BookmarkableVi
}
if (this.viewId != null) {
- viewId.getBreadcrumbs().get(0).setDisplayName("Details");
+ viewId.getBreadcrumbs().get(0).setDisplayName(MSG.view_alert_details_breadcrumb());
CoreGUI.refreshBreadCrumbTrail();
}
@@ -104,13 +104,13 @@ public class AlertDetailsView extends LocatableVLayout implements BookmarkableVi
private TabSet getDetailsTabSet(Record record) {
TabSet tabset = new TabSet();
- Tab generalTab = new Tab("General");
+ Tab generalTab = new Tab(MSG.view_alert_common_tab_general());
generalTab.setPane(getDetailsTableForAlert(record));
- Tab conditionsTab = new Tab("Conditions");
+ Tab conditionsTab = new Tab(MSG.view_alert_common_tab_conditions());
conditionsTab.setPane(getConditionsForAlert(record));
- Tab notificationsTab = new Tab("Notifications");
+ Tab notificationsTab = new Tab(MSG.view_alert_common_tab_notifications());
notificationsTab.setPane(getNotificationsForAlert(record));
tabset.addTab(generalTab);
@@ -129,36 +129,36 @@ public class AlertDetailsView extends LocatableVLayout implements BookmarkableVi
List<FormItem> items = new ArrayList<FormItem>();
- StaticTextItem nameTextItem = new StaticTextItem("name", "Name");
+ StaticTextItem nameTextItem = new StaticTextItem("name", MSG.common_title_name());
nameTextItem.setValue(record.getAttribute("name"));
nameTextItem.setTooltip("Id = " + record.getAttribute("id"));
items.add(nameTextItem);
- StaticTextItem descriptionTextItem = new StaticTextItem("description", "Description");
+ StaticTextItem descriptionTextItem = new StaticTextItem("description", MSG.common_title_description());
descriptionTextItem.setValue(record.getAttribute("description"));
items.add(descriptionTextItem);
- StaticTextItem prioTextItem = new StaticTextItem("priority", "Priority");
+ StaticTextItem prioTextItem = new StaticTextItem("priority", MSG.view_alerts_field_priority());
prioTextItem.setValue(record.getAttribute("priority"));
items.add(prioTextItem);
- StaticTextItem createdTextItem = new StaticTextItem("ctime", "Created at");
+ StaticTextItem createdTextItem = new StaticTextItem("ctime", MSG.view_alerts_field_created_time());
createdTextItem.setValue(record.getAttribute("ctime"));
items.add(createdTextItem);
- StaticTextItem ackByItem = new StaticTextItem("ack_by", "Acknowledged by");
+ StaticTextItem ackByItem = new StaticTextItem("ack_by", MSG.view_alert_details_field_ack_by());
if (record.getAttribute("ack_by") != null) {
ackByItem.setValue(record.getAttribute("ack_by"));
}
items.add(ackByItem);
- StaticTextItem ackTimeItem = new StaticTextItem("ack_time", "Acknowledged at");
+ StaticTextItem ackTimeItem = new StaticTextItem("ack_time", MSG.view_alert_details_field_ack_at());
if (record.getAttribute("ack_time") != null) {
ackTimeItem.setValue(record.getAttribute("ack_time"));
}
items.add(ackTimeItem);
- StaticTextItem recoveryItem = new StaticTextItem("recovery", "Recovery Info");
+ StaticTextItem recoveryItem = new StaticTextItem("recovery", MSG.view_alert_details_field_recovery_info());
recoveryItem.setValue(record.getAttribute("recoveryInfo"));
items.add(recoveryItem);
@@ -171,21 +171,21 @@ public class AlertDetailsView extends LocatableVLayout implements BookmarkableVi
DataClass[] input = record.getAttributeAsRecordArray("notificationLogs");
//Table notifTable = new Table(extendLocatorId("Notifications"), "Notifications", false);
- Table notifTable = new Table("AlertDetailsNotifications", "Notifications", false);
+ Table notifTable = new Table("AlertDetailsNotifications", MSG.view_alert_common_tab_notifications(), false);
notifTable.setHeight("35%");
notifTable.setWidth100();
ListGrid grid = notifTable.getListGrid();
grid.setData((Record[]) input);
- ListGridField sender = new ListGridField("sender", "Sender");
+ ListGridField sender = new ListGridField("sender", MSG.view_alert_common_tab_notifications_sender());
sender.setWidth("10%");
- ListGridField status = new ListGridField("status", "Result");
+ ListGridField status = new ListGridField("status", MSG.view_alert_common_tab_notifications_status());
status.setWidth("8%");
- ListGridField message = new ListGridField("message", "Message");
+ ListGridField message = new ListGridField("message", MSG.view_alert_common_tab_notifications_message());
message.setWidth("32%");
- ListGridField allEmails = new ListGridField("allEmails", "All Emails");
+ ListGridField allEmails = new ListGridField("allEmails", MSG.view_alert_common_tab_notifications_all_emails());
allEmails.setWidth("25%");
- ListGridField badEmails = new ListGridField("badEmails", "Bad Emails");
+ ListGridField badEmails = new ListGridField("badEmails", MSG.view_alert_common_tab_notifications_all_emails());
badEmails.setWidth("25%");
grid.setFields(sender, status, message, allEmails, badEmails);
@@ -198,15 +198,16 @@ public class AlertDetailsView extends LocatableVLayout implements BookmarkableVi
String mode = record.getAttribute("conditionExpression");
//Table table = new Table(extendLocatorId("ConditionLog"), "Conditions: match = " + mode, false);
- Table table = new Table("AlertDetailsConditionLog", "Conditions: match = " + mode, false);
+ Table table = new Table("AlertDetailsConditionLog", MSG.view_alert_common_tab_conditions() + ": match = "
+ + mode, false);
table.setHeight("35%");
table.setWidth100();
ListGrid grid = table.getListGrid();
grid.setData((Record[]) input);
- ListGridField condition = new ListGridField("text", "Matching condition");
+ ListGridField condition = new ListGridField("text", MSG.view_alert_common_tab_conditions_text());
condition.setWidth("60%");
- ListGridField value = new ListGridField("value", "Value");
+ ListGridField value = new ListGridField("value", MSG.view_alert_common_tab_conditions_value());
grid.setFields(condition, value);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java
index 14cb2c2..bddd4b4 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertFormatUtility.java
@@ -28,6 +28,8 @@ import org.rhq.core.domain.alert.AlertConditionCategory;
import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.measurement.MeasurementConverterClient;
import org.rhq.core.domain.measurement.MeasurementUnits;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.Messages;
/**
* The methods in this class are ported from AlertDefUtil from portal-war and MeasurementFormatter from
@@ -37,6 +39,8 @@ import org.rhq.core.domain.measurement.MeasurementUnits;
* @author John Mazzitelli
*/
public class AlertFormatUtility {
+ static Messages MSG = CoreGUI.getMessages();
+
private AlertFormatUtility() {
}
@@ -46,10 +50,13 @@ public class AlertFormatUtility {
AlertConditionCategory category = condition.getCategory();
switch (category) {
case AVAILABILITY: {
- str.append("Availability Change");
+ str.append(MSG.view_alert_common_tab_conditions_type_availability());
str.append(" [");
- str.append("Going").append(' '); // to reinforce this is on the state transition
- str.append(condition.getOption());
+ if ("up".equalsIgnoreCase(condition.getOption())) {
+ str.append(MSG.view_alert_common_tab_conditions_type_availability_up());
+ } else {
+ str.append(MSG.view_alert_common_tab_conditions_type_availability_down());
+ }
str.append("]");
break;
}
@@ -59,7 +66,7 @@ public class AlertFormatUtility {
String formatted = MeasurementConverterClient.format(value, units, true);
if (condition.getOption() == null) {
- str.append("Metric Value Exceeds Threshold");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_threshold());
str.append(" [");
str.append(condition.getName());
str.append(" ");
@@ -72,7 +79,7 @@ public class AlertFormatUtility {
// the name of the metric is only obtainable by querying for the name from the meas def ID
// but since most times (all the time?) there is only one calltime metric per resource,
// not showing the metric name probably isn't detrimental
- str.append("Calltime Value Exceeds Threshold");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_calltime_threshold());
str.append(" [");
str.append(condition.getOption()); // MIN, MAX, AVG (never null)
str.append(" ");
@@ -82,7 +89,7 @@ public class AlertFormatUtility {
str.append("]");
if (condition.getName() != null && condition.getName().length() > 0) {
str.append(" ");
- str.append("with call destination matching");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_calltime_destination());
str.append(" '");
str.append(condition.getName());
str.append("'");
@@ -91,7 +98,7 @@ public class AlertFormatUtility {
break;
}
case BASELINE: {
- str.append("Metric Value Exceeds Baseline");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_baseline());
str.append(" [");
str.append(condition.getName());
str.append(" ");
@@ -103,14 +110,14 @@ public class AlertFormatUtility {
String formatted = MeasurementConverterClient.format(value, units, true);
str.append(formatted);
- str.append(" ").append("of").append(" ");
+ str.append(" ").append(MSG.view_alert_common_tab_conditions_type_metric_baseline_verb()).append(" ");
str.append(condition.getOption());
str.append("]");
break;
}
case CHANGE: {
if (condition.getOption() == null) {
- str.append("Metric Value Change");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_change());
str.append(" [");
str.append(condition.getName());
str.append("]");
@@ -119,13 +126,13 @@ public class AlertFormatUtility {
// the name of the metric is only obtainable by querying for the name from the meas def ID
// but since most times (all the time?) there is only one calltime metric per resource,
// not showing the metric name probably isn't detrimental
- str.append("Calltime Value Changes");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_calltime_change());
str.append(" [");
str.append(condition.getOption()); // MIN, MAX, AVG (never null)
str.append(" ");
str.append(getCalltimeChangeComparator(condition.getComparator())); // LO, HI, CH
str.append(" ");
- str.append("by at least");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_calltime_change_verb());
str.append(" ");
double value = condition.getThreshold();
@@ -136,7 +143,7 @@ public class AlertFormatUtility {
str.append("]");
if (condition.getName() != null && condition.getName().length() > 0) {
str.append(" ");
- str.append("with call destination matching");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_calltime_destination());
str.append(" '");
str.append(condition.getName());
str.append("'");
@@ -145,35 +152,35 @@ public class AlertFormatUtility {
break;
}
case TRAIT: {
- str.append("Trait Change");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_trait_change());
str.append(" [");
str.append(condition.getName());
str.append("]");
break;
}
case CONTROL: {
- str.append("Operation Execution");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_operation());
str.append(" [");
str.append(condition.getName());
str.append("] ");
- str.append("with result status");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_status());
str.append(" [");
str.append(condition.getOption());
str.append("]");
break;
}
case RESOURCE_CONFIG: {
- str.append("Resource Configuration Change");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_resource_configuration());
break;
}
case EVENT: {
- str.append("Event Detection");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_event());
str.append(" [");
str.append(condition.getName());
str.append("]");
if (condition.getOption() != null && condition.getOption().length() > 0) {
str.append(" ");
- str.append("matching");
+ str.append(MSG.view_alert_common_tab_conditions_type_metric_event_matching());
str.append(" '");
str.append(condition.getOption());
str.append("'");
@@ -181,7 +188,7 @@ public class AlertFormatUtility {
break;
}
default: {
- str.append("BAD CATEGORY: ").append(category.name());
+ str.append(MSG.view_alert_common_tab_conditions_type_invalid(category.name()));
break;
}
}
@@ -190,11 +197,11 @@ public class AlertFormatUtility {
private static String getCalltimeChangeComparator(String comparator) {
if ("HI".equals(comparator)) {
- return "Grows";
+ return MSG.view_alert_common_tab_conditions_type_metric_calltime_delta_grows();
} else if ("LO".equals(comparator)) {
- return "Shrinks";
+ return MSG.view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks();
} else { // CH
- return "Changes";
+ return MSG.view_alert_common_tab_conditions_type_metric_calltime_delta_other();
}
}
@@ -203,17 +210,16 @@ public class AlertFormatUtility {
AlertDefinition recoveryAlertDefinition = alert.getRecoveryAlertDefinition();
if (recoveryAlertDefinition != null && recoveryAlertDefinition.getId() != 0) {
int resourceId = alert.getAlertDefinition().getResource().getId();
- recoveryInfo = "Triggered '<a href=\"/alerts/Config.do?mode=viewRoles&id=" + resourceId + "&ad="
- + recoveryAlertDefinition.getId() + "\">" + recoveryAlertDefinition.getName()
- + "</a>' to be re-enabled.";
+ String otherAlertDef = "<a href=\"/alerts/Config.do?mode=viewRoles&id=" + resourceId + "&ad="
+ + recoveryAlertDefinition.getId() + "\">" + recoveryAlertDefinition.getName() + "</a>";
+ recoveryInfo = MSG.view_alert_common_tab_conditions_recovery_enabled(otherAlertDef);
} else if (alert.getWillRecover()) {
- recoveryInfo = "This alert caused its alert definition to be disabled.";
+ recoveryInfo = MSG.view_alert_common_tab_conditions_recovery_disabled();
} else {
- recoveryInfo = "N/A";
+ recoveryInfo = MSG.common_val_na();
}
return recoveryInfo;
}
-
/* THIS IS THE OLD CODE - IT HAS LOTS OF TODOs AND DIDN'T FULLY WORK
public static String formatAlertConditionForDisplay(AlertCondition condition) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
index b6f34ca..6aacb23 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
@@ -80,36 +80,37 @@ public class AlertHistoryView extends TableSection {
@Override
protected void configureTableFilters() {
- final EnumSelectItem priorityFilter = new EnumSelectItem("severities", "Priority Filter", AlertPriority.class);
+ final EnumSelectItem priorityFilter = new EnumSelectItem("severities", MSG.view_alerts_table_filter_priority(),
+ AlertPriority.class);
setFilterFormItems(priorityFilter);
}
@Override
protected void configureTable() {
- ListGridField ctimeField = new ListGridField("ctime", "Creation Time", 100);
+ ListGridField ctimeField = new ListGridField("ctime", MSG.view_alerts_field_created_time(), 100);
ctimeField.setCellFormatter(new TimestampCellFormatter());
- ListGridField nameField = new ListGridField("name", "Name", 100);
- ListGridField conditionTextField = new ListGridField("conditionText", "Details");
- ListGridField priorityField = new ListGridField("priority", "Priority", 50);
+ ListGridField nameField = new ListGridField("name", MSG.view_alerts_field_name(), 100);
+ ListGridField conditionTextField = new ListGridField("conditionText", MSG.view_alerts_field_condition_text());
+ ListGridField priorityField = new ListGridField("priority", MSG.view_alerts_field_priority(), 50);
- ListGridField statusField = new ListGridField("status", "Status", 175);
+ ListGridField statusField = new ListGridField("status", 175);
statusField.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
String ackTime = listGridRecord.getAttribute("acknowledgeTime");
String ackSubject = listGridRecord.getAttribute("acknowledgingSubject");
if (ackSubject == null) {
- return "Not Yet Acknowledged";
+ return MSG.view_alerts_field_ack_status_empty();
} else {
String formattedTime = TimestampCellFormatter.DATE_TIME_FORMAT.format(new Date(Long
.parseLong(ackTime)));
- return " Acknowledged on " + formattedTime + "<br/>by " + ackSubject;
+ return MSG.view_alerts_field_ack_status_filled(ackSubject, formattedTime);
}
}
});
- ListGridField resourceNameField = new ListGridField("resourceName", "Resource", 125);
+ ListGridField resourceNameField = new ListGridField("resourceName", MSG.view_alerts_field_resource(), 125);
resourceNameField.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
Integer resourceId = listGridRecord.getAttributeAsInt("resourceId");
@@ -133,30 +134,30 @@ public class AlertHistoryView extends TableSection {
TableActionEnablement multipleTargetEnablement = hasWriteAccess ? TableActionEnablement.ALWAYS
: TableActionEnablement.NEVER;
- addTableAction("DeleteAlert", "Delete", "Delete the selected alert(s)?", new AbstractTableAction(
- singleTargetEnablement) {
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- delete(selection);
- }
- });
- addTableAction("DeleteAll", "Delete All", "Delete all alerts from this source?", new AbstractTableAction(
- multipleTargetEnablement) {
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- deleteAll();
- }
- });
- addTableAction("AcknowledgeAlert", "Ack", "Ack the selected alert(s)?", new AbstractTableAction(
- singleTargetEnablement) {
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- acknowledge(selection);
- }
- });
- addTableAction("AcknowledgeAll", "Ack All", "Ack all alerts from this source?", new AbstractTableAction(
- multipleTargetEnablement) {
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- acknowledgeAll();
- }
- });
+ addTableAction("DeleteAlert", MSG.common_button_delete(), MSG.view_alerts_delete_confirm(),
+ new AbstractTableAction(singleTargetEnablement) {
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ delete(selection);
+ }
+ });
+ addTableAction("DeleteAll", MSG.common_button_delete_all(), MSG.view_alerts_delete_confirm_all(),
+ new AbstractTableAction(multipleTargetEnablement) {
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ deleteAll();
+ }
+ });
+ addTableAction("AcknowledgeAlert", MSG.common_button_ack(), MSG.view_alerts_ack_confirm(),
+ new AbstractTableAction(singleTargetEnablement) {
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ acknowledge(selection);
+ }
+ });
+ addTableAction("AcknowledgeAll", MSG.common_button_ack_all(), MSG.view_alerts_ack_confirm_all(),
+ new AbstractTableAction(multipleTargetEnablement) {
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ acknowledgeAll();
+ }
+ });
}
void delete(ListGridRecord[] records) {
@@ -170,13 +171,13 @@ public class AlertHistoryView extends TableSection {
GWTServiceLookup.getAlertService().deleteAlerts(alertIds, new AsyncCallback<Integer>() {
public void onSuccess(Integer resultCount) {
CoreGUI.getMessageCenter().notify(
- new Message("Deleted [" + resultCount + "] alerts", Message.Severity.Info));
+ new Message(MSG.view_alerts_delete_success(String.valueOf(resultCount)), Message.Severity.Info));
refresh();
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(
- "Failed to delete alerts with id's: " + Arrays.toString(alertIds), caught);
+ CoreGUI.getErrorHandler()
+ .handleError(MSG.view_alerts_delete_failure(Arrays.toString(alertIds)), caught);
}
});
}
@@ -185,12 +186,12 @@ public class AlertHistoryView extends TableSection {
GWTServiceLookup.getAlertService().deleteAlertsByContext(context, new AsyncCallback<Integer>() {
public void onSuccess(Integer resultCount) {
CoreGUI.getMessageCenter().notify(
- new Message("Deleted [" + resultCount + "] alerts", Message.Severity.Info));
+ new Message(MSG.view_alerts_delete_success(String.valueOf(resultCount)), Message.Severity.Info));
refresh();
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to delete all alerts from this source", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alerts_delete_failure_all(), caught);
}
});
}
@@ -206,13 +207,12 @@ public class AlertHistoryView extends TableSection {
GWTServiceLookup.getAlertService().acknowledgeAlerts(alertIds, new AsyncCallback<Integer>() {
public void onSuccess(Integer resultCount) {
CoreGUI.getMessageCenter().notify(
- new Message("Acknowledged [" + resultCount + "] alerts", Message.Severity.Info));
+ new Message(MSG.view_alerts_ack_success(String.valueOf(resultCount)), Message.Severity.Info));
refresh();
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(
- "Failed to acknowledge Alerts with id's: " + Arrays.toString(alertIds), caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alerts_ack_failure(Arrays.toString(alertIds)), caught);
}
});
}
@@ -221,12 +221,12 @@ public class AlertHistoryView extends TableSection {
GWTServiceLookup.getAlertService().acknowledgeAlertsByContext(context, new AsyncCallback<Integer>() {
public void onSuccess(Integer resultCount) {
CoreGUI.getMessageCenter().notify(
- new Message("Acknowledged [" + resultCount + "] alerts", Message.Severity.Info));
+ new Message(MSG.view_alerts_ack_success(String.valueOf(resultCount)), Message.Severity.Info));
refresh();
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to acknowledged all alerts from this source", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alerts_ack_failure_all(), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertPortletDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertPortletDataSource.java
index d823c56..64306ca 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertPortletDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertPortletDataSource.java
@@ -92,7 +92,7 @@ public class AlertPortletDataSource extends AlertDataSource {
getAlertService().findAlertsByCriteria(criteria, new AsyncCallback<PageList<Alert>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to fetch alerts data", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_alerts_loadFailed(), caught);
response.setStatus(RPCResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/GroupAlertHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/GroupAlertHistoryView.java
index a0943c0..b9ca1a1 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/GroupAlertHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/GroupAlertHistoryView.java
@@ -27,7 +27,7 @@ import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
*/
public class GroupAlertHistoryView extends AlertHistoryView {
public static GroupAlertHistoryView get(String locatorId, ResourceGroupComposite composite) {
- String tableTitle = "Group Alert History";
+ String tableTitle = MSG.view_alerts_table_title_group();
EntityContext context = EntityContext.forGroup(composite.getResourceGroup().getId());
boolean hasWriteAccess = composite.getResourcePermission().isAlert();
return new GroupAlertHistoryView(locatorId, tableTitle, context, hasWriteAccess);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/ResourceAlertHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/ResourceAlertHistoryView.java
index daecace..af63ed7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/ResourceAlertHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/ResourceAlertHistoryView.java
@@ -27,7 +27,7 @@ import org.rhq.core.domain.resource.composite.ResourceComposite;
*/
public class ResourceAlertHistoryView extends AlertHistoryView {
public static ResourceAlertHistoryView get(String locatorId, ResourceComposite composite) {
- String tableTitle = "Resource Alert History";
+ String tableTitle = MSG.view_alerts_table_title_resource();
EntityContext context = EntityContext.forResource(composite.getResource().getId());
boolean hasWriteAccess = composite.getResourcePermission().isAlert();
return new ResourceAlertHistoryView(locatorId, tableTitle, context, hasWriteAccess);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/SubsystemResourceAlertDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/SubsystemResourceAlertDataSource.java
index 4fd84c1..867f0ed 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/SubsystemResourceAlertDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/SubsystemResourceAlertDataSource.java
@@ -24,6 +24,7 @@ package org.rhq.enterprise.gui.coregui.client.alert;
import com.smartgwt.client.data.DataSourceField;
import com.smartgwt.client.data.fields.DataSourceIntegerField;
+
import org.rhq.core.domain.criteria.AlertCriteria;
/**
@@ -38,7 +39,8 @@ public class SubsystemResourceAlertDataSource extends AlertDataSource {
DataSourceField[] updatedFields = new DataSourceField[fields.length + 1];
// TODO: Replace 'Resource Id' column with 'Resource Name' and 'Resource Lineage' columns.
- DataSourceField resourceIdField = new DataSourceIntegerField(AlertCriteria.SORT_FIELD_RESOURCE_ID, "Resource Id");
+ DataSourceField resourceIdField = new DataSourceIntegerField(AlertCriteria.SORT_FIELD_RESOURCE_ID, MSG
+ .common_title_resource_id());
updatedFields[0] = resourceIdField;
System.arraycopy(fields, 0, updatedFields, 1, fields.length);
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 9c6f807..df253d2 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
@@ -13,6 +13,8 @@ common_buildInfo_gwtVersion = ${gwt.version}~
# Button Labels
#--------------
+common_button_ack = Ack~
+common_button_ack_all = Ack All~
common_button_advanced = Advanced...~
common_button_apply = Apply~
common_button_cancel = Cancel~
@@ -20,6 +22,7 @@ common_button_close = Close~
common_button_compare = Compare~
common_button_create_child = Create Child~
common_button_delete = Delete~
+common_button_delete_all = Delete All~
common_button_disable = Disable~
common_button_enable = Enable~
common_button_finish = Finish~
@@ -426,7 +429,6 @@ view_adminUsersDetails_dataTypeName = user~
# Administration/Security/Roles/#
#--------------------------------
-#jjj
view_adminRoles_assignedGroups = Assigned Resource Groups~
view_adminRoles_assignedSubjects = Assigned Subjects~
view_adminRoles_failLdap = Failed to determine if LDAP configured - assuming no LDAP.~
@@ -473,6 +475,73 @@ view_remoteAgentInstall_stopAgentResults = Agent stop results: [{0}]~
view_remoteAgentInstall_success = Agent installation complete~
view_remoteAgentInstall_updateStatus = Update Status~
+#==================== Alerts ======================
+view_alerts_table_title_group=Group Alert History~
+view_alerts_table_title_resource=Resource Alert History~
+view_alerts_table_filter_priority=Priority Filter~
+view_alerts_field_created_time=Creation Time~
+view_alerts_field_ack_time=Ack Time~
+view_alerts_field_ack_subject=Ack Subject~
+view_alerts_field_ack_status=Status~
+view_alerts_field_ack_status_empty=Not Yet Acknowledged~
+view_alerts_field_ack_status_filled={0} acknowledged on {1}~
+view_alerts_field_name=Name~
+view_alerts_field_condition_text=Condition Text~
+view_alerts_field_condition_text_none=No Conditions~
+view_alerts_field_condition_text_many=Multiple Conditions~
+view_alerts_field_condition_value=Condition Value~
+view_alerts_field_resource=Resource~
+view_alerts_field_priority=Priority~
+view_alerts_loadFailed=Failed to fetch alerts data~
+view_alerts_delete_confirm=Delete the selected alert(s)?~
+view_alerts_delete_confirm_all=Delete all alerts from this source?~
+view_alerts_delete_success=Successfully deleted {0} alerts~
+view_alerts_delete_failure=Failed to delete alerts with id''s: {0}~
+view_alerts_delete_failure_all=Failed to delete all alerts from this source~
+view_alerts_ack_confirm=Ack the selected alert(s)?~
+view_alerts_ack_confirm_all=Ack all alerts from this source?~
+view_alerts_ack_success=Successfully acknowledged {0} alerts~
+view_alerts_ack_failure=Failed to acknowledge alerts with id''s: {0}~
+view_alerts_ack_failure_all=Failed to acknowledge all alerts from this source~
+view_alert_details_loadFailed=Failed to fetch alert details~
+view_alert_details_breadcrumb=Details~
+view_alert_details_field_ack_by=Acknowledged by~
+view_alert_details_field_ack_at=Acknowledged at~
+view_alert_details_field_recovery_info=Recovery Info~
+view_alert_common_tab_general=General~
+view_alert_common_tab_conditions=Conditions~
+view_alert_common_tab_conditions_text=Matching Condition~
+view_alert_common_tab_conditions_value=Value~
+view_alert_common_tab_conditions_type_availability=Availability Change~
+view_alert_common_tab_conditions_type_availability_down=Went down
+view_alert_common_tab_conditions_type_availability_up=Came up
+view_alert_common_tab_conditions_type_metric_threshold=Metric Value Exceeds Threshold~
+view_alert_common_tab_conditions_type_metric_calltime_threshold=Call Time Value Exceeds Threshold~
+view_alert_common_tab_conditions_type_metric_calltime_destination=with call destination matching~
+view_alert_common_tab_conditions_type_metric_calltime_change=Call Time Value Changes~
+view_alert_common_tab_conditions_type_metric_calltime_change_verb=by at least~
+view_alert_common_tab_conditions_type_metric_calltime_delta_grows=Grows~
+view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks=Shrinks~
+view_alert_common_tab_conditions_type_metric_calltime_delta_other=Changes~
+view_alert_common_tab_conditions_type_metric_baseline=Metric Value Exceeds Baseline~
+view_alert_common_tab_conditions_type_metric_baseline_verb=of~
+view_alert_common_tab_conditions_type_metric_change=Metric Value Change~
+view_alert_common_tab_conditions_type_metric_trait_change=Trait Change~
+view_alert_common_tab_conditions_type_metric_operation=Operation Execution~
+view_alert_common_tab_conditions_type_metric_status=with result status~
+view_alert_common_tab_conditions_type_metric_resource_configuration=Resource Configuration Change~
+view_alert_common_tab_conditions_type_metric_event=Event Detection~
+view_alert_common_tab_conditions_type_metric_event_matching=with event source matching~
+view_alert_common_tab_conditions_type_invalid=Unsupported Category: {0}
+view_alert_common_tab_conditions_recovery_enabled=Triggered ''{0}'' to be re-enabled~
+view_alert_common_tab_conditions_recovery_disabled=This alert caused its alert definition to be disabled~
+view_alert_common_tab_notifications=Notifications~
+view_alert_common_tab_notifications_sender=Sender~
+view_alert_common_tab_notifications_status=Status~
+view_alert_common_tab_notifications_message=Message~
+view_alert_common_tab_notifications_all_emails=All Emails~
+view_alert_common_tab_notifications_bad_emails=Bad Emails~
+view_alert_common_tab_dampening=Dampening~
# Auto Discovery Queue
#----------------------------
commit 27cf8cf132a2c39fcb3366af1fc3c3ffc50a89b7
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Nov 18 12:37:28 2010 -0500
latest messages - putting everything back to the first column
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 5d3f936..9c6f807 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
@@ -1,1127 +1,1141 @@
- #
- # RHQ GUI i18n Messages - English
- ###################################
-
- #************************************** SHARED ****************************************
-
- #=================== Common =====================
-
- #
- # Build Info
- #
- common_buildInfo_gwtVersion = ${gwt.version}~
-
- # Button Labels
- #--------------
- common_button_advanced = Advanced...~
- common_button_apply = Apply~
- common_button_cancel = Cancel~
- common_button_close = Close~
- common_button_compare = Compare~
- common_button_create_child = Create Child~
- common_button_delete = Delete~
- common_button_disable = Disable~
- common_button_enable = Enable~
- common_button_finish = Finish~
- common_button_import = Import~
- common_button_new = New~
- common_button_next = Next~
- common_button_ok = OK~
- common_button_previous = Previous~
- common_button_purgeAll=Purge All~
- common_button_refresh = "Refresh"~
- common_button_reset = Reset~
- common_button_save = Save~
- common_button_search = Search~
- common_button_showDetails = Show Details...~
- common_button_uninventory = Uninventory~
-
- # Common Labels
- #------------------------
- common_label_all = ALL~
- common_label_all_resources = all resources~
- common_label_day=day~
- common_label_days=days~
- common_label_hour=hour~
- common_label_hours=hours~
- common_label_item=item~
- common_label_items=items~
- common_label_milliseconds=milliseconds~
- common_label_minutes=minutes~
- common_label_month=month~
- common_label_none = none~
- common_label_search=Search~
- common_label_scheduled_operations=scheduled operations~
- common_label_seconds=seconds~
- common_label_selected_resources = selected resources~
- common_label_unlimited = unlimited~
- common_label_week=week~
-
- # Common Titles
- #--------------
- common_title_add_column=Add Column~
- common_title_add_portlet=Add Portlet~
- common_title_alert_range=Alert Range~
- common_title_availability = Availability~
- common_title_average_metrics=Average Metrics per Minute~
- common_title_available_resources=Available Resources~
- common_title_background=Background~
- common_title_category = Category~
- common_title_columns=Columns~
- common_title_configuration = Configuration~
- common_title_compatibleGroups = Compatible Groups~
- common_title_compatibleGroups_total=Compatible Group Total~
- common_title_custom=Custom~
- common_title_dashboard_name=Dashboard Name~
- common_title_dateCreated=Date Created~
- common_title_default=Default~
- common_title_description=Description~
- common_title_display=Display~
- common_title_display_name=Display Name~
- common_title_duration=Duration~
- common_title_edit_mode=Edit Mode~
- common_title_enabled=Enabled?~
- common_title_end = End~
- common_title_favorites=Favorites~
- common_title_generalProp = General Properties~
- common_title_group_def_total=Group Definition Total~
- common_title_icon = icon~
- common_title_id = ID~
- common_title_id_parent = Parent ID~
- common_title_host = Host~
- common_title_inventory = Inventory~
- common_title_inventorySummary = Inventory Summary~
- common_title_lastUpdated=Last Updated~
- common_title_lastUpdatedBy=Last Updated By~
- common_title_mashup=Mashup~
- common_title_metric = Metric~
- common_title_mixedGroups = Mixed Groups~
- common_title_mixedGroups_total=Mixed Group Total~
- common_title_name = Name~
- common_title_new_dashboard=New Dashboard~
- common_title_numeric_type=Numeric Type~
- common_title_operations=Operations~
- common_title_operations_range=Operation Range~
- common_title_over=Over~
- common_title_password = Password~
- common_title_path = Path~
- common_title_platform_total=Platform Total~
- common_title_plugin = Plugin~
- common_title_port = Port~
- common_title_recently_added = Recently Added Resources~
- common_title_recent_alerts = Recent Alerts~
- common_title_recent_operations=Recent Operations~
- common_title_remove_column=Remove Column~
- common_title_resource = Resource~
- common_title_resource_group = Resource Group~
- common_title_resource_inventory=Resource Inventory~
- common_title_resource_id=Resource ID~
- common_title_resource_name=Resource Name~
- common_title_scheduled_operations=Scheduled Operations~
- common_title_selected_resources=Selected Resources~
- common_title_server_total=Server Total~
- common_title_service_total=Service Total~
- common_title_settings=Settings~
- common_title_show=Show~
- common_title_start = Start~
- common_title_status=Status~
- common_title_summary=Summary~
- common_title_tag_cloud=Tag Cloud~
- common_title_the=The
- common_title_summary_counts=Summary Counts~
- common_title_timestamp =Date/Time~
- common_title_total=Total~
- common_title_type = Type~
- common_title_units = Units~
- common_title_user=User~
- common_title_value = Value~
- common_title_version = Version~
- common_title_view_mode=View Mode~
- common_title_web_address=Web Address~
-
- # Common Messages
- #--------------
- common_msg_areYouSure = Are You Sure?~
- common_msg_deleteConfirm = Are you sure you want to delete the # selected {0}?~
- common_msg_loading = Loading...~
- common_msg_noItemsToShow=No items to show~
-
- # Common Values
- #--------------
- common_val_no = No~
- common_val_no_lower = no~
- common_val_yes = Yes~
- common_val_yes_lower = yes~
- common_val_never = Never~
- common_val_na = N/A~
- common_val_none = None~
-
- # Common Calendar
- #--------------
- common_calendar_january_short=jan~
- common_calendar_february_short=feb~
- common_calendar_march_short=mar~
- common_calendar_april_short=apr~
- common_calendar_may_short=may~
- common_calendar_june_short=jun~
- common_calendar_july_short=jul~
- common_calendar_august_short=aug~
- common_calendar_september_short=sept~
- common_calendar_october_short=oct~
- common_calendar_november_short=nov~
- common_calendar_december_short=dec~
-
-
- #=================== Widgets =====================
-
- # Record Editor
- #--------------
- widget_recordEditor_title_view = View {0} [{1}]~
- widget_recordEditor_title_edit = Edit {0} [{1}]~
- widget_recordEditor_title_new = Create New {0}~
- # // dup in common
- widget_recordEditor_label_loading = Loading...~
- widget_recordEditor_error_invalidViewPath = Invalid view path: [{0}]~
- widget_recordEditor_error_noRecords = No records were returned - expected exactly one.~
- widget_recordEditor_error_multipleRecords = Multiple records were returned - expected exactly one.~
- widget_recordEditor_info_recordCreatedConcise = {0} created.~
- widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] created.~
- widget_recordEditor_info_recordUpdatedConcise = {0} updated.~
- widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] updated.~
- widget_recordEditor_info_recordsDeletedConcise = {0} {1} deleted.~
- widget_recordEditor_info_recordsDeletedDetailed = {0} {1} deleted: {2}.~
- widget_recordEditor_error_unsupportedOperationType = Unsupported operation type: [{0}]~
-
- # Resource Selector/Picker
- #--------------------------------
- widget_resourceSelector_selectResource=Select a Resource~
- widget_resourceSelector_pleaseSelectResource=Please select a resource~
- widget_resourceSelector_selectMultipleResources=Select Resources~
- widget_resourceSelector_pleaseSelectMultipleResource=Please select one or more resources~
- widget_resourceSelector_groupCategory=Group Category~
-
- # Resource Factory Wizard
- #--------------------------------
- widget_resourceFactoryWizard_uploadInProgress=The upload is in progress... This can take several minutes to complete for large distribution files.~
- widget_resourceFactoryWizard_uploadFileStepName=Upload Resource Content File~
- widget_resourceFactoryWizard_uploadFailure=Failed to upload file~
- widget_resourceFactoryWizard_editConfigStepName=Edit Configuration~
- widget_resourceFactoryWizard_infoStepName=Resource Information~
- widget_resourceFactoryWizard_namePrompt=New Resource Name~
- widget_resourceFactoryWizard_templatePrompt=Connection Settings Template~
- widget_resourceFactoryWizard_contentTemplatePrompt=Deployment Time Configuration Templates~
- widget_resourceFactoryWizard_configTemplatePrompt=Resource Configuration Templates~
- widget_resourceFactoryWizard_archPrompt=Package Architecture~
- widget_resourceFactoryWizard_versionPrompt=Package Version~
- widget_resourceFactoryWizard_importWizardWindowTitle=Resource Import Wizard~
- widget_resourceFactoryWizard_importWizardTitle=Import Resource of Type [{0}]~
- widget_resourceFactoryWizard_importFailure=Failed to manually import resource~
- widget_resourceFactoryWizard_importSubmitted=A request to import a new resource of type [{0}] has been submitted~
- widget_resourceFactoryWizard_createWizardWindowTitle=Resource Create Wizard~
- widget_resourceFactoryWizard_createWizardTitle=Create New Resource of Type [{0}]~
- widget_resourceFactoryWizard_execute1=Failed to create a new resource - there is no package version~
- widget_resourceFactoryWizard_execute2=Failed to create a new resource~
- widget_resourceFactoryWizard_createSubmitType=A request to create a resource of type [{0}] has been submitted successfully.~
- widget_resourceFactoryWizard_createSubmit=A request to create a resource with the name of [{0}] has been submitted successfully.~
- widget_resourceFactoryWizard_failedToGetType=Failed to get backing package type for new resource~
- widget_resourceFactoryWizard_failedToDeleteVersion=Failed to delete package version while canceling a resource create~
-
- #===================== Utils ======================
-
- # Disambiguation Report Decorator
- #-------------------------------------------------
- util_disambiguationReportDecorator_pluginSuffix = ({0} plugin)~
-
- # Monitoring Request Callback
- #------------------------------------------
- util_monitoringRequestCallback_error_checkServerStatusFailure = Unable to determine login status - check Server status.~
-
- # RPC Manager
- #----------------------
- util_rpcManager_activeRequests = {0} Active Requests~
-
- # User Permissions Manager
- #--------------------------
- util_userPerm_loadFailGlobal = Failed to load your global permissions - none granted.~
- util_userPerm_loadFailGroup = Failed to load your permissions for Resource Group with id [{0}] - none granted.~
- util_userPerm_loadFailResource = Failed to load your permissions for Resource with id [{0}] - none granted.~
-
- # User Session Manager
- #--------------------------
- util_userSession_loadFailSubject = UserSessionManager: Failed to load user Subject~
- util_userSession_logoutFail = Failed to logout.~
-
- # Error Handler
- #--------------------
- util_errorHandler_nullException = exception was null~
-
- # Widgets Field
- #---------------------
- util_widgetsField_unlimited = Unlimited~
-
-
- #================== DataSources ====================
-
- # RPC (abstract)
- #-----------------------
- dataSource_rpc_error_transformRequestFailure = Failure in datasource while processing {0} request.~
- dataSource_rpc_error_unsupportedArrayFilterType = No support for passing array filters of type {0}.~
- dataSource_rpc_error_unsupportedEnumType = Please add an appropriate code block for enum {0} to RPCDataSource.getEnumArray(Class)~
- dataSource_rpc_yes = yes~
- dataSource_rpc_no = no~
-
- # ContentRepositoryTree
- #------
- dataSource_ContentRepoTree_error_load = Error loading repositories~
- dataSource_ContentRepoTree_field_parentId = Parent ID~
-
-
- # Users
- #------
- ###### dup in common
- dataSource_users_field_id = ID~
- dataSource_users_field_name = User Name~
- dataSource_users_field_ldap = LDAP Login?~
- dataSource_users_field_password = Password`
- dataSource_users_field_passwordVerify = Verify Password~
- dataSource_users_field_firstName = First Name~
- dataSource_users_field_lastName = Last Name~
- dataSource_users_field_emailAddress = Email Address~
- dataSource_users_field_phoneNumber = Phone Number~
- dataSource_users_field_department = Department~
- dataSource_users_field_factive = Login Enabled?~
-
- # Platforms
- #------
- dataSource_platforms_field_cpu=CPU~
- dataSource_platforms_field_memory=Memory~
- dataSource_platforms_field_swap=Swap~
-
- # Traits
- #------
- dataSource_traits_field_primaryKey=Primary Key~
- dataSource_traits_field_definitionID=Definition ID~
- dataSource_traits_field_lastChanged=Last Changed~
- dataSource_traits_field_trait=Trait~
- dataSource_traits_group_field_groupId=Group ID~
- dataSource_traits_group_field_memberResource=Member Resource~
-
- # Measurement OOBs
- #---------------------------------
- dataSource_measurementOob_field_scheduleName = Metric~
- dataSource_measurementOob_field_resourceName = Resource~
- dataSource_measurementOob_field_parentName = Parent~
- dataSource_measurementOob_field_formattedBaseband = Band~
- dataSource_measurementOob_field_formattedOutlier = Outlier~
- dataSource_measurementOob_field_factor = Out of Range Factor (%)~
- dataSource_measurementOob_error_fetchFailure = Failed to load measurement OOB information~
-
- # Measurements
- #----------------------
- dataSource_definitions_loadFailed = Failed to load metric definitions~
- dataSource_schedules_loadFailed = Failed to load metric schedules~
- dataSource_schedules_field_resourceGroupId = Group ID~
-
- dataSource_schedules_enableFailure_resource=Failed to enable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
- dataSource_schedules_enableFailure_group=Failed to enable the collection of [{0}] metrics for group with ID [{1}]. The metrics were: [{2}]~
-
- dataSource_schedules_enableSuccessful_concise=You have enabled the collection of [{0}] measurements~
- dataSource_schedules_enableSuccessful_full_resource=You have enabled the collection of [{0}] measurements for the resource with ID [{1}]. The enabled measurements are: [{2}]~
- dataSource_schedules_enableSuccessful_full_group=You have enabled the collection of [{0}] measurements for the resource group with ID [{1}]. The enabled measurements are: [{2}]~
-
- dataSource_schedules_disableFailure_resource=Failed to disable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
- dataSource_schedules_disableFailure_group=Failed to disable the collection of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]~
-
- dataSource_schedules_disableSuccessful_concise=You have disabled the collection of [{0}] measurements~
- dataSource_schedules_disableSuccessful_full_resource=You have disabled the collection of [{0}] measurements for the resource with ID [{1}]. The disabled measurements are: [{2}]~
- dataSource_schedules_disableSuccessful_full_group=You have disabled the collection of [{0}] measurements for the resource group with ID [{1}]. The disabled measurements are: [{2}]~
-
- dataSource_schedules_updateFailure_resource=Failed to set the collection interval of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
- dataSource_schedules_updateFailure_group=Failed to set the collection interval of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
-
- dataSource_schedules_updateSuccessful_concise=A new collection interval of [{0}] seconds has been set on [{1}] measurements~
- dataSource_schedules_updateSuccessful_full_resource=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource with ID [{2}]. The updated measurements are: [{3}]~
- dataSource_schedules_updateSuccessful_full_group=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource group with ID [{2}]. The updated measurements are: [{3}]~
-
-
- # Problem Resources
- #------------------------------
- dataSource_problemResources_field_resource = Resource~
- dataSource_problemResources_field_location = Location~
- dataSource_problemResources_field_alerts = Alerts~
- dataSource_problemResources_field_available = Current Availability~
- dataSource_problemResources_error_fetchFailure = Failed to load Resources with alerts/unavailability.~
-
- # Recent Operations
- #----------------------------
- dataSource_recentOperations_field_resource = Resource~
- dataSource_recentOperations_field_location = Location~
- dataSource_recentOperations_field_operation = Operation~
- dataSource_recentOperations_field_time = Date/Time~
- dataSource_recentOperations_field_status = Status~
- dataSource_recentOperations_error_fetchFailure = Failed to load recently completed operations.
-
- # Scheduled Operations
- #---------------------------------
- dataSource_scheduledOperations_field_resource = Resource~
- dataSource_scheduledOperations_field_location = Location~
- dataSource_scheduledOperations_field_operation = Operation~
- dataSource_scheduledOperations_field_time = Date/Time~
- dataSource_scheduledOperations_error_fetchFailure = Failed to load scheduled operations.
-
- # Operation History
- #---------------------------
- dataSource_operationHistory_error_fetchFailure = Failure loading operation histories.~
-
- # 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_error_fetchFailure = Unable to load configuration history.~
-
- # Resource Errors
- #-------------------------
- dataSource_resourceErrors_field_summary = Summary~
- dataSource_resourceErrors_field_detail = Detailed Message~
- dataSource_resourceErrors_field_errorType = Error Type~
- dataSource_resourceErrors_field_timeOccured = Time~
- dataSource_resourceErrors_error_fetchFailure = Failed to find Resource errors for Resource with id [{0}].~
-
-
- #********************************** VIEW-SPECIFIC *************************************
-
- #================= Administration ==================
-
- view_admin_administration = Administration~
- view_admin_configuration = Configuration~
- view_admin_security = Security~
- view_admin_topology = Topology~
-
- view_adminSecurity_users = Users~
- view_adminSecurity_roles = Roles~
-
- view_adminTopology_affinityGroups = Affinity Groups~
- view_adminTopology_agents = Agents~
- view_adminTopology_partitionEvents = Partition Events~
- view_adminTopology_remoteAgentInstall = Remote Agent Install~
- view_adminTopology_servers = Servers~
-
- view_adminConfig_downloads = Downloads~
- view_adminConfig_license = License~
- view_adminConfig_plugins = Plugins~
- view_adminConfig_systemSettings = System Settings~
- view_adminConfig_templates = Templates~
-
- # Administration/Security/Users/#
- #--------------------------------
- view_adminUsersDetails_dataTypeName = user~
-
- # Administration/Security/Roles/#
- #--------------------------------
- #jjj
- view_adminRoles_assignedGroups = Assigned Resource Groups~
- view_adminRoles_assignedSubjects = Assigned Subjects~
- view_adminRoles_failLdap = Failed to determine if LDAP configured - assuming no LDAP.~
- view_adminRoles_failLdapGroups = Failed to retrieve available LDAP groups - assuming no LDAP groups.~
- view_adminRoles_globalPerms = Global Permissions~
- view_adminRoles_ldapgroups = LDAP Groups~
- view_adminRoles_noLdap = <b>NOTE:</b> The LDAP security integration is not configured. To configure LDAP go to <a {0}>{1}</a>.~
- view_adminRoles_perms = Permissions~
- view_adminRoles_resourcePerms = Resource Permissions~
-
-
- # Administration/Topology/RemoteAgentInstall/#
- #--------------------------------
- view_remoteAgentInstall_agentStatus = Agent Status~
- view_remoteAgentInstall_agentStatusDefault = -Click Update Status Button-~
- view_remoteAgentInstall_connInfo = Connection Information~
- view_remoteAgentInstall_buttonFindAgent = Find Agent~
- view_remoteAgentInstall_error_1 = Error occurred while trying to find agent install path~
- view_remoteAgentInstall_error_2 = Could not find an agent installed when looking in common locations
- view_remoteAgentInstall_error_3 = Could not find an agent installed at or under [{0}]
- view_remoteAgentInstall_error_4 = Failed to install agent~
- view_remoteAgentInstall_error_5 = Failed to start agent~
- view_remoteAgentInstall_error_6 = Failed to stop agent~
-
- view_remoteAgentInstall_installAgent = Install Agent~
- view_remoteAgentInstall_installInfo = Agent Installation Information~
- view_remoteAgentInstall_installPath = Agent Install Path~
- view_remoteAgentInstall_owner = Owner~
- view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install.~
- view_remoteAgentInstall_promptHost = The host where the agent is or will be installed~
- view_remoteAgentInstall_promptPassword =The credentials that are used to authenticate the user on the host via SSH~
- view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not specified, the default is 22~
- view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to the host via SSH~
- view_remoteAgentInstall_result = Result~
- view_remoteAgentInstall_resultCode = ResultCode~
- view_remoteAgentInstall_startAgent = Start Agent~
- view_remoteAgentInstall_startAgentResults = Agent start results: [{0}]~
- view_remoteAgentInstall_step = Step~
- view_remoteAgentInstall_stopAgent = Stop Agent~
- view_remoteAgentInstall_stopAgentResults = Agent stop results: [{0}]~
- view_remoteAgentInstall_success = Agent installation complete~
- view_remoteAgentInstall_updateStatus = Update Status~
-
-
- # Auto Discovery Queue
- #----------------------------
- view_autoDiscoveryQ_title=Autodiscovery Queue~
- view_autoDiscoveryQ_import=Import~
- view_autoDiscoveryQ_ignore=Ignore~
- view_autoDiscoveryQ_ignored=Ignored~
- view_autoDiscoveryQ_unignore=Unignore~
- view_autoDiscoveryQ_new=New~
- view_autoDiscoveryQ_newAndIgnored=New and Ignored~
- view_autoDiscoveryQ_importFailure=Failed to import resources~
- view_autoDiscoveryQ_importSuccessful=You have successfully imported the selected resources.~
- view_autoDiscoveryQ_ignoreFailure=Failed to ignore resources~
- view_autoDiscoveryQ_ignoreSuccessful=You have successfully ignored the selected resources.~
- view_autoDiscoveryQ_unignoreFailure=Failed to unignore resources~
- view_autoDiscoveryQ_unignoreSuccessful=You have successfully unignored the selected resources.~
- view_autoDiscoveryQ_noperm=(Required manage inventory permissions missing. See Administrator to change)~
- view_autoDiscoveryQ_noItems=No items to show~
- view_autoDiscoveryQ_field_parentId=Parent ID~
- view_autoDiscoveryQ_field_name=Resource Name~
- view_autoDiscoveryQ_field_key=Resource Key~
- view_autoDiscoveryQ_field_discoveryTime=Discovery Time~
- view_autoDiscoveryQ_field_inventoryStatus=Inventory Status~
- view_autoDiscoveryQ_loadFailure=Failed to load the inventory discovery queue~
-
- #==================== Bundles ======================
-
- # some common bundle terms
- view_bundle_bundle = Bundle~
- view_bundle_bundles = Bundles~
- view_bundle_deployments=Deployments~
- view_bundle_bundleVersions=Bundle Versions~
- view_bundle_bundleVersion=Bundle Version~
- view_bundle_versions=Versions~
- view_bundle_bundleFiles=Bundle Files~
- view_bundle_destinations=Destinations~
- view_bundle_bundleDestinations=Bundle Destinations~
- view_bundle_files=Files~
- view_bundle_recipe=Recipe~
- view_bundle_bundleType=Bundle Type~
- view_bundle_deploy=Deploy~
- view_bundle_latestVersion=Latest Version~
-
- # individual bundle views/wizards
- view_bundle_fileListView_fileSize=File Size~
- view_bundle_fileListView_loadFailure=Failed to load bundle file data~
- view_bundle_version_backToBundle=Back to Bundle~
- view_bundle_version_bundleVersionTagUpdateFailure=Failed to update bundle version tags~
- view_bundle_version_bundleVersionTagUpdateSuccessful=You have successfully updated the bundle version tags~
- view_bundle_version_loadFailure=Failed to load bundle version~
- view_bundle_tree_loadFailure=Failed to load bundle data~
- view_bundle_revertWizard_title=Bundle Revert~
- view_bundle_revertWizard_windowTitle=Bundle Revert Wizard~
- view_bundle_revertWizard_getInfoStep_name=Provide Revert Information~
- view_bundle_revertWizard_getInfoStep_revertDeployName=Revert Deploy Name~
- view_bundle_revertWizard_getInfoStep_revertDeployDesc=Revert Deploy Description~
- view_bundle_revertWizard_getInfoStep_revertDeployDescFull=[REVERT From]\\n{0}\\n\\n[REVERT To]\\n{1}~
- view_bundle_revertWizard_getInfoStep_cleanDeploy=Clean Deployment? (this will delete an old, existing deploy directory prior to starting the revert deployment)~
- view_bundle_revertWizard_getInfoStep_getNameFailure=Failed to get revert deployment name~
- view_bundle_revertWizard_confirmStep_name=Revert Deployment Confirmation~
- view_bundle_revertWizard_confirmStep_noLiveDeployment=No live deployment was found for the destination [{0}]~
- view_bundle_revertWizard_confirmStep_noPriorDeployment=The live deployment [{0}] cannot be reverted because there is no prior deployment for the destination [{1}]~
- view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment=Failed to find live deployment; cannot revert~
- view_bundle_revertWizard_confirmStep_liveDeployment=Live Deployment~
- view_bundle_revertWizard_confirmStep_prevDeployment=Previous Deployment~
- view_bundle_revertWizard_confirmStep_confirmation=Reverting Live Deployment to Previous Deployment. Click "Next" to continue...~
- view_bundle_revertWizard_revertStep_name=Deploy Bundle to Destination Platforms~
- view_bundle_revertWizard_revertStep_reverting=Reverting...~
- view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert deployment!~
- view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to revert the bundle deployment [{0}] from resource group [{1}]~
- view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert deployment!~
- view_bundle_list_deleteFailure=Failed to delete bundle [{0}]~
- view_bundle_list_deleteSuccessful=You deleted the bundle named [{0}]~
- view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
- view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
- view_bundle_list_versionsCount=Versions Count~
- view_bundle_list_destinationsCount=Destinations Count~
- view_bundle_list_loadWithLatestFailure=Failed to load bundle with the latest version data~
- view_bundleVersion_loadFailure=Failed to load bundle version data~
- view_bundle_list_backToAll=Back to All Bundles~
- view_bundle_list_bundleVersionTagUpdateFailure=Failed to update bundle tags~
- view_bundle_list_bundleVersionTagUpdateSuccessful=You have successfully updated the bundle tags~
- view_bundle_list_deleteConfirm=Are you sure you want to delete this bundle?~
- view_bundle_list_deleteFailure=Failed to delete the bundle [{0}]~
- view_bundle_list_deleteSuccessful=You successfully deleted the bundle named [{0}]~
- view_bundle_list_error1=Failed to load bundle to deploy [{0}]~
- view_bundle_list_error2=Failed to get a single bundle to deploy [{0}]~
- view_bundle_list_error3=Failed to load bundle~
- view_bundle_dest_group=Group~
- view_bundle_dest_deployDir=Deploy Directory~
- view_bundle_dest_lastDeployedVersion=Last Deployed Version~
- view_bundle_dest_lastDeploymentDate=Last Deployment Date~
- view_bundle_dest_lastDeploymentStatus=Last Deployment Status~
- view_bundle_dest_loadFailure=Failed to load bundle destinations~
- view_bundle_dest_loadFailureVersionInfo=Failed to load bundle destination deployed version information~
- view_bundle_dest_backToBundle=Back to Bundle~
-
- #=================== Components =====================
-
- view_configCompare_comparingConfigs = Comparing Configurations~
- view_configCompare_configCompare = Configuration Comparison~
-
- view_configEdit_addItem = Add Item to List~
- view_configEdit_confirm_1 = Are you sure you want to delete the selected properties from the set?~
- view_configEdit_confirm_2 = Are you sure you want to delete this row?~
- view_configEdit_confirm_3 = Are you sure you want to delete the [{0}] selected [{1}]?~
- view_configEdit_editRow = Edit Configuration Row~
- view_configEdit_enterPropName = Enter the name of the property to be added.~
- view_configEdit_error_1 = Configuration is not supported by this Resource.~
- view_configEdit_error_2 = Connection settings are not supported by this Resource.~
- view_configEdit_error_3 = Cannot add property named [{0}]. The property name is already used in the set.~
- view_configEdit_files = Files~
- view_configEdit_hideAll= Hide All~
- view_configEdit_jumpToSection = Jump to Section~
- view_configEdit_msg_1 = Added property [{0}] to the set.~
- view_configEdit_msg_2 = Removed properties from the set.~
- view_configEdit_msg_3 = [{0} {1}] deleted from list.~
- view_configEdit_msg_4 = Item added to list.~
- view_configEdit_properties = Properties~
- view_configEdit_tooltip_1 = Delete the selected items from the list.~
- view_configEdit_tooltip_2 = Add an item to the list.~
-
- view_groupConfigEdit_member = Member~
- view_groupConfigEdit_noListProps = List properties are not currently supported for group configurations.~
- view_groupConfigEdit_tooltip_1 = Member values differ - click icon to edit them.~
- view_groupConfigEdit_setAll = Set all values to:~
- view_groupConfigEdit_unset = Unset~
- view_groupConfigEdit_valsDiff = member values differ~
- view_groupConfigEdit_valsDiffForProp = Member Values for Property [{0}]~
-
- view_leftNav_unknownPage = Unknown page name [{0}] for section [{1}] - URL is invalid.~
-
- view_measure_nan = --no data available--~
- view_measureRange_day = 1 Day~
- view_measureRange_days = {0} Days~
- view_measureRange_hour = 1 Hour~
- view_measureRange_hours = {0} Hours~
- view_measureRange_last = Last~
- view_measureRange_minutes = {0} Minutes~
- view_measureRange_range = Range~
- view_measureRange_simple = Simple...~
-
- view_selector_assigned = Assigned {0}~
- view_selector_available = Available {0}~
-
- view_subTab_error_disabled = Cannot select disabled subTab [{0}].~
-
- view_table_totalRows = Total Rows: {0} Selected: {1}~
- view_tableSection_backButton = Back to List~
- view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
- view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
-
- view_tags_tags = Tags
- view_tags_error_1 = Failed to load Tags~
- view_tags_title = Tags:~
- view_tags_tooltip_1 = Click to remove this Tag~
- view_tags_tooltip_2 = Click to edit Tags~
- view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
-
- # File Upload (various)
- view_upload_alreadyUploaded = File has already been uploaded~
- view_upload_bundleDistFile = Distribution File~
- view_upload_error_bundleDistFile = Error uploading Bundle Distribution File~
- view_upload_error_file = Error uploading file~
- view_upload_error_fileName = Error uploading file [{0}]~
- view_upload_error_fileName_2 = Error uploading file [{0}], check for invalid file path.~
- view_upload_error_packageVersionFile = Error uploading Package Version File~
- view_upload_error_results = Error uploading file, unexpected results: [{0}]~
- view_upload_inProgress = Can not submit, upload is currently in progress~
- view_upload_prompt_1 = [{0}] File to Upload~
- view_upload_prompt_2 = File to Upload~
- view_upload_tooltip_1 = Select a file to upload, then click Upload or Next~
- view_upload_tooltip_2 = File upload had previously failed~
- view_upload_success = File successfully uploaded~
- view_upload_upload = Upload~
- view_upload_uploadFile = UploadFile~
-
- # Group Create Wizard
- view_groupCreateWizard_membersStepName=Select Members~
- view_groupCreateWizard_createStepName=Group Settings~
- view_groupCreateWizard_createStep_recursive=Recursive~
- view_groupCreateWizard_title=Create Group~
- view_groupCreateWizard_windowTitle=Create Group~
- view_groupCreateWizard_createFailure=Failed to create the resource group~
- view_groupCreateWizard_createSuccessful_concise=You have created a new resource group. [<a href="{0}">View Group</a>]~
- view_groupCreateWizard_createSuccessful_full=You have created a new [{0}] resource group with the name [{1}] that contains [{2}] member resources~
-
- # Resource Type / Plugin View/Datasources
- view_type_resourceTypes=Resource Types~
- view_type_parentId=Parent ID~
- view_type_typeTreeLoadFailure=Failed to load resource type tree data~
-
- #=================== Dashboard =====================
- view_dashboard_favorites_error1=Failed to load favorite Resources.~
- view_dashboardManager_error=Failed to save dashboard to server~
- view_dashboardManager_saved=Saved dashboard {0} to server~
- view_dashboardManager_success=Saved dashboard~
- view_dashboardManager_deleted=Successfully deleted dashboard {0}~
- view_dashboards_title=Dashboard~
- view_dashboards_confirm1=Are you sure you want to delete~
- view_dashboardsManager_error1=Failed to add new dashboard~
- # // dup in common
- view_dashboardsManager_inventory_title=Inventory Summary~
- view_dashboardsManager_mashup_title=RHQ News~
- view_dashboardsManager_message_title=Welcome To RHQ~
- view_dashboardsManager_message_title_details=<h1>Welcome to RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems management suite that provides extensible and integrated systems management for multiple products and platforms across a set of core features. The project is designed with layered modules that provide a flexible architecture for deployment. It delivers a core user interface that delivers audited and historical management across an entire enterprise. A Server/Agent architecture provides remote management and plugins implement all specific support for managed products.</p>\n <p>This default dashboard can be edited by clicking the (edit mode) button above.</p>~
- view_dashboardsManager_tagcloud_title=Tag Cloud~
- view_portlet_autodiscovery_config_platform_selection = Number of platforms to display~
- view_portlet_autodiscovery_help_msg = This portlet offers the ability to import newly discovered resources into the inventory for monitoring and management or to ignore them from further action.~
- view_portlet_autodiscovery_title = Discovery Queue~
- view_portlet_favoriteResources_msg=This portlet displays your favorite resources~
- view_portlet_favoriteResources_title=Favorite Resources~
- view_portlet_generic_help=No help available for this portlet~
- view_portlet_generic_unconfigured=No settings available for this portlet~
- view_portlet_graph_configure_resource_graph=The resource to graph~
- view_portlet_graph_configure_metricDefinition_graph=The metric definition id to graph~
- view_portlet_graph_configure_title=Graph Config~
- view_portlet_graph_configure_title_desc=Configuration of the graph portlet~
- view_portlet_graph_help_msg = This Portlet supports the graphing of a resource metric.~
- view_portlet_graph_help_title = Graph Portlet~
- view_portlet_graph_help_unconfigured=This graph is unconfigured, click the settings button to configure.~
- view_portlet_graph_title = Resource Graph~
- view_portlet_inventory_error1=Failed to retrieve inventory summary~
- view_portlet_mashup_config_title=MashupPorlet Configuration~
- view_portlet_mashup_config_title_desc=The configuration settings for the mashup portlet.~
- view_portlet_mashup_help=This portlet can include a web page via an HTTP request into an iframe on the dashboard.~
- view_portlet_mashup_unconfigured=Page address not yet configured, click the settings button to setup this portlet.~
- view_portlet_message_config_title=MessagePortlet Configuration~
- view_portlet_message_config_title_desc=The configuration settings for the message portlet.~
- view_portlet_message_help=This portlet can display an HTML message on the dashboard.~
- view_portlet_message_title=Message~
- view_portlet_message_unconfigured=Message not yet configured, click the settings button to setup this portlet.~
- view_portlet_operations_config_completed_maximum=Maximum number of Completed operations to display.~
- view_portlet_operations_config_completed_enable=Whether to enable completed operations results grouping for dashboard.~
- view_portlet_operations_config_scheduled_enable=Whether to enable scheduled operations results grouping for dashboard.~
- view_portlet_operations_config_scheduled_maximum=Maximum number of Scheduled operations to display.~
- view_portlet_operations_config_completed=completed operations~
- view_portlet_operations_config_show_last=show Last~
- view_portlet_operations_config_show_next=show Next~
- view_portlet_operations_config_title=OperationsPortlet Configuration~
- view_portlet_operations_config_title_desc=The configuration settings for the Operations portlet.~
- view_portlet_operations_disabled=(Results currently disabled. Change settings to enable results.~
- view_portlet_operations_help_msg=This portlet displays both operations that have occurred and are scheduled to occur.~
- view_portlet_platform_help_msg = This portlet displays information about platforms in inventory.~
- view_portlet_platform_platform_error_1 = Failed to load platform metrics~
- view_portlet_platform_title = Platforms Summary~
- view_portlet_platform_type_error_1 = Could not load type data~
- view_portlet_problem_resources_config_display_maximum=Maximum number of Problem resources to display.~
- view_portlet_problem_resources_config_display_range=Show problem resources going back this many hours.~
- view_portlet_problem_resources_config_display_range2 = From {0} to {1}~
- view_portlet_problem_resources_config_problem_label=problem resources on dashboard.~
- view_portlet_problem_resources_config_title=ProblemResourcesPortlet Configuration~
- view_portlet_problem_resources_config_title_desc=The configuration settings for the Problem resources portlet.~
- view_portlet_problem_resources_help=This portlet displays resources that have reported alerts or Down availability.~
- view_portlet_problem_resources_title=Has Alerts or Currently Unavailable~
- view_portlet_recentAlerts_config_members=Select Members~
- view_portlet_recentAlerts_config_priority_label = priority Alerts,~
- view_portlet_recentAlerts_config_when=within the past~
- view_portlet_recentAlerts_help_msg = Displays recent alerts fired on resources visible to the current user login.~
- # // dup in common
- view_portlet_recentAlerts_title = Recent Alerts~
- view_portlet_recentlyAdded_approved_platforms=recently approved platforms on dashboard.~
- view_portlet_recentlyAdded_error1=Failed to load recently added resources~
- view_portlet_recentlyAdded_help_msg=This portlet displays resources that have recently been imported into the inventory.~
- view_portlet_recentlyAdded_title =Recently Added Portlet~
- view_portlet_tagCloud_help=portlet displays the relative tag counts in the system visible to the current user.~
- view_portlet_tagCloud_title=TagCloud~
-
-
- #=================== Inventory =====================
- view_inventory_adq = Discovery Queue~
- view_inventory_sectionHelp = From this section, newly discovered Resources, inventoried Resources, and Groups can be viewed and managed.~
- view_inventory_cannotGetGlobalPerms = Could not determine global permissions - assuming none.~
- view_inventory_problemGroups=Problem Groups~
- view_inventory_collectionInterval=Collection Interval~
- view_inventory_mixed=mixed~
- view_inventory_downServers=Down Servers~
- view_inventory_groups = Groups~
- view_inventory_allGroups = All Groups~
- view_inventory_allResources = All Resources~
- view_inventory_platforms = Platforms~
- view_inventory_servers = Servers~
- view_inventory_services = Services~
- view_inventory_dynagroupDefs = Dynagroup Definitions~
- view_metric_traits=Traits~
- view_metric_viewTraitHistory=Value History for Trait [{0}]~
- view_inventory_eventHistory_groupEventHistory=Group Event History~
- view_inventory_eventHistory_resourceEventHistory=Resource Event History~
- view_inventory_eventHistory_sourceFilter=Source Filter~
- view_inventory_eventHistory_detailsFilter=Details Filter~
- view_inventory_eventHistory_severityFilter=Severity Filter~
- view_inventory_eventHistory_timestamp=Timestamp~
- view_inventory_eventHistory_severity=Severity~
- view_inventory_eventHistory_details=Details~
- view_inventory_eventHistory_sourceLocation=Source Location~
- view_inventory_eventHistory_deleteSuccessful=You have successfully deleted [{0}] events for [{1}]~
- view_inventory_eventHistory_deleteFailed=Failed to deleted selected events for [{0}]~
- view_inventory_eventHistory_purgeSuccessful=You have successfully purged [{0}] events for [{1}]~
- view_inventory_eventHistory_purgeFailed=Failed to purge events for [{0}]~
- view_inventory_eventDetails_loadFailed=An error occurred loading the event details~
- view_inventory_groups_resourceGroups=Resource Groups~
- view_inventory_groups_children=Children~
- view_inventory_groups_descendants=Descendants~
- view_inventory_groups_deleteSuccessful=You have successfully deleted the selected resource groups~
- view_inventory_groups_deleteFailed=Failed to delete the selected resource groups~
- view_inventory_groups_loadFailed=Failed to load group composite data~
- view_inventory_resource_loadFailed=Resource with id [{0}] does not exist or is not accessible~
- view_inventory_resources_deleteConfirm=Are you sure you want to delete the selected resources?~
- view_inventory_resources_deleteSuccessful=You have successfully deleted the selected resources~
- view_inventory_resources_deleteFailed=Failed to delete the selected resources~
- view_inventory_resources_loadFailed=Failed to load resource composite data~
- view_inventory_resources_title=Member Resources~
- view_inventory_resources_title_children=Child Resources~
- view_inventory_resources_title_members=Member Resources~
- view_resource_monitor_availability_loadFailed=Failed to load availability history~
- view_resource_monitor_graphs_noneAvailable=No graphs available~
- view_resource_monitor_graphs_loadFailed=Failed to load graph data~
- view_resource_monitor_graphs_lookupFailed=Failed to find resource for graph~
- view_resource_monitor_graph_instructions=Point your mouse to a data point on the chart~
- view_resource_monitor_graph_live_tooltip=Click for a live graph of current values~
- view_resource_monitor_detailed_graph_label=Detailed Graph~
- view_resource_monitor_calltime_title=Call Time Data~
- view_resource_monitor_calltime_destination=Call Destination~
- view_resource_monitor_calltime_count=Count~
- view_resource_monitor_calltime_minimum=Minimum~
- view_resource_monitor_calltime_average=Average~
- view_resource_monitor_calltime_maximum=Maximum~
- view_resource_monitor_calltime_total=Total~
- view_resource_monitor_calltime_loadFailed=Could not load call time data~
- view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
- view_resource_monitor_calltime_editFailed=Call time data can not be edited~
- view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
- view_tree_common_loadFailed_generic=Failed to load data for tree~
- view_tree_common_loadFailed_root=Failed to load root for tree~
- view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
- view_tree_common_loadFailed_children=Failed to load children for node~
- view_tree_common_loadFailed_selection=Failed to select this node~
- view_tree_common_loadFailed_node=Failed to load data for this node~
- view_tree_common_loadFailed_create=Failed to create view for this node~
- view_tree_common_loadFailed_update=Failed to update view for this node~
- view_tree_common_contextMenu_type_name_label=Type: {0}
- view_tree_common_contextMenu_pluginConfiguration=Plugin Configuration~
- view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
- view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
- view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource Configuration~
- view_tree_common_contextMenu_operations=Operations~
- view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running operations~
- view_tree_common_contextMenu_measurements=Measurements~
- view_tree_common_contextMenu_addChartToDashboard=Add chart to dashboard [{0}]~
- view_tree_common_contextMenu_chart=Chart~
- view_tree_common_contextMenu_saveChartToDashboardSuccessful=You have saved dashboard [{0}]~
- view_tree_common_contextMenu_saveChartToDashboardFailure=Failed to save the dashboard~
- view_tree_common_contextMenu_loadFailed_dashboard=Failed to load user dashboards
- view_tree_common_contextMenu_loadFailed_manualAddChildren=Failed to load platform manual add children~
- view_tabs_common_summary=Summary~
- view_tabs_common_overview=Overview~
- view_tabs_common_dashboard=Dashboard~
- view_tabs_common_timeline=Timeline~
- view_tabs_common_monitoring=Monitoring~
- view_tabs_common_graphs=Graphs~
- view_tabs_common_tables=Tables~
- view_tabs_common_traits=Traits~
- view_tabs_common_availability=Availability~
- view_tabs_common_schedules=Schedules~
- view_tabs_common_calltime=Calltime~
- view_tabs_common_inventory=Inventory~
- view_tabs_common_groups=Groups~
- view_tabs_common_group_membership=Group Membership~
- view_tabs_common_members=Members~
- view_tabs_common_child_resources=Child Resources~
- view_tabs_common_child_history=Child History~
- view_tabs_common_connectionSettings=Connection Settings~
- view_tabs_common_connectionSettingsHistory=Connection Settings History~
- view_tabs_common_operations=Operations~
- view_tabs_common_history=History~
- view_tabs_common_scheduled=Scheduled~
- view_tabs_common_alerts=Alerts~
- view_tabs_common_definitions=Definitions~
- view_tabs_common_current=Current~
- view_tabs_common_events=Events~
- view_tabs_common_configuration=Configuration~
- view_tabs_common_content=Content~
- view_tabs_common_deployed=Deployed~
- view_tabs_common_new=New~
- view_tabs_common_subscriptions=Subscriptions~
- view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
- view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
- view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
- view_titleBar_common_clickToRemoveFav=Click to remove this as a favorite~
- view_titleBar_common_clickToAddFav=Click to add this as a favorite~
- view_titleBar_common_removedFav=You have removed [{0}] as one of your favorites~
- view_titleBar_common_addedFav=You have added [{0}] as a favorite~
- view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your favorites~
- view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
- view_dynagroup_expressionSet=Expression Set~
- view_dynagroup_recalculationInterval=Recalculation Interval~
- view_dynagroup_lastCalculationTime=Last Calculation Time~
- view_dynagroup_nextCalculationTime=Next Calculation Time~
- view_dynagroup_definitionCreated=You have successfully created a group definition named [{0}]~
- view_dynagroup_definitionLoadFailure=Failed to load group definitions~
- view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
- view_dynagroup_saveSuccessful=You have successfully saved the group definition named [{0}]~
- view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
- view_dynagroup_singleSaveFailure=An error occurred - there should have been one created, but instead there were [{0}] created~
- view_dynagroup_saveAndRecalculate=Save & Recalculate~
- view_dynagroup_recalculate=Recalculate~
- view_dynagroup_recalcSuccessful=You have successfully recalculated this group definition~
- view_dynagroup_recalcFailure=Failed to recalculated this group definition~
- view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group definitions~
- view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group definitions~
- view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group definitions~
- view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
- view_dynagroup_children=DynaGroup Children~
- view_dynagroup_newGroupDefinition=New Group Definition~
- view_dynagroup_editing=Editing [{0}]~
- view_dynagroup_expression=Expression~
- view_dynagroup_recursive=Recursive~
- view_dynagroup_loadDefinitionFailure=Failed to load group definition [{0}]~
- view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
- view_dynagroup_permUnknown=Could not determine if you have the proper permissions - access is denied~
- view_dynagroup_permDenied=You do not have permission to view group definitions~
- view_dynagroup_definitions=DynaGroup Definitions~
- view_group_membership_saveFailure=Failed to update membership of group [{0}]~
- view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
- view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
- view_group_resConfig_edit_noperm=You do not have permission to edit this group configuration~
- view_group_resConfig_edit_saveInitiated_concise=The group configuration updates have been initiated~
- view_group_resConfig_edit_saveInitiated_full=The group configuration updates have been initiated for the [{0}] compatible group named [{1}]~
- view_group_resConfig_edit_saveFailure=Failed to initiate group configuration update for [{0}] compatible group named [{1}]~
- view_group_resConfig_edit_valid=All configuration properties have valid values, so the configuration can now be saved~
- view_group_resConfig_edit_invalid=The following configuration properties have invalid values and must be corrected before the configuration can be saved: [{0}]~
- view_group_pluginConfig_view_noperm=You do not have permissions to see the connection settings~
- view_group_pluginConfig_view_groupProperties=Group Properties~
- view_group_pluginConfig_table_title=Group Connection Settings History~
- view_group_pluginConfig_table_statusDetails=Status Details~
- view_group_pluginConfig_table_viewSettings=View Settings~
- view_group_pluginConfig_table_viewMemberHistory=View Member History~
- view_group_pluginConfig_table_deleteSuccessful=You have deleted [{0}] history items~
- view_group_pluginConfig_table_deleteFailure=Failed to delete group plugin config history~
- view_group_pluginConfig_table_msg1=View Member History for status of each individual resource~
- view_group_pluginConfig_table_statusSuccess=This group configuration update was successful~
- view_group_pluginConfig_table_statusInprogress=This group configuration update is still in progress~
- view_group_pluginConfig_table_statusNochange=No changes were made to this group configuration~
- view_group_pluginConfig_table_statusFailure=This group configuration update failed~
- view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
- view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
- view_group_pluginConfig_members_statusDetails=Status Details~
- view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
- view_group_pluginConfig_members_statusInprogress=This configuration update is still in progress~
- view_group_pluginConfig_members_statusNochange=No changes were made to this configuration~
- view_group_pluginConfig_members_statusFailure=This configuration update failed for an unknown reason~
- view_group_pluginConfig_members_fetchFailure=Failed to get plugin config update history for members of group [{0}]~
- view_group_pluginConfig_edit_currentGroupProperties=Current Group Properties~
- view_group_pluginConfig_edit_saveTooltip=Update the connection settings of all group members~
- view_group_pluginConfig_edit_noperm=You do not have permission to edit this group connection settings~
- view_group_pluginConfig_edit_saveInitiated_concise=The group connection setting updates have been initiated~
- view_group_pluginConfig_edit_saveInitiated_full=The group connection setting updates have been initiated for the [{0}] compatible group named [{1}]~
- view_group_pluginConfig_edit_saveFailure=Failed to initiate group connection setting update for [{0}] compatible group named [{1}]~
- view_group_pluginConfig_edit_valid=All connection setting properties have valid values, so the connection settings can now be saved~
- view_group_pluginConfig_edit_invalid=The following connection setting properties have invalid values and must be corrected before the connection settings can be saved: [{0}]~
- view_group_meas_schedules_title=Group Metric Collection Schedules~
- view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with ID [{0}] - could not change from [{1}] to [{2}]~
- view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group with ID [{0}] from [{1}] to [{2}]~
- view_group_summary_memberType=Member Type~
- view_group_summary_memberCount=Member Count~
- view_group_summary_dynamic=Dynamic~
- view_group_summary_recursive=Recursive~
- view_group_summary_groupDefinition=Group Definition~
- view_group_summary_mixed=Mixed~
- view_group_summary_descUpdateFailure=Failed to change the description of the resource group with ID [{0}]~
- view_group_summary_descUpdateSuccessful=You have changed the description of this resource group~
- view_group_summary_dynamicNote=Dynamic group names and descriptions are managed, and therefore are not editable~
-
- # Connection Settings Details
- #------------------------------------------
- view_connectionSettingsDetails_noPermission = You do not have permission to edit this Resource''s connection settings.~
- view_connectionSettingsDetails_error_updateFailure = Failed to update connection settings.~
- view_connectionSettingsDetails_messageConcise_updateSuccess = Connection settings updated.~
- view_connectionSettingsDetails_messageDetailed_updateSuccess = Connection settings updated for Resource [{0}].~
- view_connectionSettingsDetails_allPropertiesValid = All connection settings have valid values, so the settings can now be saved.~
- view_connectionSettingsDetails_somePropertiesInvalid = The following connection settings have invalid values: {0}. The values must be corrected before the settings can be saved.~
-
- # Resource Resource Groups
- #-----------------------------------------
- view_resourceResourceGroupList_error_fetchFailure = Failed to fetch Resource''s groups.~
- view_resourceResourceGroupList_error_updateFailure = Failed to update assigned Resource groups.~
- view_resourceResourceGroupList_message_updateSuccess = Group membership updated for [{0}].
-
- # Configuration Details
- #-------------------------------
- view_configurationDetails_noPermission = You do not have permission to edit this Resource''s configuration.~
- view_configurationDetails_error_updateFailure = Failed to update configuration.~
- view_configurationDetails_messageConcise = Configuration updated.~
- view_configurationDetails_messageDetailed = Configuration updated for Resource [{0}].~
- view_configurationDetails_allPropertiesValid = All configuration properties have valid values, so the configuration can now be saved.~
- view_configurationDetails_somePropertiesInvalid = The following configuration properties have invalid values: {0}. The values must be corrected before the configuration can be saved.~
-
- # Configuration History List
- view_configurationHistoryList_title = Configuration History~
- view_configurationHistoryList_itemNamePlural = configuration history items
-
- # Configuration History Details
- #------------------------------------------
- view_configurationHistoryDetails_dialogTitle = Configuration Details~
- view_configurationHistoryDetails_error_loadFailure = Unable to load configuration history.~
-
- # Operation History List
- #---------------------------------
- view_operationHistoryList_title = Operation History~
- view_operationHistoryList_button_runOperation = Run Operation~
-
- # Operation History Details
- #--------------------------------------
- view_operationHistoryDetails_error_fetchFailure = Failure loading operation history.~
-
- # Operation Create Wizard
- #-------------------------------------
- view_operationCreateWizard_title = Operation Wizard~
- view_operationCreateWizard_header = Execute {0} on {1}~
- view_operationCreateWizard_button_execute = Execute~
- view_operationCreateWizard_button_executeImmediately = Execute Immediately~
- view_operationCreateWizard_error_scheduleOperationFailure = Failed to schedule operation execution.~
- view_operationCreateWizard_message_scheduleOperationSuccess = Schedule operation [{0}] on Resource [{1}] with cron string [{2}].~
- view_operationCreateWizard_parametersStep_name = Operation Parameters~
- view_operationCreateWizard_parametersStep_noParameters = This operation does not take any parameters.~
- view_operationCreateWizard_schedulingStep_name = Schedule~
- view_operationCreateWizard_schedulingStep_label_start = Start~
- view_operationCreateWizard_schedulingStep_label_schedule = Schedule~
- view_operationCreateWizard_schedulingStep_label_recurrence = Recurrence~
- view_operationCreateWizard_schedulingStep_label_runAt = Run At~
- view_operationCreateWizard_schedulingStep_label_nMinutes = n Minutes~
- view_operationCreateWizard_schedulingStep_label_hourly = Hourly~
- view_operationCreateWizard_schedulingStep_label_daily = Daily~
- view_operationCreateWizard_schedulingStep_label_weekly = Weekly~
- view_operationCreateWizard_schedulingStep_label_monthly = Monthly~
- view_operationCreateWizard_schedulingStep_label_timePeriod = Time Period~
- view_operationCreateWizard_schedulingStep_label_startDate = Start Date~
- view_operationCreateWizard_schedulingStep_label_recurrenceEnd = Recurrence End~
- view_operationCreateWizard_schedulingStep_label_endDate = End Date~
- view_operationCreateWizard_schedulingStep_label_willExecuteImmediately = Will execute immediately~
- view_operationCreateWizard_schedulingStep_label_onceAt = Once At~
- view_operationCreateWizard_schedulingStep_label_date = Date~
- view_operationCreateWizard_schedulingStep_label_time = Time~
- view_operationCreateWizard_schedulingStep_label_everyNMinutes = Every n Minutes~
- view_operationCreateWizard_schedulingStep_label_minuteInterval = Minute Interval~
- view_operationCreateWizard_schedulingStep_label_hourlyAt = Hourly At~
- view_operationCreateWizard_schedulingStep_label_minuteOfHour = Minute of Hour~
- view_operationCreateWizard_schedulingStep_label_dailyAt = Daily At~
- view_operationCreateWizard_schedulingStep_label_timeOfDay = Time of Day~
- view_operationCreateWizard_schedulingStep_label_weeklyOn = Weekly On~
- view_operationCreateWizard_schedulingStep_label_dayOfWeek = Day of Week~
- view_operationCreateWizard_schedulingStep_label_monthlyOn = Monthly On~
- view_operationCreateWizard_schedulingStep_label_dayOfMonth = Day of Month~
-
- # Summary Overview
- #-----------------------------
- view_summaryOverview_header_detectedErrors = Detected Errors~
- view_summaryOverview_tooltip_detectedErrors = Click on the rows to see the error details.~
- view_summaryOverview_title_errorDetailsWindow = Error Details~
-
- # Summary Overview Form
- #-------------------------------------
- view_summaryOverviewForm_field_type = Type~
- view_summaryOverviewForm_field_name = Name~
- view_summaryOverviewForm_field_description = Description~
- view_summaryOverviewForm_field_location = Location~
- view_summaryOverviewForm_field_version = Version~
- view_summaryOverviewForm_field_parent = Parent~
- view_summaryOverviewForm_error_traitsLoadFailure = Failed to load traits for {0}.~
- view_summaryOverviewForm_label_plugin = Plugin:
- view_summaryOverviewForm_label_type = Type:
- view_summaryOverviewForm_header_summary = Summary~
- view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].~
- view_summaryOverviewForm_message_nameChangeSuccess = "Name of Resource with id {0} was changed from [{1}] to [{2}].~
- view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].~
- view_summaryOverviewForm_message_descriptionChangeSuccess = "Description of Resource with id {0} was changed from [{1}] to [{2}].~
- view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].~
- view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource with id {0} was changed from [{1}] to [{2}].~
-
-
- #==================== Reports ======================
-
- view_reportsTop_title = Reports~
- view_reportsTop_description = This section provides access to global reports.~
- view_reports_platforms = Cpu And Memory Utilization~
- view_reports_subsystems = Subsystems~
-
- view_measurementOob_title = Suspect Metrics~
-
- view_tagCloud_title = Tag Cloud~
- view_tagCloud_error_fetchFailure = Failed to load tags.~
- view_tagCloud_error_tagUsedCount = Tag used {0} times.~
-
- view_taggedResources_title = Tagged Resources~
-
-
- #===================== Test =======================
- view_testTop_title = Test~
- view_testTop_description = This section contains pages for testing various GUI components.~
-
- #=================== Top Level =====================
-
- # About Box
- #----------
- view_aboutBox_allRightsReserved = All Rights Reserved.~
- view_aboutBox_buildNumber = Build Number:~
- view_aboutBox_failedToLoad = Failed to load product information.~
- view_aboutBox_homepage = Homepage~
- view_aboutBox_jbossByRedHat = JBoss by Red Hat~
- view_aboutBox_title = About {0}~
- view_aboutBox_version = Version:~
-
- # CoreGUI
- #--------------
- view_core_error_1 = New Alerts lookup failed~
- view_core_loggedInAs = Logged in as {0}~
- view_core_loggedOut = Logged out~
- view_core_recentAlerts = [{0}] recent alerts~
- view_core_uncaught = Globally uncaught exception~
-
- # Login
- #--------------
- view_login_invalidEmail = Invalid e-mail address~
- view_login_login = Login~
- view_login_logout = Logout~
- view_login_noBackend = The backend datasource is unavailable.~
- view_login_noLdap = Note: Optional retrieval of ldap details unsuccessful. Manual entry is required.~
- view_login_noUser = The username or password provided does not match our records.~
- view_login_prompt = Please Login~
- view_login_registerLater = (Logout - Complete registration later.)~
- view_login_registerLdapSuccess = Succesfully registered the new LDAP User.~
- view_login_registerUser = Register User~
- view_login_welcome = Welcome to JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
-
-
- # Menu Bar
- #--------------
- view_menuBar_help = Help~
- view_menuBar_logout = Logout~
-
- # Search Bar, GUI
- #-----------------
- view_searchBar_search = Search~
- view_searchBar_resources = Resources~
- view_searchBar_resourceGroups = Resource Groups~
- # TODO: i18n pluralization
- view_searchBar_welcomeMessage = search for {0}s~
- view_searchBar_defaultPattern = name your pattern~
- view_searchBar_error_selectSavedSearch = ''Error selecting saved search''~
-
- view_searchGUI_loginStatus = Unable to determine login status, check server status~
-
- # Message Center
- #--------------------------
- view_messageCenter_button_messages = Messages~
- view_messageCenter_noRecentMessages = No Recent Messages~
- view_messageCenter_messageTitle = Message Center~
- view_messageCenter_messageSeverity = Severity~
- view_messageCenter_messageTime = Time~
- view_messageCenter_messageDetail = Detail~
+#
+# RHQ GUI i18n Messages - English
+###################################
+
+#************************************** SHARED ****************************************
+
+#=================== Common =====================
+
+#
+# Build Info
+#
+common_buildInfo_gwtVersion = ${gwt.version}~
+
+# Button Labels
+#--------------
+common_button_advanced = Advanced...~
+common_button_apply = Apply~
+common_button_cancel = Cancel~
+common_button_close = Close~
+common_button_compare = Compare~
+common_button_create_child = Create Child~
+common_button_delete = Delete~
+common_button_disable = Disable~
+common_button_enable = Enable~
+common_button_finish = Finish~
+common_button_import = Import~
+common_button_new = New~
+common_button_next = Next~
+common_button_ok = OK~
+common_button_previous = Previous~
+common_button_purgeAll=Purge All~
+common_button_refresh = "Refresh"~
+common_button_reset = Reset~
+common_button_save = Save~
+common_button_search = Search~
+common_button_showDetails = Show Details...~
+common_button_uninventory = Uninventory~
+
+# Common Labels
+#------------------------
+common_label_all = ALL~
+common_label_all_resources = all resources~
+common_label_day=day~
+common_label_days=days~
+common_label_hour=hour~
+common_label_hours=hours~
+common_label_item=item~
+common_label_items=items~
+common_label_milliseconds=milliseconds~
+common_label_minutes=minutes~
+common_label_month=month~
+common_label_none = none~
+common_label_search=Search~
+common_label_scheduled_operations=scheduled operations~
+common_label_seconds=seconds~
+common_label_selected_resources = selected resources~
+common_label_unlimited = unlimited~
+common_label_week=week~
+
+# Common Titles
+#--------------
+common_title_add_column=Add Column~
+common_title_add_portlet=Add Portlet~
+common_title_alert_range=Alert Range~
+common_title_availability = Availability~
+common_title_average_metrics=Average Metrics per Minute~
+common_title_available_resources=Available Resources~
+common_title_background=Background~
+common_title_category = Category~
+common_title_columns=Columns~
+common_title_configuration = Configuration~
+common_title_compatibleGroups = Compatible Groups~
+common_title_compatibleGroups_total=Compatible Group Total~
+common_title_custom=Custom~
+common_title_dashboard_name=Dashboard Name~
+common_title_dateCreated=Date Created~
+common_title_default=Default~
+common_title_description=Description~
+common_title_display=Display~
+common_title_display_name=Display Name~
+common_title_duration=Duration~
+common_title_edit_mode=Edit Mode~
+common_title_enabled=Enabled?~
+common_title_end = End~
+common_title_favorites=Favorites~
+common_title_generalProp = General Properties~
+common_title_group_def_total=Group Definition Total~
+common_title_icon = icon~
+common_title_id = ID~
+common_title_id_parent = Parent ID~
+common_title_host = Host~
+common_title_inventory = Inventory~
+common_title_inventorySummary = Inventory Summary~
+common_title_lastUpdated=Last Updated~
+common_title_lastUpdatedBy=Last Updated By~
+common_title_mashup=Mashup~
+common_title_metric = Metric~
+common_title_mixedGroups = Mixed Groups~
+common_title_mixedGroups_total=Mixed Group Total~
+common_title_name = Name~
+common_title_new_dashboard=New Dashboard~
+common_title_numeric_type=Numeric Type~
+common_title_operations=Operations~
+common_title_operations_range=Operation Range~
+common_title_over=Over~
+common_title_password = Password~
+common_title_path = Path~
+common_title_platform_total=Platform Total~
+common_title_plugin = Plugin~
+common_title_port = Port~
+common_title_providers=Providers~
+common_title_recently_added = Recently Added Resources~
+common_title_recent_alerts = Recent Alerts~
+common_title_recent_operations=Recent Operations~
+common_title_remove_column=Remove Column~
+common_title_repositories=Repositories~
+common_title_resource = Resource~
+common_title_resource_group = Resource Group~
+common_title_resource_inventory=Resource Inventory~
+common_title_resource_id=Resource ID~
+common_title_resource_name=Resource Name~
+common_title_search = Search~
+common_title_scheduled_operations=Scheduled Operations~
+common_title_selected_resources=Selected Resources~
+common_title_server_total=Server Total~
+common_title_service_total=Service Total~
+common_title_settings=Settings~
+common_title_show=Show~
+common_title_start = Start~
+common_title_status=Status~
+common_title_summary=Summary~
+common_title_tag_cloud=Tag Cloud~
+common_title_the=The
+common_title_summary_counts=Summary Counts~
+common_title_timestamp =Date/Time~
+common_title_total=Total~
+common_title_type = Type~
+common_title_units = Units~
+common_title_user=User~
+common_title_value = Value~
+common_title_version = Version~
+common_title_view_mode=View Mode~
+common_title_web_address=Web Address~
+common_title_welcome=Welcome~
+
+# Common Messages
+#--------------
+common_msg_areYouSure = Are You Sure?~
+common_msg_deleteConfirm = Are you sure you want to delete the # selected {0}?~
+common_msg_emphasizedNotePrefix = NOTE:~
+common_msg_loading = Loading...~
+common_msg_noItemsToShow=No items to show~
+
+# Common Values
+#--------------
+common_val_no = No~
+common_val_no_lower = no~
+common_val_yes = Yes~
+common_val_yes_lower = yes~
+common_val_never = Never~
+common_val_na = N/A~
+common_val_none = None~
+
+# Common Calendar
+#--------------
+common_calendar_january_short=jan~
+common_calendar_february_short=feb~
+common_calendar_march_short=mar~
+common_calendar_april_short=apr~
+common_calendar_may_short=may~
+common_calendar_june_short=jun~
+common_calendar_july_short=jul~
+common_calendar_august_short=aug~
+common_calendar_september_short=sept~
+common_calendar_october_short=oct~
+common_calendar_november_short=nov~
+common_calendar_december_short=dec~
+
+
+#=================== Widgets =====================
+
+# Record Editor
+#--------------
+widget_recordEditor_title_view = View {0} [{1}]~
+widget_recordEditor_title_edit = Edit {0} [{1}]~
+widget_recordEditor_title_new = Create New {0}~
+# // dup in common
+widget_recordEditor_label_loading = Loading...~
+widget_recordEditor_error_invalidViewPath = Invalid view path: [{0}]~
+widget_recordEditor_error_noRecords = No records were returned - expected exactly one.~
+widget_recordEditor_error_multipleRecords = Multiple records were returned - expected exactly one.~
+widget_recordEditor_info_recordCreatedConcise = {0} created.~
+widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] created.~
+widget_recordEditor_info_recordUpdatedConcise = {0} updated.~
+widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] updated.~
+widget_recordEditor_info_recordsDeletedConcise = {0} {1} deleted.~
+widget_recordEditor_info_recordsDeletedDetailed = {0} {1} deleted: {2}.~
+widget_recordEditor_error_unsupportedOperationType = Unsupported operation type: [{0}]~
+
+# Resource Selector/Picker
+#--------------------------------
+widget_resourceSelector_selectResource=Select a Resource~
+widget_resourceSelector_pleaseSelectResource=Please select a resource~
+widget_resourceSelector_selectMultipleResources=Select Resources~
+widget_resourceSelector_pleaseSelectMultipleResource=Please select one or more resources~
+widget_resourceSelector_groupCategory=Group Category~
+
+# Resource Factory Wizard
+#--------------------------------
+widget_resourceFactoryWizard_uploadInProgress=The upload is in progress... This can take several minutes to complete for large distribution files.~
+widget_resourceFactoryWizard_uploadFileStepName=Upload Resource Content File~
+widget_resourceFactoryWizard_uploadFailure=Failed to upload file~
+widget_resourceFactoryWizard_editConfigStepName=Edit Configuration~
+widget_resourceFactoryWizard_infoStepName=Resource Information~
+widget_resourceFactoryWizard_namePrompt=New Resource Name~
+widget_resourceFactoryWizard_templatePrompt=Connection Settings Template~
+widget_resourceFactoryWizard_contentTemplatePrompt=Deployment Time Configuration Templates~
+widget_resourceFactoryWizard_configTemplatePrompt=Resource Configuration Templates~
+widget_resourceFactoryWizard_archPrompt=Package Architecture~
+widget_resourceFactoryWizard_versionPrompt=Package Version~
+widget_resourceFactoryWizard_importWizardWindowTitle=Resource Import Wizard~
+widget_resourceFactoryWizard_importWizardTitle=Import Resource of Type [{0}]~
+widget_resourceFactoryWizard_importFailure=Failed to manually import resource~
+widget_resourceFactoryWizard_importSubmitted=A request to import a new resource of type [{0}] has been submitted~
+widget_resourceFactoryWizard_createWizardWindowTitle=Resource Create Wizard~
+widget_resourceFactoryWizard_createWizardTitle=Create New Resource of Type [{0}]~
+widget_resourceFactoryWizard_execute1=Failed to create a new resource - there is no package version~
+widget_resourceFactoryWizard_execute2=Failed to create a new resource~
+widget_resourceFactoryWizard_createSubmitType=A request to create a resource of type [{0}] has been submitted successfully.~
+widget_resourceFactoryWizard_createSubmit=A request to create a resource with the name of [{0}] has been submitted successfully.~
+widget_resourceFactoryWizard_failedToGetType=Failed to get backing package type for new resource~
+widget_resourceFactoryWizard_failedToDeleteVersion=Failed to delete package version while canceling a resource create~
+
+#===================== Utils ======================
+
+# Disambiguation Report Decorator
+#-------------------------------------------------
+util_disambiguationReportDecorator_pluginSuffix = ({0} plugin)~
+
+# Monitoring Request Callback
+#------------------------------------------
+util_monitoringRequestCallback_error_checkServerStatusFailure = Unable to determine login status - check Server status.~
+
+# RPC Manager
+#----------------------
+util_rpcManager_activeRequests = {0} Active Requests~
+
+# User Permissions Manager
+#--------------------------
+util_userPerm_loadFailGlobal = Failed to load your global permissions - none granted.~
+util_userPerm_loadFailGroup = Failed to load your permissions for Resource Group with id [{0}] - none granted.~
+util_userPerm_loadFailResource = Failed to load your permissions for Resource with id [{0}] - none granted.~
+
+# User Session Manager
+#--------------------------
+util_userSession_loadFailSubject = UserSessionManager: Failed to load user Subject~
+util_userSession_logoutFail = Failed to logout.~
+
+# Error Handler
+#--------------------
+util_errorHandler_nullException = exception was null~
+
+# Widgets Field
+#---------------------
+util_widgetsField_unlimited = Unlimited~
+
+
+#================== DataSources ====================
+
+# RPC (abstract)
+#-----------------------
+dataSource_rpc_error_transformRequestFailure = Failure in datasource while processing {0} request.~
+dataSource_rpc_error_unsupportedArrayFilterType = No support for passing array filters of type {0}.~
+dataSource_rpc_error_unsupportedEnumType = Please add an appropriate code block for enum {0} to RPCDataSource.getEnumArray(Class)~
+dataSource_rpc_yes = yes~
+dataSource_rpc_no = no~
+
+# ContentRepositoryTree
+#------
+dataSource_ContentRepoTree_error_load = Error loading repositories~
+dataSource_ContentRepoTree_field_parentId = Parent ID~
+
+
+# Users
+#------
+###### dup in common
+dataSource_users_field_id = ID~
+dataSource_users_field_name = User Name~
+dataSource_users_field_ldap = LDAP Login?~
+dataSource_users_field_password = Password`
+dataSource_users_field_passwordVerify = Verify Password~
+dataSource_users_field_firstName = First Name~
+dataSource_users_field_lastName = Last Name~
+dataSource_users_field_emailAddress = Email Address~
+dataSource_users_field_phoneNumber = Phone Number~
+dataSource_users_field_department = Department~
+dataSource_users_field_factive = Login Enabled?~
+
+# Platforms
+#------
+dataSource_platforms_field_cpu=CPU~
+dataSource_platforms_field_memory=Memory~
+dataSource_platforms_field_swap=Swap~
+
+# Traits
+#------
+dataSource_traits_field_primaryKey=Primary Key~
+dataSource_traits_field_definitionID=Definition ID~
+dataSource_traits_field_lastChanged=Last Changed~
+dataSource_traits_field_trait=Trait~
+dataSource_traits_group_field_groupId=Group ID~
+dataSource_traits_group_field_memberResource=Member Resource~
+
+# Measurement OOBs
+#---------------------------------
+dataSource_measurementOob_field_scheduleName = Metric~
+dataSource_measurementOob_field_resourceName = Resource~
+dataSource_measurementOob_field_parentName = Parent~
+dataSource_measurementOob_field_formattedBaseband = Band~
+dataSource_measurementOob_field_formattedOutlier = Outlier~
+dataSource_measurementOob_field_factor = Out of Range Factor (%)~
+dataSource_measurementOob_error_fetchFailure = Failed to load measurement OOB information~
+
+# Measurements
+#----------------------
+dataSource_definitions_loadFailed = Failed to load metric definitions~
+dataSource_schedules_loadFailed = Failed to load metric schedules~
+dataSource_schedules_field_resourceGroupId = Group ID~
+
+dataSource_schedules_enableFailure_resource=Failed to enable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
+dataSource_schedules_enableFailure_group=Failed to enable the collection of [{0}] metrics for group with ID [{1}]. The metrics were: [{2}]~
+
+dataSource_schedules_enableSuccessful_concise=You have enabled the collection of [{0}] measurements~
+dataSource_schedules_enableSuccessful_full_resource=You have enabled the collection of [{0}] measurements for the resource with ID [{1}]. The enabled measurements are: [{2}]~
+dataSource_schedules_enableSuccessful_full_group=You have enabled the collection of [{0}] measurements for the resource group with ID [{1}]. The enabled measurements are: [{2}]~
+
+dataSource_schedules_disableFailure_resource=Failed to disable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
+dataSource_schedules_disableFailure_group=Failed to disable the collection of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]~
+
+dataSource_schedules_disableSuccessful_concise=You have disabled the collection of [{0}] measurements~
+dataSource_schedules_disableSuccessful_full_resource=You have disabled the collection of [{0}] measurements for the resource with ID [{1}]. The disabled measurements are: [{2}]~
+dataSource_schedules_disableSuccessful_full_group=You have disabled the collection of [{0}] measurements for the resource group with ID [{1}]. The disabled measurements are: [{2}]~
+
+dataSource_schedules_updateFailure_resource=Failed to set the collection interval of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
+dataSource_schedules_updateFailure_group=Failed to set the collection interval of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
+
+dataSource_schedules_updateSuccessful_concise=A new collection interval of [{0}] seconds has been set on [{1}] measurements~
+dataSource_schedules_updateSuccessful_full_resource=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource with ID [{2}]. The updated measurements are: [{3}]~
+dataSource_schedules_updateSuccessful_full_group=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource group with ID [{2}]. The updated measurements are: [{3}]~
+
+
+# Problem Resources
+#------------------------------
+dataSource_problemResources_field_resource = Resource~
+dataSource_problemResources_field_location = Location~
+dataSource_problemResources_field_alerts = Alerts~
+dataSource_problemResources_field_available = Current Availability~
+dataSource_problemResources_error_fetchFailure = Failed to load Resources with alerts/unavailability.~
+
+# Recent Operations
+#----------------------------
+dataSource_recentOperations_field_resource = Resource~
+dataSource_recentOperations_field_location = Location~
+dataSource_recentOperations_field_operation = Operation~
+dataSource_recentOperations_field_time = Date/Time~
+dataSource_recentOperations_field_status = Status~
+dataSource_recentOperations_error_fetchFailure = Failed to load recently completed operations.
+
+# Scheduled Operations
+#---------------------------------
+dataSource_scheduledOperations_field_resource = Resource~
+dataSource_scheduledOperations_field_location = Location~
+dataSource_scheduledOperations_field_operation = Operation~
+dataSource_scheduledOperations_field_time = Date/Time~
+dataSource_scheduledOperations_error_fetchFailure = Failed to load scheduled operations.
+
+# Operation History
+#---------------------------
+dataSource_operationHistory_error_fetchFailure = Failure loading operation histories.~
+
+# 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_error_fetchFailure = Unable to load configuration history.~
+
+# Resource Errors
+#-------------------------
+dataSource_resourceErrors_field_summary = Summary~
+dataSource_resourceErrors_field_detail = Detailed Message~
+dataSource_resourceErrors_field_errorType = Error Type~
+dataSource_resourceErrors_field_timeOccured = Time~
+dataSource_resourceErrors_error_fetchFailure = Failed to find Resource errors for Resource with id [{0}].~
+
+
+#********************************** VIEW-SPECIFIC *************************************
+
+#================= Administration ==================
+
+view_admin_administration = Administration~
+view_admin_configuration = Configuration~
+view_admin_security = Security~
+view_admin_topology = Topology~
+
+view_adminSecurity_users = Users~
+view_adminSecurity_roles = Roles~
+
+view_adminTopology_affinityGroups = Affinity Groups~
+view_adminTopology_agents = Agents~
+view_adminTopology_partitionEvents = Partition Events~
+view_adminTopology_remoteAgentInstall = Remote Agent Install~
+view_adminTopology_servers = Servers~
+
+view_adminConfig_downloads = Downloads~
+view_adminConfig_license = License~
+view_adminConfig_plugins = Plugins~
+view_adminConfig_systemSettings = System Settings~
+view_adminConfig_templates = Templates~
+
+# Administration/Security/Users/#
+#--------------------------------
+view_adminUsersDetails_dataTypeName = user~
+
+# Administration/Security/Roles/#
+#--------------------------------
+#jjj
+view_adminRoles_assignedGroups = Assigned Resource Groups~
+view_adminRoles_assignedSubjects = Assigned Subjects~
+view_adminRoles_failLdap = Failed to determine if LDAP configured - assuming no LDAP.~
+view_adminRoles_failLdapGroups = Failed to retrieve available LDAP groups - assuming no LDAP groups.~
+view_adminRoles_failLdapGroupsRole = Failed to load LDAP groups available for role.~
+view_adminRoles_globalPerms = Global Permissions~
+view_adminRoles_ldapGroups = LDAP Groups~
+view_adminRoles_ldapGroupsReadOnly = LDAP group data is read only~
+view_adminRoles_noItems = No items to show~
+view_adminRoles_noLdap = The LDAP security integration is not configured. To configure LDAP go to <a {0}>{1}</a>.~
+view_adminRoles_perms = Permissions~
+view_adminRoles_resourcePerms = Resource Permissions~
+
+
+# Administration/Topology/RemoteAgentInstall/#
+#--------------------------------
+view_remoteAgentInstall_agentStatus = Agent Status~
+view_remoteAgentInstall_agentStatusDefault = -Click Update Status Button-~
+view_remoteAgentInstall_connInfo = Connection Information~
+view_remoteAgentInstall_buttonFindAgent = Find Agent~
+view_remoteAgentInstall_error_1 = Error occurred while trying to find agent install path~
+view_remoteAgentInstall_error_2 = Could not find an agent installed when looking in common locations
+view_remoteAgentInstall_error_3 = Could not find an agent installed at or under [{0}]
+view_remoteAgentInstall_error_4 = Failed to install agent~
+view_remoteAgentInstall_error_5 = Failed to start agent~
+view_remoteAgentInstall_error_6 = Failed to stop agent~
+
+view_remoteAgentInstall_installAgent = Install Agent~
+view_remoteAgentInstall_installInfo = Agent Installation Information~
+view_remoteAgentInstall_installPath = Agent Install Path~
+view_remoteAgentInstall_owner = Owner~
+view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install.~
+view_remoteAgentInstall_promptHost = The host where the agent is or will be installed~
+view_remoteAgentInstall_promptPassword =The credentials that are used to authenticate the user on the host via SSH~
+view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not specified, the default is 22~
+view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to the host via SSH~
+view_remoteAgentInstall_result = Result~
+view_remoteAgentInstall_resultCode = ResultCode~
+view_remoteAgentInstall_startAgent = Start Agent~
+view_remoteAgentInstall_startAgentResults = Agent start results: [{0}]~
+view_remoteAgentInstall_step = Step~
+view_remoteAgentInstall_stopAgent = Stop Agent~
+view_remoteAgentInstall_stopAgentResults = Agent stop results: [{0}]~
+view_remoteAgentInstall_success = Agent installation complete~
+view_remoteAgentInstall_updateStatus = Update Status~
+
+
+# Auto Discovery Queue
+#----------------------------
+view_autoDiscoveryQ_title=Autodiscovery Queue~
+view_autoDiscoveryQ_import=Import~
+view_autoDiscoveryQ_ignore=Ignore~
+view_autoDiscoveryQ_ignored=Ignored~
+view_autoDiscoveryQ_unignore=Unignore~
+view_autoDiscoveryQ_new=New~
+view_autoDiscoveryQ_newAndIgnored=New and Ignored~
+view_autoDiscoveryQ_importFailure=Failed to import resources~
+view_autoDiscoveryQ_importSuccessful=You have successfully imported the selected resources.~
+view_autoDiscoveryQ_ignoreFailure=Failed to ignore resources~
+view_autoDiscoveryQ_ignoreSuccessful=You have successfully ignored the selected resources.~
+view_autoDiscoveryQ_unignoreFailure=Failed to unignore resources~
+view_autoDiscoveryQ_unignoreSuccessful=You have successfully unignored the selected resources.~
+view_autoDiscoveryQ_noperm=(Required manage inventory permissions missing. See Administrator to change)~
+view_autoDiscoveryQ_noItems=No items to show~
+view_autoDiscoveryQ_field_parentId=Parent ID~
+view_autoDiscoveryQ_field_name=Resource Name~
+view_autoDiscoveryQ_field_key=Resource Key~
+view_autoDiscoveryQ_field_discoveryTime=Discovery Time~
+view_autoDiscoveryQ_field_inventoryStatus=Inventory Status~
+view_autoDiscoveryQ_loadFailure=Failed to load the inventory discovery queue~
+
+#==================== Bundles ======================
+
+# some common bundle terms
+view_bundle_bundle = Bundle~
+view_bundle_bundles = Bundles~
+view_bundle_deployments=Deployments~
+view_bundle_bundleVersions=Bundle Versions~
+view_bundle_bundleVersion=Bundle Version~
+view_bundle_versions=Versions~
+view_bundle_bundleFiles=Bundle Files~
+view_bundle_destinations=Destinations~
+view_bundle_bundleDestinations=Bundle Destinations~
+view_bundle_files=Files~
+view_bundle_recipe=Recipe~
+view_bundle_bundleType=Bundle Type~
+view_bundle_deploy=Deploy~
+view_bundle_revert=Revert~
+view_bundle_latestVersion=Latest Version~
+
+# individual bundle views/wizards
+view_bundle_fileListView_fileSize=File Size~
+view_bundle_fileListView_loadFailure=Failed to load bundle file data~
+view_bundle_version_backToBundle=Back to Bundle~
+view_bundle_version_bundleVersionTagUpdateFailure=Failed to update bundle version tags~
+view_bundle_version_bundleVersionTagUpdateSuccessful=You have successfully updated the bundle version tags~
+view_bundle_version_loadFailure=Failed to load bundle version~
+view_bundle_tree_loadFailure=Failed to load bundle data~
+view_bundle_revertWizard_title=Bundle Revert~
+view_bundle_revertWizard_windowTitle=Bundle Revert Wizard~
+view_bundle_revertWizard_getInfoStep_name=Provide Revert Information~
+view_bundle_revertWizard_getInfoStep_revertDeployName=Revert Deploy Name~
+view_bundle_revertWizard_getInfoStep_revertDeployDesc=Revert Deploy Description~
+view_bundle_revertWizard_getInfoStep_revertDeployDescFull=[REVERT From]\\n{0}\\n\\n[REVERT To]\\n{1}~
+view_bundle_revertWizard_getInfoStep_cleanDeploy=Clean Deployment? (this will delete an old, existing deploy directory prior to starting the revert deployment)~
+view_bundle_revertWizard_getInfoStep_getNameFailure=Failed to get revert deployment name~
+view_bundle_revertWizard_confirmStep_name=Revert Deployment Confirmation~
+view_bundle_revertWizard_confirmStep_noLiveDeployment=No live deployment was found for the destination [{0}]~
+view_bundle_revertWizard_confirmStep_noPriorDeployment=The live deployment [{0}] cannot be reverted because there is no prior deployment for the destination [{1}]~
+view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment=Failed to find live deployment; cannot revert~
+view_bundle_revertWizard_confirmStep_liveDeployment=Live Deployment~
+view_bundle_revertWizard_confirmStep_prevDeployment=Previous Deployment~
+view_bundle_revertWizard_confirmStep_confirmation=Reverting Live Deployment to Previous Deployment. Click "Next" to continue...~
+view_bundle_revertWizard_revertStep_name=Deploy Bundle to Destination Platforms~
+view_bundle_revertWizard_revertStep_reverting=Reverting...~
+view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert deployment!~
+view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to revert the bundle deployment [{0}] from resource group [{1}]~
+view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert deployment!~
+view_bundle_list_deleteFailure=Failed to delete bundle [{0}]~
+view_bundle_list_deleteSuccessful=You deleted the bundle named [{0}]~
+view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
+view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
+view_bundle_list_versionsCount=Versions Count~
+view_bundle_list_destinationsCount=Destinations Count~
+view_bundle_list_loadWithLatestFailure=Failed to load bundle with the latest version data~
+view_bundleVersion_loadFailure=Failed to load bundle version data~
+view_bundle_list_backToAll=Back to All Bundles~
+view_bundle_list_tagUpdateFailure=Failed to update bundle tags~
+view_bundle_list_tagUpdateSuccessful=You have successfully updated the bundle tags~
+view_bundle_list_deleteConfirm=Are you sure you want to delete this bundle?~
+view_bundle_list_deleteFailure=Failed to delete the bundle [{0}]~
+view_bundle_list_deleteSuccessful=You successfully deleted the bundle named [{0}]~
+view_bundle_list_error1=Failed to load bundle to deploy [{0}]~
+view_bundle_list_error2=Failed to get a single bundle to deploy [{0}]~
+view_bundle_list_error3=Failed to load bundle~
+view_bundle_dest_group=Group~
+view_bundle_dest_created=Created~
+view_bundle_dest_deployDir=Deploy Directory~
+view_bundle_dest_lastDeployedVersion=Last Deployed Version~
+view_bundle_dest_lastDeploymentDate=Last Deployment Date~
+view_bundle_dest_lastDeploymentStatus=Last Deployment Status~
+view_bundle_dest_loadFailure=Failed to load bundle destinations~
+view_bundle_dest_loadFailureVersionInfo=Failed to load bundle destination deployed version information~
+view_bundle_dest_backToBundle=Back to Bundle~
+view_bundle_dest_tagUpdateFailure=Failed to update bundle destination tags~
+view_bundle_dest_tagUpdateSuccessful=You have successfully updated the bundle destination tags~
+view_bundle_resDeployDS_loadFailure=Failed to load bundle resource deployments~
+
+#=================== Components =====================
+
+view_configCompare_comparingConfigs = Comparing Configurations~
+view_configCompare_configCompare = Configuration Comparison~
+
+view_configEdit_addItem = Add Item to List~
+view_configEdit_confirm_1 = Are you sure you want to delete the selected properties from the set?~
+view_configEdit_confirm_2 = Are you sure you want to delete this row?~
+view_configEdit_confirm_3 = Are you sure you want to delete the [{0}] selected [{1}]?~
+view_configEdit_editRow = Edit Configuration Row~
+view_configEdit_enterPropName = Enter the name of the property to be added.~
+view_configEdit_error_1 = Configuration is not supported by this Resource.~
+view_configEdit_error_2 = Connection settings are not supported by this Resource.~
+view_configEdit_error_3 = Cannot add property named [{0}]. The property name is already used in the set.~
+view_configEdit_files = Files~
+view_configEdit_hideAll= Hide All~
+view_configEdit_jumpToSection = Jump to Section~
+view_configEdit_msg_1 = Added property [{0}] to the set.~
+view_configEdit_msg_2 = Removed properties from the set.~
+view_configEdit_msg_3 = [{0} {1}] deleted from list.~
+view_configEdit_msg_4 = Item added to list.~
+view_configEdit_properties = Properties~
+view_configEdit_tooltip_1 = Delete the selected items from the list.~
+view_configEdit_tooltip_2 = Add an item to the list.~
+
+view_groupConfigEdit_member = Member~
+view_groupConfigEdit_noListProps = List properties are not currently supported for group configurations.~
+view_groupConfigEdit_tooltip_1 = Member values differ - click icon to edit them.~
+view_groupConfigEdit_setAll = Set all values to:~
+view_groupConfigEdit_unset = Unset~
+view_groupConfigEdit_valsDiff = member values differ~
+view_groupConfigEdit_valsDiffForProp = Member Values for Property [{0}]~
+
+view_leftNav_unknownPage = Unknown page name [{0}] for section [{1}] - URL is invalid.~
+
+view_measure_nan = --no data available--~
+view_measureRange_day = 1 Day~
+view_measureRange_days = {0} Days~
+view_measureRange_hour = 1 Hour~
+view_measureRange_hours = {0} Hours~
+view_measureRange_last = Last~
+view_measureRange_minutes = {0} Minutes~
+view_measureRange_range = Range~
+view_measureRange_simple = Simple...~
+
+view_selector_assigned = Assigned {0}~
+view_selector_available = Available {0}~
+
+view_subTab_error_disabled = Cannot select disabled subTab [{0}].~
+
+view_table_totalRows = Total Rows: {0} Selected: {1}~
+view_tableSection_backButton = Back to List~
+view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
+view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
+
+view_tags_tags = Tags
+view_tags_error_1 = Failed to load Tags~
+view_tags_title = Tags:~
+view_tags_tooltip_1 = Click to remove this Tag~
+view_tags_tooltip_2 = Click to edit Tags~
+view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
+
+# File Upload (various)
+view_upload_alreadyUploaded = File has already been uploaded~
+view_upload_bundleDistFile = Distribution File~
+view_upload_error_bundleDistFile = Error uploading Bundle Distribution File~
+view_upload_error_file = Error uploading file~
+view_upload_error_fileName = Error uploading file [{0}]~
+view_upload_error_fileName_2 = Error uploading file [{0}], check for invalid file path.~
+view_upload_error_packageVersionFile = Error uploading Package Version File~
+view_upload_error_results = Error uploading file, unexpected results: [{0}]~
+view_upload_inProgress = Can not submit, upload is currently in progress~
+view_upload_prompt_1 = [{0}] File to Upload~
+view_upload_prompt_2 = File to Upload~
+view_upload_tooltip_1 = Select a file to upload, then click Upload or Next~
+view_upload_tooltip_2 = File upload had previously failed~
+view_upload_success = File successfully uploaded~
+view_upload_upload = Upload~
+view_upload_uploadFile = UploadFile~
+
+# Group Create Wizard
+view_groupCreateWizard_membersStepName=Select Members~
+view_groupCreateWizard_createStepName=Group Settings~
+view_groupCreateWizard_createStep_recursive=Recursive~
+view_groupCreateWizard_title=Create Group~
+view_groupCreateWizard_windowTitle=Create Group~
+view_groupCreateWizard_createFailure=Failed to create the resource group~
+view_groupCreateWizard_createSuccessful_concise=You have created a new resource group. [<a href="{0}">View Group</a>]~
+view_groupCreateWizard_createSuccessful_full=You have created a new [{0}] resource group with the name [{1}] that contains [{2}] member resources~
+
+# Resource Type / Plugin View/Datasources
+view_type_resourceTypes=Resource Types~
+view_type_parentId=Parent ID~
+view_type_typeTreeLoadFailure=Failed to load resource type tree data~
+
+#=================== Dashboard =====================
+view_dashboard_favorites_error1=Failed to load favorite Resources.~
+view_dashboardManager_error=Failed to save dashboard to server~
+view_dashboardManager_saved=Saved dashboard {0} to server~
+view_dashboardManager_success=Saved dashboard~
+view_dashboardManager_deleted=Successfully deleted dashboard {0}~
+view_dashboards_title=Dashboard~
+view_dashboards_confirm1=Are you sure you want to delete~
+view_dashboardsManager_error1=Failed to add new dashboard~
+# // dup in common
+view_dashboardsManager_inventory_title=Inventory Summary~
+view_dashboardsManager_mashup_title=RHQ News~
+view_dashboardsManager_message_title=Welcome To RHQ~
+view_dashboardsManager_message_title_details=<h1>Welcome to RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems management suite that provides extensible and integrated systems management for multiple products and platforms across a set of core features. The project is designed with layered modules that provide a flexible architecture for deployment. It delivers a core user interface that delivers audited and historical management across an entire enterprise. A Server/Agent architecture provides remote management and plugins implement all specific support for managed products.</p>\n <p>This default dashboard can be edited by clicking the (edit mode) button above.</p>~
+view_dashboardsManager_tagcloud_title=Tag Cloud~
+view_portlet_autodiscovery_config_platform_selection = Number of platforms to display~
+view_portlet_autodiscovery_help_msg = This portlet offers the ability to import newly discovered resources into the inventory for monitoring and management or to ignore them from further action.~
+view_portlet_autodiscovery_title = Discovery Queue~
+view_portlet_favoriteResources_msg=This portlet displays your favorite resources~
+view_portlet_favoriteResources_title=Favorite Resources~
+view_portlet_generic_help=No help available for this portlet~
+view_portlet_generic_unconfigured=No settings available for this portlet~
+view_portlet_graph_configure_resource_graph=The resource to graph~
+view_portlet_graph_configure_metricDefinition_graph=The metric definition id to graph~
+view_portlet_graph_configure_title=Graph Config~
+view_portlet_graph_configure_title_desc=Configuration of the graph portlet~
+view_portlet_graph_help_msg = This Portlet supports the graphing of a resource metric.~
+view_portlet_graph_help_title = Graph Portlet~
+view_portlet_graph_help_unconfigured=This graph is unconfigured, click the settings button to configure.~
+view_portlet_graph_title = Resource Graph~
+view_portlet_inventory_error1=Failed to retrieve inventory summary~
+view_portlet_mashup_config_title=MashupPorlet Configuration~
+view_portlet_mashup_config_title_desc=The configuration settings for the mashup portlet.~
+view_portlet_mashup_help=This portlet can include a web page via an HTTP request into an iframe on the dashboard.~
+view_portlet_mashup_unconfigured=Page address not yet configured, click the settings button to setup this portlet.~
+view_portlet_message_config_title=MessagePortlet Configuration~
+view_portlet_message_config_title_desc=The configuration settings for the message portlet.~
+view_portlet_message_help=This portlet can display an HTML message on the dashboard.~
+view_portlet_message_title=Message~
+view_portlet_message_unconfigured=Message not yet configured, click the settings button to setup this portlet.~
+view_portlet_operations_config_completed_maximum=Maximum number of Completed operations to display.~
+view_portlet_operations_config_completed_enable=Whether to enable completed operations results grouping for dashboard.~
+view_portlet_operations_config_scheduled_enable=Whether to enable scheduled operations results grouping for dashboard.~
+view_portlet_operations_config_scheduled_maximum=Maximum number of Scheduled operations to display.~
+view_portlet_operations_config_completed=completed operations~
+view_portlet_operations_config_show_last=show Last~
+view_portlet_operations_config_show_next=show Next~
+view_portlet_operations_config_title=OperationsPortlet Configuration~
+view_portlet_operations_config_title_desc=The configuration settings for the Operations portlet.~
+view_portlet_operations_disabled=(Results currently disabled. Change settings to enable results.~
+view_portlet_operations_help_msg=This portlet displays both operations that have occurred and are scheduled to occur.~
+view_portlet_platform_help_msg = This portlet displays information about platforms in inventory.~
+view_portlet_platform_platform_error_1 = Failed to load platform metrics~
+view_portlet_platform_title = Platforms Summary~
+view_portlet_platform_type_error_1 = Could not load type data~
+view_portlet_problem_resources_config_display_maximum=Maximum number of Problem resources to display.~
+view_portlet_problem_resources_config_display_range=Show problem resources going back this many hours.~
+view_portlet_problem_resources_config_display_range2 = From {0} to {1}~
+view_portlet_problem_resources_config_problem_label=problem resources on dashboard.~
+view_portlet_problem_resources_config_title=ProblemResourcesPortlet Configuration~
+view_portlet_problem_resources_config_title_desc=The configuration settings for the Problem resources portlet.~
+view_portlet_problem_resources_help=This portlet displays resources that have reported alerts or Down availability.~
+view_portlet_problem_resources_title=Has Alerts or Currently Unavailable~
+view_portlet_recentAlerts_config_members=Select Members~
+view_portlet_recentAlerts_config_priority_label = priority Alerts,~
+view_portlet_recentAlerts_config_when=within the past~
+view_portlet_recentAlerts_help_msg = Displays recent alerts fired on resources visible to the current user login.~
+# // dup in common
+view_portlet_recentAlerts_title = Recent Alerts~
+view_portlet_recentlyAdded_approved_platforms=recently approved platforms on dashboard.~
+view_portlet_recentlyAdded_error1=Failed to load recently added resources~
+view_portlet_recentlyAdded_help_msg=This portlet displays resources that have recently been imported into the inventory.~
+view_portlet_recentlyAdded_title =Recently Added Portlet~
+view_portlet_tagCloud_help=portlet displays the relative tag counts in the system visible to the current user.~
+view_portlet_tagCloud_title=TagCloud~
+
+
+#=================== Inventory =====================
+view_inventory_adq = Discovery Queue~
+view_inventory_sectionHelp = From this section, newly discovered Resources, inventoried Resources, and Groups can be viewed and managed.~
+view_inventory_cannotGetGlobalPerms = Could not determine global permissions - assuming none.~
+view_inventory_problemGroups=Problem Groups~
+view_inventory_collectionInterval=Collection Interval~
+view_inventory_mixed=mixed~
+view_inventory_downServers=Down Servers~
+view_inventory_groups = Groups~
+view_inventory_allGroups = All Groups~
+view_inventory_allResources = All Resources~
+view_inventory_platforms = Platforms~
+view_inventory_servers = Servers~
+view_inventory_services = Services~
+view_inventory_dynagroupDefs = Dynagroup Definitions~
+view_metric_traits=Traits~
+view_metric_viewTraitHistory=Value History for Trait [{0}]~
+view_inventory_eventHistory_groupEventHistory=Group Event History~
+view_inventory_eventHistory_resourceEventHistory=Resource Event History~
+view_inventory_eventHistory_sourceFilter=Source Filter~
+view_inventory_eventHistory_detailsFilter=Details Filter~
+view_inventory_eventHistory_severityFilter=Severity Filter~
+view_inventory_eventHistory_timestamp=Timestamp~
+view_inventory_eventHistory_severity=Severity~
+view_inventory_eventHistory_details=Details~
+view_inventory_eventHistory_sourceLocation=Source Location~
+view_inventory_eventHistory_deleteSuccessful=You have successfully deleted [{0}] events for [{1}]~
+view_inventory_eventHistory_deleteFailed=Failed to deleted selected events for [{0}]~
+view_inventory_eventHistory_purgeSuccessful=You have successfully purged [{0}] events for [{1}]~
+view_inventory_eventHistory_purgeFailed=Failed to purge events for [{0}]~
+view_inventory_eventDetails_loadFailed=An error occurred loading the event details~
+view_inventory_groups_resourceGroups=Resource Groups~
+view_inventory_groups_children=Children~
+view_inventory_groups_descendants=Descendants~
+view_inventory_groups_deleteSuccessful=You have successfully deleted the selected resource groups~
+view_inventory_groups_deleteFailed=Failed to delete the selected resource groups~
+view_inventory_groups_loadFailed=Failed to load group composite data~
+view_inventory_resource_loadFailed=Resource with id [{0}] does not exist or is not accessible~
+view_inventory_resources_deleteConfirm=Are you sure you want to delete the selected resources?~
+view_inventory_resources_deleteSuccessful=You have successfully deleted the selected resources~
+view_inventory_resources_deleteFailed=Failed to delete the selected resources~
+view_inventory_resources_loadFailed=Failed to load resource composite data~
+view_inventory_resources_title=Member Resources~
+view_inventory_resources_title_children=Child Resources~
+view_inventory_resources_title_members=Member Resources~
+view_resource_monitor_availability_loadFailed=Failed to load availability history~
+view_resource_monitor_graphs_noneAvailable=No graphs available~
+view_resource_monitor_graphs_loadFailed=Failed to load graph data~
+view_resource_monitor_graphs_lookupFailed=Failed to find resource for graph~
+view_resource_monitor_graph_instructions=Point your mouse to a data point on the chart~
+view_resource_monitor_graph_live_tooltip=Click for a live graph of current values~
+view_resource_monitor_detailed_graph_label=Detailed Graph~
+view_resource_monitor_calltime_title=Call Time Data~
+view_resource_monitor_calltime_destination=Call Destination~
+view_resource_monitor_calltime_count=Count~
+view_resource_monitor_calltime_minimum=Minimum~
+view_resource_monitor_calltime_average=Average~
+view_resource_monitor_calltime_maximum=Maximum~
+view_resource_monitor_calltime_total=Total~
+view_resource_monitor_calltime_loadFailed=Could not load call time data~
+view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
+view_resource_monitor_calltime_editFailed=Call time data can not be edited~
+view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
+view_tree_common_loadFailed_generic=Failed to load data for tree~
+view_tree_common_loadFailed_root=Failed to load root for tree~
+view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
+view_tree_common_loadFailed_children=Failed to load children for node~
+view_tree_common_loadFailed_selection=Failed to select this node~
+view_tree_common_loadFailed_node=Failed to load data for this node~
+view_tree_common_loadFailed_create=Failed to create view for this node~
+view_tree_common_loadFailed_update=Failed to update view for this node~
+view_tree_common_contextMenu_type_name_label=Type: {0}
+view_tree_common_contextMenu_pluginConfiguration=Plugin Configuration~
+view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
+view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
+view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource Configuration~
+view_tree_common_contextMenu_operations=Operations~
+view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running operations~
+view_tree_common_contextMenu_measurements=Measurements~
+view_tree_common_contextMenu_addChartToDashboard=Add chart to dashboard [{0}]~
+view_tree_common_contextMenu_chart=Chart~
+view_tree_common_contextMenu_saveChartToDashboardSuccessful=You have saved dashboard [{0}]~
+view_tree_common_contextMenu_saveChartToDashboardFailure=Failed to save the dashboard~
+view_tree_common_contextMenu_loadFailed_dashboard=Failed to load user dashboards
+view_tree_common_contextMenu_loadFailed_manualAddChildren=Failed to load platform manual add children~
+view_tabs_common_summary=Summary~
+view_tabs_common_overview=Overview~
+view_tabs_common_dashboard=Dashboard~
+view_tabs_common_timeline=Timeline~
+view_tabs_common_monitoring=Monitoring~
+view_tabs_common_graphs=Graphs~
+view_tabs_common_tables=Tables~
+view_tabs_common_traits=Traits~
+view_tabs_common_availability=Availability~
+view_tabs_common_schedules=Schedules~
+view_tabs_common_calltime=Calltime~
+view_tabs_common_inventory=Inventory~
+view_tabs_common_groups=Groups~
+view_tabs_common_group_membership=Group Membership~
+view_tabs_common_members=Members~
+view_tabs_common_child_resources=Child Resources~
+view_tabs_common_child_history=Child History~
+view_tabs_common_connectionSettings=Connection Settings~
+view_tabs_common_connectionSettingsHistory=Connection Settings History~
+view_tabs_common_operations=Operations~
+view_tabs_common_history=History~
+view_tabs_common_scheduled=Scheduled~
+view_tabs_common_alerts=Alerts~
+view_tabs_common_definitions=Definitions~
+view_tabs_common_current=Current~
+view_tabs_common_events=Events~
+view_tabs_common_configuration=Configuration~
+view_tabs_common_content=Content~
+view_tabs_common_deployed=Deployed~
+view_tabs_common_new=New~
+view_tabs_common_subscriptions=Subscriptions~
+view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
+view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
+view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
+view_titleBar_common_clickToRemoveFav=Click to remove this as a favorite~
+view_titleBar_common_clickToAddFav=Click to add this as a favorite~
+view_titleBar_common_removedFav=You have removed [{0}] as one of your favorites~
+view_titleBar_common_addedFav=You have added [{0}] as a favorite~
+view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your favorites~
+view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
+view_dynagroup_expressionSet=Expression Set~
+view_dynagroup_recalculationInterval=Recalculation Interval~
+view_dynagroup_lastCalculationTime=Last Calculation Time~
+view_dynagroup_nextCalculationTime=Next Calculation Time~
+view_dynagroup_definitionCreated=You have successfully created a group definition named [{0}]~
+view_dynagroup_definitionLoadFailure=Failed to load group definitions~
+view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
+view_dynagroup_saveSuccessful=You have successfully saved the group definition named [{0}]~
+view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
+view_dynagroup_singleSaveFailure=An error occurred - there should have been one created, but instead there were [{0}] created~
+view_dynagroup_saveAndRecalculate=Save & Recalculate~
+view_dynagroup_recalculate=Recalculate~
+view_dynagroup_recalcSuccessful=You have successfully recalculated this group definition~
+view_dynagroup_recalcFailure=Failed to recalculated this group definition~
+view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group definitions~
+view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group definitions~
+view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group definitions~
+view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
+view_dynagroup_children=DynaGroup Children~
+view_dynagroup_newGroupDefinition=New Group Definition~
+view_dynagroup_editing=Editing [{0}]~
+view_dynagroup_expression=Expression~
+view_dynagroup_recursive=Recursive~
+view_dynagroup_loadDefinitionFailure=Failed to load group definition [{0}]~
+view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
+view_dynagroup_permUnknown=Could not determine if you have the proper permissions - access is denied~
+view_dynagroup_permDenied=You do not have permission to view group definitions~
+view_dynagroup_definitions=DynaGroup Definitions~
+view_group_membership_saveFailure=Failed to update membership of group [{0}]~
+view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
+view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
+view_group_resConfig_edit_noperm=You do not have permission to edit this group configuration~
+view_group_resConfig_edit_saveInitiated_concise=The group configuration updates have been initiated~
+view_group_resConfig_edit_saveInitiated_full=The group configuration updates have been initiated for the [{0}] compatible group named [{1}]~
+view_group_resConfig_edit_saveFailure=Failed to initiate group configuration update for [{0}] compatible group named [{1}]~
+view_group_resConfig_edit_valid=All configuration properties have valid values, so the configuration can now be saved~
+view_group_resConfig_edit_invalid=The following configuration properties have invalid values and must be corrected before the configuration can be saved: [{0}]~
+view_group_pluginConfig_view_noperm=You do not have permissions to see the connection settings~
+view_group_pluginConfig_view_groupProperties=Group Properties~
+view_group_pluginConfig_table_title=Group Connection Settings History~
+view_group_pluginConfig_table_statusDetails=Status Details~
+view_group_pluginConfig_table_viewSettings=View Settings~
+view_group_pluginConfig_table_viewMemberHistory=View Member History~
+view_group_pluginConfig_table_deleteSuccessful=You have deleted [{0}] history items~
+view_group_pluginConfig_table_deleteFailure=Failed to delete group plugin config history~
+view_group_pluginConfig_table_msg1=View Member History for status of each individual resource~
+view_group_pluginConfig_table_statusSuccess=This group configuration update was successful~
+view_group_pluginConfig_table_statusInprogress=This group configuration update is still in progress~
+view_group_pluginConfig_table_statusNochange=No changes were made to this group configuration~
+view_group_pluginConfig_table_statusFailure=This group configuration update failed~
+view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
+view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
+view_group_pluginConfig_members_statusDetails=Status Details~
+view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
+view_group_pluginConfig_members_statusInprogress=This configuration update is still in progress~
+view_group_pluginConfig_members_statusNochange=No changes were made to this configuration~
+view_group_pluginConfig_members_statusFailure=This configuration update failed for an unknown reason~
+view_group_pluginConfig_members_fetchFailure=Failed to get plugin config update history for members of group [{0}]~
+view_group_pluginConfig_edit_currentGroupProperties=Current Group Properties~
+view_group_pluginConfig_edit_saveTooltip=Update the connection settings of all group members~
+view_group_pluginConfig_edit_noperm=You do not have permission to edit this group connection settings~
+view_group_pluginConfig_edit_saveInitiated_concise=The group connection setting updates have been initiated~
+view_group_pluginConfig_edit_saveInitiated_full=The group connection setting updates have been initiated for the [{0}] compatible group named [{1}]~
+view_group_pluginConfig_edit_saveFailure=Failed to initiate group connection setting update for [{0}] compatible group named [{1}]~
+view_group_pluginConfig_edit_valid=All connection setting properties have valid values, so the connection settings can now be saved~
+view_group_pluginConfig_edit_invalid=The following connection setting properties have invalid values and must be corrected before the connection settings can be saved: [{0}]~
+view_group_meas_schedules_title=Group Metric Collection Schedules~
+view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with ID [{0}] - could not change from [{1}] to [{2}]~
+view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group with ID [{0}] from [{1}] to [{2}]~
+view_group_summary_memberType=Member Type~
+view_group_summary_memberCount=Member Count~
+view_group_summary_dynamic=Dynamic~
+view_group_summary_recursive=Recursive~
+view_group_summary_groupDefinition=Group Definition~
+view_group_summary_mixed=Mixed~
+view_group_summary_descUpdateFailure=Failed to change the description of the resource group with ID [{0}]~
+view_group_summary_descUpdateSuccessful=You have changed the description of this resource group~
+view_group_summary_dynamicNote=Dynamic group names and descriptions are managed, and therefore are not editable~
+
+# Connection Settings Details
+#------------------------------------------
+view_connectionSettingsDetails_noPermission = You do not have permission to edit this Resource''s connection settings.~
+view_connectionSettingsDetails_error_updateFailure = Failed to update connection settings.~
+view_connectionSettingsDetails_messageConcise_updateSuccess = Connection settings updated.~
+view_connectionSettingsDetails_messageDetailed_updateSuccess = Connection settings updated for Resource [{0}].~
+view_connectionSettingsDetails_allPropertiesValid = All connection settings have valid values, so the settings can now be saved.~
+view_connectionSettingsDetails_somePropertiesInvalid = The following connection settings have invalid values: {0}. The values must be corrected before the settings can be saved.~
+
+# Resource Resource Groups
+#-----------------------------------------
+view_resourceResourceGroupList_error_fetchFailure = Failed to fetch Resource''s groups.~
+view_resourceResourceGroupList_error_updateFailure = Failed to update assigned Resource groups.~
+view_resourceResourceGroupList_message_updateSuccess = Group membership updated for [{0}].
+
+# Configuration Details
+#-------------------------------
+view_configurationDetails_noPermission = You do not have permission to edit this Resource''s configuration.~
+view_configurationDetails_error_updateFailure = Failed to update configuration.~
+view_configurationDetails_messageConcise = Configuration updated.~
+view_configurationDetails_messageDetailed = Configuration updated for Resource [{0}].~
+view_configurationDetails_allPropertiesValid = All configuration properties have valid values, so the configuration can now be saved.~
+view_configurationDetails_somePropertiesInvalid = The following configuration properties have invalid values: {0}. The values must be corrected before the configuration can be saved.~
+
+# Configuration History List
+view_configurationHistoryList_title = Configuration History~
+view_configurationHistoryList_itemNamePlural = configuration history items
+
+# Configuration History Details
+#------------------------------------------
+view_configurationHistoryDetails_dialogTitle = Configuration Details~
+view_configurationHistoryDetails_error_loadFailure = Unable to load configuration history.~
+
+# Operation History List
+#---------------------------------
+view_operationHistoryList_title = Operation History~
+view_operationHistoryList_button_runOperation = Run Operation~
+
+# Operation History Details
+#--------------------------------------
+view_operationHistoryDetails_error_fetchFailure = Failure loading operation history.~
+
+# Operation Create Wizard
+#-------------------------------------
+view_operationCreateWizard_title = Operation Wizard~
+view_operationCreateWizard_header = Execute {0} on {1}~
+view_operationCreateWizard_button_execute = Execute~
+view_operationCreateWizard_button_executeImmediately = Execute Immediately~
+view_operationCreateWizard_error_scheduleOperationFailure = Failed to schedule operation execution.~
+view_operationCreateWizard_message_scheduleOperationSuccess = Schedule operation [{0}] on Resource [{1}] with cron string [{2}].~
+view_operationCreateWizard_parametersStep_name = Operation Parameters~
+view_operationCreateWizard_parametersStep_noParameters = This operation does not take any parameters.~
+view_operationCreateWizard_schedulingStep_name = Schedule~
+view_operationCreateWizard_schedulingStep_label_start = Start~
+view_operationCreateWizard_schedulingStep_label_schedule = Schedule~
+view_operationCreateWizard_schedulingStep_label_recurrence = Recurrence~
+view_operationCreateWizard_schedulingStep_label_runAt = Run At~
+view_operationCreateWizard_schedulingStep_label_nMinutes = n Minutes~
+view_operationCreateWizard_schedulingStep_label_hourly = Hourly~
+view_operationCreateWizard_schedulingStep_label_daily = Daily~
+view_operationCreateWizard_schedulingStep_label_weekly = Weekly~
+view_operationCreateWizard_schedulingStep_label_monthly = Monthly~
+view_operationCreateWizard_schedulingStep_label_timePeriod = Time Period~
+view_operationCreateWizard_schedulingStep_label_startDate = Start Date~
+view_operationCreateWizard_schedulingStep_label_recurrenceEnd = Recurrence End~
+view_operationCreateWizard_schedulingStep_label_endDate = End Date~
+view_operationCreateWizard_schedulingStep_label_willExecuteImmediately = Will execute immediately~
+view_operationCreateWizard_schedulingStep_label_onceAt = Once At~
+view_operationCreateWizard_schedulingStep_label_date = Date~
+view_operationCreateWizard_schedulingStep_label_time = Time~
+view_operationCreateWizard_schedulingStep_label_everyNMinutes = Every n Minutes~
+view_operationCreateWizard_schedulingStep_label_minuteInterval = Minute Interval~
+view_operationCreateWizard_schedulingStep_label_hourlyAt = Hourly At~
+view_operationCreateWizard_schedulingStep_label_minuteOfHour = Minute of Hour~
+view_operationCreateWizard_schedulingStep_label_dailyAt = Daily At~
+view_operationCreateWizard_schedulingStep_label_timeOfDay = Time of Day~
+view_operationCreateWizard_schedulingStep_label_weeklyOn = Weekly On~
+view_operationCreateWizard_schedulingStep_label_dayOfWeek = Day of Week~
+view_operationCreateWizard_schedulingStep_label_monthlyOn = Monthly On~
+view_operationCreateWizard_schedulingStep_label_dayOfMonth = Day of Month~
+
+# Summary Overview
+#-----------------------------
+view_summaryOverview_header_detectedErrors = Detected Errors~
+view_summaryOverview_tooltip_detectedErrors = Click on the rows to see the error details.~
+view_summaryOverview_title_errorDetailsWindow = Error Details~
+
+# Summary Overview Form
+#-------------------------------------
+view_summaryOverviewForm_field_type = Type~
+view_summaryOverviewForm_field_name = Name~
+view_summaryOverviewForm_field_description = Description~
+view_summaryOverviewForm_field_location = Location~
+view_summaryOverviewForm_field_version = Version~
+view_summaryOverviewForm_field_parent = Parent~
+view_summaryOverviewForm_error_traitsLoadFailure = Failed to load traits for {0}.~
+view_summaryOverviewForm_label_plugin = Plugin:
+view_summaryOverviewForm_label_type = Type:
+view_summaryOverviewForm_header_summary = Summary~
+view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_nameChangeSuccess = "Name of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_descriptionChangeSuccess = "Description of Resource with id {0} was changed from [{1}] to [{2}].~
+view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].~
+view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource with id {0} was changed from [{1}] to [{2}].~
+
+
+#==================== Reports ======================
+
+view_reportsTop_title = Reports~
+view_reportsTop_description = This section provides access to global reports.~
+view_reports_platforms = Cpu And Memory Utilization~
+view_reports_subsystems = Subsystems~
+
+view_measurementOob_title = Suspect Metrics~
+
+view_tagCloud_title = Tag Cloud~
+view_tagCloud_error_fetchFailure = Failed to load tags.~
+view_tagCloud_error_tagUsedCount = Tag used {0} times.~
+
+view_taggedResources_title = Tagged Resources~
+
+
+#===================== Test =======================
+view_testTop_title = Test~
+view_testTop_description = This section contains pages for testing various GUI components.~
+
+#=================== Top Level =====================
+
+# About Box
+#----------
+view_aboutBox_allRightsReserved = All Rights Reserved.~
+view_aboutBox_buildNumber = Build Number:~
+view_aboutBox_failedToLoad = Failed to load product information.~
+view_aboutBox_homepage = Homepage~
+view_aboutBox_jbossByRedHat = JBoss by Red Hat~
+view_aboutBox_title = About {0}~
+view_aboutBox_version = Version:~
+
+# CoreGUI
+#--------------
+view_core_error_1 = New Alerts lookup failed~
+view_core_loggedInAs = Logged in as {0}~
+view_core_loggedOut = Logged out~
+view_core_recentAlerts = [{0}] recent alerts~
+view_core_uncaught = Globally uncaught exception~
+
+# Login
+#--------------
+view_login_invalidEmail = Invalid e-mail address~
+view_login_login = Login~
+view_login_logout = Logout~
+view_login_noBackend = The backend datasource is unavailable.~
+view_login_noLdap = Note: Optional retrieval of ldap details unsuccessful. Manual entry is required.~
+view_login_noUser = The username or password provided does not match our records.~
+view_login_prompt = Please Login~
+view_login_registerLater = (Logout - Complete registration later.)~
+view_login_registerLdapSuccess = Succesfully registered the new LDAP User.~
+view_login_registerUser = Register User~
+view_login_welcome = Welcome to JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
+
+
+# Menu Bar
+#--------------
+view_menuBar_help = Help~
+view_menuBar_logout = Logout~
+
+# Search Bar, GUI
+#-----------------
+view_searchBar_search = Search~
+view_searchBar_resources = Resources~
+view_searchBar_resourceGroups = Resource Groups~
+# TODO: i18n pluralization
+view_searchBar_welcomeMessage = search for {0}s~
+view_searchBar_defaultPattern = name your pattern~
+view_searchBar_error_selectSavedSearch = ''Error selecting saved search''~
+
+view_searchGUI_loginStatus = Unable to determine login status, check server status~
+
+# Message Center
+#--------------------------
+view_messageCenter_button_messages = Messages~
+view_messageCenter_noRecentMessages = No Recent Messages~
+view_messageCenter_messageTitle = Message Center~
+view_messageCenter_messageSeverity = Severity~
+view_messageCenter_messageTime = Time~
+view_messageCenter_messageDetail = Detail~
+
commit 298e09af99e7c6679025243a1424c16fe2bf2f17
Merge: 074d619... 6cbb939...
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Nov 18 12:33:53 2010 -0500
Merge commit 'origin/master'
commit 074d6192781e36cd6ecda3a617380cd3be67f4ef
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Nov 18 12:33:05 2010 -0500
i18n
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleSelector.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleSelector.java
index aee9306..16ce137 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleSelector.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleSelector.java
@@ -52,9 +52,9 @@ public class BundleSelector extends AbstractSelector<Bundle> {
protected DynamicForm getAvailableFilterForm() {
DynamicForm availableFilterForm = new DynamicForm();
availableFilterForm.setNumCols(4);
- final TextItem search = new TextItem("search", "Search");
+ final TextItem search = new TextItem("search", MSG.common_button_search());
- final SelectItem bundleTypeSelect = new SelectItem("bundleType", "Bundle Type");
+ final SelectItem bundleTypeSelect = new SelectItem("bundleType", MSG.view_bundle_bundleType());
bundleService.getAllBundleTypes(new AsyncCallback<ArrayList<BundleType>>() {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError("Failed to load Bundle data", caught);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java
index e08a373..8b5cd62 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java
@@ -67,17 +67,17 @@ public class BundleTopView extends LocatableHLayout implements BookmarkableView
sectionStack.setWidth(250);
sectionStack.setHeight100();
- SectionStackSection bundlesSection = new SectionStackSection("Bundles");
+ SectionStackSection bundlesSection = new SectionStackSection(MSG.view_bundle_bundles());
bundleTreeView = new BundleTreeView(extendLocatorId("BundleTree"));
bundlesSection.addItem(bundleTreeView);
sectionStack.addSection(bundlesSection);
- SectionStackSection repositoriesSection = new SectionStackSection("Repositories");
+ SectionStackSection repositoriesSection = new SectionStackSection(MSG.common_title_repositories());
ContentRepositoryTreeView repoTree = new ContentRepositoryTreeView(extendLocatorId("RepoTree"));
repositoriesSection.addItem(repoTree);
sectionStack.addSection(repositoriesSection);
- SectionStackSection providersSection = new SectionStackSection("Providers");
+ SectionStackSection providersSection = new SectionStackSection(MSG.common_title_providers());
sectionStack.addSection(providersSection);
addMember(sectionStack);
commit 6cbb9393a5c3dfc8cce48bdfab0fb3bf0836c7cf
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Nov 18 12:31:50 2010 -0500
i18n of resource summary>overview tab
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
index bae72db..9c5a1b8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
@@ -48,7 +48,7 @@ import com.smartgwt.client.widgets.form.fields.SpacerItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
/**
- * The Resource Summary>Overview tab, the form with resource data.
+ * The Resource Summary>Overview tab - Resource general properties + summary traits.
*
* @author Greg Hinkle
* @author Ian Springer
@@ -98,7 +98,8 @@ public class OverviewForm extends EnhancedDynamicForm {
DisplayType.SUMMARY,
new AsyncCallback<List<MeasurementDataTrait>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load traits for " + resource + ".",
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_summaryOverviewForm_error_traitsLoadFailure(resource.toString()),
caught);
}
@@ -135,12 +136,13 @@ public class OverviewForm extends EnhancedDynamicForm {
List<FormItem> formItems = new ArrayList<FormItem>();
- HeaderItem headerItem = new HeaderItem("header", "Summary");
- headerItem.setValue("Summary");
+ HeaderItem headerItem = new HeaderItem("header", MSG.view_summaryOverviewForm_header_summary());
+ headerItem.setValue(MSG.view_summaryOverviewForm_header_summary());
formItems.add(headerItem);
StaticTextItem typeItem = new StaticTextItem("type", MSG.view_summaryOverviewForm_field_type());
- typeItem.setTooltip("Plugin: " + type.getPlugin() + "\n<br>" + "Type: " + type.getName());
+ typeItem.setTooltip(MSG.view_summaryOverviewForm_label_plugin() + type.getPlugin() + "\n<br>"
+ + MSG.view_summaryOverviewForm_label_type() + type.getName());
typeItem.setValue(type.getName() + " (" + type.getPlugin() + ")");
formItems.add(typeItem);
@@ -162,9 +164,9 @@ public class OverviewForm extends EnhancedDynamicForm {
resource.setName(newName);
OverviewForm.this.resourceService.updateResource(resource, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to change name of Resource with id "
- + resource.getId()
- + " from \"" + oldName + "\" to \"" + newName + "\".", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_summaryOverviewForm_error_nameChangeFailure(
+ String.valueOf(resource.getId()),
+ oldName, newName), caught);
// We failed to update it on the Server, so change back the Resource and the form item to
// the original value.
resource.setName(oldName);
@@ -172,9 +174,10 @@ public class OverviewForm extends EnhancedDynamicForm {
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(new Message("Name of Resource with id "
- + resource.getId() + " was changed from \""
- + oldName + "\" to \"" + newName + "\".", Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(new Message(MSG.view_summaryOverviewForm_message_nameChangeSuccess(
+ String.valueOf(resource.getId()),
+ oldName, newName)
+ , Message.Severity.Info));
}
});
}
@@ -197,9 +200,9 @@ public class OverviewForm extends EnhancedDynamicForm {
resource.setDescription(newDescription);
OverviewForm.this.resourceService.updateResource(resource, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to change description of Resource with id "
- + resource.getId()
- + " from \"" + oldDescription + "\" to \"" + newDescription + "\".", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_summaryOverviewForm_error_descriptionChangeFailure(
+ String.valueOf(resource.getId()),
+ oldDescription, newDescription), caught);
// We failed to update it on the Server, so change back the Resource and the form item to
// the original value.
resource.setDescription(oldDescription);
@@ -207,9 +210,9 @@ public class OverviewForm extends EnhancedDynamicForm {
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(new Message("Description of Resource with id "
- + resource.getId() + " was changed from \""
- + oldDescription + "\" to \"" + newDescription + "\".", Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(new Message(MSG.view_summaryOverviewForm_message_nameChangeSuccess(
+ String.valueOf(resource.getId()),
+ oldDescription, newDescription), Message.Severity.Info));
}
});
}
@@ -232,9 +235,9 @@ public class OverviewForm extends EnhancedDynamicForm {
resource.setLocation(newLocation);
OverviewForm.this.resourceService.updateResource(resource, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to change location of Resource with id "
- + resource.getId()
- + " from \"" + oldLocation + "\" to \"" + newLocation + "\".", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_summaryOverviewForm_error_locationChangeFailure(
+ String.valueOf(resource.getId()),
+ oldLocation, newLocation), caught);
// We failed to update it on the Server, so change back the Resource and the form item to
// the original value.
resource.setLocation(oldLocation);
@@ -242,9 +245,9 @@ public class OverviewForm extends EnhancedDynamicForm {
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(new Message("Location of Resource with id "
- + resource.getId() + " was changed from \""
- + oldLocation + "\" to \"" + newLocation + "\".", Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(new Message(MSG.view_summaryOverviewForm_message_nameChangeSuccess(
+ String.valueOf(resource.getId()),
+ oldLocation, newLocation), Message.Severity.Info));
}
});
}
@@ -283,11 +286,11 @@ public class OverviewForm extends EnhancedDynamicForm {
setValue("name", resource.getName());
setValue("description", resource.getDescription());
setValue("location", resource.getLocation());
- setValue("version", (resource.getVersion() != null) ? resource.getVersion() : "<i>none</i>");
+ setValue("version", (resource.getVersion() != null) ? resource.getVersion() : "<i>" + MSG.common_label_none() + "</i>");
Resource parentResource = resource.getParentResource();
setValue("parent", parentResource != null ?
("<a href=\"#Resource/" + parentResource.getId() + "\">" +
- parentResource.getName() + "</a>") : "<i>none</i>");
+ parentResource.getName() + "</a>") : "<i>" + MSG.common_label_none() + "</i>");
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
index 6b9115e..754ad0d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
@@ -45,7 +45,8 @@ public class OverviewView extends LocatableVLayout {
public OverviewView(String locatorId, ResourceComposite resourceComposite) {
super(locatorId);
OverviewForm form = new OverviewForm(extendLocatorId("form"), resourceComposite);
- errorsGrid = new Table(extendLocatorId("errors"), "Detected errors", null, null, new String[] { ResourceErrorsDataSource.DETAIL_ID });
+ errorsGrid = new Table(extendLocatorId("errors"), MSG.view_summaryOverview_header_detectedErrors(), null, null, new String[]
+ { ResourceErrorsDataSource.Field.DETAIL });
Resource resource = resourceComposite.getResource();
ResourceErrorsDataSource errors = new ResourceErrorsDataSource(resource.getId());
@@ -58,7 +59,6 @@ public class OverviewView extends LocatableVLayout {
addMember(form);
addMember(errorsGrid);
-
}
@Override
@@ -68,12 +68,12 @@ public class OverviewView extends LocatableVLayout {
}
private void initErrorsGrid() {
- errorsGrid.setTooltip("Click on the rows to see the error details.");
+ errorsGrid.setTooltip(MSG.view_summaryOverview_tooltip_detectedErrors());
errorsGrid.getListGrid().addCellClickHandler(new CellClickHandler() {
public void onCellClick(CellClickEvent event) {
ListGridRecord record = event.getRecord();
final Window w = new Window();
- w.setTitle("Error Details");
+ w.setTitle(MSG.view_summaryOverview_title_errorDetailsWindow());
w.setIsModal(true);
w.setShowMinimizeButton(false);
w.setShowModalMask(true);
@@ -89,10 +89,10 @@ public class OverviewView extends LocatableVLayout {
w.addItem(layout);
HTMLPane details = new HTMLPane();
- details.setContents("<pre>" + record.getAttribute(ResourceErrorsDataSource.DETAIL_ID) + "</pre>");
+ details.setContents("<pre>" + record.getAttribute(ResourceErrorsDataSource.Field.DETAIL) + "</pre>");
layout.addMember(details);
- IButton ok = new IButton("Ok");
+ IButton ok = new IButton(MSG.common_button_ok());
ok.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
w.destroy();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsDataSource.java
index 104e714..2943b8e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsDataSource.java
@@ -45,10 +45,12 @@ import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
*/
public class ResourceErrorsDataSource extends RPCDataSource<ResourceError> {
- public static final String SUMMARY_ID = "summary";
- public static final String DETAIL_ID = "detail";
- public static final String ERROR_TYPE_ID = "errorType";
- public static final String TIME_OCCURED_ID = "timeOccured";
+ public static abstract class Field {
+ public static final String SUMMARY = "summary";
+ public static final String DETAIL = "detail";
+ public static final String ERROR_TYPE = "errorType";
+ public static final String TIME_OCCURED = "timeOccured";
+ }
ResourceGWTServiceAsync resourceService;
int resourceId;
@@ -64,10 +66,10 @@ public class ResourceErrorsDataSource extends RPCDataSource<ResourceError> {
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- fields.add(new DataSourceTextField(SUMMARY_ID, "Summary"));
- fields.add(new DataSourceTextField(DETAIL_ID, "Detailed Message"));
- fields.add(new DataSourceEnumField(ERROR_TYPE_ID, "Error Type"));
- fields.add(new DataSourceDateTimeField(TIME_OCCURED_ID, "Time"));
+ fields.add(new DataSourceTextField(Field.SUMMARY, MSG.dataSource_resourceErrors_field_summary()));
+ fields.add(new DataSourceTextField(Field.DETAIL, MSG.dataSource_resourceErrors_field_detail()));
+ fields.add(new DataSourceEnumField(Field.ERROR_TYPE, MSG.dataSource_resourceErrors_field_errorType()));
+ fields.add(new DataSourceDateTimeField(Field.TIME_OCCURED, MSG.dataSource_resourceErrors_field_timeOccured()));
return fields;
}
@@ -80,7 +82,8 @@ public class ResourceErrorsDataSource extends RPCDataSource<ResourceError> {
resourceService.findResourceErrors(resourceId, new AsyncCallback<List<ResourceError>>() {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
- "Failed to find resource errors for resource with id: " + resourceId, caught);
+ MSG.dataSource_resourceErrors_error_fetchFailure(String.valueOf(resourceId)),
+ caught);
response.setStatus(RPCResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
@@ -88,7 +91,7 @@ public class ResourceErrorsDataSource extends RPCDataSource<ResourceError> {
public void onSuccess(List<ResourceError> result) {
response.setData(buildRecords(result));
processResponse(request.getRequestId(), response);
- };
+ }
});
}
@@ -100,10 +103,10 @@ public class ResourceErrorsDataSource extends RPCDataSource<ResourceError> {
public ListGridRecord copyValues(ResourceError from) {
ListGridRecord record = new ListGridRecord();
- record.setAttribute(DETAIL_ID, from.getDetail());
- record.setAttribute(ERROR_TYPE_ID, from.getErrorType().name());
- record.setAttribute(SUMMARY_ID, from.getSummary());
- record.setAttribute(TIME_OCCURED_ID, new Date(from.getTimeOccurred()));
+ record.setAttribute(Field.DETAIL, from.getDetail());
+ record.setAttribute(Field.ERROR_TYPE, from.getErrorType().name());
+ record.setAttribute(Field.SUMMARY, from.getSummary());
+ record.setAttribute(Field.TIME_OCCURED, new Date(from.getTimeOccurred()));
return record;
}
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 7b9a0fa..5d3f936 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
@@ -1,1069 +1,1127 @@
-#
-# RHQ GUI i18n Messages - English
-###################################
-
-#************************************** SHARED ****************************************
-
-#=================== Common =====================
-
-#
-# Build Info
-#
-common_buildInfo_gwtVersion = ${gwt.version}~
-
-# Button Labels
-#--------------
-common_button_advanced = Advanced...~
-common_button_apply = Apply~
-common_button_cancel = Cancel~
-common_button_close = Close~
-common_button_compare = Compare~
-common_button_create_child = Create Child~
-common_button_delete = Delete~
-common_button_disable = Disable~
-common_button_enable = Enable~
-common_button_finish = Finish~
-common_button_import = Import~
-common_button_new = New~
-common_button_next = Next~
-common_button_ok = OK~
-common_button_previous = Previous~
-common_button_purgeAll=Purge All~
-common_button_refresh = "Refresh"~
-common_button_reset = Reset~
-common_button_save = Save~
-common_button_search = Search~
-common_button_showDetails = Show Details...~
-common_button_uninventory = Uninventory~
-
-# Common Labels
-#------------------------
-common_label_all = ALL~
-common_label_all_resources = all resources~
-common_label_day=day~
-common_label_days=days~
-common_label_hour=hour~
-common_label_hours=hours~
-common_label_item=item~
-common_label_items=items~
-common_label_milliseconds=milliseconds~
-common_label_minutes=minutes~
-common_label_month=month~
-common_label_search=Search~
-common_label_scheduled_operations=scheduled operations~
-common_label_seconds=seconds~
-common_label_selected_resources = selected resources~
-common_label_unlimited = unlimited~
-common_label_week=week~
-
-# Common Titles
-#--------------
-common_title_add_column=Add Column~
-common_title_add_portlet=Add Portlet~
-common_title_alert_range=Alert Range~
-common_title_availability = Availability~
-common_title_average_metrics=Average Metrics per Minute~
-common_title_available_resources=Available Resources~
-common_title_background=Background~
-common_title_category = Category~
-common_title_columns=Columns~
-common_title_configuration = Configuration~
-common_title_compatibleGroups = Compatible Groups~
-common_title_compatibleGroups_total=Compatible Group Total~
-common_title_custom=Custom~
-common_title_dashboard_name=Dashboard Name~
-common_title_dateCreated=Date Created~
-common_title_default=Default~
-common_title_description=Description~
-common_title_display=Display~
-common_title_display_name=Display Name~
-common_title_duration=Duration~
-common_title_edit_mode=Edit Mode~
-common_title_enabled=Enabled?~
-common_title_end = End~
-common_title_favorites=Favorites~
-common_title_generalProp = General Properties~
-common_title_group_def_total=Group Definition Total~
-common_title_icon = icon~
-common_title_id = ID~
-common_title_id_parent = Parent ID~
-common_title_host = Host~
-common_title_inventory = Inventory~
-common_title_inventorySummary = Inventory Summary~
-common_title_lastUpdated=Last Updated~
-common_title_lastUpdatedBy=Last Updated By~
-common_title_mashup=Mashup~
-common_title_metric = Metric~
-common_title_mixedGroups = Mixed Groups~
-common_title_mixedGroups_total=Mixed Group Total~
-common_title_name = Name~
-common_title_new_dashboard=New Dashboard~
-common_title_numeric_type=Numeric Type~
-common_title_operations=Operations~
-common_title_operations_range=Operation Range~
-common_title_over=Over~
-common_title_password = Password~
-common_title_path = Path~
-common_title_platform_total=Platform Total~
-common_title_plugin = Plugin~
-common_title_port = Port~
-common_title_recently_added = Recently Added Resources~
-common_title_recent_alerts = Recent Alerts~
-common_title_recent_operations=Recent Operations~
-common_title_remove_column=Remove Column~
-common_title_resource = Resource~
-common_title_resource_group = Resource Group~
-common_title_resource_inventory=Resource Inventory~
-common_title_resource_id=Resource ID~
-common_title_resource_name=Resource Name~
-common_title_scheduled_operations=Scheduled Operations~
-common_title_selected_resources=Selected Resources~
-common_title_server_total=Server Total~
-common_title_service_total=Service Total~
-common_title_settings=Settings~
-common_title_show=Show~
-common_title_start = Start~
-common_title_status=Status~
-common_title_summary=Summary~
-common_title_tag_cloud=Tag Cloud~
-common_title_the=The
-common_title_summary_counts=Summary Counts~
-common_title_timestamp =Date/Time~
-common_title_total=Total~
-common_title_type = Type~
-common_title_units = Units~
-common_title_user=User~
-common_title_value = Value~
-common_title_version = Version~
-common_title_view_mode=View Mode~
-common_title_web_address=Web Address~
-
-# Common Messages
-#--------------
-common_msg_areYouSure = Are You Sure?~
-common_msg_deleteConfirm = Are you sure you want to delete the # selected {0}?~
-common_msg_loading = Loading...~
-common_msg_noItemsToShow=No items to show~
-
-# Common Values
-#--------------
-common_val_no = No~
-common_val_no_lower = no~
-common_val_yes = Yes~
-common_val_yes_lower = yes~
-common_val_never = Never~
-common_val_na = N/A~
-common_val_none = None~
-
-# Common Calendar
-#--------------
-common_calendar_january_short=jan~
-common_calendar_february_short=feb~
-common_calendar_march_short=mar~
-common_calendar_april_short=apr~
-common_calendar_may_short=may~
-common_calendar_june_short=jun~
-common_calendar_july_short=jul~
-common_calendar_august_short=aug~
-common_calendar_september_short=sept~
-common_calendar_october_short=oct~
-common_calendar_november_short=nov~
-common_calendar_december_short=dec~
-
-#=================== Widgets =====================
-
-# Record Editor
-#--------------
-widget_recordEditor_title_view = View {0} [{1}]~
-widget_recordEditor_title_edit = Edit {0} [{1}]~
-widget_recordEditor_title_new = Create New {0}~
-# // dup in common
-widget_recordEditor_label_loading = Loading...~
-widget_recordEditor_error_invalidViewPath = Invalid view path: [{0}]~
-widget_recordEditor_error_noRecords = No records were returned - expected exactly one.~
-widget_recordEditor_error_multipleRecords = Multiple records were returned - expected exactly one.~
-widget_recordEditor_info_recordCreatedConcise = {0} created.~
-widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] created.~
-widget_recordEditor_info_recordUpdatedConcise = {0} updated.~
-widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] updated.~
-widget_recordEditor_info_recordsDeletedConcise = {0} {1} deleted.~
-widget_recordEditor_info_recordsDeletedDetailed = {0} {1} deleted: {2}.~
-widget_recordEditor_error_unsupportedOperationType = Unsupported operation type: [{0}]~
-
-# Resource Selector/Picker
-#--------------------------------
-widget_resourceSelector_selectResource=Select a Resource~
-widget_resourceSelector_pleaseSelectResource=Please select a resource~
-widget_resourceSelector_selectMultipleResources=Select Resources~
-widget_resourceSelector_pleaseSelectMultipleResource=Please select one or more resources~
-widget_resourceSelector_groupCategory=Group Category~
-
-# Resource Factory Wizard
-#--------------------------------
-widget_resourceFactoryWizard_uploadInProgress=The upload is in progress... This can take several minutes to complete for large distribution files.~
-widget_resourceFactoryWizard_uploadFileStepName=Upload Resource Content File~
-widget_resourceFactoryWizard_uploadFailure=Failed to upload file~
-widget_resourceFactoryWizard_editConfigStepName=Edit Configuration~
-widget_resourceFactoryWizard_infoStepName=Resource Information~
-widget_resourceFactoryWizard_namePrompt=New Resource Name~
-widget_resourceFactoryWizard_templatePrompt=Connection Settings Template~
-widget_resourceFactoryWizard_contentTemplatePrompt=Deployment Time Configuration Templates~
-widget_resourceFactoryWizard_configTemplatePrompt=Resource Configuration Templates~
-widget_resourceFactoryWizard_archPrompt=Package Architecture~
-widget_resourceFactoryWizard_versionPrompt=Package Version~
-widget_resourceFactoryWizard_importWizardWindowTitle=Resource Import Wizard~
-widget_resourceFactoryWizard_importWizardTitle=Import Resource of Type [{0}]~
-widget_resourceFactoryWizard_importFailure=Failed to manually import resource~
-widget_resourceFactoryWizard_importSubmitted=A request to import a new resource of type [{0}] has been submitted~
-widget_resourceFactoryWizard_createWizardWindowTitle=Resource Create Wizard~
-widget_resourceFactoryWizard_createWizardTitle=Create New Resource of Type [{0}]~
-widget_resourceFactoryWizard_execute1=Failed to create a new resource - there is no package version~
-widget_resourceFactoryWizard_execute2=Failed to create a new resource~
-widget_resourceFactoryWizard_createSubmitType=A request to create a resource of type [{0}] has been submitted successfully.~
-widget_resourceFactoryWizard_createSubmit=A request to create a resource with the name of [{0}] has been submitted successfully.~
-widget_resourceFactoryWizard_failedToGetType=Failed to get backing package type for new resource~
-widget_resourceFactoryWizard_failedToDeleteVersion=Failed to delete package version while canceling a resource create~
-
-#===================== Utils ======================
-
-# Disambiguation Report Decorator
-#-------------------------------------------------
-util_disambiguationReportDecorator_pluginSuffix = ({0} plugin)~
-
-# Monitoring Request Callback
-#------------------------------------------
-util_monitoringRequestCallback_error_checkServerStatusFailure = Unable to determine login status - check Server status.~
-
-# RPC Manager
-#----------------------
-util_rpcManager_activeRequests = {0} Active Requests~
-
-# User Permissions Manager
-#--------------------------
-util_userPerm_loadFailGlobal = Failed to load your global permissions - none granted.~
-util_userPerm_loadFailGroup = Failed to load your permissions for Resource Group with id [{0}] - none granted.~
-util_userPerm_loadFailResource = Failed to load your permissions for Resource with id [{0}] - none granted.~
-
-# User Session Manager
-#--------------------------
-util_userSession_loadFailSubject = UserSessionManager: Failed to load user Subject~
-util_userSession_logoutFail = Failed to logout.~
-
-# Error Handler
-#--------------------
-util_errorHandler_nullException = exception was null~
-
-# Widgets Field
-#---------------------
-util_widgetsField_unlimited = Unlimited~
-
-#================== DataSources ====================
-
-# RPC (abstract)
-#-----------------------
-dataSource_rpc_error_transformRequestFailure = Failure in datasource while processing {0} request.~
-dataSource_rpc_error_unsupportedArrayFilterType = No support for passing array filters of type {0}.~
-dataSource_rpc_error_unsupportedEnumType = Please add an appropriate code block for enum {0} to RPCDataSource.getEnumArray(Class)~
-dataSource_rpc_yes = yes~
-dataSource_rpc_no = no~
-
-# ContentRepositoryTree
-#------
-dataSource_ContentRepoTree_error_load = Error loading repositories~
-dataSource_ContentRepoTree_field_parentId = Parent ID~
-
-
-# Users
-#------
-###### dup in common
-dataSource_users_field_id = ID~
-dataSource_users_field_name = User Name~
-dataSource_users_field_ldap = LDAP Login?~
-dataSource_users_field_password = Password`
-dataSource_users_field_passwordVerify = Verify Password~
-dataSource_users_field_firstName = First Name~
-dataSource_users_field_lastName = Last Name~
-dataSource_users_field_emailAddress = Email Address~
-dataSource_users_field_phoneNumber = Phone Number~
-dataSource_users_field_department = Department~
-dataSource_users_field_factive = Login Enabled?~
-
-# Platforms
-#------
-dataSource_platforms_field_cpu=CPU~
-dataSource_platforms_field_memory=Memory~
-dataSource_platforms_field_swap=Swap~
-
-# Traits
-#------
-dataSource_traits_field_primaryKey=Primary Key~
-dataSource_traits_field_definitionID=Definition ID~
-dataSource_traits_field_lastChanged=Last Changed~
-dataSource_traits_field_trait=Trait~
-dataSource_traits_group_field_groupId=Group ID~
-dataSource_traits_group_field_memberResource=Member Resource~
-
-# Measurement OOBs
-#---------------------------------
-dataSource_measurementOob_field_scheduleName = Metric~
-dataSource_measurementOob_field_resourceName = Resource~
-dataSource_measurementOob_field_parentName = Parent~
-dataSource_measurementOob_field_formattedBaseband = Band~
-dataSource_measurementOob_field_formattedOutlier = Outlier~
-dataSource_measurementOob_field_factor = Out of Range Factor (%)~
-dataSource_measurementOob_error_fetchFailure = Failed to load measurement OOB information~
-
-# Measurements
-#----------------------
-dataSource_definitions_loadFailed = Failed to load metric definitions~
-dataSource_schedules_loadFailed = Failed to load metric schedules~
-dataSource_schedules_field_resourceGroupId = Group ID~
-
-dataSource_schedules_enableFailure_resource=Failed to enable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
-dataSource_schedules_enableFailure_group=Failed to enable the collection of [{0}] metrics for group with ID [{1}]. The metrics were: [{2}]~
-
-dataSource_schedules_enableSuccessful_concise=You have enabled the collection of [{0}] measurements~
-dataSource_schedules_enableSuccessful_full_resource=You have enabled the collection of [{0}] measurements for the resource with ID [{1}]. The enabled measurements are: [{2}]~
-dataSource_schedules_enableSuccessful_full_group=You have enabled the collection of [{0}] measurements for the resource group with ID [{1}]. The enabled measurements are: [{2}]~
-
-dataSource_schedules_disableFailure_resource=Failed to disable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
-dataSource_schedules_disableFailure_group=Failed to disable the collection of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]~
-
-dataSource_schedules_disableSuccessful_concise=You have disabled the collection of [{0}] measurements~
-dataSource_schedules_disableSuccessful_full_resource=You have disabled the collection of [{0}] measurements for the resource with ID [{1}]. The disabled measurements are: [{2}]~
-dataSource_schedules_disableSuccessful_full_group=You have disabled the collection of [{0}] measurements for the resource group with ID [{1}]. The disabled measurements are: [{2}]~
-
-dataSource_schedules_updateFailure_resource=Failed to set the collection interval of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
-dataSource_schedules_updateFailure_group=Failed to set the collection interval of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
-
-dataSource_schedules_updateSuccessful_concise=A new collection interval of [{0}] seconds has been set on [{1}] measurements~
-dataSource_schedules_updateSuccessful_full_resource=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource with ID [{2}]. The updated measurements are: [{3}]~
-dataSource_schedules_updateSuccessful_full_group=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource group with ID [{2}]. The updated measurements are: [{3}]~
-
-
-# Problem Resources
-#------------------------------
-dataSource_problemResources_field_resource = Resource~
-dataSource_problemResources_field_location = Location~
-dataSource_problemResources_field_alerts = Alerts~
-dataSource_problemResources_field_available = Current Availability~
-dataSource_problemResources_error_fetchFailure = Failed to load Resources with alerts/unavailability.~
-
-# Recent Operations
-#----------------------------
-dataSource_recentOperations_field_resource = Resource~
-dataSource_recentOperations_field_location = Location~
-dataSource_recentOperations_field_operation = Operation~
-dataSource_recentOperations_field_time = Date/Time~
-dataSource_recentOperations_field_status = Status~
-dataSource_recentOperations_error_fetchFailure = Failed to load recently completed operations.
-
-# Scheduled Operations
-#---------------------------------
-dataSource_scheduledOperations_field_resource = Resource~
-dataSource_scheduledOperations_field_location = Location~
-dataSource_scheduledOperations_field_operation = Operation~
-dataSource_scheduledOperations_field_time = Date/Time~
-dataSource_scheduledOperations_error_fetchFailure = Failed to load scheduled operations.
-
-# Operation History
-#---------------------------
-dataSource_operationHistory_error_fetchFailure = Failure loading operation histories.~
-
-# 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_error_fetchFailure = Unable to load configuration history.~
-
-
-#********************************** VIEW-SPECIFIC *************************************
-
-#================= Administration ==================
-
-view_admin_administration = Administration~
-view_admin_configuration = Configuration~
-view_admin_security = Security~
-view_admin_topology = Topology~
-
-view_adminSecurity_users = Users~
-view_adminSecurity_roles = Roles~
-
-view_adminTopology_affinityGroups = Affinity Groups~
-view_adminTopology_agents = Agents~
-view_adminTopology_partitionEvents = Partition Events~
-view_adminTopology_remoteAgentInstall = Remote Agent Install~
-view_adminTopology_servers = Servers~
-
-view_adminConfig_downloads = Downloads~
-view_adminConfig_license = License~
-view_adminConfig_plugins = Plugins~
-view_adminConfig_systemSettings = System Settings~
-view_adminConfig_templates = Templates~
-
-# Administration/Security/Users/#
-#--------------------------------
-view_adminUsersDetails_dataTypeName = user~
-
-# Administration/Security/Roles/#
-#--------------------------------
-#jjj
-view_adminRoles_globalPerms = Global Permissions~
-view_adminRoles_resourcePerms = Resource Permissions~
-
-# Administration/Topology/RemoteAgentInstall/#
-#--------------------------------
-view_remoteAgentInstall_agentStatus = Agent Status~
-view_remoteAgentInstall_agentStatusDefault = -Click Update Status Button-~
-view_remoteAgentInstall_connInfo = Connection Information~
-view_remoteAgentInstall_buttonFindAgent = Find Agent~
-view_remoteAgentInstall_error_1 = Error occurred while trying to find agent install path~
-view_remoteAgentInstall_error_2 = Could not find an agent installed when looking in common locations
-view_remoteAgentInstall_error_3 = Could not find an agent installed at or under [{0}]
-view_remoteAgentInstall_error_4 = Failed to install agent~
-view_remoteAgentInstall_error_5 = Failed to start agent~
-view_remoteAgentInstall_error_6 = Failed to stop agent~
-
-view_remoteAgentInstall_installAgent = Install Agent~
-view_remoteAgentInstall_installInfo = Agent Installation Information~
-view_remoteAgentInstall_installPath = Agent Install Path~
-view_remoteAgentInstall_owner = Owner~
-view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install.~
-view_remoteAgentInstall_promptHost = The host where the agent is or will be installed~
-view_remoteAgentInstall_promptPassword =The credentials that are used to authenticate the user on the host via SSH~
-view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not specified, the default is 22~
-view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to the host via SSH~
-view_remoteAgentInstall_result = Result~
-view_remoteAgentInstall_resultCode = ResultCode~
-view_remoteAgentInstall_startAgent = Start Agent~
-view_remoteAgentInstall_startAgentResults = Agent start results: [{0}]~
-view_remoteAgentInstall_step = Step~
-view_remoteAgentInstall_stopAgent = Stop Agent~
-view_remoteAgentInstall_stopAgentResults = Agent stop results: [{0}]~
-view_remoteAgentInstall_success = Agent installation complete~
-view_remoteAgentInstall_updateStatus = Update Status~
-
-
-# Auto Discovery Queue
-#----------------------------
-view_autoDiscoveryQ_title=Autodiscovery Queue~
-view_autoDiscoveryQ_import=Import~
-view_autoDiscoveryQ_ignore=Ignore~
-view_autoDiscoveryQ_ignored=Ignored~
-view_autoDiscoveryQ_unignore=Unignore~
-view_autoDiscoveryQ_new=New~
-view_autoDiscoveryQ_newAndIgnored=New and Ignored~
-view_autoDiscoveryQ_importFailure=Failed to import resources~
-view_autoDiscoveryQ_importSuccessful=You have successfully imported the selected resources.~
-view_autoDiscoveryQ_ignoreFailure=Failed to ignore resources~
-view_autoDiscoveryQ_ignoreSuccessful=You have successfully ignored the selected resources.~
-view_autoDiscoveryQ_unignoreFailure=Failed to unignore resources~
-view_autoDiscoveryQ_unignoreSuccessful=You have successfully unignored the selected resources.~
-view_autoDiscoveryQ_noperm=(Required manage inventory permissions missing. See Administrator to change)~
-view_autoDiscoveryQ_noItems=No items to show~
-view_autoDiscoveryQ_field_parentId=Parent ID~
-view_autoDiscoveryQ_field_name=Resource Name~
-view_autoDiscoveryQ_field_key=Resource Key~
-view_autoDiscoveryQ_field_discoveryTime=Discovery Time~
-view_autoDiscoveryQ_field_inventoryStatus=Inventory Status~
-view_autoDiscoveryQ_loadFailure=Failed to load the inventory discovery queue~
-
-#==================== Bundles ======================
-
-# some common bundle terms
-view_bundle_bundles = Bundles~
-view_bundle_deployments=Deployments~
-view_bundle_bundleVersions=Bundle Versions~
-view_bundle_bundleVersion=Bundle Version~
-view_bundle_versions=Versions~
-view_bundle_bundleFiles=Bundle Files~
-view_bundle_destinations=Destinations~
-view_bundle_files=Files~
-view_bundle_recipe=Recipe~
-view_bundle_bundleType=Bundle Type~
-view_bundle_deploy=Deploy~
-view_bundle_latestVersion=Latest Version~
-
-# individual bundle views/wizards
-view_bundle_fileListView_fileSize=File Size~
-view_bundle_fileListView_loadFailure=Failed to load bundle file data~
-view_bundle_version_backToBundle=Back to Bundle~
-view_bundle_version_bundleVersionTagUpdateFailure=Failed to update bundle version tags~
-view_bundle_version_bundleVersionTagUpdateSuccessful=You have successfully updated the bundle version tags~
-view_bundle_version_loadFailure=Failed to load bundle version~
-view_bundle_tree_loadFailure=Failed to load bundle data~
-view_bundle_revertWizard_title=Bundle Revert~
-view_bundle_revertWizard_windowTitle=Bundle Revert Wizard~
-view_bundle_revertWizard_getInfoStep_name=Provide Revert Information~
-view_bundle_revertWizard_getInfoStep_revertDeployName=Revert Deploy Name~
-view_bundle_revertWizard_getInfoStep_revertDeployDesc=Revert Deploy Description~
-view_bundle_revertWizard_getInfoStep_revertDeployDescFull=[REVERT From]\\n{0}\\n\\n[REVERT To]\\n{1}~
-view_bundle_revertWizard_getInfoStep_cleanDeploy=Clean Deployment? (this will delete an old, existing deploy directory prior to starting the revert deployment)~
-view_bundle_revertWizard_getInfoStep_getNameFailure=Failed to get revert deployment name~
-view_bundle_revertWizard_confirmStep_name=Revert Deployment Confirmation~
-view_bundle_revertWizard_confirmStep_noLiveDeployment=No live deployment was found for the destination [{0}]~
-view_bundle_revertWizard_confirmStep_noPriorDeployment=The live deployment [{0}] cannot be reverted because there is no prior deployment for the destination [{1}]~
-view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment=Failed to find live deployment; cannot revert~
-view_bundle_revertWizard_confirmStep_liveDeployment=Live Deployment~
-view_bundle_revertWizard_confirmStep_prevDeployment=Previous Deployment~
-view_bundle_revertWizard_confirmStep_confirmation=Reverting Live Deployment to Previous Deployment. Click "Next" to continue...~
-view_bundle_revertWizard_revertStep_name=Deploy Bundle to Destination Platforms~
-view_bundle_revertWizard_revertStep_reverting=Reverting...~
-view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert deployment!~
-view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to revert the bundle deployment [{0}] from resource group [{1}]~
-view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert deployment!~
-view_bundle_list_deleteFailure=Failed to delete bundle [{0}]~
-view_bundle_list_deleteSuccessful=You deleted the bundle named [{0}]~
-view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
-view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
-view_bundle_list_versionsCount=Versions Count~
-
-#=================== Components =====================
-
-view_configCompare_comparingConfigs = Comparing Configurations~
-view_configCompare_configCompare = Configuration Comparison~
-
-view_configEdit_addItem = Add Item to List~
-view_configEdit_confirm_1 = Are you sure you want to delete the selected properties from the set?~
-view_configEdit_confirm_2 = Are you sure you want to delete this row?~
-view_configEdit_confirm_3 = Are you sure you want to delete the [{0}] selected [{1}]?~
-view_configEdit_editRow = Edit Configuration Row~
-view_configEdit_enterPropName = Enter the name of the property to be added.~
-view_configEdit_error_1 = Configuration is not supported by this Resource.~
-view_configEdit_error_2 = Connection settings are not supported by this Resource.~
-view_configEdit_error_3 = Cannot add property named [{0}]. The property name is already used in the set.~
-view_configEdit_files = Files~
-view_configEdit_hideAll= Hide All~
-view_configEdit_jumpToSection = Jump to Section~
-view_configEdit_msg_1 = Added property [{0}] to the set.~
-view_configEdit_msg_2 = Removed properties from the set.~
-view_configEdit_msg_3 = [{0} {1}] deleted from list.~
-view_configEdit_msg_4 = Item added to list.~
-view_configEdit_properties = Properties~
-view_configEdit_tooltip_1 = Delete the selected items from the list.~
-view_configEdit_tooltip_2 = Add an item to the list.~
-
-view_groupConfigEdit_member = Member~
-view_groupConfigEdit_noListProps = List properties are not currently supported for group configurations.~
-view_groupConfigEdit_tooltip_1 = Member values differ - click icon to edit them.~
-view_groupConfigEdit_setAll = Set all values to:~
-view_groupConfigEdit_unset = Unset~
-view_groupConfigEdit_valsDiff = member values differ~
-view_groupConfigEdit_valsDiffForProp = Member Values for Property [{0}]~
-
-view_leftNav_unknownPage = Unknown page name [{0}] for section [{1}] - URL is invalid.~
-
-view_measure_nan = --no data available--~
-view_measureRange_day = 1 Day~
-view_measureRange_days = {0} Days~
-view_measureRange_hour = 1 Hour~
-view_measureRange_hours = {0} Hours~
-view_measureRange_last = Last~
-view_measureRange_minutes = {0} Minutes~
-view_measureRange_range = Range~
-view_measureRange_simple = Simple...~
-
-view_selector_assigned = Assigned {0}~
-view_selector_available = Available {0}~
-
-view_subTab_error_disabled = Cannot select disabled subTab [{0}].~
-
-view_table_totalRows = Total Rows: {0} Selected: {1}~
-view_tableSection_backButton = Back to List~
-view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
-view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
-
-view_tags_tags = Tags
-view_tags_error_1 = Failed to load Tags~
-view_tags_title = Tags:~
-view_tags_tooltip_1 = Click to remove this Tag~
-view_tags_tooltip_2 = Click to edit Tags~
-view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
-
-# File Upload (various)
-view_upload_alreadyUploaded = File has already been uploaded~
-view_upload_bundleDistFile = Distribution File~
-view_upload_error_bundleDistFile = Error uploading Bundle Distribution File~
-view_upload_error_file = Error uploading file~
-view_upload_error_fileName = Error uploading file [{0}]~
-view_upload_error_fileName_2 = Error uploading file [{0}], check for invalid file path.~
-view_upload_error_packageVersionFile = Error uploading Package Version File~
-view_upload_error_results = Error uploading file, unexpected results: [{0}]~
-view_upload_inProgress = Can not submit, upload is currently in progress~
-view_upload_prompt_1 = [{0}] File to Upload~
-view_upload_prompt_2 = File to Upload~
-view_upload_tooltip_1 = Select a file to upload, then click Upload or Next~
-view_upload_tooltip_2 = File upload had previously failed~
-view_upload_success = File successfully uploaded~
-view_upload_upload = Upload~
-view_upload_uploadFile = UploadFile~
-
-# Group Create Wizard
-view_groupCreateWizard_membersStepName=Select Members~
-view_groupCreateWizard_createStepName=Group Settings~
-view_groupCreateWizard_createStep_recursive=Recursive~
-view_groupCreateWizard_title=Create Group~
-view_groupCreateWizard_windowTitle=Create Group~
-view_groupCreateWizard_createFailure=Failed to create the resource group~
-view_groupCreateWizard_createSuccessful_concise=You have created a new resource group. [<a href="{0}">View Group</a>]~
-view_groupCreateWizard_createSuccessful_full=You have created a new [{0}] resource group with the name [{1}] that contains [{2}] member resources~
-
-# Resource Type / Plugin View/Datasources
-view_type_resourceTypes=Resource Types~
-view_type_parentId=Parent ID~
-view_type_typeTreeLoadFailure=Failed to load resource type tree data~
-
-#=================== Dashboard =====================
-view_dashboard_favorites_error1=Failed to load favorite Resources.~
-view_dashboardManager_error=Failed to save dashboard to server~
-view_dashboardManager_saved=Saved dashboard {0} to server~
-view_dashboardManager_success=Saved dashboard~
-view_dashboardManager_deleted=Successfully deleted dashboard {0}~
-view_dashboards_title=Dashboard~
-view_dashboards_confirm1=Are you sure you want to delete~
-view_dashboardsManager_error1=Failed to add new dashboard~
-# // dup in common
-view_dashboardsManager_inventory_title=Inventory Summary~
-view_dashboardsManager_mashup_title=RHQ News~
-view_dashboardsManager_message_title=Welcome To RHQ~
-view_dashboardsManager_message_title_details=<h1>Welcome to RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems management suite that provides extensible and integrated systems management for multiple products and platforms across a set of core features. The project is designed with layered modules that provide a flexible architecture for deployment. It delivers a core user interface that delivers audited and historical management across an entire enterprise. A Server/Agent architecture provides remote management and plugins implement all specific support for managed products.</p>\n <p>This default dashboard can be edited by clicking the (edit mode) button above.</p>~
-view_dashboardsManager_tagcloud_title=Tag Cloud~
-view_portlet_autodiscovery_config_platform_selection = Number of platforms to display~
-view_portlet_autodiscovery_help_msg = This portlet offers the ability to import newly discovered resources into the inventory for monitoring and management or to ignore them from further action.~
-view_portlet_autodiscovery_title = Discovery Queue~
-view_portlet_favoriteResources_msg=This portlet displays your favorite resources~
-view_portlet_favoriteResources_title=Favorite Resources~
-view_portlet_generic_help=No help available for this portlet~
-view_portlet_generic_unconfigured=No settings available for this portlet~
-view_portlet_graph_configure_resource_graph=The resource to graph~
-view_portlet_graph_configure_metricDefinition_graph=The metric definition id to graph~
-view_portlet_graph_configure_title=Graph Config~
-view_portlet_graph_configure_title_desc=Configuration of the graph portlet~
-view_portlet_graph_help_msg = This Portlet supports the graphing of a resource metric.~
-view_portlet_graph_help_title = Graph Portlet~
-view_portlet_graph_help_unconfigured=This graph is unconfigured, click the settings button to configure.~
-view_portlet_graph_title = Resource Graph~
-view_portlet_inventory_error1=Failed to retrieve inventory summary~
-view_portlet_mashup_config_title=MashupPorlet Configuration~
-view_portlet_mashup_config_title_desc=The configuration settings for the mashup portlet.~
-view_portlet_mashup_help=This portlet can include a web page via an HTTP request into an iframe on the dashboard.~
-view_portlet_mashup_unconfigured=Page address not yet configured, click the settings button to setup this portlet.~
-view_portlet_message_config_title=MessagePortlet Configuration~
-view_portlet_message_config_title_desc=The configuration settings for the message portlet.~
-view_portlet_message_help=This portlet can display an HTML message on the dashboard.~
-view_portlet_message_title=Message~
-view_portlet_message_unconfigured=Message not yet configured, click the settings button to setup this portlet.~
-view_portlet_operations_config_completed_maximum=Maximum number of Completed operations to display.~
-view_portlet_operations_config_completed_enable=Whether to enable completed operations results grouping for dashboard.~
-view_portlet_operations_config_scheduled_enable=Whether to enable scheduled operations results grouping for dashboard.~
-view_portlet_operations_config_scheduled_maximum=Maximum number of Scheduled operations to display.~
-view_portlet_operations_config_completed=completed operations~
-view_portlet_operations_config_show_last=show Last~
-view_portlet_operations_config_show_next=show Next~
-view_portlet_operations_config_title=OperationsPortlet Configuration~
-view_portlet_operations_config_title_desc=The configuration settings for the Operations portlet.~
-view_portlet_operations_disabled=(Results currently disabled. Change settings to enable results.~
-view_portlet_operations_help_msg=This portlet displays both operations that have occurred and are scheduled to occur.~
-view_portlet_platform_help_msg = This portlet displays information about platforms in inventory.~
-view_portlet_platform_platform_error_1 = Failed to load platform metrics~
-view_portlet_platform_title = Platforms Summary~
-view_portlet_platform_type_error_1 = Could not load type data~
-view_portlet_problem_resources_config_display_maximum=Maximum number of Problem resources to display.~
-view_portlet_problem_resources_config_display_range=Show problem resources going back this many hours.~
-view_portlet_problem_resources_config_display_range2 = From {0} to {1}~
-view_portlet_problem_resources_config_problem_label=problem resources on dashboard.~
-view_portlet_problem_resources_config_title=ProblemResourcesPortlet Configuration~
-view_portlet_problem_resources_config_title_desc=The configuration settings for the Problem resources portlet.~
-view_portlet_problem_resources_help=This portlet displays resources that have reported alerts or Down availability.~
-view_portlet_problem_resources_title=Has Alerts or Currently Unavailable~
-view_portlet_recentAlerts_config_members=Select Members~
-view_portlet_recentAlerts_config_priority_label = priority Alerts,~
-view_portlet_recentAlerts_config_when=within the past~
-view_portlet_recentAlerts_help_msg = Displays recent alerts fired on resources visible to the current user login.~
-# // dup in common
-view_portlet_recentAlerts_title = Recent Alerts~
-view_portlet_recentlyAdded_approved_platforms=recently approved platforms on dashboard.~
-view_portlet_recentlyAdded_error1=Failed to load recently added resources~
-view_portlet_recentlyAdded_help_msg=This portlet displays resources that have recently been imported into the inventory.~
-view_portlet_recentlyAdded_title =Recently Added Portlet~
-view_portlet_tagCloud_help=portlet displays the relative tag counts in the system visible to the current user.~
-view_portlet_tagCloud_title=TagCloud~
-
-#=================== Inventory =====================
-view_inventory_adq = Discovery Queue~
-view_inventory_sectionHelp = From this section, newly discovered Resources, inventoried Resources, and Groups can be viewed and managed.~
-view_inventory_cannotGetGlobalPerms = Could not determine global permissions - assuming none.~
-view_inventory_problemGroups=Problem Groups~
-view_inventory_collectionInterval=Collection Interval~
-view_inventory_mixed=mixed~
-view_inventory_downServers=Down Servers~
-view_inventory_groups = Groups~
-view_inventory_allGroups = All Groups~
-view_inventory_allResources = All Resources~
-view_inventory_platforms = Platforms~
-view_inventory_servers = Servers~
-view_inventory_services = Services~
-view_inventory_dynagroupDefs = Dynagroup Definitions~
-view_metric_traits=Traits~
-view_metric_viewTraitHistory=Value History for Trait [{0}]~
-view_inventory_eventHistory_groupEventHistory=Group Event History~
-view_inventory_eventHistory_resourceEventHistory=Resource Event History~
-view_inventory_eventHistory_sourceFilter=Source Filter~
-view_inventory_eventHistory_detailsFilter=Details Filter~
-view_inventory_eventHistory_severityFilter=Severity Filter~
-view_inventory_eventHistory_timestamp=Timestamp~
-view_inventory_eventHistory_severity=Severity~
-view_inventory_eventHistory_details=Details~
-view_inventory_eventHistory_sourceLocation=Source Location~
-view_inventory_eventHistory_deleteSuccessful=You have successfully deleted [{0}] events for [{1}]~
-view_inventory_eventHistory_deleteFailed=Failed to deleted selected events for [{0}]~
-view_inventory_eventHistory_purgeSuccessful=You have successfully purged [{0}] events for [{1}]~
-view_inventory_eventHistory_purgeFailed=Failed to purge events for [{0}]~
-view_inventory_eventDetails_loadFailed=An error occurred loading the event details~
-view_inventory_groups_resourceGroups=Resource Groups~
-view_inventory_groups_children=Children~
-view_inventory_groups_descendants=Descendants~
-view_inventory_groups_deleteSuccessful=You have successfully deleted the selected resource groups~
-view_inventory_groups_deleteFailed=Failed to delete the selected resource groups~
-view_inventory_groups_loadFailed=Failed to load group composite data~
-view_inventory_resource_loadFailed=Resource with id [{0}] does not exist or is not accessible~
-view_inventory_resources_deleteConfirm=Are you sure you want to delete the selected resources?~
-view_inventory_resources_deleteSuccessful=You have successfully deleted the selected resources~
-view_inventory_resources_deleteFailed=Failed to delete the selected resources~
-view_inventory_resources_loadFailed=Failed to load resource composite data~
-view_inventory_resources_title=Member Resources~
-view_inventory_resources_title_children=Child Resources~
-view_inventory_resources_title_members=Member Resources~
-view_resource_monitor_availability_loadFailed=Failed to load availability history~
-view_resource_monitor_graphs_noneAvailable=No graphs available~
-view_resource_monitor_graphs_loadFailed=Failed to load graph data~
-view_resource_monitor_graphs_lookupFailed=Failed to find resource for graph~
-view_resource_monitor_graph_instructions=Point your mouse to a data point on the chart~
-view_resource_monitor_graph_live_tooltip=Click for a live graph of current values~
-view_resource_monitor_detailed_graph_label=Detailed Graph~
-view_resource_monitor_calltime_title=Call Time Data~
-view_resource_monitor_calltime_destination=Call Destination~
-view_resource_monitor_calltime_count=Count~
-view_resource_monitor_calltime_minimum=Minimum~
-view_resource_monitor_calltime_average=Average~
-view_resource_monitor_calltime_maximum=Maximum~
-view_resource_monitor_calltime_total=Total~
-view_resource_monitor_calltime_loadFailed=Could not load call time data~
-view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
-view_resource_monitor_calltime_editFailed=Call time data can not be edited~
-view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
-view_tree_common_loadFailed_generic=Failed to load data for tree~
-view_tree_common_loadFailed_root=Failed to load root for tree~
-view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
-view_tree_common_loadFailed_children=Failed to load children for node~
-view_tree_common_loadFailed_selection=Failed to select this node~
-view_tree_common_loadFailed_node=Failed to load data for this node~
-view_tree_common_loadFailed_create=Failed to create view for this node~
-view_tree_common_loadFailed_update=Failed to update view for this node~
-view_tree_common_contextMenu_type_name_label=Type: {0}
-view_tree_common_contextMenu_pluginConfiguration=Plugin Configuration~
-view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
-view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
-view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource Configuration~
-view_tree_common_contextMenu_operations=Operations~
-view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running operations~
-view_tree_common_contextMenu_measurements=Measurements~
-view_tree_common_contextMenu_addChartToDashboard=Add chart to dashboard [{0}]~
-view_tree_common_contextMenu_chart=Chart~
-view_tree_common_contextMenu_saveChartToDashboardSuccessful=You have saved dashboard [{0}]~
-view_tree_common_contextMenu_saveChartToDashboardFailure=Failed to save the dashboard~
-view_tree_common_contextMenu_loadFailed_dashboard=Failed to load user dashboards
-view_tree_common_contextMenu_loadFailed_manualAddChildren=Failed to load platform manual add children~
-view_tabs_common_summary=Summary~
-view_tabs_common_overview=Overview~
-view_tabs_common_dashboard=Dashboard~
-view_tabs_common_timeline=Timeline~
-view_tabs_common_monitoring=Monitoring~
-view_tabs_common_graphs=Graphs~
-view_tabs_common_tables=Tables~
-view_tabs_common_traits=Traits~
-view_tabs_common_availability=Availability~
-view_tabs_common_schedules=Schedules~
-view_tabs_common_calltime=Calltime~
-view_tabs_common_inventory=Inventory~
-view_tabs_common_groups=Groups~
-view_tabs_common_group_membership=Group Membership~
-view_tabs_common_members=Members~
-view_tabs_common_child_resources=Child Resources~
-view_tabs_common_child_history=Child History~
-view_tabs_common_connectionSettings=Connection Settings~
-view_tabs_common_connectionSettingsHistory=Connection Settings History~
-view_tabs_common_operations=Operations~
-view_tabs_common_history=History~
-view_tabs_common_scheduled=Scheduled~
-view_tabs_common_alerts=Alerts~
-view_tabs_common_definitions=Definitions~
-view_tabs_common_current=Current~
-view_tabs_common_events=Events~
-view_tabs_common_configuration=Configuration~
-view_tabs_common_content=Content~
-view_tabs_common_deployed=Deployed~
-view_tabs_common_new=New~
-view_tabs_common_subscriptions=Subscriptions~
-view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
-view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
-view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
-view_titleBar_common_clickToRemoveFav=Click to remove this as a favorite~
-view_titleBar_common_clickToAddFav=Click to add this as a favorite~
-view_titleBar_common_removedFav=You have removed [{0}] as one of your favorites~
-view_titleBar_common_addedFav=You have added [{0}] as a favorite~
-view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your favorites~
-view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
-view_dynagroup_expressionSet=Expression Set~
-view_dynagroup_recalculationInterval=Recalculation Interval~
-view_dynagroup_lastCalculationTime=Last Calculation Time~
-view_dynagroup_nextCalculationTime=Next Calculation Time~
-view_dynagroup_definitionCreated=You have successfully created a group definition named [{0}]~
-view_dynagroup_definitionLoadFailure=Failed to load group definitions~
-view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
-view_dynagroup_saveSuccessful=You have successfully saved the group definition named [{0}]~
-view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
-view_dynagroup_singleSaveFailure=An error occurred - there should have been one created, but instead there were [{0}] created~
-view_dynagroup_saveAndRecalculate=Save & Recalculate~
-view_dynagroup_recalculate=Recalculate~
-view_dynagroup_recalcSuccessful=You have successfully recalculated this group definition~
-view_dynagroup_recalcFailure=Failed to recalculated this group definition~
-view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group definitions~
-view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group definitions~
-view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group definitions~
-view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
-view_dynagroup_children=DynaGroup Children~
-view_dynagroup_newGroupDefinition=New Group Definition~
-view_dynagroup_editing=Editing [{0}]~
-view_dynagroup_expression=Expression~
-view_dynagroup_recursive=Recursive~
-view_dynagroup_loadDefinitionFailure=Failed to load group definition [{0}]~
-view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
-view_dynagroup_permUnknown=Could not determine if you have the proper permissions - access is denied~
-view_dynagroup_permDenied=You do not have permission to view group definitions~
-view_dynagroup_definitions=DynaGroup Definitions~
-view_group_membership_saveFailure=Failed to update membership of group [{0}]~
-view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
-view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
-view_group_resConfig_edit_noperm=You do not have permission to edit this group configuration~
-view_group_resConfig_edit_saveInitiated_concise=The group configuration updates have been initiated~
-view_group_resConfig_edit_saveInitiated_full=The group configuration updates have been initiated for the [{0}] compatible group named [{1}]~
-view_group_resConfig_edit_saveFailure=Failed to initiate group configuration update for [{0}] compatible group named [{1}]~
-view_group_resConfig_edit_valid=All configuration properties have valid values, so the configuration can now be saved~
-view_group_resConfig_edit_invalid=The following configuration properties have invalid values and must be corrected before the configuration can be saved: [{0}]~
-view_group_pluginConfig_view_noperm=You do not have permissions to see the connection settings~
-view_group_pluginConfig_view_groupProperties=Group Properties~
-view_group_pluginConfig_table_title=Group Connection Settings History~
-view_group_pluginConfig_table_statusDetails=Status Details~
-view_group_pluginConfig_table_viewSettings=View Settings~
-view_group_pluginConfig_table_viewMemberHistory=View Member History~
-view_group_pluginConfig_table_deleteSuccessful=You have deleted [{0}] history items~
-view_group_pluginConfig_table_deleteFailure=Failed to delete group plugin config history~
-view_group_pluginConfig_table_msg1=View Member History for status of each individual resource~
-view_group_pluginConfig_table_statusSuccess=This group configuration update was successful~
-view_group_pluginConfig_table_statusInprogress=This group configuration update is still in progress~
-view_group_pluginConfig_table_statusNochange=No changes were made to this group configuration~
-view_group_pluginConfig_table_statusFailure=This group configuration update failed~
-view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
-view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
-view_group_pluginConfig_members_statusDetails=Status Details~
-view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
-view_group_pluginConfig_members_statusInprogress=This configuration update is still in progress~
-view_group_pluginConfig_members_statusNochange=No changes were made to this configuration~
-view_group_pluginConfig_members_statusFailure=This configuration update failed for an unknown reason~
-view_group_pluginConfig_members_fetchFailure=Failed to get plugin config update history for members of group [{0}]~
-view_group_pluginConfig_edit_currentGroupProperties=Current Group Properties~
-view_group_pluginConfig_edit_saveTooltip=Update the connection settings of all group members~
-view_group_pluginConfig_edit_noperm=You do not have permission to edit this group connection settings~
-view_group_pluginConfig_edit_saveInitiated_concise=The group connection setting updates have been initiated~
-view_group_pluginConfig_edit_saveInitiated_full=The group connection setting updates have been initiated for the [{0}] compatible group named [{1}]~
-view_group_pluginConfig_edit_saveFailure=Failed to initiate group connection setting update for [{0}] compatible group named [{1}]~
-view_group_pluginConfig_edit_valid=All connection setting properties have valid values, so the connection settings can now be saved~
-view_group_pluginConfig_edit_invalid=The following connection setting properties have invalid values and must be corrected before the connection settings can be saved: [{0}]~
-view_group_meas_schedules_title=Group Metric Collection Schedules~
-view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with ID [{0}] - could not change from [{1}] to [{2}]~
-view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group with ID [{0}] from [{1}] to [{2}]~
-view_group_summary_memberType=Member Type~
-view_group_summary_memberCount=Member Count~
-view_group_summary_dynamic=Dynamic~
-view_group_summary_recursive=Recursive~
-view_group_summary_groupDefinition=Group Definition~
-view_group_summary_mixed=Mixed~
-view_group_summary_descUpdateFailure=Failed to change the description of the resource group with ID [{0}]~
-view_group_summary_descUpdateSuccessful=You have changed the description of this resource group~
-view_group_summary_dynamicNote=Dynamic group names and descriptions are managed, and therefore are not editable~
-
-# Connection Settings Details
-#------------------------------------------
-view_connectionSettingsDetails_noPermission = You do not have permission to edit this Resource''s connection settings.~
-view_connectionSettingsDetails_error_updateFailure = Failed to update connection settings.~
-view_connectionSettingsDetails_messageConcise_updateSuccess = Connection settings updated.~
-view_connectionSettingsDetails_messageDetailed_updateSuccess = Connection settings updated for Resource [{0}].~
-view_connectionSettingsDetails_allPropertiesValid = All connection settings have valid values, so the settings can now be saved.~
-view_connectionSettingsDetails_somePropertiesInvalid = The following connection settings have invalid values: {0}. The values must be corrected before the settings can be saved.~
-
-# Resource Resource Groups
-#-----------------------------------------
-view_resourceResourceGroupList_error_fetchFailure = Failed to fetch Resource''s groups.~
-view_resourceResourceGroupList_error_updateFailure = Failed to update assigned Resource groups.~
-view_resourceResourceGroupList_message_updateSuccess = Group membership updated for [{0}].
-
-# Configuration Details
-#-------------------------------
-view_configurationDetails_noPermission = You do not have permission to edit this Resource''s configuration.~
-view_configurationDetails_error_updateFailure = Failed to update configuration.~
-view_configurationDetails_messageConcise = Configuration updated.~
-view_configurationDetails_messageDetailed = Configuration updated for Resource [{0}].~
-view_configurationDetails_allPropertiesValid = All configuration properties have valid values, so the configuration can now be saved.~
-view_configurationDetails_somePropertiesInvalid = The following configuration properties have invalid values: {0}. The values must be corrected before the configuration can be saved.~
-
-# Configuration History List
-view_configurationHistoryList_title = Configuration History~
-view_configurationHistoryList_itemNamePlural = configuration history items
-
-# Configuration History Details
-#------------------------------------------
-view_configurationHistoryDetails_dialogTitle = Configuration Details~
-view_configurationHistoryDetails_error_loadFailure = Unable to load configuration history.~
-
-# Operation History List
-#---------------------------------
-view_operationHistoryList_title = Operation History~
-view_operationHistoryList_button_runOperation = Run Operation~
-
-# Operation History Details
-#--------------------------------------
-view_operationHistoryDetails_error_fetchFailure = Failure loading operation history.~
-
-# Operation Create Wizard
-#-------------------------------------
-view_operationCreateWizard_title = Operation Wizard~
-view_operationCreateWizard_header = Execute {0} on {1}~
-view_operationCreateWizard_button_execute = Execute~
-view_operationCreateWizard_button_executeImmediately = Execute Immediately~
-view_operationCreateWizard_error_scheduleOperationFailure = Failed to schedule operation execution.~
-view_operationCreateWizard_message_scheduleOperationSuccess = Schedule operation [{0}] on Resource [{1}] with cron string [{2}].~
-view_operationCreateWizard_parametersStep_name = Operation Parameters~
-view_operationCreateWizard_parametersStep_noParameters = This operation does not take any parameters.~
-view_operationCreateWizard_schedulingStep_name = Schedule~
-view_operationCreateWizard_schedulingStep_label_start = Start~
-view_operationCreateWizard_schedulingStep_label_schedule = Schedule~
-view_operationCreateWizard_schedulingStep_label_recurrence = Recurrence~
-view_operationCreateWizard_schedulingStep_label_runAt = Run At~
-view_operationCreateWizard_schedulingStep_label_nMinutes = n Minutes~
-view_operationCreateWizard_schedulingStep_label_hourly = Hourly~
-view_operationCreateWizard_schedulingStep_label_daily = Daily~
-view_operationCreateWizard_schedulingStep_label_weekly = Weekly~
-view_operationCreateWizard_schedulingStep_label_monthly = Monthly~
-view_operationCreateWizard_schedulingStep_label_timePeriod = Time Period~
-view_operationCreateWizard_schedulingStep_label_startDate = Start Date~
-view_operationCreateWizard_schedulingStep_label_recurrenceEnd = Recurrence End~
-view_operationCreateWizard_schedulingStep_label_endDate = End Date~
-view_operationCreateWizard_schedulingStep_label_willExecuteImmediately = Will execute immediately~
-view_operationCreateWizard_schedulingStep_label_onceAt = Once At~
-view_operationCreateWizard_schedulingStep_label_date = Date~
-view_operationCreateWizard_schedulingStep_label_time = Time~
-view_operationCreateWizard_schedulingStep_label_everyNMinutes = Every n Minutes~
-view_operationCreateWizard_schedulingStep_label_minuteInterval = Minute Interval~
-view_operationCreateWizard_schedulingStep_label_hourlyAt = Hourly At~
-view_operationCreateWizard_schedulingStep_label_minuteOfHour = Minute of Hour~
-view_operationCreateWizard_schedulingStep_label_dailyAt = Daily At~
-view_operationCreateWizard_schedulingStep_label_timeOfDay = Time of Day~
-view_operationCreateWizard_schedulingStep_label_weeklyOn = Weekly On~
-view_operationCreateWizard_schedulingStep_label_dayOfWeek = Day of Week~
-view_operationCreateWizard_schedulingStep_label_monthlyOn = Monthly On~
-view_operationCreateWizard_schedulingStep_label_dayOfMonth = Day of Month~
-
-# Summary Overview Form
-#-------------------------------------
-view_summaryOverviewForm_field_type = Type~
-view_summaryOverviewForm_field_name = Name~
-view_summaryOverviewForm_field_description = Description~
-view_summaryOverviewForm_field_location = Location~
-view_summaryOverviewForm_field_version = Version~
-view_summaryOverviewForm_field_parent = Parent~
-
-
-#==================== Reports ======================
-
-view_reportsTop_title = Reports~
-view_reportsTop_description = This section provides access to global reports.~
-view_reports_platforms = Cpu And Memory Utilization~
-view_reports_subsystems = Subsystems~
-
-view_measurementOob_title = Suspect Metrics~
-
-view_tagCloud_title = Tag Cloud~
-view_tagCloud_error_fetchFailure = Failed to load tags.~
-view_tagCloud_error_tagUsedCount = Tag used {0} times.~
-
-view_taggedResources_title = Tagged Resources~
-
-
-#===================== Test =======================
-view_testTop_title = Test~
-view_testTop_description = This section contains pages for testing various GUI components.~
-
-#=================== Top Level =====================
-
-# About Box
-#----------
-view_aboutBox_allRightsReserved = All Rights Reserved.~
-view_aboutBox_buildNumber = Build Number:~
-view_aboutBox_failedToLoad = Failed to load product information.~
-view_aboutBox_homepage = Homepage~
-view_aboutBox_jbossByRedHat = JBoss by Red Hat~
-view_aboutBox_title = About {0}~
-view_aboutBox_version = Version:~
-
-# CoreGUI
-#--------------
-view_core_error_1 = New Alerts lookup failed~
-view_core_loggedInAs = Logged in as {0}~
-view_core_loggedOut = Logged out~
-view_core_recentAlerts = [{0}] recent alerts~
-view_core_uncaught = Globally uncaught exception~
-
-# Login
-#--------------
-view_login_invalidEmail = Invalid e-mail address~
-view_login_login = Login~
-view_login_logout = Logout~
-view_login_noBackend = The backend datasource is unavailable.~
-view_login_noLdap = Note: Optional retrieval of ldap details unsuccessful. Manual entry is required.~
-view_login_noUser = The username or password provided does not match our records.~
-view_login_prompt = Please Login~
-view_login_registerLater = (Logout - Complete registration later.)~
-view_login_registerLdapSuccess = Succesfully registered the new LDAP User.~
-view_login_registerUser = Register User~
-view_login_welcome = Welcome to JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
-
-
-# Menu Bar
-#--------------
-view_menuBar_help = Help~
-view_menuBar_logout = Logout~
-
-# Search Bar, GUI
-#-----------------
-view_searchBar_search = Search~
-view_searchBar_resources = Resources~
-view_searchBar_resourceGroups = Resource Groups~
-# TODO: i18n pluralization
-view_searchBar_welcomeMessage = search for {0}s~
-view_searchBar_defaultPattern = name your pattern~
-view_searchBar_error_selectSavedSearch = ''Error selecting saved search''~
-
-view_searchGUI_loginStatus = Unable to determine login status, check server status~
-
-# Message Center
-#--------------------------
-view_messageCenter_button_messages = Messages~
-view_messageCenter_noRecentMessages = No Recent Messages~
-view_messageCenter_messageTitle = Message Center~
-view_messageCenter_messageSeverity = Severity~
-view_messageCenter_messageTime = Time~
-view_messageCenter_messageDetail = Detail~
+ #
+ # RHQ GUI i18n Messages - English
+ ###################################
+
+ #************************************** SHARED ****************************************
+
+ #=================== Common =====================
+
+ #
+ # Build Info
+ #
+ common_buildInfo_gwtVersion = ${gwt.version}~
+
+ # Button Labels
+ #--------------
+ common_button_advanced = Advanced...~
+ common_button_apply = Apply~
+ common_button_cancel = Cancel~
+ common_button_close = Close~
+ common_button_compare = Compare~
+ common_button_create_child = Create Child~
+ common_button_delete = Delete~
+ common_button_disable = Disable~
+ common_button_enable = Enable~
+ common_button_finish = Finish~
+ common_button_import = Import~
+ common_button_new = New~
+ common_button_next = Next~
+ common_button_ok = OK~
+ common_button_previous = Previous~
+ common_button_purgeAll=Purge All~
+ common_button_refresh = "Refresh"~
+ common_button_reset = Reset~
+ common_button_save = Save~
+ common_button_search = Search~
+ common_button_showDetails = Show Details...~
+ common_button_uninventory = Uninventory~
+
+ # Common Labels
+ #------------------------
+ common_label_all = ALL~
+ common_label_all_resources = all resources~
+ common_label_day=day~
+ common_label_days=days~
+ common_label_hour=hour~
+ common_label_hours=hours~
+ common_label_item=item~
+ common_label_items=items~
+ common_label_milliseconds=milliseconds~
+ common_label_minutes=minutes~
+ common_label_month=month~
+ common_label_none = none~
+ common_label_search=Search~
+ common_label_scheduled_operations=scheduled operations~
+ common_label_seconds=seconds~
+ common_label_selected_resources = selected resources~
+ common_label_unlimited = unlimited~
+ common_label_week=week~
+
+ # Common Titles
+ #--------------
+ common_title_add_column=Add Column~
+ common_title_add_portlet=Add Portlet~
+ common_title_alert_range=Alert Range~
+ common_title_availability = Availability~
+ common_title_average_metrics=Average Metrics per Minute~
+ common_title_available_resources=Available Resources~
+ common_title_background=Background~
+ common_title_category = Category~
+ common_title_columns=Columns~
+ common_title_configuration = Configuration~
+ common_title_compatibleGroups = Compatible Groups~
+ common_title_compatibleGroups_total=Compatible Group Total~
+ common_title_custom=Custom~
+ common_title_dashboard_name=Dashboard Name~
+ common_title_dateCreated=Date Created~
+ common_title_default=Default~
+ common_title_description=Description~
+ common_title_display=Display~
+ common_title_display_name=Display Name~
+ common_title_duration=Duration~
+ common_title_edit_mode=Edit Mode~
+ common_title_enabled=Enabled?~
+ common_title_end = End~
+ common_title_favorites=Favorites~
+ common_title_generalProp = General Properties~
+ common_title_group_def_total=Group Definition Total~
+ common_title_icon = icon~
+ common_title_id = ID~
+ common_title_id_parent = Parent ID~
+ common_title_host = Host~
+ common_title_inventory = Inventory~
+ common_title_inventorySummary = Inventory Summary~
+ common_title_lastUpdated=Last Updated~
+ common_title_lastUpdatedBy=Last Updated By~
+ common_title_mashup=Mashup~
+ common_title_metric = Metric~
+ common_title_mixedGroups = Mixed Groups~
+ common_title_mixedGroups_total=Mixed Group Total~
+ common_title_name = Name~
+ common_title_new_dashboard=New Dashboard~
+ common_title_numeric_type=Numeric Type~
+ common_title_operations=Operations~
+ common_title_operations_range=Operation Range~
+ common_title_over=Over~
+ common_title_password = Password~
+ common_title_path = Path~
+ common_title_platform_total=Platform Total~
+ common_title_plugin = Plugin~
+ common_title_port = Port~
+ common_title_recently_added = Recently Added Resources~
+ common_title_recent_alerts = Recent Alerts~
+ common_title_recent_operations=Recent Operations~
+ common_title_remove_column=Remove Column~
+ common_title_resource = Resource~
+ common_title_resource_group = Resource Group~
+ common_title_resource_inventory=Resource Inventory~
+ common_title_resource_id=Resource ID~
+ common_title_resource_name=Resource Name~
+ common_title_scheduled_operations=Scheduled Operations~
+ common_title_selected_resources=Selected Resources~
+ common_title_server_total=Server Total~
+ common_title_service_total=Service Total~
+ common_title_settings=Settings~
+ common_title_show=Show~
+ common_title_start = Start~
+ common_title_status=Status~
+ common_title_summary=Summary~
+ common_title_tag_cloud=Tag Cloud~
+ common_title_the=The
+ common_title_summary_counts=Summary Counts~
+ common_title_timestamp =Date/Time~
+ common_title_total=Total~
+ common_title_type = Type~
+ common_title_units = Units~
+ common_title_user=User~
+ common_title_value = Value~
+ common_title_version = Version~
+ common_title_view_mode=View Mode~
+ common_title_web_address=Web Address~
+
+ # Common Messages
+ #--------------
+ common_msg_areYouSure = Are You Sure?~
+ common_msg_deleteConfirm = Are you sure you want to delete the # selected {0}?~
+ common_msg_loading = Loading...~
+ common_msg_noItemsToShow=No items to show~
+
+ # Common Values
+ #--------------
+ common_val_no = No~
+ common_val_no_lower = no~
+ common_val_yes = Yes~
+ common_val_yes_lower = yes~
+ common_val_never = Never~
+ common_val_na = N/A~
+ common_val_none = None~
+
+ # Common Calendar
+ #--------------
+ common_calendar_january_short=jan~
+ common_calendar_february_short=feb~
+ common_calendar_march_short=mar~
+ common_calendar_april_short=apr~
+ common_calendar_may_short=may~
+ common_calendar_june_short=jun~
+ common_calendar_july_short=jul~
+ common_calendar_august_short=aug~
+ common_calendar_september_short=sept~
+ common_calendar_october_short=oct~
+ common_calendar_november_short=nov~
+ common_calendar_december_short=dec~
+
+
+ #=================== Widgets =====================
+
+ # Record Editor
+ #--------------
+ widget_recordEditor_title_view = View {0} [{1}]~
+ widget_recordEditor_title_edit = Edit {0} [{1}]~
+ widget_recordEditor_title_new = Create New {0}~
+ # // dup in common
+ widget_recordEditor_label_loading = Loading...~
+ widget_recordEditor_error_invalidViewPath = Invalid view path: [{0}]~
+ widget_recordEditor_error_noRecords = No records were returned - expected exactly one.~
+ widget_recordEditor_error_multipleRecords = Multiple records were returned - expected exactly one.~
+ widget_recordEditor_info_recordCreatedConcise = {0} created.~
+ widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] created.~
+ widget_recordEditor_info_recordUpdatedConcise = {0} updated.~
+ widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] updated.~
+ widget_recordEditor_info_recordsDeletedConcise = {0} {1} deleted.~
+ widget_recordEditor_info_recordsDeletedDetailed = {0} {1} deleted: {2}.~
+ widget_recordEditor_error_unsupportedOperationType = Unsupported operation type: [{0}]~
+
+ # Resource Selector/Picker
+ #--------------------------------
+ widget_resourceSelector_selectResource=Select a Resource~
+ widget_resourceSelector_pleaseSelectResource=Please select a resource~
+ widget_resourceSelector_selectMultipleResources=Select Resources~
+ widget_resourceSelector_pleaseSelectMultipleResource=Please select one or more resources~
+ widget_resourceSelector_groupCategory=Group Category~
+
+ # Resource Factory Wizard
+ #--------------------------------
+ widget_resourceFactoryWizard_uploadInProgress=The upload is in progress... This can take several minutes to complete for large distribution files.~
+ widget_resourceFactoryWizard_uploadFileStepName=Upload Resource Content File~
+ widget_resourceFactoryWizard_uploadFailure=Failed to upload file~
+ widget_resourceFactoryWizard_editConfigStepName=Edit Configuration~
+ widget_resourceFactoryWizard_infoStepName=Resource Information~
+ widget_resourceFactoryWizard_namePrompt=New Resource Name~
+ widget_resourceFactoryWizard_templatePrompt=Connection Settings Template~
+ widget_resourceFactoryWizard_contentTemplatePrompt=Deployment Time Configuration Templates~
+ widget_resourceFactoryWizard_configTemplatePrompt=Resource Configuration Templates~
+ widget_resourceFactoryWizard_archPrompt=Package Architecture~
+ widget_resourceFactoryWizard_versionPrompt=Package Version~
+ widget_resourceFactoryWizard_importWizardWindowTitle=Resource Import Wizard~
+ widget_resourceFactoryWizard_importWizardTitle=Import Resource of Type [{0}]~
+ widget_resourceFactoryWizard_importFailure=Failed to manually import resource~
+ widget_resourceFactoryWizard_importSubmitted=A request to import a new resource of type [{0}] has been submitted~
+ widget_resourceFactoryWizard_createWizardWindowTitle=Resource Create Wizard~
+ widget_resourceFactoryWizard_createWizardTitle=Create New Resource of Type [{0}]~
+ widget_resourceFactoryWizard_execute1=Failed to create a new resource - there is no package version~
+ widget_resourceFactoryWizard_execute2=Failed to create a new resource~
+ widget_resourceFactoryWizard_createSubmitType=A request to create a resource of type [{0}] has been submitted successfully.~
+ widget_resourceFactoryWizard_createSubmit=A request to create a resource with the name of [{0}] has been submitted successfully.~
+ widget_resourceFactoryWizard_failedToGetType=Failed to get backing package type for new resource~
+ widget_resourceFactoryWizard_failedToDeleteVersion=Failed to delete package version while canceling a resource create~
+
+ #===================== Utils ======================
+
+ # Disambiguation Report Decorator
+ #-------------------------------------------------
+ util_disambiguationReportDecorator_pluginSuffix = ({0} plugin)~
+
+ # Monitoring Request Callback
+ #------------------------------------------
+ util_monitoringRequestCallback_error_checkServerStatusFailure = Unable to determine login status - check Server status.~
+
+ # RPC Manager
+ #----------------------
+ util_rpcManager_activeRequests = {0} Active Requests~
+
+ # User Permissions Manager
+ #--------------------------
+ util_userPerm_loadFailGlobal = Failed to load your global permissions - none granted.~
+ util_userPerm_loadFailGroup = Failed to load your permissions for Resource Group with id [{0}] - none granted.~
+ util_userPerm_loadFailResource = Failed to load your permissions for Resource with id [{0}] - none granted.~
+
+ # User Session Manager
+ #--------------------------
+ util_userSession_loadFailSubject = UserSessionManager: Failed to load user Subject~
+ util_userSession_logoutFail = Failed to logout.~
+
+ # Error Handler
+ #--------------------
+ util_errorHandler_nullException = exception was null~
+
+ # Widgets Field
+ #---------------------
+ util_widgetsField_unlimited = Unlimited~
+
+
+ #================== DataSources ====================
+
+ # RPC (abstract)
+ #-----------------------
+ dataSource_rpc_error_transformRequestFailure = Failure in datasource while processing {0} request.~
+ dataSource_rpc_error_unsupportedArrayFilterType = No support for passing array filters of type {0}.~
+ dataSource_rpc_error_unsupportedEnumType = Please add an appropriate code block for enum {0} to RPCDataSource.getEnumArray(Class)~
+ dataSource_rpc_yes = yes~
+ dataSource_rpc_no = no~
+
+ # ContentRepositoryTree
+ #------
+ dataSource_ContentRepoTree_error_load = Error loading repositories~
+ dataSource_ContentRepoTree_field_parentId = Parent ID~
+
+
+ # Users
+ #------
+ ###### dup in common
+ dataSource_users_field_id = ID~
+ dataSource_users_field_name = User Name~
+ dataSource_users_field_ldap = LDAP Login?~
+ dataSource_users_field_password = Password`
+ dataSource_users_field_passwordVerify = Verify Password~
+ dataSource_users_field_firstName = First Name~
+ dataSource_users_field_lastName = Last Name~
+ dataSource_users_field_emailAddress = Email Address~
+ dataSource_users_field_phoneNumber = Phone Number~
+ dataSource_users_field_department = Department~
+ dataSource_users_field_factive = Login Enabled?~
+
+ # Platforms
+ #------
+ dataSource_platforms_field_cpu=CPU~
+ dataSource_platforms_field_memory=Memory~
+ dataSource_platforms_field_swap=Swap~
+
+ # Traits
+ #------
+ dataSource_traits_field_primaryKey=Primary Key~
+ dataSource_traits_field_definitionID=Definition ID~
+ dataSource_traits_field_lastChanged=Last Changed~
+ dataSource_traits_field_trait=Trait~
+ dataSource_traits_group_field_groupId=Group ID~
+ dataSource_traits_group_field_memberResource=Member Resource~
+
+ # Measurement OOBs
+ #---------------------------------
+ dataSource_measurementOob_field_scheduleName = Metric~
+ dataSource_measurementOob_field_resourceName = Resource~
+ dataSource_measurementOob_field_parentName = Parent~
+ dataSource_measurementOob_field_formattedBaseband = Band~
+ dataSource_measurementOob_field_formattedOutlier = Outlier~
+ dataSource_measurementOob_field_factor = Out of Range Factor (%)~
+ dataSource_measurementOob_error_fetchFailure = Failed to load measurement OOB information~
+
+ # Measurements
+ #----------------------
+ dataSource_definitions_loadFailed = Failed to load metric definitions~
+ dataSource_schedules_loadFailed = Failed to load metric schedules~
+ dataSource_schedules_field_resourceGroupId = Group ID~
+
+ dataSource_schedules_enableFailure_resource=Failed to enable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
+ dataSource_schedules_enableFailure_group=Failed to enable the collection of [{0}] metrics for group with ID [{1}]. The metrics were: [{2}]~
+
+ dataSource_schedules_enableSuccessful_concise=You have enabled the collection of [{0}] measurements~
+ dataSource_schedules_enableSuccessful_full_resource=You have enabled the collection of [{0}] measurements for the resource with ID [{1}]. The enabled measurements are: [{2}]~
+ dataSource_schedules_enableSuccessful_full_group=You have enabled the collection of [{0}] measurements for the resource group with ID [{1}]. The enabled measurements are: [{2}]~
+
+ dataSource_schedules_disableFailure_resource=Failed to disable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
+ dataSource_schedules_disableFailure_group=Failed to disable the collection of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]~
+
+ dataSource_schedules_disableSuccessful_concise=You have disabled the collection of [{0}] measurements~
+ dataSource_schedules_disableSuccessful_full_resource=You have disabled the collection of [{0}] measurements for the resource with ID [{1}]. The disabled measurements are: [{2}]~
+ dataSource_schedules_disableSuccessful_full_group=You have disabled the collection of [{0}] measurements for the resource group with ID [{1}]. The disabled measurements are: [{2}]~
+
+ dataSource_schedules_updateFailure_resource=Failed to set the collection interval of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
+ dataSource_schedules_updateFailure_group=Failed to set the collection interval of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]. The collection interval was to be [{3}] seconds.~
+
+ dataSource_schedules_updateSuccessful_concise=A new collection interval of [{0}] seconds has been set on [{1}] measurements~
+ dataSource_schedules_updateSuccessful_full_resource=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource with ID [{2}]. The updated measurements are: [{3}]~
+ dataSource_schedules_updateSuccessful_full_group=A new collection interval of [{0}] seconds has been set on [{1}] measurements for resource group with ID [{2}]. The updated measurements are: [{3}]~
+
+
+ # Problem Resources
+ #------------------------------
+ dataSource_problemResources_field_resource = Resource~
+ dataSource_problemResources_field_location = Location~
+ dataSource_problemResources_field_alerts = Alerts~
+ dataSource_problemResources_field_available = Current Availability~
+ dataSource_problemResources_error_fetchFailure = Failed to load Resources with alerts/unavailability.~
+
+ # Recent Operations
+ #----------------------------
+ dataSource_recentOperations_field_resource = Resource~
+ dataSource_recentOperations_field_location = Location~
+ dataSource_recentOperations_field_operation = Operation~
+ dataSource_recentOperations_field_time = Date/Time~
+ dataSource_recentOperations_field_status = Status~
+ dataSource_recentOperations_error_fetchFailure = Failed to load recently completed operations.
+
+ # Scheduled Operations
+ #---------------------------------
+ dataSource_scheduledOperations_field_resource = Resource~
+ dataSource_scheduledOperations_field_location = Location~
+ dataSource_scheduledOperations_field_operation = Operation~
+ dataSource_scheduledOperations_field_time = Date/Time~
+ dataSource_scheduledOperations_error_fetchFailure = Failed to load scheduled operations.
+
+ # Operation History
+ #---------------------------
+ dataSource_operationHistory_error_fetchFailure = Failure loading operation histories.~
+
+ # 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_error_fetchFailure = Unable to load configuration history.~
+
+ # Resource Errors
+ #-------------------------
+ dataSource_resourceErrors_field_summary = Summary~
+ dataSource_resourceErrors_field_detail = Detailed Message~
+ dataSource_resourceErrors_field_errorType = Error Type~
+ dataSource_resourceErrors_field_timeOccured = Time~
+ dataSource_resourceErrors_error_fetchFailure = Failed to find Resource errors for Resource with id [{0}].~
+
+
+ #********************************** VIEW-SPECIFIC *************************************
+
+ #================= Administration ==================
+
+ view_admin_administration = Administration~
+ view_admin_configuration = Configuration~
+ view_admin_security = Security~
+ view_admin_topology = Topology~
+
+ view_adminSecurity_users = Users~
+ view_adminSecurity_roles = Roles~
+
+ view_adminTopology_affinityGroups = Affinity Groups~
+ view_adminTopology_agents = Agents~
+ view_adminTopology_partitionEvents = Partition Events~
+ view_adminTopology_remoteAgentInstall = Remote Agent Install~
+ view_adminTopology_servers = Servers~
+
+ view_adminConfig_downloads = Downloads~
+ view_adminConfig_license = License~
+ view_adminConfig_plugins = Plugins~
+ view_adminConfig_systemSettings = System Settings~
+ view_adminConfig_templates = Templates~
+
+ # Administration/Security/Users/#
+ #--------------------------------
+ view_adminUsersDetails_dataTypeName = user~
+
+ # Administration/Security/Roles/#
+ #--------------------------------
+ #jjj
+ view_adminRoles_assignedGroups = Assigned Resource Groups~
+ view_adminRoles_assignedSubjects = Assigned Subjects~
+ view_adminRoles_failLdap = Failed to determine if LDAP configured - assuming no LDAP.~
+ view_adminRoles_failLdapGroups = Failed to retrieve available LDAP groups - assuming no LDAP groups.~
+ view_adminRoles_globalPerms = Global Permissions~
+ view_adminRoles_ldapgroups = LDAP Groups~
+ view_adminRoles_noLdap = <b>NOTE:</b> The LDAP security integration is not configured. To configure LDAP go to <a {0}>{1}</a>.~
+ view_adminRoles_perms = Permissions~
+ view_adminRoles_resourcePerms = Resource Permissions~
+
+
+ # Administration/Topology/RemoteAgentInstall/#
+ #--------------------------------
+ view_remoteAgentInstall_agentStatus = Agent Status~
+ view_remoteAgentInstall_agentStatusDefault = -Click Update Status Button-~
+ view_remoteAgentInstall_connInfo = Connection Information~
+ view_remoteAgentInstall_buttonFindAgent = Find Agent~
+ view_remoteAgentInstall_error_1 = Error occurred while trying to find agent install path~
+ view_remoteAgentInstall_error_2 = Could not find an agent installed when looking in common locations
+ view_remoteAgentInstall_error_3 = Could not find an agent installed at or under [{0}]
+ view_remoteAgentInstall_error_4 = Failed to install agent~
+ view_remoteAgentInstall_error_5 = Failed to start agent~
+ view_remoteAgentInstall_error_6 = Failed to stop agent~
+
+ view_remoteAgentInstall_installAgent = Install Agent~
+ view_remoteAgentInstall_installInfo = Agent Installation Information~
+ view_remoteAgentInstall_installPath = Agent Install Path~
+ view_remoteAgentInstall_owner = Owner~
+ view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install.~
+ view_remoteAgentInstall_promptHost = The host where the agent is or will be installed~
+ view_remoteAgentInstall_promptPassword =The credentials that are used to authenticate the user on the host via SSH~
+ view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not specified, the default is 22~
+ view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to the host via SSH~
+ view_remoteAgentInstall_result = Result~
+ view_remoteAgentInstall_resultCode = ResultCode~
+ view_remoteAgentInstall_startAgent = Start Agent~
+ view_remoteAgentInstall_startAgentResults = Agent start results: [{0}]~
+ view_remoteAgentInstall_step = Step~
+ view_remoteAgentInstall_stopAgent = Stop Agent~
+ view_remoteAgentInstall_stopAgentResults = Agent stop results: [{0}]~
+ view_remoteAgentInstall_success = Agent installation complete~
+ view_remoteAgentInstall_updateStatus = Update Status~
+
+
+ # Auto Discovery Queue
+ #----------------------------
+ view_autoDiscoveryQ_title=Autodiscovery Queue~
+ view_autoDiscoveryQ_import=Import~
+ view_autoDiscoveryQ_ignore=Ignore~
+ view_autoDiscoveryQ_ignored=Ignored~
+ view_autoDiscoveryQ_unignore=Unignore~
+ view_autoDiscoveryQ_new=New~
+ view_autoDiscoveryQ_newAndIgnored=New and Ignored~
+ view_autoDiscoveryQ_importFailure=Failed to import resources~
+ view_autoDiscoveryQ_importSuccessful=You have successfully imported the selected resources.~
+ view_autoDiscoveryQ_ignoreFailure=Failed to ignore resources~
+ view_autoDiscoveryQ_ignoreSuccessful=You have successfully ignored the selected resources.~
+ view_autoDiscoveryQ_unignoreFailure=Failed to unignore resources~
+ view_autoDiscoveryQ_unignoreSuccessful=You have successfully unignored the selected resources.~
+ view_autoDiscoveryQ_noperm=(Required manage inventory permissions missing. See Administrator to change)~
+ view_autoDiscoveryQ_noItems=No items to show~
+ view_autoDiscoveryQ_field_parentId=Parent ID~
+ view_autoDiscoveryQ_field_name=Resource Name~
+ view_autoDiscoveryQ_field_key=Resource Key~
+ view_autoDiscoveryQ_field_discoveryTime=Discovery Time~
+ view_autoDiscoveryQ_field_inventoryStatus=Inventory Status~
+ view_autoDiscoveryQ_loadFailure=Failed to load the inventory discovery queue~
+
+ #==================== Bundles ======================
+
+ # some common bundle terms
+ view_bundle_bundle = Bundle~
+ view_bundle_bundles = Bundles~
+ view_bundle_deployments=Deployments~
+ view_bundle_bundleVersions=Bundle Versions~
+ view_bundle_bundleVersion=Bundle Version~
+ view_bundle_versions=Versions~
+ view_bundle_bundleFiles=Bundle Files~
+ view_bundle_destinations=Destinations~
+ view_bundle_bundleDestinations=Bundle Destinations~
+ view_bundle_files=Files~
+ view_bundle_recipe=Recipe~
+ view_bundle_bundleType=Bundle Type~
+ view_bundle_deploy=Deploy~
+ view_bundle_latestVersion=Latest Version~
+
+ # individual bundle views/wizards
+ view_bundle_fileListView_fileSize=File Size~
+ view_bundle_fileListView_loadFailure=Failed to load bundle file data~
+ view_bundle_version_backToBundle=Back to Bundle~
+ view_bundle_version_bundleVersionTagUpdateFailure=Failed to update bundle version tags~
+ view_bundle_version_bundleVersionTagUpdateSuccessful=You have successfully updated the bundle version tags~
+ view_bundle_version_loadFailure=Failed to load bundle version~
+ view_bundle_tree_loadFailure=Failed to load bundle data~
+ view_bundle_revertWizard_title=Bundle Revert~
+ view_bundle_revertWizard_windowTitle=Bundle Revert Wizard~
+ view_bundle_revertWizard_getInfoStep_name=Provide Revert Information~
+ view_bundle_revertWizard_getInfoStep_revertDeployName=Revert Deploy Name~
+ view_bundle_revertWizard_getInfoStep_revertDeployDesc=Revert Deploy Description~
+ view_bundle_revertWizard_getInfoStep_revertDeployDescFull=[REVERT From]\\n{0}\\n\\n[REVERT To]\\n{1}~
+ view_bundle_revertWizard_getInfoStep_cleanDeploy=Clean Deployment? (this will delete an old, existing deploy directory prior to starting the revert deployment)~
+ view_bundle_revertWizard_getInfoStep_getNameFailure=Failed to get revert deployment name~
+ view_bundle_revertWizard_confirmStep_name=Revert Deployment Confirmation~
+ view_bundle_revertWizard_confirmStep_noLiveDeployment=No live deployment was found for the destination [{0}]~
+ view_bundle_revertWizard_confirmStep_noPriorDeployment=The live deployment [{0}] cannot be reverted because there is no prior deployment for the destination [{1}]~
+ view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment=Failed to find live deployment; cannot revert~
+ view_bundle_revertWizard_confirmStep_liveDeployment=Live Deployment~
+ view_bundle_revertWizard_confirmStep_prevDeployment=Previous Deployment~
+ view_bundle_revertWizard_confirmStep_confirmation=Reverting Live Deployment to Previous Deployment. Click "Next" to continue...~
+ view_bundle_revertWizard_revertStep_name=Deploy Bundle to Destination Platforms~
+ view_bundle_revertWizard_revertStep_reverting=Reverting...~
+ view_bundle_revertWizard_revertStep_scheduled=You have successfully scheduled the revert deployment!~
+ view_bundle_revertWizard_revertStep_scheduledDetails=You have successfully scheduled to revert the bundle deployment [{0}] from resource group [{1}]~
+ view_bundle_revertWizard_revertStep_scheduledFailure=Failed to schedule revert deployment!~
+ view_bundle_list_deleteFailure=Failed to delete bundle [{0}]~
+ view_bundle_list_deleteSuccessful=You deleted the bundle named [{0}]~
+ view_bundle_list_loadFailure=Failed to load the bundle to be deployed [{0}]~
+ view_bundle_list_singleLoadFailure=Failed to get a single bundle to be deployed [{0}]~
+ view_bundle_list_versionsCount=Versions Count~
+ view_bundle_list_destinationsCount=Destinations Count~
+ view_bundle_list_loadWithLatestFailure=Failed to load bundle with the latest version data~
+ view_bundleVersion_loadFailure=Failed to load bundle version data~
+ view_bundle_list_backToAll=Back to All Bundles~
+ view_bundle_list_bundleVersionTagUpdateFailure=Failed to update bundle tags~
+ view_bundle_list_bundleVersionTagUpdateSuccessful=You have successfully updated the bundle tags~
+ view_bundle_list_deleteConfirm=Are you sure you want to delete this bundle?~
+ view_bundle_list_deleteFailure=Failed to delete the bundle [{0}]~
+ view_bundle_list_deleteSuccessful=You successfully deleted the bundle named [{0}]~
+ view_bundle_list_error1=Failed to load bundle to deploy [{0}]~
+ view_bundle_list_error2=Failed to get a single bundle to deploy [{0}]~
+ view_bundle_list_error3=Failed to load bundle~
+ view_bundle_dest_group=Group~
+ view_bundle_dest_deployDir=Deploy Directory~
+ view_bundle_dest_lastDeployedVersion=Last Deployed Version~
+ view_bundle_dest_lastDeploymentDate=Last Deployment Date~
+ view_bundle_dest_lastDeploymentStatus=Last Deployment Status~
+ view_bundle_dest_loadFailure=Failed to load bundle destinations~
+ view_bundle_dest_loadFailureVersionInfo=Failed to load bundle destination deployed version information~
+ view_bundle_dest_backToBundle=Back to Bundle~
+
+ #=================== Components =====================
+
+ view_configCompare_comparingConfigs = Comparing Configurations~
+ view_configCompare_configCompare = Configuration Comparison~
+
+ view_configEdit_addItem = Add Item to List~
+ view_configEdit_confirm_1 = Are you sure you want to delete the selected properties from the set?~
+ view_configEdit_confirm_2 = Are you sure you want to delete this row?~
+ view_configEdit_confirm_3 = Are you sure you want to delete the [{0}] selected [{1}]?~
+ view_configEdit_editRow = Edit Configuration Row~
+ view_configEdit_enterPropName = Enter the name of the property to be added.~
+ view_configEdit_error_1 = Configuration is not supported by this Resource.~
+ view_configEdit_error_2 = Connection settings are not supported by this Resource.~
+ view_configEdit_error_3 = Cannot add property named [{0}]. The property name is already used in the set.~
+ view_configEdit_files = Files~
+ view_configEdit_hideAll= Hide All~
+ view_configEdit_jumpToSection = Jump to Section~
+ view_configEdit_msg_1 = Added property [{0}] to the set.~
+ view_configEdit_msg_2 = Removed properties from the set.~
+ view_configEdit_msg_3 = [{0} {1}] deleted from list.~
+ view_configEdit_msg_4 = Item added to list.~
+ view_configEdit_properties = Properties~
+ view_configEdit_tooltip_1 = Delete the selected items from the list.~
+ view_configEdit_tooltip_2 = Add an item to the list.~
+
+ view_groupConfigEdit_member = Member~
+ view_groupConfigEdit_noListProps = List properties are not currently supported for group configurations.~
+ view_groupConfigEdit_tooltip_1 = Member values differ - click icon to edit them.~
+ view_groupConfigEdit_setAll = Set all values to:~
+ view_groupConfigEdit_unset = Unset~
+ view_groupConfigEdit_valsDiff = member values differ~
+ view_groupConfigEdit_valsDiffForProp = Member Values for Property [{0}]~
+
+ view_leftNav_unknownPage = Unknown page name [{0}] for section [{1}] - URL is invalid.~
+
+ view_measure_nan = --no data available--~
+ view_measureRange_day = 1 Day~
+ view_measureRange_days = {0} Days~
+ view_measureRange_hour = 1 Hour~
+ view_measureRange_hours = {0} Hours~
+ view_measureRange_last = Last~
+ view_measureRange_minutes = {0} Minutes~
+ view_measureRange_range = Range~
+ view_measureRange_simple = Simple...~
+
+ view_selector_assigned = Assigned {0}~
+ view_selector_available = Available {0}~
+
+ view_subTab_error_disabled = Cannot select disabled subTab [{0}].~
+
+ view_table_totalRows = Total Rows: {0} Selected: {1}~
+ view_tableSection_backButton = Back to List~
+ view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
+ view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
+
+ view_tags_tags = Tags
+ view_tags_error_1 = Failed to load Tags~
+ view_tags_title = Tags:~
+ view_tags_tooltip_1 = Click to remove this Tag~
+ view_tags_tooltip_2 = Click to edit Tags~
+ view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
+
+ # File Upload (various)
+ view_upload_alreadyUploaded = File has already been uploaded~
+ view_upload_bundleDistFile = Distribution File~
+ view_upload_error_bundleDistFile = Error uploading Bundle Distribution File~
+ view_upload_error_file = Error uploading file~
+ view_upload_error_fileName = Error uploading file [{0}]~
+ view_upload_error_fileName_2 = Error uploading file [{0}], check for invalid file path.~
+ view_upload_error_packageVersionFile = Error uploading Package Version File~
+ view_upload_error_results = Error uploading file, unexpected results: [{0}]~
+ view_upload_inProgress = Can not submit, upload is currently in progress~
+ view_upload_prompt_1 = [{0}] File to Upload~
+ view_upload_prompt_2 = File to Upload~
+ view_upload_tooltip_1 = Select a file to upload, then click Upload or Next~
+ view_upload_tooltip_2 = File upload had previously failed~
+ view_upload_success = File successfully uploaded~
+ view_upload_upload = Upload~
+ view_upload_uploadFile = UploadFile~
+
+ # Group Create Wizard
+ view_groupCreateWizard_membersStepName=Select Members~
+ view_groupCreateWizard_createStepName=Group Settings~
+ view_groupCreateWizard_createStep_recursive=Recursive~
+ view_groupCreateWizard_title=Create Group~
+ view_groupCreateWizard_windowTitle=Create Group~
+ view_groupCreateWizard_createFailure=Failed to create the resource group~
+ view_groupCreateWizard_createSuccessful_concise=You have created a new resource group. [<a href="{0}">View Group</a>]~
+ view_groupCreateWizard_createSuccessful_full=You have created a new [{0}] resource group with the name [{1}] that contains [{2}] member resources~
+
+ # Resource Type / Plugin View/Datasources
+ view_type_resourceTypes=Resource Types~
+ view_type_parentId=Parent ID~
+ view_type_typeTreeLoadFailure=Failed to load resource type tree data~
+
+ #=================== Dashboard =====================
+ view_dashboard_favorites_error1=Failed to load favorite Resources.~
+ view_dashboardManager_error=Failed to save dashboard to server~
+ view_dashboardManager_saved=Saved dashboard {0} to server~
+ view_dashboardManager_success=Saved dashboard~
+ view_dashboardManager_deleted=Successfully deleted dashboard {0}~
+ view_dashboards_title=Dashboard~
+ view_dashboards_confirm1=Are you sure you want to delete~
+ view_dashboardsManager_error1=Failed to add new dashboard~
+ # // dup in common
+ view_dashboardsManager_inventory_title=Inventory Summary~
+ view_dashboardsManager_mashup_title=RHQ News~
+ view_dashboardsManager_message_title=Welcome To RHQ~
+ view_dashboardsManager_message_title_details=<h1>Welcome to RHQ</h1>\n<p>The RHQ project is an abstraction and plug-in based systems management suite that provides extensible and integrated systems management for multiple products and platforms across a set of core features. The project is designed with layered modules that provide a flexible architecture for deployment. It delivers a core user interface that delivers audited and historical management across an entire enterprise. A Server/Agent architecture provides remote management and plugins implement all specific support for managed products.</p>\n <p>This default dashboard can be edited by clicking the (edit mode) button above.</p>~
+ view_dashboardsManager_tagcloud_title=Tag Cloud~
+ view_portlet_autodiscovery_config_platform_selection = Number of platforms to display~
+ view_portlet_autodiscovery_help_msg = This portlet offers the ability to import newly discovered resources into the inventory for monitoring and management or to ignore them from further action.~
+ view_portlet_autodiscovery_title = Discovery Queue~
+ view_portlet_favoriteResources_msg=This portlet displays your favorite resources~
+ view_portlet_favoriteResources_title=Favorite Resources~
+ view_portlet_generic_help=No help available for this portlet~
+ view_portlet_generic_unconfigured=No settings available for this portlet~
+ view_portlet_graph_configure_resource_graph=The resource to graph~
+ view_portlet_graph_configure_metricDefinition_graph=The metric definition id to graph~
+ view_portlet_graph_configure_title=Graph Config~
+ view_portlet_graph_configure_title_desc=Configuration of the graph portlet~
+ view_portlet_graph_help_msg = This Portlet supports the graphing of a resource metric.~
+ view_portlet_graph_help_title = Graph Portlet~
+ view_portlet_graph_help_unconfigured=This graph is unconfigured, click the settings button to configure.~
+ view_portlet_graph_title = Resource Graph~
+ view_portlet_inventory_error1=Failed to retrieve inventory summary~
+ view_portlet_mashup_config_title=MashupPorlet Configuration~
+ view_portlet_mashup_config_title_desc=The configuration settings for the mashup portlet.~
+ view_portlet_mashup_help=This portlet can include a web page via an HTTP request into an iframe on the dashboard.~
+ view_portlet_mashup_unconfigured=Page address not yet configured, click the settings button to setup this portlet.~
+ view_portlet_message_config_title=MessagePortlet Configuration~
+ view_portlet_message_config_title_desc=The configuration settings for the message portlet.~
+ view_portlet_message_help=This portlet can display an HTML message on the dashboard.~
+ view_portlet_message_title=Message~
+ view_portlet_message_unconfigured=Message not yet configured, click the settings button to setup this portlet.~
+ view_portlet_operations_config_completed_maximum=Maximum number of Completed operations to display.~
+ view_portlet_operations_config_completed_enable=Whether to enable completed operations results grouping for dashboard.~
+ view_portlet_operations_config_scheduled_enable=Whether to enable scheduled operations results grouping for dashboard.~
+ view_portlet_operations_config_scheduled_maximum=Maximum number of Scheduled operations to display.~
+ view_portlet_operations_config_completed=completed operations~
+ view_portlet_operations_config_show_last=show Last~
+ view_portlet_operations_config_show_next=show Next~
+ view_portlet_operations_config_title=OperationsPortlet Configuration~
+ view_portlet_operations_config_title_desc=The configuration settings for the Operations portlet.~
+ view_portlet_operations_disabled=(Results currently disabled. Change settings to enable results.~
+ view_portlet_operations_help_msg=This portlet displays both operations that have occurred and are scheduled to occur.~
+ view_portlet_platform_help_msg = This portlet displays information about platforms in inventory.~
+ view_portlet_platform_platform_error_1 = Failed to load platform metrics~
+ view_portlet_platform_title = Platforms Summary~
+ view_portlet_platform_type_error_1 = Could not load type data~
+ view_portlet_problem_resources_config_display_maximum=Maximum number of Problem resources to display.~
+ view_portlet_problem_resources_config_display_range=Show problem resources going back this many hours.~
+ view_portlet_problem_resources_config_display_range2 = From {0} to {1}~
+ view_portlet_problem_resources_config_problem_label=problem resources on dashboard.~
+ view_portlet_problem_resources_config_title=ProblemResourcesPortlet Configuration~
+ view_portlet_problem_resources_config_title_desc=The configuration settings for the Problem resources portlet.~
+ view_portlet_problem_resources_help=This portlet displays resources that have reported alerts or Down availability.~
+ view_portlet_problem_resources_title=Has Alerts or Currently Unavailable~
+ view_portlet_recentAlerts_config_members=Select Members~
+ view_portlet_recentAlerts_config_priority_label = priority Alerts,~
+ view_portlet_recentAlerts_config_when=within the past~
+ view_portlet_recentAlerts_help_msg = Displays recent alerts fired on resources visible to the current user login.~
+ # // dup in common
+ view_portlet_recentAlerts_title = Recent Alerts~
+ view_portlet_recentlyAdded_approved_platforms=recently approved platforms on dashboard.~
+ view_portlet_recentlyAdded_error1=Failed to load recently added resources~
+ view_portlet_recentlyAdded_help_msg=This portlet displays resources that have recently been imported into the inventory.~
+ view_portlet_recentlyAdded_title =Recently Added Portlet~
+ view_portlet_tagCloud_help=portlet displays the relative tag counts in the system visible to the current user.~
+ view_portlet_tagCloud_title=TagCloud~
+
+
+ #=================== Inventory =====================
+ view_inventory_adq = Discovery Queue~
+ view_inventory_sectionHelp = From this section, newly discovered Resources, inventoried Resources, and Groups can be viewed and managed.~
+ view_inventory_cannotGetGlobalPerms = Could not determine global permissions - assuming none.~
+ view_inventory_problemGroups=Problem Groups~
+ view_inventory_collectionInterval=Collection Interval~
+ view_inventory_mixed=mixed~
+ view_inventory_downServers=Down Servers~
+ view_inventory_groups = Groups~
+ view_inventory_allGroups = All Groups~
+ view_inventory_allResources = All Resources~
+ view_inventory_platforms = Platforms~
+ view_inventory_servers = Servers~
+ view_inventory_services = Services~
+ view_inventory_dynagroupDefs = Dynagroup Definitions~
+ view_metric_traits=Traits~
+ view_metric_viewTraitHistory=Value History for Trait [{0}]~
+ view_inventory_eventHistory_groupEventHistory=Group Event History~
+ view_inventory_eventHistory_resourceEventHistory=Resource Event History~
+ view_inventory_eventHistory_sourceFilter=Source Filter~
+ view_inventory_eventHistory_detailsFilter=Details Filter~
+ view_inventory_eventHistory_severityFilter=Severity Filter~
+ view_inventory_eventHistory_timestamp=Timestamp~
+ view_inventory_eventHistory_severity=Severity~
+ view_inventory_eventHistory_details=Details~
+ view_inventory_eventHistory_sourceLocation=Source Location~
+ view_inventory_eventHistory_deleteSuccessful=You have successfully deleted [{0}] events for [{1}]~
+ view_inventory_eventHistory_deleteFailed=Failed to deleted selected events for [{0}]~
+ view_inventory_eventHistory_purgeSuccessful=You have successfully purged [{0}] events for [{1}]~
+ view_inventory_eventHistory_purgeFailed=Failed to purge events for [{0}]~
+ view_inventory_eventDetails_loadFailed=An error occurred loading the event details~
+ view_inventory_groups_resourceGroups=Resource Groups~
+ view_inventory_groups_children=Children~
+ view_inventory_groups_descendants=Descendants~
+ view_inventory_groups_deleteSuccessful=You have successfully deleted the selected resource groups~
+ view_inventory_groups_deleteFailed=Failed to delete the selected resource groups~
+ view_inventory_groups_loadFailed=Failed to load group composite data~
+ view_inventory_resource_loadFailed=Resource with id [{0}] does not exist or is not accessible~
+ view_inventory_resources_deleteConfirm=Are you sure you want to delete the selected resources?~
+ view_inventory_resources_deleteSuccessful=You have successfully deleted the selected resources~
+ view_inventory_resources_deleteFailed=Failed to delete the selected resources~
+ view_inventory_resources_loadFailed=Failed to load resource composite data~
+ view_inventory_resources_title=Member Resources~
+ view_inventory_resources_title_children=Child Resources~
+ view_inventory_resources_title_members=Member Resources~
+ view_resource_monitor_availability_loadFailed=Failed to load availability history~
+ view_resource_monitor_graphs_noneAvailable=No graphs available~
+ view_resource_monitor_graphs_loadFailed=Failed to load graph data~
+ view_resource_monitor_graphs_lookupFailed=Failed to find resource for graph~
+ view_resource_monitor_graph_instructions=Point your mouse to a data point on the chart~
+ view_resource_monitor_graph_live_tooltip=Click for a live graph of current values~
+ view_resource_monitor_detailed_graph_label=Detailed Graph~
+ view_resource_monitor_calltime_title=Call Time Data~
+ view_resource_monitor_calltime_destination=Call Destination~
+ view_resource_monitor_calltime_count=Count~
+ view_resource_monitor_calltime_minimum=Minimum~
+ view_resource_monitor_calltime_average=Average~
+ view_resource_monitor_calltime_maximum=Maximum~
+ view_resource_monitor_calltime_total=Total~
+ view_resource_monitor_calltime_loadFailed=Could not load call time data~
+ view_resource_monitor_calltime_lookupFailed=Could not load resource for call time~
+ view_resource_monitor_calltime_editFailed=Call time data can not be edited~
+ view_resource_monitor_schedules_title=Resource Metric Collection Schedules~
+ view_tree_common_loadFailed_generic=Failed to load data for tree~
+ view_tree_common_loadFailed_root=Failed to load root for tree~
+ view_tree_common_loadFailed_descendants=Failed to load descendants for tree~
+ view_tree_common_loadFailed_children=Failed to load children for node~
+ view_tree_common_loadFailed_selection=Failed to select this node~
+ view_tree_common_loadFailed_node=Failed to load data for this node~
+ view_tree_common_loadFailed_create=Failed to create view for this node~
+ view_tree_common_loadFailed_update=Failed to update view for this node~
+ view_tree_common_contextMenu_type_name_label=Type: {0}
+ view_tree_common_contextMenu_pluginConfiguration=Plugin Configuration~
+ view_tree_common_contextMenu_resourceConfiguration=Resource Configuration~
+ view_tree_common_contextMenu_editPluginConfiguration=Edit [{0}] Plugin Configuration~
+ view_tree_common_contextMenu_editResourceConfiguration=Edit [{0}] Resource Configuration~
+ view_tree_common_contextMenu_operations=Operations~
+ view_tree_common_contextMenu_operations_loadFailed=Failure to start wizard for running operations~
+ view_tree_common_contextMenu_measurements=Measurements~
+ view_tree_common_contextMenu_addChartToDashboard=Add chart to dashboard [{0}]~
+ view_tree_common_contextMenu_chart=Chart~
+ view_tree_common_contextMenu_saveChartToDashboardSuccessful=You have saved dashboard [{0}]~
+ view_tree_common_contextMenu_saveChartToDashboardFailure=Failed to save the dashboard~
+ view_tree_common_contextMenu_loadFailed_dashboard=Failed to load user dashboards
+ view_tree_common_contextMenu_loadFailed_manualAddChildren=Failed to load platform manual add children~
+ view_tabs_common_summary=Summary~
+ view_tabs_common_overview=Overview~
+ view_tabs_common_dashboard=Dashboard~
+ view_tabs_common_timeline=Timeline~
+ view_tabs_common_monitoring=Monitoring~
+ view_tabs_common_graphs=Graphs~
+ view_tabs_common_tables=Tables~
+ view_tabs_common_traits=Traits~
+ view_tabs_common_availability=Availability~
+ view_tabs_common_schedules=Schedules~
+ view_tabs_common_calltime=Calltime~
+ view_tabs_common_inventory=Inventory~
+ view_tabs_common_groups=Groups~
+ view_tabs_common_group_membership=Group Membership~
+ view_tabs_common_members=Members~
+ view_tabs_common_child_resources=Child Resources~
+ view_tabs_common_child_history=Child History~
+ view_tabs_common_connectionSettings=Connection Settings~
+ view_tabs_common_connectionSettingsHistory=Connection Settings History~
+ view_tabs_common_operations=Operations~
+ view_tabs_common_history=History~
+ view_tabs_common_scheduled=Scheduled~
+ view_tabs_common_alerts=Alerts~
+ view_tabs_common_definitions=Definitions~
+ view_tabs_common_current=Current~
+ view_tabs_common_events=Events~
+ view_tabs_common_configuration=Configuration~
+ view_tabs_common_content=Content~
+ view_tabs_common_deployed=Deployed~
+ view_tabs_common_new=New~
+ view_tabs_common_subscriptions=Subscriptions~
+ view_titleBar_common_updateTagsSuccessful=The tags for [{0}] have been updated~
+ view_titleBar_common_updateTagsFailure=Failed to update the tags for [{0}]~
+ view_titleBar_common_loadTagsFailure=Failed to load the tags for [{0}]~
+ view_titleBar_common_clickToRemoveFav=Click to remove this as a favorite~
+ view_titleBar_common_clickToAddFav=Click to add this as a favorite~
+ view_titleBar_common_removedFav=You have removed [{0}] as one of your favorites~
+ view_titleBar_common_addedFav=You have added [{0}] as a favorite~
+ view_titleBar_common_removedFavFailure=Failed to remove [{0}] as one of your favorites~
+ view_titleBar_common_addedFavFailure=Failed to add [{0}] as a favorite~
+ view_dynagroup_expressionSet=Expression Set~
+ view_dynagroup_recalculationInterval=Recalculation Interval~
+ view_dynagroup_lastCalculationTime=Last Calculation Time~
+ view_dynagroup_nextCalculationTime=Next Calculation Time~
+ view_dynagroup_definitionCreated=You have successfully created a group definition named [{0}]~
+ view_dynagroup_definitionLoadFailure=Failed to load group definitions~
+ view_dynagroup_definitionAlreadyExists=A group definition already exists with this name~
+ view_dynagroup_saveSuccessful=You have successfully saved the group definition named [{0}]~
+ view_dynagroup_saveFailure=Failed to save the group definition named [{0}]~
+ view_dynagroup_singleSaveFailure=An error occurred - there should have been one created, but instead there were [{0}] created~
+ view_dynagroup_saveAndRecalculate=Save & Recalculate~
+ view_dynagroup_recalculate=Recalculate~
+ view_dynagroup_recalcSuccessful=You have successfully recalculated this group definition~
+ view_dynagroup_recalcFailure=Failed to recalculated this group definition~
+ view_dynagroup_recalcSuccessfulSelection=You have successfully recalculated [{0}] group definitions~
+ view_dynagroup_recalcFailureSelection=Failed to recalculated the selected group definitions~
+ view_dynagroup_deleteSuccessfulSelection=You have successfully deleted [{0}] group definitions~
+ view_dynagroup_deleteFailureSelection=Failed to delete the selected group definitions~
+ view_dynagroup_children=DynaGroup Children~
+ view_dynagroup_newGroupDefinition=New Group Definition~
+ view_dynagroup_editing=Editing [{0}]~
+ view_dynagroup_expression=Expression~
+ view_dynagroup_recursive=Recursive~
+ view_dynagroup_loadDefinitionFailure=Failed to load group definition [{0}]~
+ view_dynagroup_loadDefinitionMissing=There is no group definition with the ID of [{0}]~
+ view_dynagroup_permUnknown=Could not determine if you have the proper permissions - access is denied~
+ view_dynagroup_permDenied=You do not have permission to view group definitions~
+ view_dynagroup_definitions=DynaGroup Definitions~
+ view_group_membership_saveFailure=Failed to update membership of group [{0}]~
+ view_group_membership_saveSuccessful=You have updated the membership of group [{0}]~
+ view_group_resConfig_edit_saveTooltip=Update the configurations of all group members~
+ view_group_resConfig_edit_noperm=You do not have permission to edit this group configuration~
+ view_group_resConfig_edit_saveInitiated_concise=The group configuration updates have been initiated~
+ view_group_resConfig_edit_saveInitiated_full=The group configuration updates have been initiated for the [{0}] compatible group named [{1}]~
+ view_group_resConfig_edit_saveFailure=Failed to initiate group configuration update for [{0}] compatible group named [{1}]~
+ view_group_resConfig_edit_valid=All configuration properties have valid values, so the configuration can now be saved~
+ view_group_resConfig_edit_invalid=The following configuration properties have invalid values and must be corrected before the configuration can be saved: [{0}]~
+ view_group_pluginConfig_view_noperm=You do not have permissions to see the connection settings~
+ view_group_pluginConfig_view_groupProperties=Group Properties~
+ view_group_pluginConfig_table_title=Group Connection Settings History~
+ view_group_pluginConfig_table_statusDetails=Status Details~
+ view_group_pluginConfig_table_viewSettings=View Settings~
+ view_group_pluginConfig_table_viewMemberHistory=View Member History~
+ view_group_pluginConfig_table_deleteSuccessful=You have deleted [{0}] history items~
+ view_group_pluginConfig_table_deleteFailure=Failed to delete group plugin config history~
+ view_group_pluginConfig_table_msg1=View Member History for status of each individual resource~
+ view_group_pluginConfig_table_statusSuccess=This group configuration update was successful~
+ view_group_pluginConfig_table_statusInprogress=This group configuration update is still in progress~
+ view_group_pluginConfig_table_statusNochange=No changes were made to this group configuration~
+ view_group_pluginConfig_table_statusFailure=This group configuration update failed~
+ view_group_pluginConfig_table_clickStatusIcon=Click the status icon for full details~
+ view_group_pluginConfig_members_title=Group Connection Settings Member Histories~
+ view_group_pluginConfig_members_statusDetails=Status Details~
+ view_group_pluginConfig_members_statusSuccess=This configuration update was successful~
+ view_group_pluginConfig_members_statusInprogress=This configuration update is still in progress~
+ view_group_pluginConfig_members_statusNochange=No changes were made to this configuration~
+ view_group_pluginConfig_members_statusFailure=This configuration update failed for an unknown reason~
+ view_group_pluginConfig_members_fetchFailure=Failed to get plugin config update history for members of group [{0}]~
+ view_group_pluginConfig_edit_currentGroupProperties=Current Group Properties~
+ view_group_pluginConfig_edit_saveTooltip=Update the connection settings of all group members~
+ view_group_pluginConfig_edit_noperm=You do not have permission to edit this group connection settings~
+ view_group_pluginConfig_edit_saveInitiated_concise=The group connection setting updates have been initiated~
+ view_group_pluginConfig_edit_saveInitiated_full=The group connection setting updates have been initiated for the [{0}] compatible group named [{1}]~
+ view_group_pluginConfig_edit_saveFailure=Failed to initiate group connection setting update for [{0}] compatible group named [{1}]~
+ view_group_pluginConfig_edit_valid=All connection setting properties have valid values, so the connection settings can now be saved~
+ view_group_pluginConfig_edit_invalid=The following connection setting properties have invalid values and must be corrected before the connection settings can be saved: [{0}]~
+ view_group_meas_schedules_title=Group Metric Collection Schedules~
+ view_group_summary_nameUpdateFailure=Failed to change the name of the resource group with ID [{0}] - could not change from [{1}] to [{2}]~
+ view_group_summary_nameUpdateSuccessful=You have changed the name of the resource group with ID [{0}] from [{1}] to [{2}]~
+ view_group_summary_memberType=Member Type~
+ view_group_summary_memberCount=Member Count~
+ view_group_summary_dynamic=Dynamic~
+ view_group_summary_recursive=Recursive~
+ view_group_summary_groupDefinition=Group Definition~
+ view_group_summary_mixed=Mixed~
+ view_group_summary_descUpdateFailure=Failed to change the description of the resource group with ID [{0}]~
+ view_group_summary_descUpdateSuccessful=You have changed the description of this resource group~
+ view_group_summary_dynamicNote=Dynamic group names and descriptions are managed, and therefore are not editable~
+
+ # Connection Settings Details
+ #------------------------------------------
+ view_connectionSettingsDetails_noPermission = You do not have permission to edit this Resource''s connection settings.~
+ view_connectionSettingsDetails_error_updateFailure = Failed to update connection settings.~
+ view_connectionSettingsDetails_messageConcise_updateSuccess = Connection settings updated.~
+ view_connectionSettingsDetails_messageDetailed_updateSuccess = Connection settings updated for Resource [{0}].~
+ view_connectionSettingsDetails_allPropertiesValid = All connection settings have valid values, so the settings can now be saved.~
+ view_connectionSettingsDetails_somePropertiesInvalid = The following connection settings have invalid values: {0}. The values must be corrected before the settings can be saved.~
+
+ # Resource Resource Groups
+ #-----------------------------------------
+ view_resourceResourceGroupList_error_fetchFailure = Failed to fetch Resource''s groups.~
+ view_resourceResourceGroupList_error_updateFailure = Failed to update assigned Resource groups.~
+ view_resourceResourceGroupList_message_updateSuccess = Group membership updated for [{0}].
+
+ # Configuration Details
+ #-------------------------------
+ view_configurationDetails_noPermission = You do not have permission to edit this Resource''s configuration.~
+ view_configurationDetails_error_updateFailure = Failed to update configuration.~
+ view_configurationDetails_messageConcise = Configuration updated.~
+ view_configurationDetails_messageDetailed = Configuration updated for Resource [{0}].~
+ view_configurationDetails_allPropertiesValid = All configuration properties have valid values, so the configuration can now be saved.~
+ view_configurationDetails_somePropertiesInvalid = The following configuration properties have invalid values: {0}. The values must be corrected before the configuration can be saved.~
+
+ # Configuration History List
+ view_configurationHistoryList_title = Configuration History~
+ view_configurationHistoryList_itemNamePlural = configuration history items
+
+ # Configuration History Details
+ #------------------------------------------
+ view_configurationHistoryDetails_dialogTitle = Configuration Details~
+ view_configurationHistoryDetails_error_loadFailure = Unable to load configuration history.~
+
+ # Operation History List
+ #---------------------------------
+ view_operationHistoryList_title = Operation History~
+ view_operationHistoryList_button_runOperation = Run Operation~
+
+ # Operation History Details
+ #--------------------------------------
+ view_operationHistoryDetails_error_fetchFailure = Failure loading operation history.~
+
+ # Operation Create Wizard
+ #-------------------------------------
+ view_operationCreateWizard_title = Operation Wizard~
+ view_operationCreateWizard_header = Execute {0} on {1}~
+ view_operationCreateWizard_button_execute = Execute~
+ view_operationCreateWizard_button_executeImmediately = Execute Immediately~
+ view_operationCreateWizard_error_scheduleOperationFailure = Failed to schedule operation execution.~
+ view_operationCreateWizard_message_scheduleOperationSuccess = Schedule operation [{0}] on Resource [{1}] with cron string [{2}].~
+ view_operationCreateWizard_parametersStep_name = Operation Parameters~
+ view_operationCreateWizard_parametersStep_noParameters = This operation does not take any parameters.~
+ view_operationCreateWizard_schedulingStep_name = Schedule~
+ view_operationCreateWizard_schedulingStep_label_start = Start~
+ view_operationCreateWizard_schedulingStep_label_schedule = Schedule~
+ view_operationCreateWizard_schedulingStep_label_recurrence = Recurrence~
+ view_operationCreateWizard_schedulingStep_label_runAt = Run At~
+ view_operationCreateWizard_schedulingStep_label_nMinutes = n Minutes~
+ view_operationCreateWizard_schedulingStep_label_hourly = Hourly~
+ view_operationCreateWizard_schedulingStep_label_daily = Daily~
+ view_operationCreateWizard_schedulingStep_label_weekly = Weekly~
+ view_operationCreateWizard_schedulingStep_label_monthly = Monthly~
+ view_operationCreateWizard_schedulingStep_label_timePeriod = Time Period~
+ view_operationCreateWizard_schedulingStep_label_startDate = Start Date~
+ view_operationCreateWizard_schedulingStep_label_recurrenceEnd = Recurrence End~
+ view_operationCreateWizard_schedulingStep_label_endDate = End Date~
+ view_operationCreateWizard_schedulingStep_label_willExecuteImmediately = Will execute immediately~
+ view_operationCreateWizard_schedulingStep_label_onceAt = Once At~
+ view_operationCreateWizard_schedulingStep_label_date = Date~
+ view_operationCreateWizard_schedulingStep_label_time = Time~
+ view_operationCreateWizard_schedulingStep_label_everyNMinutes = Every n Minutes~
+ view_operationCreateWizard_schedulingStep_label_minuteInterval = Minute Interval~
+ view_operationCreateWizard_schedulingStep_label_hourlyAt = Hourly At~
+ view_operationCreateWizard_schedulingStep_label_minuteOfHour = Minute of Hour~
+ view_operationCreateWizard_schedulingStep_label_dailyAt = Daily At~
+ view_operationCreateWizard_schedulingStep_label_timeOfDay = Time of Day~
+ view_operationCreateWizard_schedulingStep_label_weeklyOn = Weekly On~
+ view_operationCreateWizard_schedulingStep_label_dayOfWeek = Day of Week~
+ view_operationCreateWizard_schedulingStep_label_monthlyOn = Monthly On~
+ view_operationCreateWizard_schedulingStep_label_dayOfMonth = Day of Month~
+
+ # Summary Overview
+ #-----------------------------
+ view_summaryOverview_header_detectedErrors = Detected Errors~
+ view_summaryOverview_tooltip_detectedErrors = Click on the rows to see the error details.~
+ view_summaryOverview_title_errorDetailsWindow = Error Details~
+
+ # Summary Overview Form
+ #-------------------------------------
+ view_summaryOverviewForm_field_type = Type~
+ view_summaryOverviewForm_field_name = Name~
+ view_summaryOverviewForm_field_description = Description~
+ view_summaryOverviewForm_field_location = Location~
+ view_summaryOverviewForm_field_version = Version~
+ view_summaryOverviewForm_field_parent = Parent~
+ view_summaryOverviewForm_error_traitsLoadFailure = Failed to load traits for {0}.~
+ view_summaryOverviewForm_label_plugin = Plugin:
+ view_summaryOverviewForm_label_type = Type:
+ view_summaryOverviewForm_header_summary = Summary~
+ view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].~
+ view_summaryOverviewForm_message_nameChangeSuccess = "Name of Resource with id {0} was changed from [{1}] to [{2}].~
+ view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].~
+ view_summaryOverviewForm_message_descriptionChangeSuccess = "Description of Resource with id {0} was changed from [{1}] to [{2}].~
+ view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].~
+ view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource with id {0} was changed from [{1}] to [{2}].~
+
+
+ #==================== Reports ======================
+
+ view_reportsTop_title = Reports~
+ view_reportsTop_description = This section provides access to global reports.~
+ view_reports_platforms = Cpu And Memory Utilization~
+ view_reports_subsystems = Subsystems~
+
+ view_measurementOob_title = Suspect Metrics~
+
+ view_tagCloud_title = Tag Cloud~
+ view_tagCloud_error_fetchFailure = Failed to load tags.~
+ view_tagCloud_error_tagUsedCount = Tag used {0} times.~
+
+ view_taggedResources_title = Tagged Resources~
+
+
+ #===================== Test =======================
+ view_testTop_title = Test~
+ view_testTop_description = This section contains pages for testing various GUI components.~
+
+ #=================== Top Level =====================
+
+ # About Box
+ #----------
+ view_aboutBox_allRightsReserved = All Rights Reserved.~
+ view_aboutBox_buildNumber = Build Number:~
+ view_aboutBox_failedToLoad = Failed to load product information.~
+ view_aboutBox_homepage = Homepage~
+ view_aboutBox_jbossByRedHat = JBoss by Red Hat~
+ view_aboutBox_title = About {0}~
+ view_aboutBox_version = Version:~
+
+ # CoreGUI
+ #--------------
+ view_core_error_1 = New Alerts lookup failed~
+ view_core_loggedInAs = Logged in as {0}~
+ view_core_loggedOut = Logged out~
+ view_core_recentAlerts = [{0}] recent alerts~
+ view_core_uncaught = Globally uncaught exception~
+
+ # Login
+ #--------------
+ view_login_invalidEmail = Invalid e-mail address~
+ view_login_login = Login~
+ view_login_logout = Logout~
+ view_login_noBackend = The backend datasource is unavailable.~
+ view_login_noLdap = Note: Optional retrieval of ldap details unsuccessful. Manual entry is required.~
+ view_login_noUser = The username or password provided does not match our records.~
+ view_login_prompt = Please Login~
+ view_login_registerLater = (Logout - Complete registration later.)~
+ view_login_registerLdapSuccess = Succesfully registered the new LDAP User.~
+ view_login_registerUser = Register User~
+ view_login_welcome = Welcome to JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
+
+
+ # Menu Bar
+ #--------------
+ view_menuBar_help = Help~
+ view_menuBar_logout = Logout~
+
+ # Search Bar, GUI
+ #-----------------
+ view_searchBar_search = Search~
+ view_searchBar_resources = Resources~
+ view_searchBar_resourceGroups = Resource Groups~
+ # TODO: i18n pluralization
+ view_searchBar_welcomeMessage = search for {0}s~
+ view_searchBar_defaultPattern = name your pattern~
+ view_searchBar_error_selectSavedSearch = ''Error selecting saved search''~
+
+ view_searchGUI_loginStatus = Unable to determine login status, check server status~
+
+ # Message Center
+ #--------------------------
+ view_messageCenter_button_messages = Messages~
+ view_messageCenter_noRecentMessages = No Recent Messages~
+ view_messageCenter_messageTitle = Message Center~
+ view_messageCenter_messageSeverity = Severity~
+ view_messageCenter_messageTime = Time~
+ view_messageCenter_messageDetail = Detail~
commit b0d7f4add97bcad604de9ee5a688a72f53b0d85f
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Nov 18 12:27:33 2010 -0500
i18n
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/selection/SinglePlatformResourceGroupSelector.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/selection/SinglePlatformResourceGroupSelector.java
index 1e46407..cfc8d77 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/selection/SinglePlatformResourceGroupSelector.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/selection/SinglePlatformResourceGroupSelector.java
@@ -29,6 +29,7 @@ import com.smartgwt.client.widgets.grid.ListGridField;
import org.rhq.core.domain.criteria.ResourceGroupCriteria;
import org.rhq.core.domain.resource.ResourceCategory;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.inventory.groups.ResourceGroupsDataSource;
/**
@@ -45,8 +46,7 @@ public class SinglePlatformResourceGroupSelector extends ComboBoxItem {
setOptionDataSource(new PlatformResourceGroupsDataSource());
setWidth(240);
- setTitle("Group");
-
+ setTitle(CoreGUI.getMessages().common_title_resource_group());
setValueField("id");
setDisplayField("name");
@@ -55,7 +55,6 @@ public class SinglePlatformResourceGroupSelector extends ComboBoxItem {
setTextMatchStyle(TextMatchStyle.SUBSTRING);
}
-
protected class PlatformResourceGroupsDataSource extends ResourceGroupsDataSource {
@Override
@@ -65,5 +64,4 @@ public class SinglePlatformResourceGroupSelector extends ComboBoxItem {
return result;
}
}
-
}
commit 6311debd3db2e0013e8c99ac77e6bf49e8d65dff
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Nov 18 12:20:07 2010 -0500
i18n
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/resource/BundleResourceDeploymentDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/resource/BundleResourceDeploymentDataSource.java
index f473434..019794b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/resource/BundleResourceDeploymentDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/resource/BundleResourceDeploymentDataSource.java
@@ -57,14 +57,14 @@ public class BundleResourceDeploymentDataSource extends RPCDataSource<BundleReso
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField id = new DataSourceIntegerField("id", "ID");
+ DataSourceIntegerField id = new DataSourceIntegerField("id", MSG.common_title_id());
id.setPrimaryKey(true);
fields.add(id);
- DataSourceTextField resourceName = new DataSourceTextField("resourceName", "Resource");
+ DataSourceTextField resourceName = new DataSourceTextField("resourceName", MSG.common_title_resource());
fields.add(resourceName);
- DataSourceTextField status = new DataSourceTextField("status", "Status");
+ DataSourceTextField status = new DataSourceTextField("status", MSG.common_title_status());
fields.add(status);
return fields;
@@ -86,7 +86,7 @@ public class BundleResourceDeploymentDataSource extends RPCDataSource<BundleReso
bundleService.findBundleResourceDeploymentsByCriteria(criteria,
new AsyncCallback<PageList<BundleResourceDeployment>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load bundle resource deployments", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_resDeployDS_loadFailure(), caught);
}
public void onSuccess(PageList<BundleResourceDeployment> result) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java
index eea2cbe..d52538c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationDataSource.java
@@ -59,35 +59,35 @@ public class BundleDestinationDataSource extends RPCDataSource<BundleDestination
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField idField = new DataSourceIntegerField("id", "Id");
+ DataSourceIntegerField idField = new DataSourceIntegerField("id", MSG.common_title_id());
idField.setPrimaryKey(true);
fields.add(idField);
- DataSourceTextField name = new DataSourceTextField("name", "Name");
+ DataSourceTextField name = new DataSourceTextField("name", MSG.common_title_name());
fields.add(name);
- DataSourceTextField description = new DataSourceTextField("description", "Description");
+ DataSourceTextField description = new DataSourceTextField("description", MSG.common_title_description());
fields.add(description);
- DataSourceTextField bundle = new DataSourceTextField("bundleName", "Bundle");
+ DataSourceTextField bundle = new DataSourceTextField("bundleName", MSG.view_bundle_bundle());
fields.add(bundle);
- DataSourceTextField group = new DataSourceTextField("groupName", "Group");
+ DataSourceTextField group = new DataSourceTextField("groupName", MSG.view_bundle_dest_group());
fields.add(group);
- DataSourceTextField deployDir = new DataSourceTextField("deployDir", "Deploy Directory");
+ DataSourceTextField deployDir = new DataSourceTextField("deployDir", MSG.view_bundle_dest_deployDir());
fields.add(deployDir);
- DataSourceTextField latestDeploymentVersion = new DataSourceTextField("latestDeploymentVersion",
- "Last Deployed Version");
+ DataSourceTextField latestDeploymentVersion = new DataSourceTextField("latestDeploymentVersion", MSG
+ .view_bundle_dest_lastDeployedVersion());
fields.add(latestDeploymentVersion);
- DataSourceTextField latestDeploymentDate = new DataSourceTextField("latestDeploymentDate",
- "Last Deployment Date");
+ DataSourceTextField latestDeploymentDate = new DataSourceTextField("latestDeploymentDate", MSG
+ .view_bundle_dest_lastDeploymentDate());
fields.add(latestDeploymentDate);
- DataSourceTextField latestDeploymentStatus = new DataSourceTextField("latestDeploymentStatus",
- "Last Deployment Status");
+ DataSourceTextField latestDeploymentStatus = new DataSourceTextField("latestDeploymentStatus", MSG
+ .view_bundle_dest_lastDeploymentStatus());
fields.add(latestDeploymentStatus);
return fields;
@@ -121,7 +121,7 @@ public class BundleDestinationDataSource extends RPCDataSource<BundleDestination
GWTServiceLookup.getBundleService().findBundleDestinationsByCriteria(criteria,
new AsyncCallback<PageList<BundleDestination>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load bundle destinations", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_dest_loadFailure(), caught);
}
public void onSuccess(final PageList<BundleDestination> result) {
@@ -134,8 +134,8 @@ public class BundleDestinationDataSource extends RPCDataSource<BundleDestination
GWTServiceLookup.getBundleService().findBundleVersionsByCriteria(versionCriteria,
new AsyncCallback<PageList<BundleVersion>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(
- "Failed to load bundle destination deployed version info", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_dest_loadFailureVersionInfo(),
+ caught);
}
public void onSuccess(PageList<BundleVersion> versions) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
index e0580b0..82995f2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationListView.java
@@ -42,7 +42,7 @@ public class BundleDestinationListView extends Table {
}
public BundleDestinationListView(String locatorId, Criteria criteria) {
- super(locatorId, "Bundle Destinations", criteria);
+ super(locatorId, MSG.view_bundle_bundleDestinations(), criteria);
setHeaderIcon("subsystems/bundle/BundleDestination_24.png");
setDataSource(new BundleDestinationDataSource());
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java
index 6bc5f84..1c91fee 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/destination/BundleDestinationView.java
@@ -85,8 +85,8 @@ public class BundleDestinationView extends LocatableVLayout implements Bookmarka
this.destination = bundleDestination;
this.bundle = bundleDestination.getBundle();
- addMember(new BackButton(extendLocatorId("BackButton"), "Back to Bundle: " + bundle.getName(),
- "Bundles/Bundle/" + bundle.getId()));
+ addMember(new BackButton(extendLocatorId("BackButton"), MSG.view_bundle_dest_backToBundle() + ": "
+ + bundle.getName(), "Bundles/Bundle/" + bundle.getId()));
addMember(new HeaderLabel(Canvas.getImgURL("subsystems/bundle/BundleDestination_24.png"), destination.getName()));
@@ -96,7 +96,7 @@ public class BundleDestinationView extends LocatableVLayout implements Bookmarka
form.setColWidths("20%", "30%", "25%", "25%");
LinkItem bundleName = new LinkItem("bundle");
- bundleName.setTitle("Bundle");
+ bundleName.setTitle(MSG.view_bundle_bundle());
bundleName.setValue("#Bundles/Bundle/" + bundle.getId());
bundleName.setLinkTitle(bundle.getName());
bundleName.setTarget("_self");
@@ -109,13 +109,12 @@ public class BundleDestinationView extends LocatableVLayout implements Bookmarka
GWTServiceLookup.getTagService().updateBundleDestinationTags(destination.getId(), tags,
new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to update bundle destination's tags",
- caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_dest_tagUpdateFailure(), caught);
}
public void onSuccess(Void result) {
CoreGUI.getMessageCenter().notify(
- new Message("Bundle Destination Tags updated", Message.Severity.Info));
+ new Message(MSG.view_bundle_dest_tagUpdateSuccessful(), Message.Severity.Info));
}
});
}
@@ -129,16 +128,16 @@ public class BundleDestinationView extends LocatableVLayout implements Bookmarka
actionItem.setCanvas(getActionLayout(form.extendLocatorId("actions")));
actionItem.setRowSpan(4);
- StaticTextItem created = new StaticTextItem("created", "Created");
+ StaticTextItem created = new StaticTextItem("created", MSG.view_bundle_dest_created());
created.setValue(new Date(destination.getCtime()));
LinkItem destinationGroup = new LinkItem("group");
- destinationGroup.setTitle("Group");
+ destinationGroup.setTitle(MSG.view_bundle_dest_group());
destinationGroup.setValue("#ResourceGroup/" + destination.getGroup().getId());
destinationGroup.setLinkTitle(destination.getGroup().getName());
destinationGroup.setTarget("_self");
- StaticTextItem path = new StaticTextItem("path", "Path");
+ StaticTextItem path = new StaticTextItem("path", MSG.view_bundle_dest_deployDir());
path.setValue(destination.getDeployDir());
form.setFields(bundleName, tagItem, actionItem, created, destinationGroup, path);
@@ -159,7 +158,7 @@ public class BundleDestinationView extends LocatableVLayout implements Bookmarka
private Canvas getActionLayout(String locatorId) {
LocatableVLayout actionLayout = new LocatableVLayout(locatorId);
actionLayout.setMembersMargin(10);
- IButton deployButton = new LocatableIButton(actionLayout.extendLocatorId("Deploy"), "Deploy");
+ IButton deployButton = new LocatableIButton(actionLayout.extendLocatorId("Deploy"), MSG.view_bundle_deploy());
deployButton.setIcon("subsystems/bundle/BundleAction_Deploy_16.png");
deployButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
@@ -168,7 +167,7 @@ public class BundleDestinationView extends LocatableVLayout implements Bookmarka
});
actionLayout.addMember(deployButton);
- IButton revertButton = new LocatableIButton(actionLayout.extendLocatorId("Revert"), "Revert");
+ IButton revertButton = new LocatableIButton(actionLayout.extendLocatorId("Revert"), MSG.view_bundle_revert());
revertButton.setIcon("subsystems/bundle/BundleAction_Revert_16.png");
revertButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
@@ -247,7 +246,7 @@ public class BundleDestinationView extends LocatableVLayout implements Bookmarka
bundleService = GWTServiceLookup.getBundleService();
bundleService.findBundleDestinationsByCriteria(criteria, new AsyncCallback<PageList<BundleDestination>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load bundle destiation", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_dest_loadFailure(), caught);
}
public void onSuccess(PageList<BundleDestination> result) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java
index 13a6af2..cc21796 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleVersionDataSource.java
@@ -54,20 +54,21 @@ public class BundleVersionDataSource extends RPCDataSource<BundleVersion> {
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField idField = new DataSourceIntegerField("id", "ID");
+ DataSourceIntegerField idField = new DataSourceIntegerField("id", MSG.common_title_id());
idField.setPrimaryKey(true);
fields.add(idField);
- DataSourceTextField latestVersionField = new DataSourceTextField("version", "Version");
+ DataSourceTextField latestVersionField = new DataSourceTextField("version", MSG.common_title_version());
fields.add(latestVersionField);
- DataSourceTextField nameField = new DataSourceTextField("name", "Name");
+ DataSourceTextField nameField = new DataSourceTextField("name", MSG.common_title_name());
fields.add(nameField);
- DataSourceTextField descriptionField = new DataSourceTextField("description", "Description");
+ DataSourceTextField descriptionField = new DataSourceTextField("description", MSG.common_title_description());
fields.add(descriptionField);
- DataSourceIntegerField deploymentCountField = new DataSourceIntegerField("fileCount", "File Count");
+ DataSourceIntegerField deploymentCountField = new DataSourceIntegerField("fileCount", MSG
+ .view_bundle_bundleFiles());
fields.add(deploymentCountField);
return fields;
@@ -100,7 +101,7 @@ public class BundleVersionDataSource extends RPCDataSource<BundleVersion> {
bundleService.findBundleVersionsByCriteria(criteria, new AsyncCallback<PageList<BundleVersion>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load bundle version data", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundleVersion_loadFailure(), caught);
response.setStatus(DSResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
@@ -116,18 +117,7 @@ public class BundleVersionDataSource extends RPCDataSource<BundleVersion> {
@Override
public BundleVersion copyValues(Record from) {
- // can't I just get the "object" attribute and return it???
- Integer idAttrib = from.getAttributeAsInt("id");
- String nameAttrib = from.getAttribute("name");
- String descriptionAttrib = from.getAttribute("description");
- String versionAttrib = from.getAttribute("version");
-
- BundleVersion bv = new BundleVersion();
- bv.setId(idAttrib.intValue());
- bv.setName(nameAttrib);
- bv.setDescription(descriptionAttrib);
- bv.setVersion(versionAttrib);
- return bv;
+ return (BundleVersion) from.getAttributeAsObject("object");
}
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java
index db654e7..fc3ce87 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundleView.java
@@ -99,7 +99,8 @@ public class BundleView extends LocatableVLayout implements BookmarkableView {
this.bundle = bundle;
- addMember(new BackButton(extendLocatorId("BackButton"), "Back to All Bundles", BundleTopView.VIEW_ID.getTitle()));
+ addMember(new BackButton(extendLocatorId("BackButton"), MSG.view_bundle_list_backToAll(), BundleTopView.VIEW_ID
+ .getTitle()));
headerLabel = new HeaderLabel("subsystems/bundle/Bundle_24.png", bundle.getName());
@@ -126,7 +127,7 @@ public class BundleView extends LocatableVLayout implements BookmarkableView {
}
private Tab createDestinationsTab() {
- LocatableTab destinationsTab = new LocatableTab(extendLocatorId("Destinations"), "Destinations");
+ LocatableTab destinationsTab = new LocatableTab(extendLocatorId("Destinations"), MSG.view_bundle_destinations());
Criteria criteria = new Criteria();
criteria.addCriteria("bundleId", bundle.getId());
@@ -137,7 +138,7 @@ public class BundleView extends LocatableVLayout implements BookmarkableView {
}
private Tab createVersionsTab() {
- LocatableTab versionsTab = new LocatableTab(extendLocatorId("Versions"), "Versions");
+ LocatableTab versionsTab = new LocatableTab(extendLocatorId("Versions"), MSG.view_bundle_versions());
Criteria criteria = new Criteria();
criteria.addCriteria("bundleId", bundleBeingViewed);
@@ -158,14 +159,15 @@ public class BundleView extends LocatableVLayout implements BookmarkableView {
form.setWrapItemTitles(false);
form.setPadding(10);
- StaticTextItem descriptionItem = new StaticTextItem("description", "Description");
+ StaticTextItem descriptionItem = new StaticTextItem("description", MSG.common_title_description());
descriptionItem.setWrap(false);
descriptionItem.setValue(bundle.getDescription());
- StaticTextItem versionCountItem = new StaticTextItem("versionCount", "Version Count");
+ StaticTextItem versionCountItem = new StaticTextItem("versionCount", MSG.view_bundle_list_versionsCount());
versionCountItem.setValue(bundle.getBundleVersions() != null ? bundle.getBundleVersions().size() : 0);
- StaticTextItem destinationsCountItem = new StaticTextItem("destinationsCount", "Destinations Count");
+ StaticTextItem destinationsCountItem = new StaticTextItem("destinationsCount", MSG
+ .view_bundle_list_destinationsCount());
destinationsCountItem.setValue(bundle.getDestinations() != null ? bundle.getDestinations().size() : 0);
form.setFields(descriptionItem, getTagItem(), getActionItem(), versionCountItem, destinationsCountItem);
@@ -181,12 +183,12 @@ public class BundleView extends LocatableVLayout implements BookmarkableView {
GWTServiceLookup.getTagService().updateBundleTags(bundleBeingViewed, tags,
new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to update bundle's tags", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_list_tagUpdateFailure(), caught);
}
public void onSuccess(Void result) {
CoreGUI.getMessageCenter().notify(
- new Message("Bundle tags updated", Message.Severity.Info));
+ new Message(MSG.view_bundle_list_tagUpdateSuccessful(), Message.Severity.Info));
}
});
}
@@ -204,24 +206,23 @@ public class BundleView extends LocatableVLayout implements BookmarkableView {
private CanvasItem getActionItem() {
VLayout layout = new LocatableVLayout(form.extendLocatorId("Actions"), 10);
- IButton deleteButton = new LocatableIButton(form.extendLocatorId("Delete"), "Delete");
+ IButton deleteButton = new LocatableIButton(form.extendLocatorId("Delete"), MSG.common_button_delete());
deleteButton.setIcon("subsystems/bundle/BundleAction_Delete_16.png");
deleteButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
- SC.ask("Are you sure you want to delete this bundle?", new BooleanCallback() {
+ SC.ask(MSG.view_bundle_list_deleteConfirm(), new BooleanCallback() {
public void execute(Boolean aBoolean) {
if (aBoolean) {
bundleManager.deleteBundle(bundleBeingViewed, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
- "Failed to delete bundle [" + bundle.getName() + "]", caught);
+ MSG.view_bundle_list_deleteFailure(bundle.getName()), caught);
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter()
- .notify(
- new Message("Deleted bundle [" + bundle.getName() + "]",
- Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_bundle_list_deleteSuccessful(bundle.getName()),
+ Message.Severity.Info));
History.newItem("Bundles"); // Bundle is deleted, go back to all bundles view
}
});
@@ -231,7 +232,7 @@ public class BundleView extends LocatableVLayout implements BookmarkableView {
}
});
- IButton deployButton = new LocatableIButton(form.extendLocatorId("Deploy"), "Deploy");
+ IButton deployButton = new LocatableIButton(form.extendLocatorId("Deploy"), MSG.view_bundle_deploy());
deployButton.setIcon("subsystems/bundle/BundleAction_Deploy_16.png");
deployButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
@@ -244,15 +245,13 @@ public class BundleView extends LocatableVLayout implements BookmarkableView {
BundleGWTServiceAsync bundleManager = GWTServiceLookup.getBundleService();
bundleManager.findBundlesByCriteria(bc, new AsyncCallback<PageList<Bundle>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(
- "Failed to load bundle to deploy [" + bundle.getName() + "]", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_list_error1(bundle.getName()), caught);
}
public void onSuccess(PageList<Bundle> result) {
if (result == null || result.size() != 1) {
CoreGUI.getMessageCenter().notify(
- new Message("Failed to get single bundle to deploy [" + bundle.getName() + "]",
- Message.Severity.Error));
+ new Message(MSG.view_bundle_list_error2(bundle.getName()), Message.Severity.Error));
return;
}
new BundleDeployWizard(result.get(0).getId()).startWizard();
@@ -290,7 +289,7 @@ public class BundleView extends LocatableVLayout implements BookmarkableView {
GWTServiceLookup.getBundleService().findBundlesByCriteria(criteria,
new AsyncCallback<PageList<Bundle>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load bundle", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_list_error3(), caught);
}
public void onSuccess(PageList<Bundle> result) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesDataSource.java
index 6019d58..7324d7b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesDataSource.java
@@ -54,17 +54,17 @@ public class BundlesDataSource extends RPCDataSource<Bundle> {
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField idField = new DataSourceIntegerField("id", "ID");
+ DataSourceIntegerField idField = new DataSourceIntegerField("id", MSG.common_title_id());
idField.setPrimaryKey(true);
fields.add(idField);
- DataSourceTextField nameField = new DataSourceTextField("name", "Name");
+ DataSourceTextField nameField = new DataSourceTextField("name", MSG.common_title_name());
fields.add(nameField);
- DataSourceTextField descriptionField = new DataSourceTextField("description", "Description");
+ DataSourceTextField descriptionField = new DataSourceTextField("description", MSG.common_title_description());
fields.add(descriptionField);
- DataSourceTextField bundleTypeDataField = new DataSourceTextField("bundleType", "Bundle Type");
+ DataSourceTextField bundleTypeDataField = new DataSourceTextField("bundleType", MSG.view_bundle_bundleType());
fields.add(bundleTypeDataField);
return fields;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
index b5a9090..ccc31a1 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesListView.java
@@ -48,7 +48,7 @@ public class BundlesListView extends Table {
}
public BundlesListView(String locatorId, Criteria criteria) {
- super(locatorId, "Bundles", criteria);
+ super(locatorId, MSG.view_bundle_bundles(), criteria);
setHeaderIcon("subsystems/bundle/Bundle_24.png");
setDataSource(new BundlesWithLatestVersionDataSource());
}
@@ -70,39 +70,40 @@ public class BundlesListView extends Table {
getListGrid().getField("latestVersion").setWidth("25%");
getListGrid().getField("versionsCount").setWidth("*");
- addTableAction(extendLocatorId("New"), "New", null, new AbstractTableAction() {
+ addTableAction(extendLocatorId("New"), MSG.common_button_new(), null, new AbstractTableAction() {
public void executeAction(ListGridRecord[] selection, Object actionValue) {
new BundleCreateWizard().startWizard();
}
});
- addTableAction(extendLocatorId("Delete"), "Delete", "Delete the selected bundles?", new AbstractTableAction(
- TableActionEnablement.ANY) {
- public void executeAction(ListGridRecord[] selections, Object actionValue) {
- BundlesWithLatestVersionDataSource ds = (BundlesWithLatestVersionDataSource) getDataSource();
- for (ListGridRecord selection : selections) {
- BundleGWTServiceAsync bundleManager = GWTServiceLookup.getBundleService();
- final BundleWithLatestVersionComposite object = ds.copyValues(selection);
- bundleManager.deleteBundle(object.getBundleId(), new AsyncCallback<Void>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(
- "Failed to delete bundle [" + object.getBundleName() + "]", caught);
- }
-
- public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new Message("Deleted bundle [" + object.getBundleName() + "]", Severity.Info));
-
- CoreGUI.refresh();
- }
- });
+ addTableAction(extendLocatorId("Delete"), MSG.common_button_delete(), MSG.common_msg_areYouSure(),
+ new AbstractTableAction(TableActionEnablement.ANY) {
+ public void executeAction(ListGridRecord[] selections, Object actionValue) {
+ BundlesWithLatestVersionDataSource ds = (BundlesWithLatestVersionDataSource) getDataSource();
+ for (ListGridRecord selection : selections) {
+ BundleGWTServiceAsync bundleManager = GWTServiceLookup.getBundleService();
+ final BundleWithLatestVersionComposite object = ds.copyValues(selection);
+ bundleManager.deleteBundle(object.getBundleId(), new AsyncCallback<Void>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_bundle_list_deleteFailure(object.getBundleName()), caught);
+ }
+
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_bundle_list_deleteSuccessful(object.getBundleName()),
+ Severity.Info));
+
+ CoreGUI.refresh();
+ }
+ });
+ }
}
- }
- });
+ });
// can change this back to SINGLE selection when we feel like it. currently allowing the wizard to
// select the bundle.
- addTableAction(extendLocatorId("Deploy"), "Deploy", null, new AbstractTableAction() {
+ addTableAction(extendLocatorId("Deploy"), MSG.view_bundle_deploy(), null, new AbstractTableAction() {
public void executeAction(ListGridRecord[] selection, Object actionValue) {
if (selection.length == 0) {
new BundleDeployWizard().startWizard();
@@ -116,14 +117,14 @@ public class BundlesListView extends Table {
BundleGWTServiceAsync bundleManager = GWTServiceLookup.getBundleService();
bundleManager.findBundlesByCriteria(bc, new AsyncCallback<PageList<Bundle>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(
- "Failed to load bundle to deploy [" + object.getBundleName() + "]", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_list_loadFailure(object.getBundleName()),
+ caught);
}
public void onSuccess(PageList<Bundle> result) {
if (result == null || result.size() != 1) {
CoreGUI.getMessageCenter().notify(
- new Message("Failed to get single bundle to deploy [" + object.getBundleName() + "]",
+ new Message(MSG.view_bundle_list_singleLoadFailure(object.getBundleName()),
Severity.Error));
return;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesWithLatestVersionDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesWithLatestVersionDataSource.java
index 9ad5b8f..c513513 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesWithLatestVersionDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/list/BundlesWithLatestVersionDataSource.java
@@ -55,20 +55,22 @@ public class BundlesWithLatestVersionDataSource extends RPCDataSource<BundleWith
protected List<DataSourceField> addDataSourceFields() {
List<DataSourceField> fields = super.addDataSourceFields();
- DataSourceIntegerField idField = new DataSourceIntegerField("id", "ID");
+ DataSourceIntegerField idField = new DataSourceIntegerField("id", MSG.common_title_id());
idField.setPrimaryKey(true);
fields.add(idField);
- DataSourceLinkField linkField = new DataSourceLinkField("link", "Name");
+ DataSourceLinkField linkField = new DataSourceLinkField("link", MSG.common_title_name());
fields.add(linkField);
- DataSourceTextField descriptionField = new DataSourceTextField("description", "Description");
+ DataSourceTextField descriptionField = new DataSourceTextField("description", MSG.common_title_description());
fields.add(descriptionField);
- DataSourceTextField latestVersionField = new DataSourceTextField("latestVersion", "Latest Version");
+ DataSourceTextField latestVersionField = new DataSourceTextField("latestVersion", MSG
+ .view_bundle_latestVersion());
fields.add(latestVersionField);
- DataSourceIntegerField deploymentCountField = new DataSourceIntegerField("versionsCount", "Versions Count");
+ DataSourceIntegerField deploymentCountField = new DataSourceIntegerField("versionsCount", MSG
+ .view_bundle_list_versionsCount());
fields.add(deploymentCountField);
return fields;
@@ -94,7 +96,7 @@ public class BundlesWithLatestVersionDataSource extends RPCDataSource<BundleWith
bundleService.findBundlesWithLatestVersionCompositesByCriteria(criteria,
new AsyncCallback<PageList<BundleWithLatestVersionComposite>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load bundle-with-latest-version data", caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_bundle_list_loadWithLatestFailure(), caught);
response.setStatus(DSResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/BundleRevertWizard.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/BundleRevertWizard.java
index df169ba..3ff3f47 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/BundleRevertWizard.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/BundleRevertWizard.java
@@ -41,8 +41,8 @@ public class BundleRevertWizard extends AbstractBundleRevertWizard {
}
private List<WizardStep> init() {
- setWindowTitle("Bundle Revert Wizard");
- setTitle("Bundle Revert");
+ setWindowTitle(MSG.view_bundle_revertWizard_windowTitle());
+ setTitle(MSG.view_bundle_revertWizard_title());
ArrayList<WizardStep> steps = new ArrayList<WizardStep>();
setSteps(steps);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/ConfirmationStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/ConfirmationStep.java
index 1cbba62..8a8baa6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/ConfirmationStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/ConfirmationStep.java
@@ -52,7 +52,7 @@ public class ConfirmationStep extends AbstractWizardStep {
}
public String getName() {
- return "Revert Deployment Confirmation";
+ return MSG.view_bundle_revertWizard_confirmStep_name();
}
public Canvas getCanvas() {
@@ -70,8 +70,8 @@ public class ConfirmationStep extends AbstractWizardStep {
public void onSuccess(PageList<BundleDeployment> liveDeployments) {
if (1 != liveDeployments.size()) {
nextPage = false;
- String message = "No live deployment found for destination [" + wizard.getDestination()
- + "]";
+ String message = MSG.view_bundle_revertWizard_confirmStep_noLiveDeployment(wizard
+ .getDestination().toString());
wizard.getView().showMessage(message);
CoreGUI.getMessageCenter().notify(new Message(message, Message.Severity.Warning));
}
@@ -79,9 +79,8 @@ public class ConfirmationStep extends AbstractWizardStep {
wizard.setPreviousDeployment(wizard.getLiveDeployment().getReplacedBundleDeployment());
if (null == wizard.getPreviousDeployment()) {
nextPage = false;
- String message = "Live deployment [" + wizard.getLiveDeployment()
- + "] can not be reverted. There is no prior deployment for the destination ["
- + wizard.getDestination() + "]";
+ String message = MSG.view_bundle_revertWizard_confirmStep_noPriorDeployment(wizard
+ .getLiveDeployment().toString(), wizard.getDestination().toString());
wizard.getView().showMessage(message);
CoreGUI.getMessageCenter().notify(new Message(message, Message.Severity.Warning));
}
@@ -91,7 +90,8 @@ public class ConfirmationStep extends AbstractWizardStep {
public void onFailure(Throwable caught) {
nextPage = false;
- String message = "Failed to find live deployment, can not revert: " + caught.getMessage();
+ String message = MSG.view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment() + ": "
+ + caught.getMessage();
wizard.getView().showMessage(message);
CoreGUI.getErrorHandler().handleError(message, caught);
}
@@ -107,7 +107,7 @@ public class ConfirmationStep extends AbstractWizardStep {
BundleDeployment prev = this.wizard.getPreviousDeployment();
Label liveHeader = new Label();
- liveHeader.setContents("<b>Live Deployment:<b>");
+ liveHeader.setContents("<b>" + MSG.view_bundle_revertWizard_confirmStep_liveDeployment() + ":<b>");
liveHeader.setHeight(10);
liveHeader.setWidth100();
layout.addMember(liveHeader);
@@ -115,20 +115,20 @@ public class ConfirmationStep extends AbstractWizardStep {
DynamicForm liveForm = new DynamicForm();
liveForm.setNumCols(2);
- StaticTextItem liveNameItem = new StaticTextItem("liveName", "Name");
+ StaticTextItem liveNameItem = new StaticTextItem("liveName", MSG.common_title_name());
liveNameItem.setTitleAlign(Alignment.LEFT);
liveNameItem.setAlign(Alignment.LEFT);
liveNameItem.setWrap(false);
liveNameItem.setValue(live.getName());
liveNameItem.setLeft(20);
- StaticTextItem liveDescItem = new StaticTextItem("liveDesc", "Description");
+ StaticTextItem liveDescItem = new StaticTextItem("liveDesc", MSG.common_title_description());
liveDescItem.setTitleAlign(Alignment.LEFT);
liveDescItem.setAlign(Alignment.LEFT);
liveDescItem.setWrap(false);
- liveDescItem.setValue((null != live.getName()) ? live.getName() : "none");
+ liveDescItem.setValue((null != live.getName()) ? live.getName() : MSG.common_val_none());
- StaticTextItem liveVersionItem = new StaticTextItem("liveVersion", "Bundle Version");
+ StaticTextItem liveVersionItem = new StaticTextItem("liveVersion", MSG.view_bundle_bundleVersion());
liveVersionItem.setTitleAlign(Alignment.LEFT);
liveVersionItem.setAlign(Alignment.LEFT);
liveVersionItem.setWrap(false);
@@ -138,7 +138,7 @@ public class ConfirmationStep extends AbstractWizardStep {
layout.addMember(liveForm);
Label prevHeader = new Label();
- prevHeader.setContents("<b>Previous Deployment:</b>");
+ prevHeader.setContents("<b>" + MSG.view_bundle_revertWizard_confirmStep_prevDeployment() + ":<b>");
prevHeader.setHeight(20);
prevHeader.setWidth100();
layout.addMember(prevHeader);
@@ -146,24 +146,23 @@ public class ConfirmationStep extends AbstractWizardStep {
DynamicForm prevForm = new DynamicForm();
prevForm.setNumCols(2);
- StaticTextItem prevNameItem = new StaticTextItem("prevName", "Name");
+ StaticTextItem prevNameItem = new StaticTextItem("prevName", MSG.common_title_name());
prevNameItem.setTitleAlign(Alignment.LEFT);
prevNameItem.setAlign(Alignment.LEFT);
prevNameItem.setWrap(false);
prevNameItem.setValue(prev.getName());
- StaticTextItem prevDescItem = new StaticTextItem("prevDesc", "Description");
+ StaticTextItem prevDescItem = new StaticTextItem("prevDesc", MSG.common_title_description());
prevDescItem.setTitleAlign(Alignment.LEFT);
prevDescItem.setAlign(Alignment.LEFT);
prevDescItem.setWrap(false);
- prevDescItem.setValue((null != prev.getName()) ? prev.getName() : "none");
+ prevDescItem.setValue((null != prev.getName()) ? prev.getName() : MSG.common_val_none());
prevForm.setItems(prevNameItem, prevDescItem);
layout.addMember(prevForm);
Label confirmation = new Label();
- confirmation
- .setContents("<b>Reverting Live Deployment to Previous Deployment. Click \'Next\' to continue...</b>");
+ confirmation.setContents("<b>" + MSG.view_bundle_revertWizard_confirmStep_confirmation() + "</b>");
confirmation.setMargin(20);
confirmation.setWidth100();
layout.addMember(confirmation);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/GetRevertInfoStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/GetRevertInfoStep.java
index 9bbf683..f78bec5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/GetRevertInfoStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/GetRevertInfoStep.java
@@ -48,7 +48,7 @@ public class GetRevertInfoStep extends AbstractWizardStep {
}
public String getName() {
- return "Provide Revert Information";
+ return MSG.view_bundle_revertWizard_getInfoStep_name();
}
public Canvas getCanvas() {
@@ -63,19 +63,22 @@ public class GetRevertInfoStep extends AbstractWizardStep {
new AsyncCallback<String>() {
public void onSuccess(String result) {
- final StaticTextItem nameTextItem = new StaticTextItem("name", "Revert Deployment Name");
+ final StaticTextItem nameTextItem = new StaticTextItem("name", MSG
+ .view_bundle_revertWizard_getInfoStep_revertDeployName());
nameTextItem.setWidth(300);
wizard.setSubtitle(result);
nameTextItem.setValue(result);
- final TextAreaItem descriptionTextAreaItem = new TextAreaItem("description",
- "Revert Deployment Description");
+ final TextAreaItem descriptionTextAreaItem = new TextAreaItem("description", MSG
+ .view_bundle_revertWizard_getInfoStep_revertDeployDesc());
descriptionTextAreaItem.setWidth(300);
String liveDesc = wizard.getLiveDeployment().getDescription();
liveDesc = (null == liveDesc) ? wizard.getLiveDeployment().getName() : liveDesc;
String prevDesc = wizard.getPreviousDeployment().getDescription();
prevDesc = (null == prevDesc) ? wizard.getPreviousDeployment().getName() : prevDesc;
wizard.setDeploymentDescription("[REVERT From]\n" + liveDesc + "\n\n[REVERT To]\n" + prevDesc);
+ wizard.setDeploymentDescription(MSG.view_bundle_revertWizard_getInfoStep_revertDeployDescFull(
+ liveDesc, prevDesc));
descriptionTextAreaItem.setValue(wizard.getDeploymentDescription());
descriptionTextAreaItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
@@ -87,8 +90,8 @@ public class GetRevertInfoStep extends AbstractWizardStep {
}
});
- final CheckboxItem cleanDeploymentCBItem = new CheckboxItem("cleanDeployment",
- "Clean Deployment? (wipe deploy directory prior to the revert deploy)");
+ final CheckboxItem cleanDeploymentCBItem = new CheckboxItem("cleanDeployment", MSG
+ .view_bundle_revertWizard_getInfoStep_cleanDeploy());
cleanDeploymentCBItem.setValue(wizard.isCleanDeployment());
cleanDeploymentCBItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
@@ -100,7 +103,8 @@ public class GetRevertInfoStep extends AbstractWizardStep {
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to get revert deployment name.", caught);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_bundle_revertWizard_getInfoStep_getNameFailure(), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/RevertStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/RevertStep.java
index aa37548..7724572 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/RevertStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/revert/RevertStep.java
@@ -51,7 +51,7 @@ public class RevertStep extends AbstractWizardStep {
}
public String getName() {
- return "Deploy Bundle to Destination Platforms";
+ return MSG.view_bundle_revertWizard_revertStep_name();
}
public Canvas getCanvas() {
@@ -66,7 +66,7 @@ public class RevertStep extends AbstractWizardStep {
deployingImage.setWidth(50);
deployingImage.setHeight(15);
- final Label deployingMessage = new Label("Reverting...");
+ final Label deployingMessage = new Label(MSG.view_bundle_revertWizard_revertStep_reverting());
deployingMessage.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
canvas.addMember(deployingImage);
@@ -77,18 +77,19 @@ public class RevertStep extends AbstractWizardStep {
new AsyncCallback<BundleDeployment>() {
public void onSuccess(BundleDeployment result) {
deployingImage.setSrc("/images/status_complete.gif");
- deployingMessage.setText("Revert Deployment Scheduled!");
+ deployingMessage.setText(MSG.view_bundle_revertWizard_revertStep_scheduled());
CoreGUI.getMessageCenter().notify(
- new Message("Scheduled revert bundle deployment [" + result.getName()
- + "] resource group [" + result.getDestination().getGroup() + "]", Severity.Info));
+ new Message(MSG.view_bundle_revertWizard_revertStep_scheduledDetails(result.getName(),
+ result.getDestination().getGroup().getName()), Severity.Info));
wizard.setDeployment(result);
}
public void onFailure(Throwable caught) {
deployingImage.setSrc("/images/status_error.gif");
- deployingMessage.setText("Failed to Schedule Revert Deployment!");
+ deployingMessage.setText(MSG.view_bundle_revertWizard_revertStep_scheduledFailure());
CoreGUI.getErrorHandler().handleError(
- "Failed to schedule revert deployment: " + caught.getMessage(), caught);
+ MSG.view_bundle_revertWizard_revertStep_scheduledFailure() + ": " + caught.getMessage(),
+ caught);
}
});
}
commit 2187b1d51bfd8503236fecdadef8984e23aa9c7d
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Tue Nov 16 11:47:07 2010 -0500
Numerous fixes: not complete. Saving for i18n work
-ResourceTitleChanges i)conditional details ii)plugin conf errors
-AgentGWT* changes
-AgentManagerBean perm check for View_Resources
-moved AgentDetails to Summary Tab
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AgentGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AgentGWTService.java
new file mode 100644
index 0000000..fd08d80
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AgentGWTService.java
@@ -0,0 +1,32 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * 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.gwt;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+
+import org.rhq.core.domain.resource.Agent;
+
+/**
+ * @author Simeon Pinder
+ */
+public interface AgentGWTService extends RemoteService {
+
+ Agent getAgentForResource(int resourceId);
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java
index 7d839eb..af662db 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java
@@ -145,6 +145,10 @@ public class GWTServiceLookup {
return secure(LdapGWTServiceAsync.Util.getInstance());
}
+ public static AgentGWTServiceAsync getAgentService() {
+ return secure(AgentGWTServiceAsync.Util.getInstance());
+ }
+
@SuppressWarnings("unchecked")
private static <T> T secure(Object sdt) {
return (T) secure(sdt, -1);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
index 2e4e942..55a1cac 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
@@ -31,6 +31,7 @@ import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.CheckboxItem;
+import com.smartgwt.client.widgets.form.fields.LinkItem;
import com.smartgwt.client.widgets.form.fields.SpacerItem;
import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
@@ -77,6 +78,7 @@ public class ResourceTitleBar extends LocatableVLayout {
private boolean favorite;
private LocatableHLayout detailsForm;
private OverviewForm detailsFormSummary;
+ private LinkItem pluginErrors;
public ResourceTitleBar(String locatorId) {
super(locatorId);
@@ -141,10 +143,23 @@ public class ResourceTitleBar extends LocatableVLayout {
loadTags(tagEditorView);
+ pluginErrors = new LinkItem("plugin-errors");
+ pluginErrors.setTitle("");
+ pluginErrors.setLinkTitle("Component errors (0)");
+ pluginErrors.setPrompt("Managed component errors exist. Click for details");
+ // pluginErrors.addClickHandler(new ClickHandler() {
+ // public void onClick(ClickEvent event) {
+ // SC.say("Hello World");
+ // }
+ // });
+
//top information
top.addMember(badge);
top.addMember(title);
top.addMember(tagEditorView);
+ DynamicForm wrap = new DynamicForm();
+ wrap.setFields(pluginErrors);
+ top.addMember(wrap);
top.addMember(availabilityImage);
top.addMember(favoriteButton);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
index b439d44..71f3824 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewView.java
@@ -18,21 +18,34 @@
*/
package org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.summary;
-import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.composite.ResourceComposite;
-import org.rhq.enterprise.gui.coregui.client.components.table.Table;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
+import java.util.ArrayList;
+import java.util.List;
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.HTMLPane;
import com.smartgwt.client.widgets.IButton;
+import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.HeaderItem;
+import com.smartgwt.client.widgets.form.fields.StaticTextItem;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.grid.events.CellClickEvent;
import com.smartgwt.client.widgets.grid.events.CellClickHandler;
+import org.rhq.core.domain.resource.Agent;
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.composite.ResourceComposite;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.components.table.Table;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
+
/**
* The Resource Summary>Overview tab.
*
@@ -42,33 +55,97 @@ public class OverviewView extends LocatableVLayout {
private OverviewForm form;
private Table errorsGrid;
-
+ private Img availabilityImage;
+
public OverviewView(String locatorId, ResourceComposite resourceComposite) {
super(locatorId);
form = new OverviewForm(extendLocatorId("form"), resourceComposite);
- errorsGrid = new Table(extendLocatorId("errors"), "Detected errors", null, null, new String[] { ResourceErrorsDataSource.DETAIL_ID });
+ LocatableDynamicForm currentAgentInfo = new LocatableDynamicForm(extendLocatorId("Agent_Info"));
+ populateAgentInfo(resourceComposite.getResource().getId(), currentAgentInfo);
+
+ errorsGrid = new Table(extendLocatorId("errors"), "Detected errors", null, null,
+ new String[] { ResourceErrorsDataSource.DETAIL_ID });
- Resource resource = resourceComposite.getResource();
+ Resource resource = resourceComposite.getResource();
ResourceErrorsDataSource errors = new ResourceErrorsDataSource(resource.getId());
-
+
errorsGrid.setShowFooter(false);
errorsGrid.setDataSource(errors);
-
- form.setHeight("*");
+
+ // form.setHeight("*");
+ form.setHeight("200");
errorsGrid.setHeight(200); //this should be just enough to fit the maximum of 3 rows in this table (there's at most 1 error per type)
-
+
addMember(form);
+ addMember(currentAgentInfo);
addMember(errorsGrid);
-
+
+ }
+
+ private void populateAgentInfo(final int id, final LocatableDynamicForm currentAgentInfo) {
+ if (currentAgentInfo != null) {
+ setLeft("10%");
+ setWidth("80%");
+ // currentAgentInfo.setBorder("1px dashed black");
+ final List<FormItem> formItems = new ArrayList<FormItem>();
+ HeaderItem headerItem = new HeaderItem("header", "Agent Managing this Resource");
+ headerItem.setValue("Agent Managing this Resource");
+ formItems.add(headerItem);
+ //populate remaining details
+ GWTServiceLookup.getAgentService().getAgentForResource(id, new AsyncCallback<Agent>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to locate agent managing resource id " + id + ".",
+ caught);
+ }
+
+ @Override
+ public void onSuccess(Agent agent) {
+ Log.debug("############ Debug: agent:" + agent);
+ //name
+ String name = "name";
+ StaticTextItem nameValue = new StaticTextItem(name, "Name");
+ nameValue.setValue(agent.getName());
+ formItems.add(nameValue);
+ //address
+ String address = "address";
+ StaticTextItem addressValue = new StaticTextItem(address, "Address");
+ addressValue.setValue(agent.getAddress());
+ formItems.add(addressValue);
+ //port
+ String port = "port";
+ StaticTextItem portValue = new StaticTextItem(port, "Port");
+ portValue.setValue(agent.getPort());
+ formItems.add(portValue);
+
+ // AgentClient client = agentManager.getAgentClient(agent);
+ // pingResults = client.ping(5000L);
+ //
+ // pingResults = agent.ping(5000L);
+ // //Agent Communiation status
+ // availabilityImage.setSrc("resources/availability_"
+ // + (resource.getCurrentAvailability().getAvailabilityType() == AvailabilityType.UP ? "green" : "red")
+ // + "_24.png");
+
+ //Last Received Avail report
+ //Full Endpoint
+ currentAgentInfo.setItems(formItems.toArray(new FormItem[formItems.size()]));
+ currentAgentInfo.markForRedraw();
+ }
+ });
+
+ //final form population
+ currentAgentInfo.setItems(formItems.toArray(new FormItem[formItems.size()]));
+ }
}
- @Override
+ @Override
public void onInit() {
super.onInit();
initErrorsGrid();
}
-
- private void initErrorsGrid() {
+
+ private void initErrorsGrid() {
errorsGrid.setTooltip("Click on the rows to see the error details.");
errorsGrid.getListGrid().addCellClickHandler(new CellClickHandler() {
public void onCellClick(CellClickEvent event) {
@@ -82,26 +159,26 @@ public class OverviewView extends LocatableVLayout {
w.setHeight(480);
w.centerInPage();
w.setCanDragResize(true);
-
+
LocatableVLayout layout = new LocatableVLayout(errorsGrid.extendLocatorId("dialogLayout"), 10);
layout.setDefaultLayoutAlign(Alignment.CENTER);
layout.setLayoutMargin(10);
-
+
w.addItem(layout);
-
- HTMLPane details = new HTMLPane();
+
+ HTMLPane details = new HTMLPane();
details.setContents("<pre>" + record.getAttribute(ResourceErrorsDataSource.DETAIL_ID) + "</pre>");
layout.addMember(details);
-
+
IButton ok = new IButton("Ok");
ok.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
w.destroy();
}
});
-
+
layout.addMember(ok);
-
+
w.show();
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AgentGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AgentGWTServiceImpl.java
new file mode 100644
index 0000000..75a51a2
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AgentGWTServiceImpl.java
@@ -0,0 +1,56 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * 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.server.gwt;
+
+import org.rhq.core.domain.resource.Agent;
+import org.rhq.core.util.exception.ThrowableUtil;
+import org.rhq.enterprise.gui.coregui.client.gwt.AgentGWTService;
+import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
+import org.rhq.enterprise.server.core.AgentManagerLocal;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * @author Simeon Pinder
+ */
+public class AgentGWTServiceImpl extends AbstractGWTServiceImpl implements AgentGWTService {
+
+ private static final long serialVersionUID = 1L;
+
+ private AgentManagerLocal agentManager = LookupUtil.getAgentManager();
+
+ @Override
+ public Agent getAgentForResource(int resourceId) {
+ try {
+ //TODO: this needs security that was not handled before. No AgentManagerRemote... ??
+ return SerialUtility.prepare(agentManager.getAgentByResourceId(getSessionSubject(), resourceId),
+ "AgentService.getAgentForResource");
+ } catch (Exception e) {
+ throw new RuntimeException(ThrowableUtil.getAllMessages(e));
+ }
+ }
+
+ // public PageList<Availability> findAvailabilityForResource(int resourceId, PageControl pc) {
+ // try {
+ // return SerialUtility.prepare(availabilityManager.findAvailabilityForResource(getSessionSubject(),
+ // resourceId, pc), "AvailabilityService.findAvailabilityForResource");
+ // } catch (Exception e) {
+ // throw new RuntimeException(ThrowableUtil.getAllMessages(e));
+ // }
+ // }
+}
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
index 13f4660..0d413a4 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
@@ -91,6 +91,7 @@
<entry-point class='org.rhq.enterprise.gui.coregui.client.SearchGUI'/>
+ <servlet path="/AgentGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AgentGWTServiceImpl"/>
<servlet path="/AlertGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AlertGWTServiceImpl"/>
<servlet path="/AlertDefinitionGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AlertDefinitionGWTServiceImpl"/>
<servlet path="/AlertTemplateGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AlertTemplateGWTServiceImpl"/>
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml b/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
index 9337163..259ee73 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
+++ b/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
@@ -128,6 +128,10 @@
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI LdapGWTService</servlet-name>
<servlet-class>org.rhq.enterprise.gui.coregui.server.gwt.LdapGWTServiceImpl</servlet-class>
</servlet>
+ <servlet>
+ <servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI AgentGWTService</servlet-name>
+ <servlet-class>org.rhq.enterprise.gui.coregui.server.gwt.AgentGWTServiceImpl</servlet-class>
+ </servlet>
<servlet-mapping>
@@ -254,6 +258,10 @@
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI LdapGWTService</servlet-name>
<url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/LdapGWTService</url-pattern>
</servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI AgentGWTService</servlet-name>
+ <url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/AgentGWTService</url-pattern>
+ </servlet-mapping>
<welcome-file-list>
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/PingAgentUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/PingAgentUIBean.java
index 4879d09..989d10d 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/PingAgentUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/PingAgentUIBean.java
@@ -21,6 +21,7 @@ package org.rhq.enterprise.gui.inventory.resource;
import org.rhq.core.domain.resource.Agent;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.legacy.ParamConstants;
+import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.agentclient.AgentClient;
import org.rhq.enterprise.server.core.AgentManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -75,7 +76,7 @@ public class PingAgentUIBean {
try {
int resourceId = FacesContextUtility.getRequiredRequestParameter(ParamConstants.RESOURCE_ID_PARAM,
Integer.class);
- agent = agentManager.getAgentByResourceId(resourceId);
+ agent = agentManager.getAgentByResourceId(EnterpriseFacesContextUtility.getSubject(), resourceId);
if (agent == null) {
throw new IllegalStateException("No agent is associated with the resource with id " + resourceId + ".");
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java
index 269360c..6b8af11 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java
@@ -80,7 +80,8 @@ public class ResourceTreeModelUIBean {
HibernatePerformanceMonitor.get().stop(monitorId, "ResourceTree root resource");
log.debug("Found root resource in " + (end - start));
- Agent agent = agentManager.getAgentByResourceId(rootResource.getId());
+ Agent agent = agentManager.getAgentByResourceId(EnterpriseFacesContextUtility.getSubject(), rootResource
+ .getId());
start = System.currentTimeMillis();
monitorId = HibernatePerformanceMonitor.get().start();
@@ -120,7 +121,8 @@ public class ResourceTreeModelUIBean {
if (res.getResourceType().getSubCategory() != null) {
// These are children that have subcategories
// Split them by if they are a sub-sub category or just a category
- ResourceSubCategoryFlyweight categoryKey = res.getResourceType().getSubCategory().getParentSubCategory();
+ ResourceSubCategoryFlyweight categoryKey = res.getResourceType().getSubCategory()
+ .getParentSubCategory();
if (categoryKey == null) {
categoryKey = res.getResourceType().getSubCategory();
}
@@ -132,13 +134,13 @@ public class ResourceTreeModelUIBean {
}
}
-
+
Set<String> dupResourceTypeNames = getDuplicateResourceTypeNames(children);
- for(Map.Entry<Object, List<ResourceFlyweight>> entry : children.entrySet()) {
+ for (Map.Entry<Object, List<ResourceFlyweight>> entry : children.entrySet()) {
Object key = entry.getKey();
List<ResourceFlyweight> resources = entry.getValue();
-
+
double avail = 0;
for (ResourceFlyweight res : resources) {
avail += res.getCurrentAvailability().getAvailabilityType() == AvailabilityType.UP ? 1 : 0;
@@ -147,10 +149,11 @@ public class ResourceTreeModelUIBean {
Object nodeData = null;
if (key instanceof ResourceSubCategoryFlyweight) {
- nodeData = new AutoGroupCompositeFlyweight(avail, parentResource, (ResourceSubCategoryFlyweight) key, resources.size());
+ nodeData = new AutoGroupCompositeFlyweight(avail, parentResource,
+ (ResourceSubCategoryFlyweight) key, resources.size());
} else if (key instanceof ResourceTypeFlyweight) {
ResourceTypeFlyweight typeKey = (ResourceTypeFlyweight) key;
-
+
if (typeKey.isSingleton()) {
nodeData = resources.get(0);
} else {
@@ -174,10 +177,10 @@ public class ResourceTreeModelUIBean {
Map<Object, List<ResourceFlyweight>> children = new HashMap<Object, List<ResourceFlyweight>>();
log.debug("composite parent" + compositeParent);
if (compositeParent != null) {
-
+
MembersCategoryHint membersCategory = MembersCategoryHint.NONE;
MembersAvailabilityHint membersAvailabilityHint = MembersAvailabilityHint.UP;
-
+
for (ResourceFlyweight res : compositeParent.getParentResource().getChildResources()) {
boolean process = false;
if (compositeParent.getSubcategory() != null) {
@@ -199,17 +202,18 @@ public class ResourceTreeModelUIBean {
} else if (compositeParent.getResourceType() != null) {
if (compositeParent.getResourceType().equals(res.getResourceType())
&& compositeParent.getParentResource().getId() == res.getParentResource().getId()) {
-
+
addToList(children, res.getResourceType(), res);
process = true;
}
}
-
+
if (process) {
//amend the overall category of all the members of the auto group.
switch (membersCategory) {
case NONE: //this is the first child, so let's use its category as a starting point
- membersCategory = MembersCategoryHint.fromResourceCategory(res.getResourceType().getCategory());
+ membersCategory = MembersCategoryHint.fromResourceCategory(res.getResourceType()
+ .getCategory());
break;
case MIXED: //this is the "final" state. The children type is not going to change from this.
break;
@@ -218,34 +222,36 @@ public class ResourceTreeModelUIBean {
membersCategory = MembersCategoryHint.MIXED;
}
}
-
+
//amend the availability hint of the autogroup. If all resources are up, the hint is UP, if some of the resources
//are down, the hint is DOWN, if some of the resources' avail state is unknown, the hint is UNKNOWN.
//The down state has the highest priority.
switch (membersAvailabilityHint) {
case UP:
- membersAvailabilityHint = MembersAvailabilityHint.fromAvailabilityType(res.getCurrentAvailability().getAvailabilityType());
+ membersAvailabilityHint = MembersAvailabilityHint.fromAvailabilityType(res
+ .getCurrentAvailability().getAvailabilityType());
break;
case UNKNOWN:
if (res.getCurrentAvailability().getAvailabilityType() == AvailabilityType.DOWN) {
membersAvailabilityHint = MembersAvailabilityHint.DOWN;
}
break;
- case DOWN:; //a "terminal" state... if some resource is down, the overall state is going to be down as that is the most important information.
+ case DOWN:
+ ; //a "terminal" state... if some resource is down, the overall state is going to be down as that is the most important information.
}
}
}
-
+
compositeParent.setMembersCategoryHint(membersCategory);
compositeParent.setMembersAvailabilityHint(membersAvailabilityHint);
}
AutoGroupCompositeFlyweight compositeParentNode = (AutoGroupCompositeFlyweight) parentNode.getData();
-
+
for (Map.Entry<Object, List<ResourceFlyweight>> entry : children.entrySet()) {
Object key = entry.getKey();
List<ResourceFlyweight> resources = entry.getValue();
-
+
if (compositeParentNode.getSubcategory() != null) {
double avail = 0;
for (ResourceFlyweight res : resources) {
@@ -262,13 +268,13 @@ public class ResourceTreeModelUIBean {
if (typeKey.isSingleton()) {
nodeData = resources.get(0);
} else {
- nodeData = new AutoGroupCompositeFlyweight(avail, compositeParent.getParentResource(), typeKey,
- resources.size(), false);
+ nodeData = new AutoGroupCompositeFlyweight(avail, compositeParent.getParentResource(),
+ typeKey, resources.size(), false);
}
}
ResourceTreeNode node = new ResourceTreeNode(nodeData, parentNode);
load(node);
-
+
if (!recursivelyLocked(node)) {
parentNode.getChildren().add(node);
}
@@ -279,7 +285,7 @@ public class ResourceTreeModelUIBean {
if (!recursivelyLocked(node)) {
parentNode.getChildren().add(node);
}
- }
+ }
}
}
}
@@ -289,7 +295,7 @@ public class ResourceTreeModelUIBean {
if (node.getData() instanceof ResourceFlyweight && !((ResourceFlyweight) node.getData()).isLocked()) {
return false;
}
-
+
boolean allLocked = true;
for (ResourceTreeNode child : node.getChildren()) {
if (!recursivelyLocked(child))
@@ -337,15 +343,15 @@ public class ResourceTreeModelUIBean {
}
return dupResourceTypeNames;
}
-
+
private static <K, V> void addToList(Map<K, List<V>> mapOfLists, K key, V value) {
List<V> list = mapOfLists.get(key);
-
+
if (list == null) {
list = new ArrayList<V>();
mapOfLists.put(key, list);
}
-
+
list.add(value);
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
index 2ceaa88..76c4d15 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
@@ -243,8 +243,8 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
if (alertDefinition.getRecoveryId() != 0) {
// only add to the cache if the to-be-recovered definition is disabled, and thus needs recovering
// use entityManager direct to bypass security checks, we already know this user is authorized
- AlertDefinition toBeRecoveredDefinition = entityManager.find(AlertDefinition.class,
- alertDefinition.getRecoveryId());
+ AlertDefinition toBeRecoveredDefinition = entityManager.find(AlertDefinition.class, alertDefinition
+ .getRecoveryId());
if (toBeRecoveredDefinition.getEnabled() == false) {
addToCache = true;
}
@@ -254,7 +254,8 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
}
if (addToCache) {
- notifyAlertConditionCacheManager("createAlertDefinition", alertDefinition, AlertDefinitionEvent.CREATED);
+ notifyAlertConditionCacheManager(subject, "createAlertDefinition", alertDefinition,
+ AlertDefinitionEvent.CREATED);
}
return alertDefinition.getId();
@@ -309,7 +310,7 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
// alertTemplates and groupAlertDefinitions do not need to update the cache
isResourceLevel = (null != alertDefinition.getResource());
if (isResourceLevel) {
- notifyAlertConditionCacheManager("removeAlertDefinitions", alertDefinition,
+ notifyAlertConditionCacheManager(subject, "removeAlertDefinitions", alertDefinition,
AlertDefinitionEvent.DELETED);
}
if (alertDefinition.getResourceGroup() != null) {
@@ -337,7 +338,7 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
// alertTemplates and groupAlertDefinitions do not need to update the cache
isResourceLevel = (null != alertDefinition.getResource());
if (isResourceLevel) {
- notifyAlertConditionCacheManager("enableAlertDefinitions", alertDefinition,
+ notifyAlertConditionCacheManager(subject, "enableAlertDefinitions", alertDefinition,
AlertDefinitionEvent.ENABLED);
}
}
@@ -395,7 +396,7 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
// alertTemplates and groupAlertDefinitions do not need to update the cache
isResourceLevel = (null != alertDefinition.getResource());
if (isResourceLevel) {
- notifyAlertConditionCacheManager("disableAlertDefinitions", alertDefinition,
+ notifyAlertConditionCacheManager(subject, "disableAlertDefinitions", alertDefinition,
AlertDefinitionEvent.DISABLED);
}
}
@@ -423,7 +424,8 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
entityManager.persist(newAlertDefinition);
- notifyAlertConditionCacheManager("copyAlertDefinitions", alertDefinition, AlertDefinitionEvent.CREATED);
+ notifyAlertConditionCacheManager(subject, "copyAlertDefinitions", alertDefinition,
+ AlertDefinitionEvent.CREATED);
}
}
}
@@ -499,7 +501,8 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
for (AlertCondition nextCondition : oldAlertDefinition.getConditions()) {
LOG.debug("OldAlertCondition[ id=" + nextCondition.getId() + " ]");
}
- notifyAlertConditionCacheManager("updateAlertDefinition", oldAlertDefinition, AlertDefinitionEvent.DELETED);
+ notifyAlertConditionCacheManager(subject, "updateAlertDefinition", oldAlertDefinition,
+ AlertDefinitionEvent.DELETED);
}
/*
@@ -540,8 +543,8 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
// if this was a recovery alert, or was recently turned into one
if (newAlertDefinition.getRecoveryId() != 0) {
// only add to the cache if the to-be-recovered definition is disabled, and thus needs recovering
- AlertDefinition toBeRecoveredDefinition = getAlertDefinitionById(subject,
- newAlertDefinition.getRecoveryId());
+ AlertDefinition toBeRecoveredDefinition = getAlertDefinitionById(subject, newAlertDefinition
+ .getRecoveryId());
if (toBeRecoveredDefinition.getEnabled() == false) {
addToCache = true;
}
@@ -555,7 +558,7 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
for (AlertCondition nextCondition : newAlertDefinition.getConditions()) {
LOG.debug("NewAlertCondition[ id=" + nextCondition.getId() + " ]");
}
- notifyAlertConditionCacheManager("updateAlertDefinition", newAlertDefinition,
+ notifyAlertConditionCacheManager(subject, "updateAlertDefinition", newAlertDefinition,
AlertDefinitionEvent.CREATED);
}
}
@@ -613,7 +616,7 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
return;
}
- private void notifyAlertConditionCacheManager(String methodName, AlertDefinition alertDefinition,
+ private void notifyAlertConditionCacheManager(Subject subject, String methodName, AlertDefinition alertDefinition,
AlertDefinitionEvent alertDefinitionEvent) {
if (LOG.isDebugEnabled()) {
LOG.debug("Invoking... " + methodName + " with AlertDefinitionEvent[" + alertDefinitionEvent + "]");
@@ -624,7 +627,7 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
if (LOG.isDebugEnabled()) {
LOG.debug("Invoking... agentStatusManager.updateByResource(" + resourceId + ")");
}
- agentStatusManager.updateByResource(resourceId);
+ agentStatusManager.updateByResource(subject, resourceId);
} else {
if (LOG.isDebugEnabled()) {
LOG.debug("notifyAlertConditionCacheManager skipping alert template or group alert definition");
@@ -634,7 +637,7 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
if (LOG.isDebugEnabled()) {
LOG.debug("Invoking... agentStatusManager.updateByAlertDefinition(" + alertDefinition.getId() + ")");
}
- agentStatusManager.updateByAlertDefinition(alertDefinition.getId());
+ agentStatusManager.updateByAlertDefinition(subject, alertDefinition.getId());
}
}
@@ -696,8 +699,8 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
public PageList<AlertDefinition> findAlertDefinitionsByCriteria(Subject subject, AlertDefinitionCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
if (authorizationManager.isInventoryManager(subject) == false) {
- generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.RESOURCE,
- subject.getId());
+ generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.RESOURCE, subject
+ .getId());
}
CriteriaQueryRunner<AlertDefinition> queryRunner = new CriteriaQueryRunner(criteria, generator, entityManager);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
index e6fc90c..00fe978 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
@@ -862,7 +862,7 @@ public class BundleManagerBean implements BundleManagerLocal, BundleManagerRemot
Resource platform, boolean isCleanDeployment, boolean isRevert) throws Exception {
int platformId = platform.getId();
- AgentClient agentClient = agentManager.getAgentClient(platformId);
+ AgentClient agentClient = agentManager.getAgentClient(subject, platformId);
BundleAgentService bundleAgentService = agentClient.getBundleAgentService();
// The BundleResourceDeployment record must exist in the db before the agent request because the agent may try
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerBean.java
index 61655c9..737e378 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerBean.java
@@ -34,6 +34,7 @@ import org.apache.commons.logging.LogFactory;
import org.jboss.annotation.IgnoreDependency;
import org.rhq.core.domain.alert.AlertDefinition;
+import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.cloud.Server;
import org.rhq.core.domain.measurement.MeasurementBaseline;
import org.rhq.core.domain.resource.Agent;
@@ -106,7 +107,7 @@ public class StatusManagerBean implements StatusManagerLocal {
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- public void updateByResource(int resourceId) {
+ public void updateByResource(Subject subject, int resourceId) {
log.debug("About to mark status by resource");
/*
@@ -125,7 +126,7 @@ public class StatusManagerBean implements StatusManagerLocal {
* this is informational debugging only - do NOT change the status bits here
*/
if (log.isDebugEnabled()) {
- Agent agent = agentManager.getAgentByResourceId(resourceId);
+ Agent agent = agentManager.getAgentByResourceId(subject, resourceId);
log.debug("Marking status, agent[id=" + agent.getId() + ", status=" + agent.getStatus()
+ "] for resource[id=" + resourceId + "]");
@@ -134,7 +135,7 @@ public class StatusManagerBean implements StatusManagerLocal {
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- public void updateByAlertDefinition(int alertDefinitionId) {
+ public void updateByAlertDefinition(Subject subject, int alertDefinitionId) {
log.debug("About to mark status by alert definition");
// alert templates and group alert definitions do not represent cache-ready entries
@@ -159,7 +160,7 @@ public class StatusManagerBean implements StatusManagerLocal {
*/
if (log.isDebugEnabled()) {
AlertDefinition definition = entityManager.find(AlertDefinition.class, alertDefinitionId);
- Agent agent = agentManager.getAgentByResourceId(definition.getResource().getId());
+ Agent agent = agentManager.getAgentByResourceId(subject, definition.getResource().getId());
log.debug("Marking status, agent[id=" + agent.getId() + ", status=" + agent.getStatus()
+ "] for alertDefinition[id=" + alertDefinitionId + "]");
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerLocal.java
index 26322d2..95f11b6 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StatusManagerLocal.java
@@ -22,6 +22,8 @@ import java.util.List;
import javax.ejb.Local;
+import org.rhq.core.domain.auth.Subject;
+
/**
* @author Joseph Marques
*/
@@ -32,9 +34,9 @@ public interface StatusManagerLocal {
void markGlobalCache();
- void updateByResource(int resourceId);
+ void updateByResource(Subject subject, int resourceId);
- void updateByAlertDefinition(int alertDefinitionId);
+ void updateByAlertDefinition(Subject subject, int alertDefinitionId);
void updateByMeasurementBaseline(int baselineId);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
index 78a5aa4..201fccf 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
@@ -58,6 +58,8 @@ import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.stream.StreamUtil;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.agentclient.AgentClient;
+import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
+import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.authz.RequiredPermission;
import org.rhq.enterprise.server.cloud.FailoverListManagerLocal;
import org.rhq.enterprise.server.core.comm.ServerCommunicationsServiceMBean;
@@ -96,6 +98,9 @@ public class AgentManagerBean implements AgentManagerLocal {
@EJB
private SystemManagerLocal systemManager;
+ @EJB
+ private AuthorizationManagerLocal authorizationManager;
+
// constants used for the agent update version file
private static final String RHQ_SERVER_VERSION = "rhq-server.version";
private static final String RHQ_SERVER_BUILD_NUMBER = "rhq-server.build-number";
@@ -153,8 +158,8 @@ public class AgentManagerBean implements AgentManagerLocal {
}
@ExcludeDefaultInterceptors
- public AgentClient getAgentClient(int resourceId) {
- Agent agent = getAgentByResourceId(resourceId);
+ public AgentClient getAgentClient(Subject subject, int resourceId) {
+ Agent agent = getAgentByResourceId(subject, resourceId);
if (agent == null) {
log.debug("Resource [" + resourceId + "] does not exist or has no agent assigned");
@@ -351,10 +356,17 @@ public class AgentManagerBean implements AgentManagerLocal {
}
@ExcludeDefaultInterceptors
- public Agent getAgentByResourceId(int resourceId) {
+ public Agent getAgentByResourceId(Subject subject, int resourceId) {
Agent agent;
try {
+ //insert logged in check and view resources perm check as method calld from GWT*Service
+ if ((subject != null)
+ && (!authorizationManager.hasResourcePermission(subject, Permission.VIEW_RESOURCE, resourceId))) {
+ throw new PermissionException("Can not get agent details - " + subject + " lacks "
+ + Permission.VIEW_RESOURCE + " for resource[id=" + resourceId + "]");
+ }
+
Query query = entityManager.createNamedQuery(Agent.QUERY_FIND_BY_RESOURCE_ID);
query.setParameter("resourceId", resourceId);
agent = (Agent) query.getSingleResult();
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerLocal.java
index bc744f1..4821b91 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerLocal.java
@@ -82,7 +82,7 @@ public interface AgentManagerLocal {
* @return an agent client that can be used to send commands to the JON agent that manages the resource
*/
@NotNull
- AgentClient getAgentClient(int resourceId);
+ AgentClient getAgentClient(Subject subject, int resourceId);
/**
* Returns a collection of all agents currently in inventory.
@@ -151,12 +151,13 @@ public interface AgentManagerLocal {
/**
* Given a resource ID, this will return the agent responsible for servicing that resource.
+ * @param subject
*
* @param resourceId
*
* @return the agent that services the resource, or <code>null</code> if the resource ID was invalid
*/
- Agent getAgentByResourceId(int resourceId);
+ Agent getAgentByResourceId(Subject subject, int resourceId);
/**
* Given a resource ID, this will return the agent id responsible for servicing that resource.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
index 6a8b6a4..d9b5a3d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
@@ -303,7 +303,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
public void disableDefaultCollectionForMeasurementDefinitions(Subject subject, int[] measurementDefinitionIds,
boolean updateSchedules) {
- modifyDefaultCollectionIntervalForMeasurementDefinitions(measurementDefinitionIds, -1, updateSchedules);
+ modifyDefaultCollectionIntervalForMeasurementDefinitions(subject, measurementDefinitionIds, -1, updateSchedules);
return;
}
@@ -338,7 +338,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
public void updateDefaultCollectionIntervalForMeasurementDefinitions(Subject subject,
int[] measurementDefinitionIds, long collectionInterval, boolean updateExistingSchedules) {
collectionInterval = verifyMinimumCollectionInterval(collectionInterval);
- modifyDefaultCollectionIntervalForMeasurementDefinitions(measurementDefinitionIds, collectionInterval,
+ modifyDefaultCollectionIntervalForMeasurementDefinitions(subject, measurementDefinitionIds, collectionInterval,
updateExistingSchedules);
}
@@ -347,6 +347,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
* definitions. If updateExistingSchedules is true, the schedules for the corresponding metrics or all inventoried
* Resources are also updated. Otherwise, the updated templates will only affect Resources that added to
* inventory in the future.
+ * @param subject
*
* @param measurementDefinitionIds the IDs of the metric defs whose default schedules should be updated
* @param collectionInterval if > 0, enable the metric with this value as the the new collection
@@ -356,7 +357,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
* interval allowed
* @param updateExistingSchedules if true, existing Resource schedules for metrics of this type should also be updated
*/
- private void modifyDefaultCollectionIntervalForMeasurementDefinitions(
+ private void modifyDefaultCollectionIntervalForMeasurementDefinitions(Subject subject,
int[] measurementDefinitionIds, long collectionInterval, boolean updateExistingSchedules) {
if (measurementDefinitionIds == null || measurementDefinitionIds.length == 0) {
@@ -370,8 +371,8 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
for (int batchIndex = 0; (batchIndex < measurementDefinitionIds.length); batchIndex += 1000) {
int[] batchIdArray = ArrayUtils.copyOfRange(measurementDefinitionIds, batchIndex, batchIndex + 1000);
- modifyDefaultCollectionIntervalForMeasurementDefinitions(batchIdArray, enable,
- collectionInterval, updateExistingSchedules);
+ modifyDefaultCollectionIntervalForMeasurementDefinitions(subject, batchIdArray, enable, collectionInterval,
+ updateExistingSchedules);
}
}
@@ -384,6 +385,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
* <strong>Only the 3-param modifyDefaultCollectionIntervalForMeasurementDefinitions method should call this method,
* since it will batch the metric defs specified by the user to ensure no more than 1000 metric defs are passed to
* this method.</strong>
+ * @param subject
*
* @param measurementDefinitionIds the IDs of the metric defs whose default schedules should be updated; the size of
* this array must be <= 1000
@@ -396,7 +398,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
* @param updateExistingSchedules if true, existing Resource schedules for metrics of this type should also be updated
*/
@SuppressWarnings("unchecked")
- private void modifyDefaultCollectionIntervalForMeasurementDefinitions(
+ private void modifyDefaultCollectionIntervalForMeasurementDefinitions(Subject subject,
int[] measurementDefinitionIds, boolean enable, long collectionInterval, boolean updateExistingSchedules) {
// this method has been rewritten to ensure that the Hibernate cache is not utilized in an
@@ -494,7 +496,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
// The number of Agents is manageable, so we can work with entities here
for (Integer resourceId : reqMap.keySet()) {
- Agent agent = agentManager.getAgentByResourceId(resourceId);
+ Agent agent = agentManager.getAgentByResourceId(subject, resourceId);
Set<ResourceMeasurementScheduleRequest> agentUpdate = agentUpdates.get(agent);
if (agentUpdate == null) {
@@ -1156,7 +1158,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
}
public void enableMeasurementTemplates(Subject subject, int[] measurementDefinitionIds) {
- modifyDefaultCollectionIntervalForMeasurementDefinitions(measurementDefinitionIds, 0, true);
+ modifyDefaultCollectionIntervalForMeasurementDefinitions(subject, measurementDefinitionIds, 0, true);
}
/**
@@ -1181,7 +1183,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
updateSchedulesForContext(subject, EntityContext.forResource(resourceId), measurementDefinitionIds,
collectionInterval);
}
-
+
public void updateSchedulesForCompatibleGroup(Subject subject, int groupId, int[] measurementDefinitionIds,
long collectionInterval) {
// don't verify minimum collection interval here, it will be caught by updateMeasurementSchedules callee
@@ -1201,29 +1203,27 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
// check authorization up front, so that criteria-based queries can run without authz checks
switch (context.type) {
- case Resource:
- if (authorizationManager.canViewResource(subject, context.resourceId) == false) {
- throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to view measurement schedules for resource[id=" +
- context.resourceId
- + "]");
- }
- break;
- case ResourceGroup:
- if (authorizationManager.canViewGroup(subject, context.groupId) == false) {
- throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to view measurement schedules for resourceGroup[id="
- + context.groupId + "]");
- }
- break;
- case AutoGroup:
- if (authorizationManager.canViewAutoGroup(subject, context.parentResourceId, context.resourceTypeId) ==
- false) {
- throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to view measurement schedules for autoGroup[parentResourceId="
- + context.parentResourceId + ", resourceTypeId=" + context.resourceTypeId + "]");
- }
- break;
+ case Resource:
+ if (authorizationManager.canViewResource(subject, context.resourceId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view measurement schedules for resource[id=" + context.resourceId
+ + "]");
+ }
+ break;
+ case ResourceGroup:
+ if (authorizationManager.canViewGroup(subject, context.groupId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view measurement schedules for resourceGroup[id="
+ + context.groupId + "]");
+ }
+ break;
+ case AutoGroup:
+ if (authorizationManager.canViewAutoGroup(subject, context.parentResourceId, context.resourceTypeId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view measurement schedules for autoGroup[parentResourceId="
+ + context.parentResourceId + ", resourceTypeId=" + context.resourceTypeId + "]");
+ }
+ break;
}
PageList<MeasurementDefinition> definitions;
@@ -1246,16 +1246,16 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
MeasurementScheduleCriteria criteria = new MeasurementScheduleCriteria();
//criteria.addFilterDefinitionIds(measurementDefinitionIds);
switch (context.type) {
- case Resource:
- criteria.addFilterResourceId(context.resourceId);
- break;
- case ResourceGroup:
- criteria.addFilterResourceGroupId(context.groupId);
- break;
- case AutoGroup:
- criteria.addFilterAutoGroupParentResourceId(context.parentResourceId);
- criteria.addFilterAutoGroupResourceTypeId(context.resourceTypeId);
- break;
+ case Resource:
+ criteria.addFilterResourceId(context.resourceId);
+ break;
+ case ResourceGroup:
+ criteria.addFilterResourceGroupId(context.groupId);
+ break;
+ case AutoGroup:
+ criteria.addFilterAutoGroupParentResourceId(context.parentResourceId);
+ criteria.addFilterAutoGroupResourceTypeId(context.resourceTypeId);
+ break;
}
criteria.setPageControl(pc); // for primary return list, use passed PageControl
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
index 022811b..21d0770 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
@@ -855,7 +855,7 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
boolean canceled = false;
try {
- agent = agentManager.getAgentClient(resourceId);
+ agent = agentManager.getAgentClient(subject, resourceId);
// since this method is usually called by the UI, we want to quickly determine if we can even talk to the agent
if (agent.ping(5000L)) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
index 725e074..2139ac7 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
@@ -18,6 +18,8 @@
*/
package org.rhq.enterprise.server.operation;
+import javax.ejb.EJBException;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.JobDataMap;
@@ -37,8 +39,6 @@ import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.ResourceNotFoundException;
import org.rhq.enterprise.server.util.LookupUtil;
-import javax.ejb.EJBException;
-
/**
* A job that invokes an operation on a single resource.
*
@@ -105,8 +105,8 @@ public class ResourceOperationJob extends OperationJob {
if (isResourceUncommitted(context.getJobDetail())) {
int resourceId = getResourceId(context.getJobDetail());
- String msg = "The resource with id " + resourceId + " is not committed in inventory. It may have " +
- "been deleted from inventory. Canceling job.";
+ String msg = "The resource with id " + resourceId + " is not committed in inventory. It may have "
+ + "been deleted from inventory. Canceling job.";
log.warn(msg);
throw new CancelJobException(msg, e);
}
@@ -132,8 +132,7 @@ public class ResourceOperationJob extends OperationJob {
try {
Resource resource = resourceMgr.getResource(getOverlord(), resourceId);
return isResourceUncommitted(resource);
- }
- catch (EJBException e) {
+ } catch (EJBException e) {
if (e.getCausedByException() instanceof ResourceNotFoundException) {
return true;
}
@@ -145,7 +144,6 @@ public class ResourceOperationJob extends OperationJob {
return resource == null || resource.getInventoryStatus() != InventoryStatus.COMMITTED;
}
-
/**
* Actually invokes the operation by sending the command to the agent. This is package-scoped so the group job can
* call this for each member resource in the group. If groupHistory is not <code>null</code>, it means this resource
@@ -171,14 +169,14 @@ public class ResourceOperationJob extends OperationJob {
Resource resource = schedule.getResource();
if (isResourceUncommitted(resource)) {
- String msg = "The resource with id " + resource.getId() + " is not committed in inventory. It may " +
- "have been deleted from inventory. Canceling job.";
+ String msg = "The resource with id " + resource.getId() + " is not committed in inventory. It may "
+ + "have been deleted from inventory. Canceling job.";
log.warn(msg);
throw new CancelJobException(msg);
}
AgentManagerLocal agentManager = LookupUtil.getAgentManager();
- AgentClient agentClient = agentManager.getAgentClient(resource.getId());
+ AgentClient agentClient = agentManager.getAgentClient(schedule.getSubject(), resource.getId());
agentClient.getOperationAgentService().invokeOperation(resourceHistory.getJobId().toString(),
resource.getId(), schedule.getOperationName(), schedule.getParameters());
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 0c7198a..7a6fea3 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -267,7 +267,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
if (resource.getParentResource() == null) {
try {
// note, this needs to be done before the marking because the agent reference is going to be set to null
- doomedAgent = agentManager.getAgentByResourceId(resourceId);
+ doomedAgent = agentManager.getAgentByResourceId(user, resourceId);
} catch (Exception e) {
doomedAgent = null;
log.warn("This warning should occur in TEST code only! " + e);
@@ -277,7 +277,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
AgentClient agentClient = null;
try {
// The test code does not always generate agents for the resources. Catch and log any problem but continue
- agentClient = agentManager.getAgentClient(resourceId);
+ agentClient = agentManager.getAgentClient(user, resourceId);
} catch (Throwable t) {
log.warn("No AgentClient found for resource [" + resource
+ "]. Unable to inform agent of inventory removal (this may be ok): " + t);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/support/SupportManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/support/SupportManagerBean.java
index 6cdb34a..b81b0a8 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/support/SupportManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/support/SupportManagerBean.java
@@ -64,7 +64,7 @@ public class SupportManagerBean implements SupportManagerLocal, SupportManagerRe
public InputStream getSnapshotReportStream(Subject subject, int resourceId, String name, String description)
throws Exception {
- AgentClient agentClient = this.agentManager.getAgentClient(resourceId);
+ AgentClient agentClient = this.agentManager.getAgentClient(subject, resourceId);
SupportAgentService supportService = agentClient.getSupportAgentService();
InputStream snapshotStream = supportService.getSnapshotReport(resourceId, name, description);
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/performance/test/AvailabilityInsertPurgeTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/performance/test/AvailabilityInsertPurgeTest.java
index eecf9a5..d6acd3b 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/performance/test/AvailabilityInsertPurgeTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/performance/test/AvailabilityInsertPurgeTest.java
@@ -25,6 +25,12 @@ import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
+import org.testng.ITestResult;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+
import org.rhq.core.domain.alert.AlertCondition;
import org.rhq.core.domain.alert.AlertConditionCategory;
import org.rhq.core.domain.alert.AlertDampening;
@@ -48,22 +54,16 @@ import org.rhq.helpers.perftest.support.testng.DatabaseSetupInterceptor;
import org.rhq.helpers.perftest.support.testng.DatabaseState;
import org.rhq.helpers.perftest.support.testng.PerformanceReporting;
-import org.testng.ITestResult;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Listeners;
-import org.testng.annotations.Test;
-
/**
* Performance test the availabilities subsystem
*
* @author Heiko W. Rupp
* @author Lukas Krejci
*/
-@Test(groups = "PERF" )
-@Listeners({ DatabaseSetupInterceptor.class })
-(a)PerformanceReporting(exporter=ExcelExporter.class)
-@DatabaseState(url = "perftest/AvailabilityInsertPurgeTest-testOne-data.xml.zip", dbVersion="2.101")
+@Test(groups = "PERF")
+@Listeners( { DatabaseSetupInterceptor.class })
+@PerformanceReporting(exporter = ExcelExporter.class)
+@DatabaseState(url = "perftest/AvailabilityInsertPurgeTest-testOne-data.xml.zip", dbVersion = "2.101")
public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
ResourceManagerLocal resourceManager;
@@ -74,8 +74,9 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
private static final int MILLIS_APART = 2000;
private static final String ROUND__FORMAT = "Round %6d";
private static final String PURGE__FORMAT = "Purge %6d";
- private static final int[] ROUNDS = new int[]{1000,2000,3000,5000,10000};
-// private static final int[] ROUNDS = new int[]{10,20};
+ private static final int[] ROUNDS = new int[] { 1000, 2000, 3000, 5000, 10000 };
+
+ // private static final int[] ROUNDS = new int[]{10,20};
@BeforeMethod
public void beforeMethod(Method method) {
@@ -103,10 +104,9 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
@AfterMethod
public void afterMethod(ITestResult result, Method meth) {
- super.reportTimings(result,meth);
+ super.reportTimings(result, meth);
}
-
/**
* Send availability reports to the server and measure timing.
* For each resource, availability alternates for each report.
@@ -123,15 +123,15 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
Query q = em.createQuery("SELECT r FROM Resource r");
List<Resource> resources = q.getResultList();
Resource res = resources.get(0);
- Agent agent = agentManager.getAgentByResourceId(res.getId());
+ Agent agent = agentManager.getAgentByResourceId(overlord, res.getId());
q = em.createQuery("SELECT COUNT(a) FROM Availability a ");
Object o = q.getSingleResult();
- Long l = (Long)o;
- if (l!=0) {
+ Long l = (Long) o;
+ if (l != 0) {
throw new IllegalStateException("Availabilities table is not empty");
}
- systemManager.vacuum(overlord,new String[]{"rhq_availability"});
+ systemManager.vacuum(overlord, new String[] { "rhq_availability" });
for (int MULTI : ROUNDS) {
String round = String.format(ROUND__FORMAT, MULTI);
@@ -151,38 +151,37 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
}
// merge is over. Now lets purge in two steps
- startTiming(String.format(PURGE__FORMAT,MULTI));
- availabilityManager.purgeAvailabilities(t1 + (MULTI/2)*MILLIS_APART);
- endTiming(String.format(PURGE__FORMAT,MULTI));
- startTiming(String.format(PURGE__FORMAT,MULTI));
+ startTiming(String.format(PURGE__FORMAT, MULTI));
+ availabilityManager.purgeAvailabilities(t1 + (MULTI / 2) * MILLIS_APART);
+ endTiming(String.format(PURGE__FORMAT, MULTI));
+ startTiming(String.format(PURGE__FORMAT, MULTI));
availabilityManager.purgeAvailabilities(t1);
- endTiming(String.format(PURGE__FORMAT,MULTI));
+ endTiming(String.format(PURGE__FORMAT, MULTI));
// Vacuum the db
overlord = LookupUtil.getSubjectManager().getOverlord();
- systemManager.vacuum(overlord,new String[]{"rhq_availability"});
+ systemManager.vacuum(overlord, new String[] { "rhq_availability" });
}
+ long timing1000 = getTiming(String.format(ROUND__FORMAT, 1000));
+ long timing2000 = getTiming(String.format(ROUND__FORMAT, 2000));
+ long timing3000 = getTiming(String.format(ROUND__FORMAT, 3000));
+ long timing5000 = getTiming(String.format(ROUND__FORMAT, 5000));
+ long timing10000 = getTiming(String.format(ROUND__FORMAT, 10000));
- long timing1000 = getTiming(String.format(ROUND__FORMAT,1000));
- long timing2000 = getTiming(String.format(ROUND__FORMAT,2000));
- long timing3000 = getTiming(String.format(ROUND__FORMAT,3000));
- long timing5000 = getTiming(String.format(ROUND__FORMAT,5000));
- long timing10000 = getTiming(String.format(ROUND__FORMAT,10000));
+ assertLinear(timing1000, timing2000, 2, "Merge2");
+ assertLinear(timing1000, timing3000, 3, "Merge3");
+ assertLinear(timing1000, timing5000, 5, "Merge5");
+ assertLinear(timing1000, timing10000, 10, "Merge10");
- assertLinear(timing1000,timing2000,2,"Merge2");
- assertLinear(timing1000,timing3000,3,"Merge3");
- assertLinear(timing1000,timing5000,5,"Merge5");
- assertLinear(timing1000,timing10000,10,"Merge10");
+ long purge1000 = getTiming(String.format(PURGE__FORMAT, 1000));
+ long purge2000 = getTiming(String.format(PURGE__FORMAT, 2000));
+ long purge3000 = getTiming(String.format(PURGE__FORMAT, 3000));
+ long purge5000 = getTiming(String.format(PURGE__FORMAT, 5000));
- long purge1000 = getTiming(String.format(PURGE__FORMAT,1000));
- long purge2000 = getTiming(String.format(PURGE__FORMAT,2000));
- long purge3000 = getTiming(String.format(PURGE__FORMAT,3000));
- long purge5000 = getTiming(String.format(PURGE__FORMAT,5000));
-
- assertLinear(purge1000,purge2000,2,"Purge2");
- assertLinear(purge1000,purge3000,3,"Purge3");
- assertLinear(purge1000,purge5000,5,"Purge3");
+ assertLinear(purge1000, purge2000, 2, "Purge2");
+ assertLinear(purge1000, purge3000, 3, "Purge3");
+ assertLinear(purge1000, purge5000, 5, "Purge3");
}
@@ -194,12 +193,11 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
public void testRandom() throws Exception {
Subject overlord = LookupUtil.getSubjectManager().getOverlord();
-
EntityManager em = getEntityManager();
Query q = em.createQuery("SELECT r FROM Resource r");
List<Resource> resources = q.getResultList();
Resource res = resources.get(0);
- Agent agent = agentManager.getAgentByResourceId(res.getId());
+ Agent agent = agentManager.getAgentByResourceId(overlord, res.getId());
for (int MULTI : ROUNDS) {
String round = String.format(ROUND__FORMAT, MULTI);
@@ -209,7 +207,7 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
AvailabilityReport report = new AvailabilityReport(agent.getName());
for (Resource r : resources) {
- int rand = (int) (Math.random()*2);
+ int rand = (int) (Math.random() * 2);
AvailabilityType at = (rand == 1) ? AvailabilityType.UP : AvailabilityType.DOWN;
Availability a = new Availability(r, new Date(t1 + i * MILLIS_APART), at);
report.addAvailability(a);
@@ -220,39 +218,37 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
}
// merge is over. Now lets purge in two steps
- startTiming(String.format(PURGE__FORMAT,MULTI));
- availabilityManager.purgeAvailabilities(t1 + (MULTI/2)*MILLIS_APART);
- endTiming(String.format(PURGE__FORMAT,MULTI));
- startTiming(String.format(PURGE__FORMAT,MULTI));
+ startTiming(String.format(PURGE__FORMAT, MULTI));
+ availabilityManager.purgeAvailabilities(t1 + (MULTI / 2) * MILLIS_APART);
+ endTiming(String.format(PURGE__FORMAT, MULTI));
+ startTiming(String.format(PURGE__FORMAT, MULTI));
availabilityManager.purgeAvailabilities(t1);
- endTiming(String.format(PURGE__FORMAT,MULTI));
+ endTiming(String.format(PURGE__FORMAT, MULTI));
// Vacuum the db
overlord = LookupUtil.getSubjectManager().getOverlord();
- systemManager.vacuum(overlord,new String[]{"rhq_availability"});
+ systemManager.vacuum(overlord, new String[] { "rhq_availability" });
}
- long timing1000 = getTiming(String.format(ROUND__FORMAT,1000));
- long timing2000 = getTiming(String.format(ROUND__FORMAT,2000));
- long timing3000 = getTiming(String.format(ROUND__FORMAT,3000));
- long timing5000 = getTiming(String.format(ROUND__FORMAT,5000));
- long timing10000 = getTiming(String.format(ROUND__FORMAT,10000));
-
-
- assertLinear(timing1000,timing2000,2,"Merge2");
- assertLinear(timing1000,timing3000,3,"Merge3");
- assertLinear(timing1000,timing5000,5,"Merge5");
- assertLinear(timing1000,timing10000,10,"Merge10");
+ long timing1000 = getTiming(String.format(ROUND__FORMAT, 1000));
+ long timing2000 = getTiming(String.format(ROUND__FORMAT, 2000));
+ long timing3000 = getTiming(String.format(ROUND__FORMAT, 3000));
+ long timing5000 = getTiming(String.format(ROUND__FORMAT, 5000));
+ long timing10000 = getTiming(String.format(ROUND__FORMAT, 10000));
+ assertLinear(timing1000, timing2000, 2, "Merge2");
+ assertLinear(timing1000, timing3000, 3, "Merge3");
+ assertLinear(timing1000, timing5000, 5, "Merge5");
+ assertLinear(timing1000, timing10000, 10, "Merge10");
- long purge1000 = getTiming(String.format(PURGE__FORMAT,1000));
- long purge2000 = getTiming(String.format(PURGE__FORMAT,2000));
- long purge3000 = getTiming(String.format(PURGE__FORMAT,3000));
- long purge5000 = getTiming(String.format(PURGE__FORMAT,5000));
+ long purge1000 = getTiming(String.format(PURGE__FORMAT, 1000));
+ long purge2000 = getTiming(String.format(PURGE__FORMAT, 2000));
+ long purge3000 = getTiming(String.format(PURGE__FORMAT, 3000));
+ long purge5000 = getTiming(String.format(PURGE__FORMAT, 5000));
- assertLinear(purge1000,purge2000,2,"Purge2");
- assertLinear(purge1000,purge3000,3,"Purge3");
- assertLinear(purge1000,purge5000,5,"Purge3");
+ assertLinear(purge1000, purge2000, 2, "Purge2");
+ assertLinear(purge1000, purge3000, 3, "Purge3");
+ assertLinear(purge1000, purge5000, 5, "Purge3");
}
@@ -264,12 +260,11 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
public void testAlwaysUp() throws Exception {
Subject overlord = LookupUtil.getSubjectManager().getOverlord();
-
EntityManager em = getEntityManager();
Query q = em.createQuery("SELECT r FROM Resource r");
List<Resource> resources = q.getResultList();
Resource res = resources.get(0);
- Agent agent = agentManager.getAgentByResourceId(res.getId());
+ Agent agent = agentManager.getAgentByResourceId(overlord, res.getId());
for (int MULTI : ROUNDS) {
String round = String.format(ROUND__FORMAT, MULTI);
@@ -279,7 +274,7 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
AvailabilityReport report = new AvailabilityReport(agent.getName());
for (Resource r : resources) {
- AvailabilityType at = AvailabilityType.UP;
+ AvailabilityType at = AvailabilityType.UP;
Availability a = new Availability(r, new Date(t1 + i * MILLIS_APART), at);
report.addAvailability(a);
}
@@ -289,40 +284,37 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
}
// merge is over. Now lets purge in two steps
- startTiming(String.format(PURGE__FORMAT,MULTI));
- availabilityManager.purgeAvailabilities(t1 + (MULTI/2)*MILLIS_APART);
- endTiming(String.format(PURGE__FORMAT,MULTI));
- startTiming(String.format(PURGE__FORMAT,MULTI));
+ startTiming(String.format(PURGE__FORMAT, MULTI));
+ availabilityManager.purgeAvailabilities(t1 + (MULTI / 2) * MILLIS_APART);
+ endTiming(String.format(PURGE__FORMAT, MULTI));
+ startTiming(String.format(PURGE__FORMAT, MULTI));
availabilityManager.purgeAvailabilities(t1);
- endTiming(String.format(PURGE__FORMAT,MULTI));
+ endTiming(String.format(PURGE__FORMAT, MULTI));
// Vacuum the db
overlord = LookupUtil.getSubjectManager().getOverlord();
- systemManager.vacuum(overlord,new String[]{"rhq_availability"});
+ systemManager.vacuum(overlord, new String[] { "rhq_availability" });
}
+ long timing1000 = getTiming(String.format(ROUND__FORMAT, 1000));
+ long timing2000 = getTiming(String.format(ROUND__FORMAT, 2000));
+ long timing3000 = getTiming(String.format(ROUND__FORMAT, 3000));
+ long timing5000 = getTiming(String.format(ROUND__FORMAT, 5000));
+ long timing10000 = getTiming(String.format(ROUND__FORMAT, 10000));
- long timing1000 = getTiming(String.format(ROUND__FORMAT,1000));
- long timing2000 = getTiming(String.format(ROUND__FORMAT,2000));
- long timing3000 = getTiming(String.format(ROUND__FORMAT,3000));
- long timing5000 = getTiming(String.format(ROUND__FORMAT,5000));
- long timing10000 = getTiming(String.format(ROUND__FORMAT,10000));
-
-
- assertLinear(timing1000,timing2000,2,"Merge2");
- assertLinear(timing1000,timing3000,3,"Merge3");
- assertLinear(timing1000,timing5000,5,"Merge5");
- assertLinear(timing1000,timing10000,10,"Merge10");
+ assertLinear(timing1000, timing2000, 2, "Merge2");
+ assertLinear(timing1000, timing3000, 3, "Merge3");
+ assertLinear(timing1000, timing5000, 5, "Merge5");
+ assertLinear(timing1000, timing10000, 10, "Merge10");
+ long purge1000 = getTiming(String.format(PURGE__FORMAT, 1000));
+ long purge2000 = getTiming(String.format(PURGE__FORMAT, 2000));
+ long purge3000 = getTiming(String.format(PURGE__FORMAT, 3000));
+ long purge5000 = getTiming(String.format(PURGE__FORMAT, 5000));
- long purge1000 = getTiming(String.format(PURGE__FORMAT,1000));
- long purge2000 = getTiming(String.format(PURGE__FORMAT,2000));
- long purge3000 = getTiming(String.format(PURGE__FORMAT,3000));
- long purge5000 = getTiming(String.format(PURGE__FORMAT,5000));
-
- assertLinear(purge1000,purge2000,2,"Purge2");
- assertLinear(purge1000,purge3000,3,"Purge3");
- assertLinear(purge1000,purge5000,5,"Purge3");
+ assertLinear(purge1000, purge2000, 2, "Purge2");
+ assertLinear(purge1000, purge3000, 3, "Purge3");
+ assertLinear(purge1000, purge5000, 5, "Purge3");
}
@@ -337,20 +329,19 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
public void testAlternatingWithAlert() throws Exception {
Subject overlord = LookupUtil.getSubjectManager().getOverlord();
-
EntityManager em = getEntityManager();
Query q = em.createQuery("SELECT r FROM Resource r");
List<Resource> resources = q.getResultList();
Resource res = resources.get(0);
- Agent agent = agentManager.getAgentByResourceId(res.getId());
+ Agent agent = agentManager.getAgentByResourceId(overlord, res.getId());
q = em.createQuery("SELECT COUNT(a) FROM Availability a ");
Object o = q.getSingleResult();
- Long l = (Long)o;
- if (l!=0) {
+ Long l = (Long) o;
+ if (l != 0) {
throw new IllegalStateException("Availabilities table is not empty");
}
- systemManager.vacuum(overlord,new String[]{"rhq_availability"});
+ systemManager.vacuum(overlord, new String[] { "rhq_availability" });
// Set up an alert definition on one resource
AlertCondition goingDown = new AlertCondition();
@@ -364,7 +355,7 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
def.setPriority(AlertPriority.MEDIUM);
def.setAlertDampening(new AlertDampening(AlertDampening.Category.NONE));
def.setRecoveryId(0);
- alertDefinitionManager.createAlertDefinition(overlord,def,res.getId());
+ alertDefinitionManager.createAlertDefinition(overlord, def, res.getId());
for (int MULTI : ROUNDS) {
String round = String.format(ROUND__FORMAT, MULTI);
@@ -384,38 +375,37 @@ public class AvailabilityInsertPurgeTest extends AbstractEJB3PerformanceTest {
}
// merge is over. Now lets purge in two steps
- startTiming(String.format(PURGE__FORMAT,MULTI));
- availabilityManager.purgeAvailabilities(t1 + (MULTI/2)*MILLIS_APART);
- endTiming(String.format(PURGE__FORMAT,MULTI));
- startTiming(String.format(PURGE__FORMAT,MULTI));
+ startTiming(String.format(PURGE__FORMAT, MULTI));
+ availabilityManager.purgeAvailabilities(t1 + (MULTI / 2) * MILLIS_APART);
+ endTiming(String.format(PURGE__FORMAT, MULTI));
+ startTiming(String.format(PURGE__FORMAT, MULTI));
availabilityManager.purgeAvailabilities(t1);
- endTiming(String.format(PURGE__FORMAT,MULTI));
+ endTiming(String.format(PURGE__FORMAT, MULTI));
// Vacuum the db
overlord = LookupUtil.getSubjectManager().getOverlord();
- systemManager.vacuum(overlord,new String[]{"rhq_availability"});
+ systemManager.vacuum(overlord, new String[] { "rhq_availability" });
}
-
- long timing1000 = getTiming(String.format(ROUND__FORMAT,1000));
- long timing2000 = getTiming(String.format(ROUND__FORMAT,2000));
- long timing3000 = getTiming(String.format(ROUND__FORMAT,3000));
- long timing5000 = getTiming(String.format(ROUND__FORMAT,5000));
- long timing10000 = getTiming(String.format(ROUND__FORMAT,10000));
-
- assertLinear(timing1000,timing2000,2,"Merge2");
- assertLinear(timing1000,timing3000,3,"Merge3");
- assertLinear(timing1000,timing5000,5,"Merge5");
- assertLinear(timing1000,timing10000,10,"Merge10");
-
- long purge1000 = getTiming(String.format(PURGE__FORMAT,1000));
- long purge2000 = getTiming(String.format(PURGE__FORMAT,2000));
- long purge3000 = getTiming(String.format(PURGE__FORMAT,3000));
- long purge5000 = getTiming(String.format(PURGE__FORMAT,5000));
-
- assertLinear(purge1000,purge2000,2,"Purge2");
- assertLinear(purge1000,purge3000,3,"Purge3");
- assertLinear(purge1000,purge5000,5,"Purge3");
+ long timing1000 = getTiming(String.format(ROUND__FORMAT, 1000));
+ long timing2000 = getTiming(String.format(ROUND__FORMAT, 2000));
+ long timing3000 = getTiming(String.format(ROUND__FORMAT, 3000));
+ long timing5000 = getTiming(String.format(ROUND__FORMAT, 5000));
+ long timing10000 = getTiming(String.format(ROUND__FORMAT, 10000));
+
+ assertLinear(timing1000, timing2000, 2, "Merge2");
+ assertLinear(timing1000, timing3000, 3, "Merge3");
+ assertLinear(timing1000, timing5000, 5, "Merge5");
+ assertLinear(timing1000, timing10000, 10, "Merge10");
+
+ long purge1000 = getTiming(String.format(PURGE__FORMAT, 1000));
+ long purge2000 = getTiming(String.format(PURGE__FORMAT, 2000));
+ long purge3000 = getTiming(String.format(PURGE__FORMAT, 3000));
+ long purge5000 = getTiming(String.format(PURGE__FORMAT, 5000));
+
+ assertLinear(purge1000, purge2000, 2, "Purge2");
+ assertLinear(purge1000, purge3000, 3, "Purge3");
+ assertLinear(purge1000, purge5000, 5, "Purge3");
}
}
commit 24a70403e58b7a4050b28887a8bbef662197a33e
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Sun Nov 14 21:11:57 2010 -0500
i)LoginView listen for tab ii)conditionally show details at resource level iii)commented impl of double click for Table
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
index 841d8e0..b894bb6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
@@ -138,11 +138,13 @@ public class LoginView extends Canvas {
user.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
- if ((event.getCharacterValue() != null) && (event.getCharacterValue() == KeyCodes.KEY_ENTER)) {
+ if ((event.getCharacterValue() != null)
+ && (((event.getCharacterValue() == KeyCodes.KEY_ENTER)) || (event.getCharacterValue() == KeyCodes.KEY_TAB))) {
password.focusInItem(); // Work around the form not getting auto-fill values until the field is focused
}
}
});
+
password.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
if ((event.getCharacterValue() != null) && (event.getCharacterValue() == KeyCodes.KEY_ENTER)) {
@@ -309,7 +311,8 @@ public class LoginView extends Canvas {
public void onFailure(Throwable caught) {
form.setFieldErrors(FIRST,
"Note: Optional retrieval of ldap details unsuccessful. Manual entry required.", true);
- Log.debug("Optional LDAP detail retrieval did not succeed. Registration prepopulation will not occur.");
+ Log
+ .debug("Optional LDAP detail retrieval did not succeed. Registration prepopulation will not occur.");
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
index 3f66a80..6ee4da6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
@@ -160,6 +160,9 @@ public class ResourceSearchView extends Table {
}
});
+ // //load double click handler for this table
+ // configureDoubleClickHandler();
+
/*searchBox.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
if ((event.getCharacterValue() != null) && (event.getCharacterValue() == KeyCodes.KEY_ENTER)) {
@@ -180,6 +183,20 @@ public class ResourceSearchView extends Table {
});*/
}
+ // /** Defines the double click handler action for ResourceSearch. This means that on double
+ // * click a (Resource-relative) url, specifically Summary/Overview is what will happen
+ // * with this action. Override in subclasses to define alternate behavior.
+ // */
+ // protected void configureDoubleClickHandler() {
+ // //adding cell double click handler
+ // getListGrid().addCellDoubleClickHandler(new CellDoubleClickHandler() {
+ // @Override
+ // public void onCellDoubleClick(CellDoubleClickEvent event) {
+ // CoreGUI.goToView("Resource/" + event.getRecord().getAttribute("id") + "/Summary/Overview");
+ // }
+ // });
+ // }
+
public int getMatches() {
return this.getListGrid().getTotalRows();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
index 0e65cf3..28e152c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
@@ -200,7 +200,7 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
this.resourceComposite = resourceComposite;
Resource resource = this.resourceComposite.getResource();
- getTitleBar().setResource(resource);
+ getTitleBar().setResource(this.resourceComposite);
for (Tab top : this.getTabSet().getTabs()) {
((TwoLevelTab) top).getLayout().destroyViews();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
index bc1e0b7..2e4e942 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
@@ -23,16 +23,23 @@ import java.util.LinkedHashSet;
import java.util.Set;
import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.CheckboxItem;
+import com.smartgwt.client.widgets.form.fields.SpacerItem;
+import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
+import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.tagging.Tag;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
@@ -40,35 +47,59 @@ import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.components.tagging.TagEditorView;
import org.rhq.enterprise.gui.coregui.client.components.tagging.TagsChangedCallback;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.summary.OverviewForm;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableImg;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
/**
* @author Greg Hinkle
* @author Ian Springer
*/
-public class ResourceTitleBar extends LocatableHLayout {
+public class ResourceTitleBar extends LocatableVLayout {
+
+ //represents row of Resource title details[icon,title,show-details,tags,availability,favorites]
+ private LocatableHLayout top;
+ //represents normally closed region of Resource details[to verbosely describe resource across all tabs]
+ private LocatableHLayout details;
private static final String FAV_ICON = "Favorite_24_Selected.png";
private static final String NOT_FAV_ICON = "Favorite_24.png";
private Resource resource;
+ private ResourceComposite resourceComposite;
private Img badge;
private Img favoriteButton;
private HTMLFlow title;
private Img availabilityImage;
private boolean favorite;
+ private LocatableHLayout detailsForm;
+ private OverviewForm detailsFormSummary;
public ResourceTitleBar(String locatorId) {
super(locatorId);
+ //define two rows of content
+ top = new LocatableHLayout(locatorId + "_Top");
+ top.setPadding(5);
+ top.setMembersMargin(5);
+ top.setHeight(30);
+
+ details = new LocatableHLayout(locatorId + "_Details");
+ details.setWidth100();
+ details.setHeight(10);//initialize to small amount of pixels
+
+ //modify VLayout settings
setWidth100();
setHeight(30);
- setPadding(5);
- setMembersMargin(5);
+ setPadding(0);
+ setMembersMargin(0);
+ setLayoutMargin(0);
}
public void update() {
+ //clean up old widgets
for (Canvas child : getChildren()) {
child.destroy();
}
@@ -110,11 +141,59 @@ public class ResourceTitleBar extends LocatableHLayout {
loadTags(tagEditorView);
- addMember(badge);
- addMember(title);
- addMember(tagEditorView);
- addMember(availabilityImage);
- addMember(favoriteButton);
+ //top information
+ top.addMember(badge);
+ top.addMember(title);
+ top.addMember(tagEditorView);
+ top.addMember(availabilityImage);
+ top.addMember(favoriteButton);
+
+ //detail information
+ //checkbox
+ final CheckboxItem displayMore = new CheckboxItem();
+ final String moreDetails = "Show more...";
+ displayMore.setName("resourceDetails");
+ displayMore.setTitle(moreDetails);
+ displayMore.setWidth(120);
+ displayMore.addChangeHandler(new ChangeHandler() {
+ public void onChange(ChangeEvent event) {
+ Boolean displayMoreDetails = (Boolean) event.getValue();
+ if (displayMoreDetails) {
+ detailsFormSummary.show();
+ } else {
+ detailsFormSummary.hide();
+ }
+ markForRedraw();
+ }
+ });
+
+ LocatableDynamicForm wrappedCheckbox = new LocatableDynamicForm(extendLocatorId("Title_Bar_Checkbox"));
+ wrappedCheckbox.setFields(displayMore);
+ detailsForm = new LocatableHLayout(extendLocatorId("_Resource_Details"));
+ detailsForm.setWidth100();
+ detailsForm.setHeight(10);
+ detailsForm.setAlign(Alignment.LEFT);
+ detailsForm.addMember(wrappedCheckbox);
+ detailsFormSummary = new OverviewForm(extendLocatorId("Title_Optional_Summary"), resourceComposite);
+ detailsFormSummary.setWidth100();
+ detailsFormSummary.setPadding(0);
+ detailsFormSummary.setMargin(0);
+ detailsFormSummary.setLayoutAlign(Alignment.LEFT);
+ //condense details for display
+ detailsFormSummary.setHeaderEnabled(false);
+ detailsFormSummary.setDisplayCondensed(true);
+ detailsFormSummary.hide();
+ detailsForm.addMember(detailsFormSummary);
+ SpacerItem widthSpace = new SpacerItem();
+ widthSpace.setWidth(40);
+ DynamicForm wrappedSpacer = new DynamicForm();
+ wrappedSpacer.setFields(widthSpace);
+ detailsForm.addMember(wrappedSpacer);
+ details.addChild(detailsForm);
+
+ //order the components
+ addMember(top);
+ addMember(details);
}
private void loadTags(final TagEditorView tagEditorView) {
@@ -135,9 +214,10 @@ public class ResourceTitleBar extends LocatableHLayout {
});
}
- public void setResource(Resource resource) {
+ public void setResource(ResourceComposite resourceComposite) {
if (this.resource == null || this.resource.getId() != resource.getId()) {
- this.resource = resource;
+ this.resource = resourceComposite.getResource();
+ this.resourceComposite = resourceComposite;
update();
this.title.setContents("<span class=\"SectionHeader\">" + resource.getName()
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
index 2479c87..e5e65dc 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/OverviewForm.java
@@ -25,6 +25,13 @@ import java.util.Comparator;
import java.util.EnumSet;
import java.util.List;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.util.SC;
+import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.HeaderItem;
+import com.smartgwt.client.widgets.form.fields.SpacerItem;
+import com.smartgwt.client.widgets.form.fields.StaticTextItem;
+
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
@@ -41,13 +48,6 @@ import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.smartgwt.client.util.SC;
-import com.smartgwt.client.widgets.form.fields.FormItem;
-import com.smartgwt.client.widgets.form.fields.HeaderItem;
-import com.smartgwt.client.widgets.form.fields.SpacerItem;
-import com.smartgwt.client.widgets.form.fields.StaticTextItem;
-
/**
* The Resource Summary>Overview tab, the form with resource data.
*
@@ -58,6 +58,8 @@ public class OverviewForm extends EnhancedDynamicForm {
private ResourceGWTServiceAsync resourceService = GWTServiceLookup.getResourceService();
private ResourceComposite resourceComposite;
+ private boolean headerEnabled = true;
+ private boolean displayCondensed = false;
public OverviewForm(String locatorId, ResourceComposite resourceComposite) {
super(locatorId);
@@ -70,6 +72,11 @@ public class OverviewForm extends EnhancedDynamicForm {
setLeft("10%");
setWidth("80%");
+ if (isDisplayCondensed()) {
+ setPadding(5);
+ setColWidths(150, 220, 150, 220);
+ setWidth("45%");
+ }
if (this.resourceComposite != null) {
setResource(this.resourceComposite);
@@ -99,29 +106,25 @@ public class OverviewForm extends EnhancedDynamicForm {
private void loadTraitValues() {
final Resource resource = resourceComposite.getResource();
- GWTServiceLookup.getMeasurementDataService().findCurrentTraitsForResource(
- resource.getId(),
- DisplayType.SUMMARY,
- new AsyncCallback<List<MeasurementDataTrait>>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to load traits for " + resource + ".",
- caught);
- }
+ GWTServiceLookup.getMeasurementDataService().findCurrentTraitsForResource(resource.getId(),
+ DisplayType.SUMMARY, new AsyncCallback<List<MeasurementDataTrait>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to load traits for " + resource + ".", caught);
+ }
- public void onSuccess(List<MeasurementDataTrait> result) {
- // TODO: Implement this method.
- for (MeasurementDataTrait trait : result) {
- String formId = trait.getName().replaceAll("\\.", "_").replaceAll(" ", "__");
- FormItem item = getItem(formId);
+ public void onSuccess(List<MeasurementDataTrait> result) {
+ // TODO: Implement this method.
+ for (MeasurementDataTrait trait : result) {
+ String formId = trait.getName().replaceAll("\\.", "_").replaceAll(" ", "__");
+ FormItem item = getItem(formId);
- if (item != null) {
- setValue(formId, trait.getValue());
- }
+ if (item != null) {
+ setValue(formId, trait.getValue());
}
- markForRedraw();
}
+ markForRedraw();
}
- );
+ });
}
@@ -142,9 +145,11 @@ public class OverviewForm extends EnhancedDynamicForm {
List<FormItem> formItems = new ArrayList<FormItem>();
- HeaderItem headerItem = new HeaderItem("header", "Summary");
- headerItem.setValue("Summary");
- formItems.add(headerItem);
+ if (isHeaderEnabled()) {//conditionally display header
+ HeaderItem headerItem = new HeaderItem("header", "Summary");
+ headerItem.setValue("Summary");
+ formItems.add(headerItem);
+ }
StaticTextItem typeItem = new StaticTextItem("type", "Type");
typeItem.setTooltip("Plugin: " + type.getPlugin() + "\n<br>" + "Type: " + type.getName());
@@ -169,9 +174,9 @@ public class OverviewForm extends EnhancedDynamicForm {
resource.setName(newName);
OverviewForm.this.resourceService.updateResource(resource, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to change name of Resource with id "
- + resource.getId()
- + " from \"" + oldName + "\" to \"" + newName + "\".", caught);
+ CoreGUI.getErrorHandler().handleError(
+ "Failed to change name of Resource with id " + resource.getId() + " from \"" + oldName
+ + "\" to \"" + newName + "\".", caught);
// We failed to update it on the Server, so change back the Resource and the form item to
// the original value.
resource.setName(oldName);
@@ -179,9 +184,9 @@ public class OverviewForm extends EnhancedDynamicForm {
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(new Message("Name of Resource with id "
- + resource.getId() + " was changed from \""
- + oldName + "\" to \"" + newName + "\".", Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message("Name of Resource with id " + resource.getId() + " was changed from \""
+ + oldName + "\" to \"" + newName + "\".", Message.Severity.Info));
}
});
}
@@ -204,9 +209,9 @@ public class OverviewForm extends EnhancedDynamicForm {
resource.setDescription(newDescription);
OverviewForm.this.resourceService.updateResource(resource, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to change description of Resource with id "
- + resource.getId()
- + " from \"" + oldDescription + "\" to \"" + newDescription + "\".", caught);
+ CoreGUI.getErrorHandler().handleError(
+ "Failed to change description of Resource with id " + resource.getId() + " from \""
+ + oldDescription + "\" to \"" + newDescription + "\".", caught);
// We failed to update it on the Server, so change back the Resource and the form item to
// the original value.
resource.setDescription(oldDescription);
@@ -214,9 +219,10 @@ public class OverviewForm extends EnhancedDynamicForm {
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(new Message("Description of Resource with id "
- + resource.getId() + " was changed from \""
- + oldDescription + "\" to \"" + newDescription + "\".", Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message("Description of Resource with id " + resource.getId()
+ + " was changed from \"" + oldDescription + "\" to \"" + newDescription + "\".",
+ Message.Severity.Info));
}
});
}
@@ -239,9 +245,9 @@ public class OverviewForm extends EnhancedDynamicForm {
resource.setLocation(newLocation);
OverviewForm.this.resourceService.updateResource(resource, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to change location of Resource with id "
- + resource.getId()
- + " from \"" + oldLocation + "\" to \"" + newLocation + "\".", caught);
+ CoreGUI.getErrorHandler().handleError(
+ "Failed to change location of Resource with id " + resource.getId() + " from \""
+ + oldLocation + "\" to \"" + newLocation + "\".", caught);
// We failed to update it on the Server, so change back the Resource and the form item to
// the original value.
resource.setLocation(oldLocation);
@@ -249,9 +255,9 @@ public class OverviewForm extends EnhancedDynamicForm {
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(new Message("Location of Resource with id "
- + resource.getId() + " was changed from \""
- + oldLocation + "\" to \"" + newLocation + "\".", Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message("Location of Resource with id " + resource.getId() + " was changed from \""
+ + oldLocation + "\" to \"" + newLocation + "\".", Message.Severity.Info));
}
});
}
@@ -259,7 +265,6 @@ public class OverviewForm extends EnhancedDynamicForm {
}
formItems.add(locationItem);
-
StaticTextItem versionItem = new StaticTextItem("version", "Version");
formItems.add(versionItem);
@@ -272,18 +277,19 @@ public class OverviewForm extends EnhancedDynamicForm {
StaticTextItem item = new StaticTextItem(id, trait.getDisplayName());
item.setTooltip(trait.getDescription());
formItems.add(item);
-// item.setValue("?");
+ // item.setValue("?");
}
-// SectionItem section = new SectionItem("Summary", "Summary");
-// section.setTitle("Summary");
-// section.setDefaultValue("Summary");
-// section.setCanCollapse(true);
-// section.setCellStyle("HidablePlainSectionHeader");
-// section.setItemIds(itemIds.toArray(new String[itemIds.size()]));
-// formItems.add(0, section);
-
- formItems.add(new SpacerItem());
+ // SectionItem section = new SectionItem("Summary", "Summary");
+ // section.setTitle("Summary");
+ // section.setDefaultValue("Summary");
+ // section.setCanCollapse(true);
+ // section.setCellStyle("HidablePlainSectionHeader");
+ // section.setItemIds(itemIds.toArray(new String[itemIds.size()]));
+ // formItems.add(0, section);
+ if (!isDisplayCondensed()) {
+ formItems.add(new SpacerItem());
+ }
setItems(formItems.toArray(new FormItem[formItems.size()]));
setValue("type", type.getName() + " (" + type.getPlugin() + ")");
@@ -292,8 +298,23 @@ public class OverviewForm extends EnhancedDynamicForm {
setValue("location", resource.getLocation());
setValue("version", (resource.getVersion() != null) ? resource.getVersion() : "<i>none</i>");
Resource parentResource = resource.getParentResource();
- setValue("parent", parentResource != null ?
- ("<a href=\"#Resource/" + parentResource.getId() + "\">" +
- parentResource.getName() + "</a>") : "<i>none</i>");
+ setValue("parent", parentResource != null ? ("<a href=\"#Resource/" + parentResource.getId() + "\">"
+ + parentResource.getName() + "</a>") : "<i>none</i>");
+ }
+
+ public boolean isHeaderEnabled() {
+ return headerEnabled;
+ }
+
+ public void setHeaderEnabled(boolean headerEnabled) {
+ this.headerEnabled = headerEnabled;
+ }
+
+ public boolean isDisplayCondensed() {
+ return displayCondensed;
+ }
+
+ public void setDisplayCondensed(boolean displayCondensed) {
+ this.displayCondensed = displayCondensed;
}
}
13 years, 6 months
[rhq] modules/core
by lkrejci
modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml | 140 +++++-----
1 file changed, 70 insertions(+), 70 deletions(-)
New commits:
commit 1a5836ad1eb746d2273de564aaa0be9f0132e6af
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Nov 23 15:11:06 2010 +0100
BZ 655156 - putting the db version numbers in line between release-3.0.0 and master branches.
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 69d7e3c..c1ca995 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -3007,63 +3007,12 @@
</schemaSpec>
<schemaSpec version="2.88">
- <!-- the customizable dashboard storage system -->
-
- <schema-createSequence name="RHQ_DASHBOARD_ID_SEQ" initial="10001"/>
<schema-directSQL>
- <statement desc="Creating table RHQ_DASHBOARD">
- CREATE TABLE RHQ_DASHBOARD ( ID INTEGER PRIMARY KEY )
- </statement>
- </schema-directSQL>
- <schema-alterColumn table="RHQ_DASHBOARD" column="ID" nullable="FALSE"/>
- <schema-addColumn table="RHQ_DASHBOARD" column="NAME" columnType="VARCHAR2" precision="200"/>
- <schema-alterColumn table="RHQ_DASHBOARD" column="NAME" nullable="FALSE"/>
- <schema-addColumn table="RHQ_DASHBOARD" column="SUBJECT_ID" columnType="INTEGER"/>
- <schema-addColumn table="RHQ_DASHBOARD" column="SHARED" columnType="BOOLEAN"/>
- <schema-alterColumn table="RHQ_DASHBOARD" column="SHARED" nullable="FALSE"/>
- <schema-addColumn table="RHQ_DASHBOARD" column="CONFIGURATION_ID" columnType="INTEGER"/>
- <schema-directSQL>
- <statement>
- ALTER TABLE RHQ_DASHBOARD
- ADD CONSTRAINT RHQ_DASHBOARD_CONFIG_ID_FK
- FOREIGN KEY ( CONFIGURATION_ID )
- REFERENCES RHQ_CONFIG ( ID )
- </statement>
- </schema-directSQL>
-
- <schema-createSequence name="RHQ_DASHBOARD_PORTLET_ID_SEQ" initial="10001"/>
- <schema-directSQL>
- <statement desc="Creating table RHQ_DASHBOARD_PORTLET">
- CREATE TABLE RHQ_DASHBOARD_PORTLET ( ID INTEGER PRIMARY KEY )
- </statement>
- </schema-directSQL>
- <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="ID" nullable="FALSE"/>
-
- <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="NAME" columnType="VARCHAR2" precision="200"/>
- <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="NAME" nullable="FALSE"/>
- <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="PORTLET_KEY" columnType="VARCHAR2"
- precision="200"/>
- <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="PORTLET_KEY" nullable="FALSE"/>
- <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="COL" columnType="INTEGER"/>
- <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="COL_INDEX" columnType="INTEGER"/>
- <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="HEIGHT" columnType="INTEGER"/>
- <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="CONFIGURATION_ID" columnType="INTEGER"/>
- <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="DASHBOARD_ID" columnType="INTEGER"/>
- <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="DASHBOARD_ID" nullable="FALSE"/>
- <schema-directSQL>
- <statement>
- ALTER TABLE RHQ_DASHBOARD_PORTLET
- ADD CONSTRAINT RHQ_DP_CONFIGURATION_ID_FK
- FOREIGN KEY ( CONFIGURATION_ID )
- REFERENCES RHQ_CONFIG ( ID )
+ <statement desc="Add end time index on call time data to speed up purges">
+ CREATE INDEX RHQ_CT_DA_VA_END_TIM_IDX ON RHQ_CALLTIME_DATA_VALUE (end_time)
</statement>
- </schema-directSQL>
- <schema-directSQL>
- <statement>
- ALTER TABLE RHQ_DASHBOARD_PORTLET
- ADD CONSTRAINT RHQ_DP_DASHBOARD_ID_FK
- FOREIGN KEY ( DASHBOARD_ID )
- REFERENCES RHQ_DASHBOARD ( ID )
+ <statement desc="Add index on measurement definition numeric type">
+ CREATE INDEX RHQ_METRIC_DEF_NT_IDX ON RHQ_MEASUREMENT_DEF (numeric_type)
</statement>
</schema-directSQL>
</schemaSpec>
@@ -3123,17 +3072,6 @@
</schemaSpec>
<schemaSpec version="2.91">
- <schema-directSQL>
- <statement desc="Add end time index on call time data to speed up purges">
- CREATE INDEX RHQ_CT_DA_VA_END_TIM_IDX ON RHQ_CALLTIME_DATA_VALUE (end_time)
- </statement>
- <statement desc="Add index on measurement definition numeric type">
- CREATE INDEX RHQ_METRIC_DEF_NT_IDX ON RHQ_MEASUREMENT_DEF (numeric_type)
- </statement>
- </schema-directSQL>
- </schemaSpec>
-
- <schemaSpec version="2.92">
<!-- if some role previously had CONFIGURE perm (now called CONFIGURE_WRITE), give it the implied perm
CONFIGURE_READ so users don't experience an unexpected permission restriction after upgrade -->
<schema-directSQL>
@@ -3146,8 +3084,8 @@
</schema-directSQL>
</schemaSpec>
- <!-- BZ 622491 - 2.93.x - modifiedBy should only be username, not a subject ID and should be size 100 -->
- <schemaSpec version="2.93.1">
+ <!-- BZ 622491 - 2.92.x - modifiedBy should only be username, not a subject ID and should be size 100 -->
+ <schemaSpec version="2.92.1">
<!-- first do the RHQ_RESOURCE_GROUP table -->
<schema-addColumn table="RHQ_RESOURCE_GROUP" column="MODIFIED_BY_VARCHAR" columnType="VARCHAR2" precision="100"/>
<schema-directSQL>
@@ -3167,7 +3105,7 @@
</schema-directSQL>
</schemaSpec>
- <schemaSpec version="2.93.2">
+ <schemaSpec version="2.92.2">
<!-- second do the RHQ_RESOURCE table -->
<schema-addColumn table="RHQ_RESOURCE" column="MODIFIED_BY_VARCHAR" columnType="VARCHAR2" precision="100"/>
<schema-directSQL>
@@ -3187,11 +3125,73 @@
</schema-directSQL>
</schemaSpec>
- <schemaSpec version="2.93.3">
+ <schemaSpec version="2.92.3">
<!-- third, maintain consistency across data model - everywhere else, SUBJECT_NAME is of size 100, make this one 100 too -->
<schema-alterColumn table="RHQ_PARTITION_EVENT" column="SUBJECT_NAME" columnType="VARCHAR2" precision="100" />
</schemaSpec>
+ <schemaSpec version="2.93">
+ <!-- the customizable dashboard storage system -->
+
+ <schema-createSequence name="RHQ_DASHBOARD_ID_SEQ" initial="10001"/>
+ <schema-directSQL>
+ <statement desc="Creating table RHQ_DASHBOARD">
+ CREATE TABLE RHQ_DASHBOARD ( ID INTEGER PRIMARY KEY )
+ </statement>
+ </schema-directSQL>
+ <schema-alterColumn table="RHQ_DASHBOARD" column="ID" nullable="FALSE"/>
+ <schema-addColumn table="RHQ_DASHBOARD" column="NAME" columnType="VARCHAR2" precision="200"/>
+ <schema-alterColumn table="RHQ_DASHBOARD" column="NAME" nullable="FALSE"/>
+ <schema-addColumn table="RHQ_DASHBOARD" column="SUBJECT_ID" columnType="INTEGER"/>
+ <schema-addColumn table="RHQ_DASHBOARD" column="SHARED" columnType="BOOLEAN"/>
+ <schema-alterColumn table="RHQ_DASHBOARD" column="SHARED" nullable="FALSE"/>
+ <schema-addColumn table="RHQ_DASHBOARD" column="CONFIGURATION_ID" columnType="INTEGER"/>
+ <schema-directSQL>
+ <statement>
+ ALTER TABLE RHQ_DASHBOARD
+ ADD CONSTRAINT RHQ_DASHBOARD_CONFIG_ID_FK
+ FOREIGN KEY ( CONFIGURATION_ID )
+ REFERENCES RHQ_CONFIG ( ID )
+ </statement>
+ </schema-directSQL>
+
+ <schema-createSequence name="RHQ_DASHBOARD_PORTLET_ID_SEQ" initial="10001"/>
+ <schema-directSQL>
+ <statement desc="Creating table RHQ_DASHBOARD_PORTLET">
+ CREATE TABLE RHQ_DASHBOARD_PORTLET ( ID INTEGER PRIMARY KEY )
+ </statement>
+ </schema-directSQL>
+ <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="ID" nullable="FALSE"/>
+
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="NAME" columnType="VARCHAR2" precision="200"/>
+ <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="NAME" nullable="FALSE"/>
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="PORTLET_KEY" columnType="VARCHAR2"
+ precision="200"/>
+ <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="PORTLET_KEY" nullable="FALSE"/>
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="COL" columnType="INTEGER"/>
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="COL_INDEX" columnType="INTEGER"/>
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="HEIGHT" columnType="INTEGER"/>
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="CONFIGURATION_ID" columnType="INTEGER"/>
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="DASHBOARD_ID" columnType="INTEGER"/>
+ <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="DASHBOARD_ID" nullable="FALSE"/>
+ <schema-directSQL>
+ <statement>
+ ALTER TABLE RHQ_DASHBOARD_PORTLET
+ ADD CONSTRAINT RHQ_DP_CONFIGURATION_ID_FK
+ FOREIGN KEY ( CONFIGURATION_ID )
+ REFERENCES RHQ_CONFIG ( ID )
+ </statement>
+ </schema-directSQL>
+ <schema-directSQL>
+ <statement>
+ ALTER TABLE RHQ_DASHBOARD_PORTLET
+ ADD CONSTRAINT RHQ_DP_DASHBOARD_ID_FK
+ FOREIGN KEY ( DASHBOARD_ID )
+ REFERENCES RHQ_DASHBOARD ( ID )
+ </statement>
+ </schema-directSQL>
+ </schemaSpec>
+
<schemaSpec version="2.94">
<!-- give the 'SUPER USER' and 'ALL RESOURCES' roles permission to delete/purge events (this permission
previously did not exist, and event deletion/purging could be performed by any user with authz to
13 years, 6 months
[rhq] Branch 'delete-agent-plugin' - modules/enterprise
by John Sanda
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/metadata/ConfigurationMetadataManagerBean.java | 16 +++++-----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java | 4 ++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/OperationMetadataManagerBean.java | 5 +++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java | 5 +++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceConfigurationMetadataManagerBean.java | 4 ++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java | 5 ++-
6 files changed, 30 insertions(+), 9 deletions(-)
New commits:
commit 99688dfc939bb3a08caebd3fa718a8aab315bdca
Author: John Sanda <jsanda(a)redhat.com>
Date: Sat Nov 20 21:45:17 2010 -0500
Making transactions for meta data updates more granular to improve performance
After doing some profiling with jprofiler I have decided to make each
meta data manager update take place in its own transaction. We are
taking a big performance hit on all of the calls to
EntityManger.flush(). Doing less work per transaction takes away the
need to flush the persistence context. In addition to the changes in
transaction boundaries, I have removed several calls to flush(), most
notably in ConfigurationMetadataManagerBean. JProfiler flagged the code
in that EJB in particular as a hot spot.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/metadata/ConfigurationMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/metadata/ConfigurationMetadataManagerBean.java
index 6312cfe..8b9868a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/metadata/ConfigurationMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/metadata/ConfigurationMetadataManagerBean.java
@@ -89,7 +89,7 @@ public class ConfigurationMetadataManagerBean implements ConfigurationMetadataMa
// somewhere else.
}
- entityManager.flush();
+// entityManager.flush();
/*
* Now update / delete contained groups We need to be careful here, as groups are present in PropertyDefinition
@@ -119,7 +119,7 @@ public class ConfigurationMetadataManagerBean implements ConfigurationMetadataMa
entityManager.remove(group);
}
- entityManager.flush();
+// entityManager.flush();
// update existing groups that stay
for (PropertyGroupDefinition group : toUpdate) {
@@ -143,7 +143,7 @@ public class ConfigurationMetadataManagerBean implements ConfigurationMetadataMa
.getPropertiesInGroup(groupName));
}
- entityManager.flush();
+// entityManager.flush();
// persist new groups
for (PropertyGroupDefinition group : toPersist) {
@@ -190,7 +190,7 @@ public class ConfigurationMetadataManagerBean implements ConfigurationMetadataMa
for (String name : toRemove) {
existingTemplates.remove(name);
}
- entityManager.flush();
+// entityManager.flush();
for (String name : newTemplates.keySet()) {
// add completely new templates
@@ -207,7 +207,7 @@ public class ConfigurationMetadataManagerBean implements ConfigurationMetadataMa
}
}
- entityManager.flush();
+// entityManager.flush();
return updateReport;
}
@@ -403,7 +403,7 @@ public class ConfigurationMetadataManagerBean implements ConfigurationMetadataMa
// handle <constraint> [0..*]
- entityManager.flush();
+// entityManager.flush();
Set<Constraint> exCon = existingPDS.getConstraints();
if (exCon.size() > 0) {
for (Constraint con : exCon) {
@@ -442,7 +442,7 @@ public class ConfigurationMetadataManagerBean implements ConfigurationMetadataMa
entityManager.remove(existingProperty);
entityManager.merge(configDef);
- entityManager.flush();
+// entityManager.flush();
}
/**
@@ -477,7 +477,7 @@ public class ConfigurationMetadataManagerBean implements ConfigurationMetadataMa
}
entityManager.merge(exList);
- entityManager.flush();
+// entityManager.flush();
}
/**
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java
index 05a9a52..267a201 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java
@@ -11,6 +11,8 @@ import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import javax.ejb.EJB;
import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.ArrayList;
@@ -33,9 +35,11 @@ public class MeasurementMetadataManagerBean implements MeasurementMetadataManage
private MeasurementDefinitionManagerLocal measurementDefinitionMgr;
@Override
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void updateMetadata(ResourceType existingType, ResourceType newType) {
log.debug("Updating metric definitions for " + existingType);
+ existingType = entityMgr.find(ResourceType.class, existingType.getId());
Set<MeasurementDefinition> existingDefinitions = existingType.getMetricDefinitions();
if (existingDefinitions.isEmpty()) {
if (log.isDebugEnabled()) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/OperationMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/OperationMetadataManagerBean.java
index 426f50f..cd0f4d5 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/OperationMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/OperationMetadataManagerBean.java
@@ -8,6 +8,8 @@ import org.rhq.core.domain.resource.ResourceType;
import org.rhq.enterprise.server.RHQConstants;
import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.HashSet;
@@ -23,9 +25,12 @@ public class OperationMetadataManagerBean implements OperationMetadataManagerLoc
private EntityManager entityMgr;
@Override
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void updateMetadata(ResourceType existingType, ResourceType newType) {
log.debug("Updating operation definitions for " + existingType);
+ existingType = entityMgr.find(ResourceType.class, existingType.getId());
+
Set<OperationDefinition> existingDefinitions = existingType.getOperationDefinitions();
Set<OperationDefinition> newDefinitions = newType.getOperationDefinitions();
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java
index 271ce20..d4ba540 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java
@@ -19,6 +19,8 @@ import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import javax.ejb.EJB;
import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.Date;
@@ -42,10 +44,13 @@ public class PluginConfigurationMetadataManagerBean implements PluginConfigurati
private ResourceManagerLocal resourceMgr;
@Override
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void updatePluginConfigurationDefinition(ResourceType existingType, ResourceType newType) {
if (log.isDebugEnabled()) {
log.debug("Updating plugin configuration definition for " + existingType);
}
+
+ existingType = entityMgr.find(ResourceType.class, existingType.getId());
ConfigurationDefinition existingConfigurationDefinition = existingType.getPluginConfigurationDefinition();
if (newType.getPluginConfigurationDefinition() != null) {
// all new
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceConfigurationMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceConfigurationMetadataManagerBean.java
index 0e21c59..9c93258 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceConfigurationMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceConfigurationMetadataManagerBean.java
@@ -9,6 +9,8 @@ import org.rhq.enterprise.server.configuration.metadata.ConfigurationMetadataMan
import javax.ejb.EJB;
import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@@ -24,9 +26,11 @@ public class ResourceConfigurationMetadataManagerBean implements ResourceConfigu
private ConfigurationMetadataManagerLocal configurationMetadataMgr;
@Override
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void updateResourceConfigurationDefinition(ResourceType existingType, ResourceType newType) {
log.debug("Updating resource configuration definition for " + existingType);
+ existingType = entityMgr.find(ResourceType.class, existingType.getId());
ConfigurationDefinition newResourceConfigurationDefinition = newType.getResourceConfigurationDefinition();
if (newResourceConfigurationDefinition != null) {
if (existingType.getResourceConfigurationDefinition() == null) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
index 94dc1aa..890341f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
@@ -375,8 +375,11 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
// child types which may still be referencing these sub categories
// Update the rest of these related resources
+ long startTime = System.currentTimeMillis();
pluginConfigMetadataMgr.updatePluginConfigurationDefinition(existingType, resourceType);
- entityManager.flush();
+ long endTime = System.currentTimeMillis();
+ log.debug("Updated plugin configuration definition for ResourceType[" + toConciseString(existingType) +
+ "] in " + (endTime - startTime) + " ms");
resourceConfigMetadataMgr.updateResourceConfigurationDefinition(existingType, resourceType);
13 years, 6 months
[rhq] modules/enterprise
by Jay Shaughnessy
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java | 35 ++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java | 72 ++++++----
2 files changed, 68 insertions(+), 39 deletions(-)
New commits:
commit 6b57b3d4b74e6fdf5013e5df8e043dfb0e39e206
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Nov 22 21:47:51 2010 -0500
Dashboards were using dashboard names in their bookmarkabe urls. Names can
contain [localized] characters not valid in urls. Also, it
presented an issue for localizing the "Default" dashboard. Switch to
using Dashboard IDs in the view path to solve this problem. Also, did some
work to make dashboard rendering more robust when deleting, editing or
directly navigating to the dashboard.
Note, The Add custom dashboards feature was pretty broken before this and
it still is. But modifying the default seems to now work pretty well.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java
index c02e802..3d10400 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java
@@ -121,9 +121,12 @@ public class DashboardView extends LocatableVLayout {
nameItem.setValue(storedDashboard.getName());
nameItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent changedEvent) {
- storedDashboard.setName((String) changedEvent.getValue());
- save();
- dashboardsView.updateNames();
+ String val = (String) changedEvent.getValue();
+ if (!(null == val || "".equals(val.trim()))) {
+ storedDashboard.setName(val.trim());
+ save();
+ dashboardsView.updateNames();
+ }
}
});
@@ -199,7 +202,7 @@ public class DashboardView extends LocatableVLayout {
picker.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent changedEvent) {
Object v = changedEvent.getValue();
- com.allen_sauer.gwt.log.client.Log.info("color chagned to " + v);
+ com.allen_sauer.gwt.log.client.Log.info("color changed to " + v);
setBackgroundColor(String.valueOf(v));
storedDashboard.getConfiguration().put(new PropertySimple(Dashboard.CFG_BACKGROUND, String.valueOf(v)));
save();
@@ -302,16 +305,20 @@ public class DashboardView extends LocatableVLayout {
}
public void delete() {
- GWTServiceLookup.getDashboardService().removeDashboard(this.storedDashboard.getId(), new AsyncCallback<Void>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("", caught);
- }
-
- public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new Message(MSG.view_dashboardManager_deleted(storedDashboard.getName()), Message.Severity.Info));
- }
- });
+ if (null != this.storedDashboard && this.storedDashboard.getId() > 0) {
+ GWTServiceLookup.getDashboardService().removeDashboard(this.storedDashboard.getId(),
+ new AsyncCallback<Void>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("", caught);
+ }
+
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(
+ new Message(MSG.view_dashboardManager_deleted(storedDashboard.getName()),
+ Message.Severity.Info));
+ }
+ });
+ }
}
public void resize() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
index 9baf529..53cb92c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
@@ -22,6 +22,7 @@
*/
package org.rhq.enterprise.gui.coregui.client.dashboard;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -37,7 +38,6 @@ import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.tab.Tab;
-import com.smartgwt.client.widgets.tab.TabSet;
import com.smartgwt.client.widgets.tab.events.CloseClickHandler;
import com.smartgwt.client.widgets.tab.events.TabCloseClickEvent;
import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
@@ -49,6 +49,8 @@ import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
+import org.rhq.enterprise.gui.coregui.client.components.tab.NamedTab;
+import org.rhq.enterprise.gui.coregui.client.components.tab.NamedTabSet;
import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.queue.AutodiscoveryPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.alerts.RecentAlertsPortlet;
@@ -62,8 +64,6 @@ import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.util.MessagePort
import org.rhq.enterprise.gui.coregui.client.gwt.DashboardGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableIButton;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTab;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTabSet;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
/**
@@ -73,7 +73,11 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
public static final ViewName VIEW_ID = new ViewName("Dashboard", MSG.view_dashboards_title());
- private TabSet tabSet;
+ // Each NamedTab is a Dashboard, name=Dashboard.id, title=Dashboard.name
+ private NamedTabSet tabSet;
+
+ // The ID (0 for default dash)
+ private String selectedTabName;
private IButton editButton;
@@ -86,8 +90,6 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
private DashboardGWTServiceAsync dashboardService = GWTServiceLookup.getDashboardService();
- private String selectedTab;
-
public DashboardsView(String locatorId) {
super(locatorId);
setOverflow(Overflow.AUTO);
@@ -121,7 +123,7 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
this.dashboardsByName.put(dashboard.getName(), dashboard);
}
- tabSet = new LocatableTabSet(getLocatorId());
+ tabSet = new NamedTabSet(getLocatorId());
tabSet.setWidth100();
tabSet.setHeight100();
@@ -156,7 +158,8 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
tabSet.addTabSelectedHandler(new TabSelectedHandler() {
public void onTabSelected(TabSelectedEvent tabSelectedEvent) {
- History.newItem("Dashboard/" + tabSelectedEvent.getTab().getTitle(), false);
+ NamedTab selectedTab = tabSet.getTabByTitle(tabSelectedEvent.getTab().getTitle());
+ History.newItem("Dashboard/" + selectedTab.getName(), false);
selectedDashboardView = (DashboardView) tabSelectedEvent.getTab().getPane();
selectedDashboard = selectedDashboardView.getDashboard();
selectedDashboardView.setEditMode(editMode);
@@ -165,13 +168,13 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
for (Dashboard dashboard : dashboards) {
DashboardView dashboardView = new DashboardView(extendLocatorId(dashboard.getName()), this, dashboard);
-
- Tab tab = new LocatableTab(dashboard.getName(), dashboard.getName());
+ String tabName = String.valueOf(dashboard.getId());
+ Tab tab = new NamedTab(this.extendLocatorId(tabName), new ViewName(tabName, dashboard.getName()), null);
tab.setPane(dashboardView);
tab.setCanClose(true);
tabSet.addTab(tab);
- if (dashboard.getName().equals(selectedTab)) {
+ if (dashboard.getName().equals(selectedTabName)) {
tabSet.selectTab(tab);
}
}
@@ -184,6 +187,7 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
public void execute(Boolean aBoolean) {
if (aBoolean) {
dashboardView.delete();
+ History.newItem(VIEW_ID.getName());
} else {
tabCloseClickEvent.cancel();
}
@@ -282,8 +286,8 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
public void onSuccess(Dashboard result) {
DashboardView dashboardView = new DashboardView(extendLocatorId(result.getName()), DashboardsView.this,
result);
-
- Tab tab = new LocatableTab(extendLocatorId(result.getName()), result.getName());
+ String tabName = String.valueOf(result.getId());
+ NamedTab tab = new NamedTab(extendLocatorId(tabName), new ViewName(tabName, result.getName()), null);
tab.setPane(dashboardView);
tab.setCanClose(true);
@@ -292,7 +296,7 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
tabSet.selectTab(tab);
editMode = true;
editButton.setTitle(editMode ? MSG.common_title_view_mode() : MSG.common_title_edit_mode());
- dashboardView.setEditMode(editMode);
+ //dashboardView.setEditMode(editMode);
}
});
@@ -306,24 +310,42 @@ public class DashboardsView extends LocatableVLayout implements BookmarkableView
}
public void renderView(ViewPath viewPath) {
- if (!viewPath.isEnd()) {
- selectedTab = viewPath.getCurrent().getPath();
-
- //added to avoid NPE in gwt debug window.
- if (tabSet != null) {
- for (Tab tab : tabSet.getTabs()) {
- if (tab.getTitle().equals(selectedTab)) {
- tabSet.selectTab(tab);
+ //added to avoid NPE in gwt debug window.
+ if (tabSet != null) {
+ NamedTab[] tabs = tabSet.getTabs();
+
+ // make sure we have at least a default dashboard tab
+ if (0 == tabs.length) {
+ List<Dashboard> defaultTabs = new ArrayList<Dashboard>(1);
+ defaultTabs.add(getDefaultDashboard());
+ updateDashboards(defaultTabs);
+ tabs = tabSet.getTabs();
+ }
+
+ // if nothing selected or pathtab does not exist, default to the first tab
+ NamedTab selectedTab = tabs[0];
+ selectedTabName = selectedTab.getName();
+
+ if (!viewPath.isEnd()) {
+ String pathTabName = viewPath.getCurrent().getPath();
+
+ for (NamedTab tab : tabSet.getTabs()) {
+ if (tab.getName().equals(pathTabName)) {
+ selectedTab = tab;
+ selectedTabName = pathTabName;
+ break;
}
}
- } else {
- Log.info("WARN: While rendering DashboardsView, tabSet is null.");
}
+
+ tabSet.selectTab(selectedTab);
+ } else {
+ Log.debug("While rendering DashboardsView, tabSet is null.");
}
}
public Dashboard getDashboard() {
return selectedDashboard;
}
-
+
}
13 years, 6 months
[rhq] modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java | 2 +-
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
New commits:
commit c1ad93c4f0ec5b5b084d7d39ea0ddd85bc816c49
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Nov 22 17:31:41 2010 -0500
use empty string for the "icon" column header
use view_tags_tags for the title, no need to have a separate Tags:
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java
index 9c8f9ab..a964f0f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tagging/TagEditorView.java
@@ -118,7 +118,7 @@ public class TagEditorView extends LocatableLayout {
if (!vertical)
layout.setMembersMargin(8);
- HTMLFlow title = new HTMLFlow("<b>" + MSG.view_tags_title() + "</b>");
+ HTMLFlow title = new HTMLFlow("<b>" + MSG.view_tags_tags() + ":</b>");
title.setAutoWidth();
layout.addMember(title);
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 1dc9f3a..3a01a86 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
@@ -97,7 +97,7 @@ common_title_end = End~
common_title_favorites=Favorites~
common_title_generalProp = General Properties~
common_title_group_def_total=Group Definition Total~
-common_title_icon = icon~
+common_title_icon = ~
common_title_id = ID~
common_title_id_parent = Parent ID~
common_title_info = Info~
@@ -966,7 +966,6 @@ view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1
view_tags_tags = Tags~
view_tags_error_1 = Failed to load Tags~
-view_tags_title = Tags:~
view_tags_tooltip_1 = Click to remove this Tag~
view_tags_tooltip_2 = Click to edit Tags~
view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
13 years, 6 months
[rhq] 2 commits - modules/enterprise
by mazz
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java | 2 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java | 5 +++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java | 2 +-
3 files changed, 5 insertions(+), 4 deletions(-)
New commits:
commit 4b778d4db50ad35b1f0293dc8c968dcd78cef5f0
Merge: 3d8c8fc... 78f624c...
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Nov 22 17:09:42 2010 -0500
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq.git
commit 3d8c8fcefc52a17c4aada0b8b4e7dbf8ecc7d78e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Nov 22 17:09:23 2010 -0500
fix link to individual tags and tag cloud
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 a5b2c95..8ab7e32 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
@@ -282,6 +282,6 @@ public class LinkManager {
}
public static String getTagLink(String tag) {
- return "#Reports/Inventory/Tag%20Cloud/" + tag;
+ return "#Reports/Subsystems/Tags/" + tag;
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java
index b321314..81bf6e6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java
@@ -32,6 +32,7 @@ import org.rhq.core.domain.criteria.TagCriteria;
import org.rhq.core.domain.tagging.compsite.TagReportComposite;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.components.HeaderLabel;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -110,8 +111,8 @@ public class TagCloudView extends LocatableVLayout {
int font = (int) ((((double) tag.getTotal()) / (double) max) * (maxFont - minFont)) + minFont;
- buf.append("<a href=\"#Reports/Inventory/Tag Cloud/").append(tag.getTag()).append("\" style=\"font-size: ")
- .append(font).append("pt; margin: 8px;\"");
+ buf.append("<a href=\"").append(LinkManager.getTagLink(tag.getTag().toString())).append(
+ "\" style=\"font-size: ").append(font).append("pt; margin: 8px;\"");
buf.append(" title=\"").append(MSG.view_tagCloud_error_tagUsedCount(String.valueOf(tag.getTotal())))
.append("\"");
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java
index 192b0f6..9f64b57 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TaggedView.java
@@ -44,7 +44,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
*/
public class TaggedView extends LocatableVLayout implements BookmarkableView {
- public static final ViewName VIEW_ID = new ViewName("Tag", MSG.view_tags_tags());
+ public static final ViewName VIEW_ID = new ViewName("Tags", MSG.view_tags_tags());
private TagCloudView tagCloudView;
13 years, 6 months
[rhq] 2 commits - modules/enterprise
by Simeon Pinder
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java | 20 +++-------
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java | 2 -
2 files changed, 7 insertions(+), 15 deletions(-)
New commits:
commit 78f624cc534e7c23b3665bcc082420c38badcfe3
Merge: f26b9c1... 22aff4a...
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Mon Nov 22 16:22:45 2010 -0500
Merge branch 'master' of ssh://spinder@git.fedorahosted.org/git/rhq/rhq into track-master
commit f26b9c10181e67ab91d93adc8b266024c80733eb
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Mon Nov 22 16:21:24 2010 -0500
i)fixed wrong i18n mesg ii)fixed modal plugin errors issue.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
index 37ba5f3..2054855 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTitleBar.java
@@ -32,8 +32,6 @@ import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
-import com.smartgwt.client.widgets.events.CloseClickHandler;
-import com.smartgwt.client.widgets.events.CloseClientEvent;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.form.fields.LinkItem;
@@ -185,20 +183,14 @@ public class ResourceTitleBar extends LocatableVLayout {
@Override
public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {
final Window winModal = new Window();
- winModal.setWidth("70%");
- winModal.setHeight("70%");
- winModal.setTitle(MSG.common_title_component_errors() + ":");
winModal.setShowMinimizeButton(false);
- winModal.setIsModal(true);
winModal.setShowModalMask(true);
winModal.setShowCloseButton(true);
+ winModal.setWidth("70%");
+ winModal.setHeight("70%");
+ winModal.setIsModal(true);
winModal.centerInPage();
- winModal.addCloseClickHandler(new CloseClickHandler() {
- @Override
- public void onCloseClick(CloseClientEvent event) {
- winModal.destroy();
- }
- });
+ winModal.setTitle(MSG.common_title_component_errors() + ":");
LocatableVLayout form = new LocatableVLayout(extendLocatorId("_Modal_Form"));
form.setAlign(VerticalAlignment.CENTER);
@@ -217,7 +209,7 @@ public class ResourceTitleBar extends LocatableVLayout {
errorsGrid.setShowFooter(false);
errorsGrid.setDataSource(errors);
form.addMember(errorsGrid);
- winModal.addChild(form);
+ winModal.addItem(form);
winModal.show();
}
@@ -381,4 +373,4 @@ public class ResourceTitleBar extends LocatableVLayout {
toggleFavoriteLocally();
}
}
-}
+}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java
index 9bc40ff..de0bf7f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/summary/ResourceErrorsView.java
@@ -6,7 +6,7 @@ import org.rhq.enterprise.gui.coregui.client.components.table.Table;
public class ResourceErrorsView extends Table {
public ResourceErrorsView(String locatorId, String string, Criteria criteria, Object object, String[] strings) {
- super(locatorId, MSG.view_bundle_bundles(), criteria);
+ super(locatorId, MSG.common_title_component_errors(), criteria);
}
/** Set order and width of table display
13 years, 6 months