modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java | 50 - 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/inventory/groups/detail/ResourceGroupDetailView.java | 79 +- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java | 20 modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/EditGroupResourceConfigurationUIBean.java | 15 modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/ViewGroupResourceConfigurationUIBean.java | 22 modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/alert-plain-navigation.xml | 60 ++ modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/configuration-plain-navigation.xml | 45 + modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/events-plain-navigation.xml | 26 modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/inventory-navigation.xml | 15 modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/measurement-navigation.xml | 15 modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/measurement-plain-navigation.xml | 88 +++ modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/operation-plain-navigation.xml | 119 ++++ modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/web.xml | 6 modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/graphs.xhtml | 26 modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response-plain.xhtml | 15 modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/alert/listGroupAlertDefinitions-plain.xhtml | 126 ++++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/alert/listGroupAlertHistory-plain.xhtml | 177 ++++++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/addSimple-plain.xhtml | 45 + modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/editCurrent-plain.xhtml | 69 ++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/history-plain.xhtml | 281 +++++++++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/viewCurrent-plain.xhtml | 55 + modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/events/history-plain.xhtml | 19 modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/main-plain.xhtml | 64 ++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/graphs-plain.xhtml | 19 modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/response-plain.xhtml | 15 modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/schedules-plain.xhtml | 153 +++++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/tables-plain.xhtml | 128 ++++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationHistory-plain.xhtml | 293 ++++++++++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationHistoryDetails-plain.xhtml | 232 +++++++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationScheduleDetails-plain.xhtml | 118 ++++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationScheduleNew-plain.xhtml | 173 +++++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationSchedules-plain.xhtml | 106 +++ modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/view-results-map-plain.xhtml | 41 + modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/monitor/tables-plain.xhtml | 19 35 files changed, 2624 insertions(+), 123 deletions(-)
New commits: commit 910702a4e6da5c6c7cd223f9ad7de12eac8d156c Author: Joseph Marques joseph@redhat.com Date: Thu Aug 12 02:10:30 2010 -0400
we don't support content at the group-level, so delete those commented-out sub-tab references
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 4a5f363..7ce294f 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 @@ -149,13 +149,6 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView operationsTab.updateSubTab("History", new FullHTMLPane( "/rhq/group/operation/groupOperationHistory-plain.xhtml?groupId=" + groupId)); operationsTab.updateSubTab("Scheduled", new FullHTMLPane( - // - // eventsTab.updateSubTab("History", EventHistoryView.createResourceHistoryView(resource.getId())); //new FullHTMLPane("/rhq/common/events/history-plain.xhtml?id=" + resource.getId())); - // - // contentTab.updateSubTab("Deployed", new FullHTMLPane("/rhq/resource/content/view-plain.xhtml?id=" + resource.getId())); - // contentTab.updateSubTab("New", new FullHTMLPane("/rhq/resource/content/deploy-plain.xhtml?id=" + resource.getId())); - // contentTab.updateSubTab("Subscriptions", new FullHTMLPane("/rhq/resource/content/subscription-plain.xhtml?id=" + resource.getId())); - // contentTab.updateSubTab("History", new FullHTMLPane("/rhq/resource/content/history-plain.xhtml?id=" + resource.getId())); "/rhq/group/operation/groupOperationSchedules-plain.xhtml?groupId=" + groupId));
configurationTab.updateSubTab("Current", new FullHTMLPane(
commit a8cd0f333842f0059d06e8678cf0d38f9b5db3b5 Author: Joseph Marques joseph@redhat.com Date: Thu Aug 12 02:09:51 2010 -0400
implement "plain" scheme using iframed-facelets for unfinished group > operation tabs
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 709e304..4a5f363 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 @@ -145,8 +145,10 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView inventoryTab.updateSubTab("Overview", new OverviewView(this.groupComposite)); inventoryTab.updateSubTab("Members", ResourceSearchView.getMembersOf(groupId)); // inventoryTab.updateSubTab("Connection Settings", new GroupPluginConfigurationEditView(this.group.getId(), this.group.getResourceType().getId(), ConfigurationEditor.ConfigType.plugin)); - // - // operationsTab.updateSubTab("History", OperationHistoryView.getResourceHistoryView(resource)); + + operationsTab.updateSubTab("History", new FullHTMLPane( + "/rhq/group/operation/groupOperationHistory-plain.xhtml?groupId=" + groupId)); + operationsTab.updateSubTab("Scheduled", new FullHTMLPane( // // eventsTab.updateSubTab("History", EventHistoryView.createResourceHistoryView(resource.getId())); //new FullHTMLPane("/rhq/common/events/history-plain.xhtml?id=" + resource.getId())); // @@ -154,6 +156,8 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView // contentTab.updateSubTab("New", new FullHTMLPane("/rhq/resource/content/deploy-plain.xhtml?id=" + resource.getId())); // contentTab.updateSubTab("Subscriptions", new FullHTMLPane("/rhq/resource/content/subscription-plain.xhtml?id=" + resource.getId())); // contentTab.updateSubTab("History", new FullHTMLPane("/rhq/resource/content/history-plain.xhtml?id=" + resource.getId())); + "/rhq/group/operation/groupOperationSchedules-plain.xhtml?groupId=" + groupId)); + configurationTab.updateSubTab("Current", new FullHTMLPane( "/rhq/group/configuration/viewCurrent-plain.xhtml?groupId=" + groupId)); configurationTab.updateSubTab("History", new FullHTMLPane( diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationHistory-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationHistory-plain.xhtml new file mode 100644 index 0000000..36f8b54 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationHistory-plain.xhtml @@ -0,0 +1,293 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <!-- + ResourceGroup Operation Pending History + --> + + <ui:param name="currentOperation" value="#{ResourceGroupOperationPendingHistoryUIBean.oldestInProgressResourceGroupOperation}" /> + + <h:form id="pendingForm"> + <input type="hidden" name="groupId" value="${param.groupId}"/> + <input type="hidden" name="category" value="#{param.category}" /> + + <rich:panel styleClass="BlockContent"> + <f:facet name="header">In Progress Operations</f:facet> + + <ui:param name="resourceGroupOperationPendingHistoryDataModel" value="#{ResourceGroupOperationPendingHistoryUIBean.dataModel}"/> + + <a4j:keepAlive beanName="ResourceGroupOperationPendingHistoryUIBean"/> + + <a4j:poll id="resourceGroupOperationPendingHistoryDataTableReRenderer" + oncomplete="disableConditionalButtons();" + interval="60000" + ignoreDupResponses="true" + actionListener="#{ResourceGroupOperationPendingHistoryUIBean.clearDataModel}" + reRender="resourceGroupOperationPendingHistoryDataTable" /> + <rich:dataTable id="resourceGroupOperationPendingHistoryDataTable" + rows="#{PageControl.ResourceGroupOperationPendingHistory.pageSize}" + value="#{resourceGroupOperationPendingHistoryDataModel}" + var="pendingItem" + width="100%" + columnsWidth="1%, 20%, 20%, 20%, 20%, 19%" + styleClass="resources-table" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <f:facet name="PageControlView"> + <onc:paginationControl id="ResourceGroupOperationPendingHistory" /> + </f:facet> + + rich:column + <f:facet name="header"> + <onc:allSelect target="pendingSelectedItems" /> + </f:facet> + + <onc:select name="pendingSelectedItems" value="#{pendingItem.id}" /> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.createdTime"> + <h:outputText styleClass="headerText" value="Date Submitted" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{pendingItem.createdTime}"> + <f:converter converterId="UserDateTimeConverter" /> + </h:outputText> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Name" /> + </f:facet> + + <h:outputLink value="/rhq/group/operation/groupOperationHistoryDetails-plain.xhtml" > + <f:param name="groupId" value="#{param.groupId}" /> + <f:param name="opId" value="#{pendingItem.id}" /> + <f:param name="category" value="#{param.category}" /> + + <h:outputText value="#{pendingItem.operationDefinition.displayName}"/> + </h:outputLink> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Description" /> + </f:facet> + + <h:outputText value="#{pendingItem.operationDefinition.description}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.status"> + <h:outputText styleClass="headerText" value="Status" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{pendingItem.status}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.subjectName"> + <h:outputText styleClass="headerText" value="User" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{pendingItem.subjectName}"/> + </rich:column> + + <f:facet name="footer"> + rich:columnGroup + <rich:column colspan="6" width="100%"> + <onc:selectCommandButton action="#{ResourceGroupOperationPendingHistoryUIBean.cancel}" + value="CANCEL SELECTED" target="pendingSelectedItems" + styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.control}"/> + + <ui:param name="paginationDataTableName" value="resourceGroupOperationPendingHistoryDataTable"/> + <ui:param name="paginationDataModel" value="#{resourceGroupOperationPendingHistoryDataModel}"/> + <ui:param name="paginationPageControl" value="#{PageControl.ResourceGroupOperationPendingHistory}"/> + <ui:include src="/rhq/resource/include/pagination-plain.xhtml" /> + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + + </rich:panel> + </h:form> + + <!-- + ResourceGroup Operation Completed History + --> + + <h:form id="historyForm"> + <input type="hidden" name="groupId" value="${param.groupId}"/> + <input type="hidden" name="category" value="#{param.category}" /> + + <rich:panel styleClass="BlockContent"> + <f:facet name="header">Completed Operations</f:facet> + + <a4j:keepAlive beanName="ResourceGroupOperationCompletedHistoryUIBean"/> + + <ui:param name="resourceGroupOperationCompletedHistoryDataModel" value="#{ResourceGroupOperationCompletedHistoryUIBean.dataModel}"/> + + <h:outputText value="There are no completed operations" rendered="#{resourceGroupOperationCompletedHistoryDataModel.rowCount eq 0}"/> + + <a4j:poll id="resourceGroupOperationCompletedHistoryDataTableReRenderer" + oncomplete="disableConditionalButtons();" + interval="60000" + ignoreDupResponses="true" + actionListener="#{ResourceGroupOperationCompletedHistoryUIBean.clearDataModel}" + reRender="resourceGroupOperationCompletedHistoryDataTable" /> + <rich:dataTable rendered="#{resourceGroupOperationCompletedHistoryDataModel.rowCount gt 0}" + id="resourceGroupOperationCompletedHistoryDataTable" + rows="#{PageControl.ResourceGroupOperationCompletedHistory.pageSize}" + value="#{resourceGroupOperationCompletedHistoryDataModel}" + var="historyItem" + width="100%" + columnsWidth="1%, 17%, 17%, 17%, 17%, 16%, 16%" + rowKeyVar="rowIndex" + styleClass="resources-table" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <f:facet name="PageControlView"> + <onc:paginationControl id="ResourceGroupOperationCompletedHistory" /> + </f:facet> + + rich:column + <f:facet name="header"> + <onc:allSelect target="completedSelectedItems" /> + </f:facet> + + <onc:select name="completedSelectedItems" value="#{historyItem.id}" /> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.createdTime"> + <h:outputText styleClass="headerText" value="Date Submitted" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{historyItem.createdTime}"> + <f:converter converterId="UserDateTimeConverter" /> + </h:outputText> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.modifiedTime"> + <h:outputText styleClass="headerText" value="Date Completed" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{historyItem.modifiedTime}"> + <f:converter converterId="UserDateTimeConverter" /> + </h:outputText> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Name" /> + </f:facet> + + <h:outputLink value="/rhq/group/operation/groupOperationHistoryDetails-plain.xhtml" > + <f:param name="groupId" value="#{param.groupId}" /> + <f:param name="opId" value="#{historyItem.id}" /> + <f:param name="category" value="#{param.category}" /> + + <h:outputText value="#{historyItem.operationDefinition.displayName}"/> + </h:outputLink> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Description" /> + </f:facet> + + <h:outputText value="#{historyItem.operationDefinition.description}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.status"> + <h:outputText styleClass="headerText" value="Status" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText rendered="#{historyItem.status ne 'FAILURE'}" value="#{historyItem.status}"/> + <h:outputLink rendered="#{historyItem.status eq 'FAILURE'}" + value="javascript:displayMessageModal('Error Message','#{historyItem.errorMessage}')"> + <h:outputText value="#{historyItem.status}"/> + </h:outputLink> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.subjectName"> + <h:outputText styleClass="headerText" value="User" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{historyItem.subjectName}"/> + </rich:column> + + <f:facet name="footer"> + rich:columnGroup + <rich:column colspan="7" width="100%"> + <onc:selectCommandButton action="#{ResourceGroupOperationCompletedHistoryUIBean.delete}" + value="DELETE SELECTED" target="completedSelectedItems" + styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.control}" + onclick="return preventDoubleClick();"/> + + <ui:param name="paginationDataTableName" value="resourceGroupOperationCompletedHistoryDataTable"/> + <ui:param name="paginationDataModel" value="#{resourceGroupOperationCompletedHistoryDataModel}"/> + <ui:param name="paginationPageControl" value="#{PageControl.ResourceGroupOperationCompletedHistory}"/> + <ui:include src="/rhq/resource/include/pagination-plain.xhtml" /> + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + + <!-- use a hidden button trick (which sends the same action a column click would) so request params aren't lost --> + <h:commandButton id="hiddenHistoryButton" style="visibility: hidden;" action="#{TableSorter.obtainFromOutcome}" /> + + </rich:panel> + </h:form> + + <script type="text/javascript"> + var submitted = false; + function preventDoubleClick() { + if (submitted) { + return false; + } else { + submitted = true; + return true; + } + } + </script> + + </ui:define> + +</ui:composition> diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationHistoryDetails-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationHistoryDetails-plain.xhtml new file mode 100644 index 0000000..8c9834e --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationHistoryDetails-plain.xhtml @@ -0,0 +1,232 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + +<ui:param name="item" value="#{ResourceGroupOperationHistoryDetailsUIBean.history}"/> + +<h:form id="operationHistoryDetailsForm"> +<input type="hidden" name="groupId" value="${param.groupId}"/> +<input type="hidden" name="opId" value="${param.opId}"/> +<input type="hidden" name="category" value="#{param.category}"/> + +<a4j:keepAlive beanName="ResourceGroupOperationHistoryDetailsUIBean" ajaxOnly="true"/> + +<br/> +<h:outputLink value="/rhq/group/operation/groupOperationHistory-plain.xhtml"> + <f:param name="groupId" value="#{param.groupId}"/> + <f:param name="category" value="#{param.category}"/> + + <h:outputText value="< Return to Operation History"/> +</h:outputLink> + +<rich:panel styleClass="BlockContent"> + <f:facet name="header">Details</f:facet> + <table> + <tr> + <td align="right" style="width: 150px;">Operation:</td> + <td align="left"> + <h:outputText value="#{item.operationDefinition.displayName}"/> + </td> + </tr> + <tr> + <td align="right">Date Submitted:</td> + <td align="left"> + <h:outputText value="#{item.createdTime}"> + <f:converter converterId="UserDateTimeConverter"/> + </h:outputText> + </td> + </tr> + <tr> + <td align="right">Date Completed:</td> + <td align="left"> + <h:outputText value="#{item.modifiedTime}" rendered="#{item.status ne 'INPROGRESS'}"> + <f:converter converterId="UserDateTimeConverter"/> + </h:outputText> + </td> + </tr> + <tr> + <td align="right">Requester:</td> + <td align="left"> + <h:outputText value="#{item.subjectName}" rendered="#{!(empty item.subjectName)}"/> + <h:outputText value="(unknown)" rendered="#{empty item.subjectName}"/> + </td> + </tr> + <tr> + <td align="right">Status:</td> + <td align="left"> + <h:outputText rendered="#{item.status eq 'SUCCESS' or item.status eq 'INPROGRESS'}" + value="#{item.status}"/> + <h:outputLink rendered="#{item.status ne 'SUCCESS' and item.status ne 'INPROGRESS'}" + value="#" id="resultsLink"> + <h:outputText value="#{item.status}"/> + <rich:componentControl for="resultsModalPanel" attachTo="resultsLink" operation="show" + event="onclick"/> + </h:outputLink> + <rich:modalPanel id="resultsModalPanel" width="600" height="400" + style="overflow: auto;"> + <f:facet name="header"> + <h:panelGroup> + <h:outputText value="Results"/> + </h:panelGroup> + </f:facet> + <f:facet name="controls"> + <h:panelGroup> + <h:graphicImage value="/images/close.png" style="cursor:pointer" + id="resultsModelPanelHideLink"/> + <rich:componentControl for="resultsModalPanel" attachTo="resultsModelPanelHideLink" + operation="hide" event="onclick"/> + </h:panelGroup> + </f:facet> + + <div class="ErrorModalBody"> + <h:outputText value="#{item.errorMessage}"/> + </div> + </rich:modalPanel> + </td> + </tr> + </table> +</rich:panel> + +<rich:panel styleClass="BlockContent"> + <f:facet name="header">Parameters</f:facet> + <onc:config + configurationDefinition="#{ResourceGroupOperationHistoryDetailsUIBean.parameters.configurationDefinition}" + configuration="#{ResourceGroupOperationHistoryDetailsUIBean.parameters.configuration}" + readOnly="true" + nullConfigurationDefinitionMessage="#{ResourceGroupOperationHistoryDetailsUIBean.parameters.nullConfigurationDefinitionMessage}" + nullConfigurationMessage="#{ResourceGroupOperationHistoryDetailsUIBean.parameters.nullConfigurationMessage}" + nullConfigurationStyle="InfoBlock"/> +</rich:panel> + +<rich:panel styleClass="BlockContent"> + <f:facet name="header">Resource Operation Results</f:facet> + + <h:panelGrid columns="1" styleClass="data-table"> + + <ui:param name="resourceGroupOperationHistoryDetailsDataModel" + value="#{ResourceGroupOperationHistoryDetailsUIBean.dataModel}"/> + + <h:outputText value="There were no resources in the group when this operation was executed" + rendered="#{resourceGroupOperationHistoryDetailsDataModel.rowCount eq 0}"/> + + <rich:dataTable rendered="#{resourceGroupOperationHistoryDetailsDataModel.rowCount gt 0}" + id="resourceGroupOperationHistoryDetailsDataTable" + rows="#{PageControl.ResourceGroupOperationHistoryDetails.pageSize}" + value="#{resourceGroupOperationHistoryDetailsDataModel}" + var="resourceHistoryItem" + width="100%" + columnsWidth="20%, 20%, 20%, 20%, 19%" + headerClass="tableRowHeader" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <f:facet name="PageControlView"> + <onc:paginationControl id="ResourceGroupOperationHistoryDetails"/> + </f:facet> + + <rich:column rendered="#{param.debug}"> + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.id"> + <h:outputText styleClass="headerText" value="ID"/> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{resourceHistoryItem.id}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.createdTime"> + <h:outputText styleClass="headerText" value="Date Submitted"/> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{resourceHistoryItem.createdTime}"> + <f:converter converterId="UserDateTimeConverter"/> + </h:outputText> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Name"/> + </f:facet> + + <h:outputLink value="/rhq/resource/operation/resourceOperationHistoryDetails-plain.xhtml"> + <f:param name="id" value="#{resourceHistoryItem.resource.id}"/> + <f:param name="opId" value="#{resourceHistoryItem.id}"/> + <h:outputText value="#{resourceHistoryItem.operationDefinition.displayName}"/> + </h:outputLink> + + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Resource"/> + </f:facet> + + <h:outputText value="#{resourceHistoryItem.resource.name}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.status"> + <h:outputText styleClass="headerText" value="Status"/> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{resourceHistoryItem.status}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="h.subjectName"> + <h:outputText styleClass="headerText" value="User"/> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{resourceHistoryItem.subjectName}"/> + </rich:column> + + <f:facet name="footer"> + rich:columnGroup + <rich:column colspan="6" width="100%"> + <ui:param name="paginationDataTableName" + value="resourceGroupOperationHistoryDetailsDataTable"/> + <ui:param name="paginationDataModel" + value="#{resourceGroupOperationHistoryDetailsDataModel}"/> + <ui:param name="paginationPageControl" + value="#{PageControl.ResourceGroupOperationHistoryDetails}"/> + <ui:include src="/rhq/resource/include/pagination-plain.xhtml"/> + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + + </h:panelGrid> + +</rich:panel> + +<h:outputLink value="/rhq/group/operation/groupOperationHistory-plain.xhtml"> + <f:param name="groupId" value="#{param.groupId}"/> + <f:param name="category" value="#{param.category}"/> + + <h:outputText value="< Return to Operation History"/> +</h:outputLink> + +</h:form> + +</ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationScheduleDetails-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationScheduleDetails-plain.xhtml new file mode 100644 index 0000000..23274f2 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationScheduleDetails-plain.xhtml @@ -0,0 +1,118 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + <br/> + <!-- ResourceGroup Operation Schedules --> + <h:outputLink value="/rhq/group/operation/groupOperationSchedules-plain.xhtml"> + <f:param name="groupId" value="#{param.groupId}" /> + <f:param name="category" value="#{param.category}" /> + + <h:outputText value="< Return to Operation Schedules"/> + </h:outputLink> + + <rich:panel styleClass="BlockContent"> + <f:facet name="header">General Info</f:facet> + <table> + <tr> + <td align="right" style="width: 125px;">Operation:</td> + <td align="left"> + <h:outputText value="#{item.operationDisplayName}" /> + </td> + </tr> + <tr> + <td align="right" style="width: 125px;">Scheduled By:</td> + <td align="left"> + <h:outputText value="#{item.subject.name}" /> + </td> + </tr> + <tr> + <td align="right" style="width: 125px;">Halt on Failure:</td> + <td align="left"> + <h:outputText value="#{item.haltOnFailure}" /> + </td> + </tr> + <tr> + <td align="right" style="width: 125px;">Notes:</td> + <td align="left"> + <h:outputText value="#{item.description}" /> + </td> + </tr> + </table> + </rich:panel> + + <rich:panel styleClass="BlockContent"> + <f:facet name="header">Parameters</f:facet> + <onc:config configurationDefinition="#{ResourceGroupOperationScheduleDetailsUIBean.parameters.configurationDefinition}" + configuration="#{ResourceGroupOperationScheduleDetailsUIBean.parameters.configuration}" + readOnly="true" + nullConfigurationDefinitionMessage="#{ResourceGroupOperationScheduleDetailsUIBean.parameters.nullConfigurationDefinitionMessage}" + nullConfigurationMessage="#{ResourceGroupOperationScheduleDetailsUIBean.parameters.nullConfigurationMessage}" + nullConfigurationStyle="InfoBlock"/> + </rich:panel> + + <rich:panel styleClass="BlockContent"> + <f:facet name="header"> + <h:outputText value="Resource Operation Order"/> + </f:facet> + <h:panelGrid columns="2"> + <h:outputText value="Execute this operation: " /> + <h:selectOneRadio id="executionType" + layout="pageDirection" + disabled="true" + value="#{ResourceGroupOperationScheduleDetailsUIBean.resourceExecutionOption}"> + <f:selectItem value="#{ResourceGroupExecutionTypeUIBean.concurrentOption}" /> + <f:selectItem value="#{ResourceGroupExecutionTypeUIBean.orderedOption}" /> + </h:selectOneRadio> + + <h:outputText value=" " /> + <rich:orderingList id="resourceNameItems" + orderControlsVisible="false" + fastOrderControlsVisible="false" + value="#{ResourceGroupOperationScheduleDetailsUIBean.resourceNameItems}" + var="resourceNameItem" listHeight="150" listWidth="200" + converter="IntegerOptionItemConverter"> + rich:column + <h:outputText value="#{resourceNameItem.displayName}"></h:outputText> + </rich:column> + </rich:orderingList> + </h:panelGrid> + </rich:panel> + + <rich:panel styleClass="BlockContent"> + <f:facet name="header">Schedule Details</f:facet> + <onc:operationScheduler scheduleDetails="#{ResourceGroupOperationScheduleDetailsUIBean.operationDetails}" readOnly="true" /> + </rich:panel> + + <h:form id="scheduleForm"> + <input type="hidden" name="groupId" value="${param.groupId}"/> + <input type="hidden" name="jobId" value="${param.jobId}"/> + <h:panelGrid columns="1" styleClass="buttons-table" columnClasses="button-cell"> + <h:commandButton action="#{ResourceGroupOperationScheduleUIBean.executeNow}" + value="EXECUTE NOW" styleClass="buttonmed" + rendered="#{ResourceGroupUIBean.permissions.control}" /> + </h:panelGrid> + </h:form> + + <br /> + <br /> + + <h:outputLink value="/rhq/group/operation/groupOperationSchedules-plain.xhtml"> + <f:param name="groupId" value="#{param.groupId}" /> + <f:param name="category" value="#{param.category}" /> + + <h:outputText value="< Return to Operation Schedules"/> + </h:outputLink> + + </ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationScheduleNew-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationScheduleNew-plain.xhtml new file mode 100644 index 0000000..486d22a --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationScheduleNew-plain.xhtml @@ -0,0 +1,173 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <!-- + ResourceGroup Operation Definitions + --> + + <h:outputText rendered="#{not ResourceGroupUIBean.permissions.control}" value="You do not have permissions to execute operations on this group"/> + + <h:form id="newScheduleForm"> + <input type="hidden" name="groupId" value="#{param.groupId}" /> + <input type="hidden" name="parentGroupId" value="#{param.parentGroupId}" /> + <input type="hidden" name="category" value="#{param.category}" /> + + <c:if test="${not empty param.opId}"> + <input type="hidden" name="opId" value="#{param.opId}" /> + </c:if> + + <rich:panel styleClass="BlockContent"> + <f:facet name="header">Supported Operations</f:facet> + + <rich:dataTable id="resourceGroupOperationDefinitionDataTable" + rows="0" + value="#{ResourceGroupOperationDefinitionUIBean.dataModel}" + var="item" + width="100%" + columnsWidth="35%, 65%" + styleClass="resources-table" + headerClass="tableRowHeader" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <f:facet name="PageControlView"> + <onc:paginationControl id="NONE" /> + </f:facet> + + <rich:column rendered="false"> + <f:facet name="header"> + <rich:spacer /> + </f:facet> + + <onc:select name="selectedItems" value="#{item.id}" type="radio" /> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Name" /> + </f:facet> + + <h:outputLink action="success" rendered="#{ResourceGroupUIBean.permissions.control}"> + <f:param name="opId" value="#{item.id}" /> + <f:param name="groupId" value="#{param.groupId}"/> + <f:param name="parentGroupId" value="#{param.parentGroupId}" /> + <f:param name="category" value="#{param.category}" /> + + <h:outputText value="#{item.displayName} *" rendered="#{(not empty param.opId) and (param.opId == item.id)}"/> + <h:outputText value="#{item.displayName}" rendered="#{(empty param.opId) or (param.opId != item.id)}"/> + </h:outputLink> + + <h:outputText value="#{item.displayName}" rendered="#{not ResourceGroupUIBean.permissions.control}"/> + + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Description" /> + </f:facet> + + <h:outputText value="#{item.description}"/> + </rich:column> + + </rich:dataTable> + + </h:panelGrid> + </rich:panel> + + <rich:panel rendered="#{not empty param.opId and ResourceGroupUIBean.permissions.control}" styleClass="BlockContent"> + <f:facet name="header"> + <h:outputText value="Operation Parameters"/> + </f:facet> + <!-- even when things aren't rendered, they will still be executed? --> + <onc:config configurationDefinition="#{OperationDefinitionParametersUIBean.configurationDefinition}" + configuration="#{OperationDefinitionParametersUIBean.configuration}" + nullConfigurationDefinitionMessage="#{OperationDefinitionParametersUIBean.nullConfigurationDefinitionMessage}" + nullConfigurationMessage="#{OperationDefinitionParametersUIBean.nullConfigurationMessage}" + nullConfigurationStyle="InfoBlock"/> + </rich:panel> + + <rich:panel rendered="#{not empty param.opId and ResourceGroupUIBean.permissions.control}" styleClass="BlockContent"> + <f:facet name="header"> + <h:outputText value="Resource Operation Order"/> + </f:facet> + <h:panelGrid columns="2"> + <h:outputText value="Execute this operation: " /> + <h:selectOneRadio id="executionType" + layout="pageDirection" + value="#{ResourceGroupOperationDefinitionUIBean.resourceExecutionOption}" + onchange="updateDependent(this, 'newScheduleForm:haltOnFailure', '#{ResourceGroupExecutionTypeUIBean.concurrentOption.value}');"> + <f:selectItem value="#{ResourceGroupExecutionTypeUIBean.concurrentOption}" /> + <f:selectItem value="#{ResourceGroupExecutionTypeUIBean.orderedOption}" /> + </h:selectOneRadio> + + <h:outputText value=" " /> + <rich:orderingList id="resourceNameItems" + value="#{ResourceGroupOperationDefinitionUIBean.resourceNameItems}" + var="resourceNameItem" listHeight="150" listWidth="200" + converter="IntegerOptionItemConverter"> + rich:column + <h:outputText value="#{resourceNameItem.displayName}"></h:outputText> + </rich:column> + </rich:orderingList> + </h:panelGrid> + </rich:panel> + + <rich:panel rendered="#{not empty param.opId and ResourceGroupUIBean.permissions.control}" styleClass="BlockContent"> + <f:facet name="header"> + <h:outputText value="Operation Schedule Details"/> + </f:facet> + <!-- bug in rich:panel renders children even if the panel isn't rendered --> + <onc:operationScheduler scheduleDetails="#{ResourceGroupOperationScheduleUIBean.operationDetails}"/> + </rich:panel> + + <rich:panel rendered="#{not empty param.opId and ResourceGroupUIBean.permissions.control}" styleClass="BlockContent"> + <f:facet name="header"> + <h:outputText value="Other Options"/> + </f:facet> + + <!-- Notes are for user use only, displayed back in the History view --> + <!-- The Notes value must fit into the Quartz job_details.description field. Quartz does not protect against SQL errors --> + <h:panelGrid columns="3"> + <h:outputLabel for="timeout" value="Timeout:" /> + <h:inputText id="timeout" value="#{ResourceGroupOperationDefinitionUIBean.timeout}" /> + <h:outputText value="The maximum time this operation is given to finish, in seconds" /> + + <h:outputLabel for="haltOnFailure" value="Halt On Failure:" /> + <h:selectBooleanCheckbox id="haltOnFailure" value="#{ResourceGroupOperationDefinitionUIBean.haltOnFailure}" /> + <h:outputText value="If checked, an operation failure will cause the scheduling of the remaining ordered operations to halt" /> + + <h:outputLabel for="notes" value="Notes:" /> + <h:inputText id="notes" maxlength="120" size="40" value="#{ResourceGroupOperationDefinitionUIBean.description}" /> + <h:outputText value="Optional notes, if the operation is scheduled for execution later" /> + </h:panelGrid> + <hr /> + <h:panelGrid columns="1" styleClass="buttons-table" columnClasses="button-cell" + rendered="#{not empty param.opId}"> + <h:commandButton action="#{ResourceGroupOperationScheduleUIBean.schedule}" + value="SCHEDULE" styleClass="buttonmed" + rendered="#{ResourceGroupUIBean.permissions.control}" /> + </h:panelGrid> + </rich:panel> + <br /><br /><br /><br /> + <br /><br /><br /><br /> + </h:form> + + <script type="text/javascript"> + setInputDisabled(document.getElementById('newScheduleForm:haltOnFailure'), true, true); + clickAlreadySelectedElements(); + </script> + + </ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationSchedules-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationSchedules-plain.xhtml new file mode 100644 index 0000000..fbc7c17 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/groupOperationSchedules-plain.xhtml @@ -0,0 +1,106 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <!-- ResourceGroup Operation Schedules --> + <h:form id="scheduleForm"> + <input type="hidden" name="groupId" value="${param.groupId}"/> + <input type="hidden" name="category" value="#{param.category}" /> + + <!-- Operation Schedule Table --> + <rich:panel styleClass="BlockContent"> + + <ui:param name="resourceGroupOperationScheduleDataModel" value="#{ResourceGroupOperationScheduleUIBean.dataModel}"/> + <rich:dataTable id="resourceGroupOperationScheduleDataTable" + rows="0" + value="#{resourceGroupOperationScheduleDataModel}" + var="item" + width="100%" + columnsWidth="1%, 30%, 39%, 30%" + styleClass="resources-table" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <f:facet name="PageControlView"> + <onc:paginationControl id="NONE" /> + </f:facet> + + <rich:column style="width: 1px;"> + <f:facet name="header"> + <onc:allSelect target="selectedItems" /> + </f:facet> + <onc:select name="selectedItems" value="#{item.jobId}" /> + </rich:column> + + <rich:column rendered="#{param.debug}"> + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Job ID" /> + </f:facet> + <h:commandLink action="#{ResourceGroupOperationScheduleUIBean.selectScheduleToView}"> + <h:outputText value="#{item.jobId}" /> + </h:commandLink> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Name" /> + </f:facet> + + <h:outputLink value="/rhq/group/operation/groupOperationScheduleDetails-plain.xhtml" > + <f:param name="groupId" value="#{param.groupId}" /> + <f:param name="jobId" value="#{item.jobId}" /> + <f:param name="category" value="#{param.category}" /> + + <h:outputText value="#{item.operationDisplayName}"/> + </h:outputLink> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Notes" /> + </f:facet> + <h:outputText value="#{item.description}" /> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="User" /> + </f:facet> + <h:outputText value="#{item.subject.name}"/> + </rich:column> + + <f:facet name="footer"> + rich:columnGroup + <rich:column colspan="4" width="100%"> + <onc:selectCommandButton action="#{ResourceGroupOperationScheduleUIBean.unschedule}" + value="UNSCHEDULE" target="selectedItems" + styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.control}"/> + <onc:selectCommandButton action="#{ResourceGroupOperationScheduleUIBean.executeNow}" + value="EXECUTE NOW" target="selectedItems" + styleClass="on-pager-button buttonsmall" + low="1" high="1" + rendered="#{ResourceGroupUIBean.permissions.control}"/> + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + + </rich:panel> + </h:form> + + </ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/view-results-map-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/view-results-map-plain.xhtml new file mode 100644 index 0000000..001f5bb --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/operation/view-results-map-plain.xhtml @@ -0,0 +1,41 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <p> + Below is the #{param.listName}[#{param.listIndex}] item from the results of the + execution of the #{ResourceGroupOperationHistoryDetailsUIBean.history.operationDefinition.displayName} + operation. Click OK to return to the main Operation History Details page. + </p> + + <h:form id="viewOperationResultsMapForm"> + + <input type="hidden" name="id" value="#{ResourceGroupUIBean.id}"/> + + <onc:config configurationDefinition="#{ResourceGroupOperationHistoryDetailsUIBean.results.configurationDefinition}" + configuration="#{ResourceGroupOperationHistoryDetailsUIBean.results.configuration}" + listName="#{param.listName}" + listIndex="#{param.listIndex}" + readOnly="true"/> + + </h:form> + + <h:panelGrid columns="1" styleClass="buttons-table" columnClasses="button-cell"> + <h:panelGroup layout="block"> + <div title="Return to Previous Page" onclick="history.back()" class="buttonmed">OK</div> + </h:panelGroup> + </h:panelGrid> + + </ui:define> + +</ui:composition> \ No newline at end of file
commit 62ce6dd82fc3dae5ca2f46c631256fe2e81014f7 Author: Joseph Marques joseph@redhat.com Date: Thu Aug 12 02:08:23 2010 -0400
implement "plain" scheme using iframed-facelets for unfinished group > alerts tabs
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 cc5e636..709e304 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 @@ -148,9 +148,6 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView // // operationsTab.updateSubTab("History", OperationHistoryView.getResourceHistoryView(resource)); // - // alertsTab.updateSubTab("History", new ResourceAlertHistoryView(resource.getId())); - // alertsTab.updateSubTab("Definitions", AlertDefinitionsView.getResourceView(resource)); - // // eventsTab.updateSubTab("History", EventHistoryView.createResourceHistoryView(resource.getId())); //new FullHTMLPane("/rhq/common/events/history-plain.xhtml?id=" + resource.getId())); // // contentTab.updateSubTab("Deployed", new FullHTMLPane("/rhq/resource/content/view-plain.xhtml?id=" + resource.getId())); @@ -162,6 +159,11 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView configurationTab.updateSubTab("History", new FullHTMLPane( "/rhq/group/configuration/history-plain.xhtml?groupId=" + groupId));
+ alertsTab.updateSubTab("History", new FullHTMLPane( + "/rhq/group/alert/listGroupAlertHistory-plain.xhtml?groupId=" + groupId)); + alertsTab.updateSubTab("Definitions", new FullHTMLPane( + "/rhq/group/alert/listGroupAlertDefinitions-plain.xhtml?groupId=" + groupId)); + eventsTab.updateSubTab("History", new FullHTMLPane("/rhq/group/events/history-plain.xhtml?groupId=" + groupId));
// topTabSet.setSelectedTab(selectedTab); diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/alert/listGroupAlertDefinitions-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/alert/listGroupAlertDefinitions-plain.xhtml new file mode 100644 index 0000000..7a677a5 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/alert/listGroupAlertDefinitions-plain.xhtml @@ -0,0 +1,126 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <h:form id="alertDefinitionsListForm"> + <input type="hidden" name="groupId" value="${param.groupId}"/> + + <rich:panel styleClass="BlockContent"> + <a4j:keepAlive beanName="ListGroupAlertDefinitionsUIBean"/> + + <ui:param name="alertDefinitionsDataModel" value="#{ListGroupAlertDefinitionsUIBean.dataModel}"/> + <rich:dataTable id="alertDefinitionsDataTable" + rows="#{PageControl.GroupAlertDefinitionsList.pageSize}" + value="#{alertDefinitionsDataModel}" + var="item" + width="100%" + columnsWidth="1%, 25%, 35%, 20%, 19%" + styleClass="resources-table" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + + <f:facet name="PageControlView"> + <onc:paginationControl id="GroupAlertDefinitionsList" /> + </f:facet> + + rich:column + <f:facet name="header"> + <onc:allSelect target="selectedAlertDefinitions" /> + </f:facet> + + <onc:select name="selectedAlertDefinitions" value="#{item.id}" /> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="a.name"> + <h:outputText styleClass="headerText" value="Name" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputLink value="/alerts/Config.do"> + <f:param name="mode" value="viewRoles"/> + <f:param name="groupId" value="#{param.groupId}"/> + <f:param name="ad" value="#{item.id}"/> + <h:outputText value="#{item.name}" /> + </h:outputLink> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="a.description"> + <h:outputText styleClass="headerText" value="Description" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.description}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="a.ctime"> + <h:outputText styleClass="headerText" value="Date Created" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.ctime}"> + <f:converter converterId="UserDateTimeConverter" /> + </h:outputText> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="a.enabled"> + <h:outputText styleClass="headerText" value="Active" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.enabled}"/> + </rich:column> + + <f:facet name="footer"> + rich:columnGroup + <rich:column colspan="5" width="100%"> + <h:commandButton action="#{ListGroupAlertDefinitionsUIBean.createNewAlertDefinition}" + value="NEW DEFINITION" styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.alert}" > + <f:param name="groupId" value="${param.groupId}"/> + <f:param name="mode" value="new"/> + </h:commandButton> + <onc:selectCommandButton action="#{ListGroupAlertDefinitionsUIBean.enableSelectedAlertDefinitions}" + value="ENABLE SELECTED" target="selectedAlertDefinitions" styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.alert}" /> + <onc:selectCommandButton action="#{ListGroupAlertDefinitionsUIBean.disableSelectedAlertDefinitions}" + value="DISABLE SELECTED" target="selectedAlertDefinitions" styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.alert}" /> + <onc:selectCommandButton action="#{ListGroupAlertDefinitionsUIBean.deleteSelectedAlertDefinitions}" + value="DELETE SELECTED" target="selectedAlertDefinitions" styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.alert}" /> + + <ui:param name="paginationDataTableName" value="alertDefinitionsDataTable"/> + <ui:param name="paginationDataModel" value="#{alertDefinitionsDataModel}"/> + <ui:param name="paginationPageControl" value="#{PageControl.GroupAlertDefinitionsList}"/> + <ui:include src="/rhq/resource/include/pagination-plain.xhtml"/> + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + + </rich:panel> + </h:form> + + </ui:define> +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/alert/listGroupAlertHistory-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/alert/listGroupAlertHistory-plain.xhtml new file mode 100644 index 0000000..00aca9b --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/alert/listGroupAlertHistory-plain.xhtml @@ -0,0 +1,177 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <h:form id="alertHistoryForm"> + <input type="hidden" name="groupId" value="${param.groupId}"/> + + <rich:panel styleClass="BlockContent"> + + <h:panelGrid columns="4" cellspacing="3"> + <h:outputLabel for="alertDefinitionFilter" value="Group Alert Definition Filter: " /> + <h:selectOneMenu id="alertDefinitionFilter" value="#{ListGroupAlertHistoryUIBean.alertDefinitionFilter}" + style="width: 300px;"> + <a4j:support event="onchange" + reRender="alertHistoryDataTable, alertHistoryDataTableScroller, dateErrors" + actionListener="#{ListGroupAlertHistoryUIBean.clearDataModel}" /> + + <f:selectItems value="#{ListGroupAlertHistoryUIBean.alertDefinitionSelectItems}"/> + </h:selectOneMenu> + rich:spacer/ + rich:spacer/ + + <h:outputLabel for="alertPriorityFilter" value="Alert Priority Filter: " /> + <h:selectOneMenu id="alertPriorityFilter" value="#{ListGroupAlertHistoryUIBean.alertPriorityFilter}" + style="width: 300px;"> + <a4j:support event="onchange" + reRender="alertHistoryDataTable, alertHistoryDataTableScroller, dateErrors" + actionListener="#{ListGroupAlertHistoryUIBean.clearDataModel}" /> + + <f:selectItems value="#{ListGroupAlertHistoryUIBean.alertPrioritySelectItems}"/> + </h:selectOneMenu> + rich:spacer/ + rich:spacer/ + + <h:outputLabel for="dateFilter" value="Date Filter: " /> + <h:inputText id="dateFilter" value="#{ListGroupAlertHistoryUIBean.dateFilter}" + onkeypress="return ignoreEnterKey(event);" + style="width: 300px;" /> + <a4j:commandButton value="GO" + reRender="alertHistoryDataTable, alertHistoryDataTableScroller, dateErrors" + actionListener="#{ListGroupAlertHistoryUIBean.clearDataModel}" + styleClass="buttonmed"> + <s:defaultAction /> + </a4j:commandButton> + <h:outputText id="dateErrors" value="#{ListGroupAlertHistoryUIBean.dateErrors}" /> + </h:panelGrid> + + <br/> + + <ui:param name="alertHistoryDataModel" value="#{ListGroupAlertHistoryUIBean.dataModel}"/> + <rich:dataTable id="alertHistoryDataTable" + rows="#{PageControl.GroupAlertHistoryList.pageSize}" + value="#{alertHistoryDataModel}" + var="item" + width="100%" + columnsWidth="1%, 20%, 20%, 20%, 30%, 9%" + styleClass="resources-table" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <f:facet name="PageControlView"> + <onc:paginationControl id="GroupAlertHistoryList" /> + </f:facet> + + rich:column + <f:facet name="header"> + <onc:allSelect target="selectedAlerts" /> + </f:facet> + + <onc:select name="selectedAlerts" value="#{item.alert.id}" /> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="a.alertDefinition.priority"> + <h:outputText styleClass="headerText" value="Priority" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:graphicImage value="/images/icons/Flag_blue_16.png" rendered="#{item.alert.alertDefinition.priority.name == 'LOW'}"/> + <h:graphicImage value="/images/icons/Flag_yellow_16.png" rendered="#{item.alert.alertDefinition.priority.name == 'MEDIUM'}"/> + <h:graphicImage value="/images/icons/Flag_red_16.png" rendered="#{item.alert.alertDefinition.priority.name == 'HIGH'}"/> + + <h:outputText value="#{item.alert.alertDefinition.priority.name}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="a.ctime"> + <h:outputText styleClass="headerText" value="Date Created" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputLink value="/alerts/Alerts.do"> + <f:param name="mode" value="viewAlert" /> + <f:param name="id" value="#{item.alert.alertDefinition.resource.id}"/> + <f:param name="a" value="#{item.alert.id}" /> + <h:outputText value="#{item.alert.ctime}"> + <f:converter converterId="UserDateTimeConverter" /> + </h:outputText> + </h:outputLink> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="a.alertDefinition.name"> + <h:outputText styleClass="headerText" value="Alert Definition" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputLink value="/alerts/Config.do"> + <f:param name="mode" value="viewRoles"/> + <f:param name="id" value="#{item.alert.alertDefinition.resource.id}"/> + <f:param name="ad" value="#{item.alert.alertDefinition.id}"/> + <h:outputText value="#{item.alert.alertDefinition.name}" /> + </h:outputLink> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Alert Condition" /> + </f:facet> + <h:outputText value="#{item.conditionText}" /> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Actual Value" /> + </f:facet> + <h:outputText value="#{item.conditionValue}" /> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Recovery Info" /> + </f:facet> + <h:outputText value="#{item.recoveryInfo}" /> + </rich:column> + + <f:facet name="footer"> + rich:columnGroup + <rich:column colspan="7" width="100%"> + <onc:selectCommandButton action="#{ListGroupAlertHistoryUIBean.deleteSelectedAlerts}" + value="DELETE SELECTED" target="selectedAlerts" styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.alert}" /> + <h:commandButton action="#{ListGroupAlertHistoryUIBean.purgeAllAlerts}" + value="PURGE ALL" styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.alert}" /> + + <ui:param name="paginationDataTableName" value="alertHistoryDataTable"/> + <ui:param name="paginationDataModel" value="#{alertHistoryDataModel}"/> + <ui:param name="paginationPageControl" value="#{PageControl.GroupAlertHistoryList}"/> + <ui:include src="/rhq/resource/include/pagination-plain.xhtml"/> + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + + <a4j:keepAlive beanName="ListGroupAlertHistoryUIBean"/> + + </rich:panel> + </h:form> + + </ui:define> +</ui:composition> \ No newline at end of file
commit 79d8e1bb6ca9b8cb725aa2c40566ce1666d1a2a1 Author: Joseph Marques joseph@redhat.com Date: Thu Aug 12 02:07:41 2010 -0400
implement "plain" scheme using iframed-facelets for unfinished group > configuration tabs
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 a1f46fc..cc5e636 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 @@ -148,9 +148,6 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView // // operationsTab.updateSubTab("History", OperationHistoryView.getResourceHistoryView(resource)); // - // configurationTab.updateSubTab("Current", new ResourceConfigurationEditView(resource)); - // configurationTab.updateSubTab("History", ConfigurationHistoryView.getHistoryOf(resource.getId())); - // // alertsTab.updateSubTab("History", new ResourceAlertHistoryView(resource.getId())); // alertsTab.updateSubTab("Definitions", AlertDefinitionsView.getResourceView(resource)); // @@ -160,6 +157,10 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView // contentTab.updateSubTab("New", new FullHTMLPane("/rhq/resource/content/deploy-plain.xhtml?id=" + resource.getId())); // contentTab.updateSubTab("Subscriptions", new FullHTMLPane("/rhq/resource/content/subscription-plain.xhtml?id=" + resource.getId())); // contentTab.updateSubTab("History", new FullHTMLPane("/rhq/resource/content/history-plain.xhtml?id=" + resource.getId())); + configurationTab.updateSubTab("Current", new FullHTMLPane( + "/rhq/group/configuration/viewCurrent-plain.xhtml?groupId=" + groupId)); + configurationTab.updateSubTab("History", new FullHTMLPane( + "/rhq/group/configuration/history-plain.xhtml?groupId=" + groupId));
eventsTab.updateSubTab("History", new FullHTMLPane("/rhq/group/events/history-plain.xhtml?groupId=" + groupId));
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/EditGroupResourceConfigurationUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/EditGroupResourceConfigurationUIBean.java index 1ba9b78..a1c2c45 100644 --- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/EditGroupResourceConfigurationUIBean.java +++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/EditGroupResourceConfigurationUIBean.java @@ -90,7 +90,7 @@ public class EditGroupResourceConfigurationUIBean extends AbstractGroupResourceC "Failed to schedule group Resource Configuration update - cause: " + e); viewId = VIEW_ID; } - this.redirect.setViewId(viewId); + this.redirect.setViewId(getViewId(viewId)); this.redirect.execute(); }
@@ -100,7 +100,7 @@ public class EditGroupResourceConfigurationUIBean extends AbstractGroupResourceC @End public void cancel() { FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "Edit canceled."); - this.redirect.setViewId(ViewGroupResourceConfigurationUIBean.VIEW_ID); + this.redirect.setViewId(getViewId(ViewGroupResourceConfigurationUIBean.VIEW_ID)); this.redirect.execute(); return; } @@ -111,8 +111,17 @@ public class EditGroupResourceConfigurationUIBean extends AbstractGroupResourceC @End public void reset() { FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "All properties reset to original values."); - this.redirect.setViewId(VIEW_ID); + this.redirect.setViewId(getViewId(VIEW_ID)); this.redirect.execute(); return; } + + private String getViewId(String toViewId) { + String currentViewId = FacesContextUtility.getViewId(); + int currentPlainIndex = currentViewId.indexOf("-plain.xhtml"); + if (currentPlainIndex != -1) { + toViewId = toViewId.substring(0, toViewId.length() - 6) + "-plain.xhtml"; + } + return toViewId; + } } diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/ViewGroupResourceConfigurationUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/ViewGroupResourceConfigurationUIBean.java index 4839095..62d17d0 100644 --- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/ViewGroupResourceConfigurationUIBean.java +++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/group/ViewGroupResourceConfigurationUIBean.java @@ -18,15 +18,16 @@ */ package org.rhq.enterprise.gui.configuration.group;
-import org.rhq.enterprise.gui.legacy.ParamConstants; - import org.jboss.seam.ScopeType; -import org.jboss.seam.faces.Redirect; import org.jboss.seam.annotations.Create; -import org.jboss.seam.annotations.Name; -import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.End; import org.jboss.seam.annotations.In; +import org.jboss.seam.annotations.Name; +import org.jboss.seam.annotations.Scope; +import org.jboss.seam.faces.Redirect; + +import org.rhq.core.gui.util.FacesContextUtility; +import org.rhq.enterprise.gui.legacy.ParamConstants;
/** * A POJO Seam component that handles loading Resource configurations across a compatible Group in view-only mode. @@ -53,8 +54,17 @@ public class ViewGroupResourceConfigurationUIBean extends AbstractGroupResourceC @End public void edit() { this.redirect.setParameter(ParamConstants.GROUP_ID_PARAM, getGroup().getId()); - this.redirect.setViewId(EditGroupResourceConfigurationUIBean.VIEW_ID); + this.redirect.setViewId(getViewId(EditGroupResourceConfigurationUIBean.VIEW_ID)); this.redirect.execute(); return; } + + private String getViewId(String toViewId) { + String currentViewId = FacesContextUtility.getViewId(); + int currentPlainIndex = currentViewId.indexOf("-plain.xhtml"); + if (currentPlainIndex != -1) { + toViewId = toViewId.substring(0, toViewId.length() - 6) + "-plain.xhtml"; + } + return toViewId; + } } \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/addSimple-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/addSimple-plain.xhtml new file mode 100644 index 0000000..6fad880 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/addSimple-plain.xhtml @@ -0,0 +1,45 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <p> + Enter a name and a value for the property to be added to the map '#{param.mapName}', + then click OK to return to the main Edit page for the '#{EditGroupResourceConfigurationUIBean.group.name}' Configuration. + </p> + + <h:form id="addNewOpenMapMemberPropertyForm"> + + <input type="hidden" name="groupId" value="#{EditGroupResourceConfigurationUIBean.group.id}"/> + <input type="hidden" name="mapName" value="#{param.mapName}"/> + + <h:panelGrid columns="2" width="400"> + <h:panelGroup> + Name: <h:inputText value="#{GroupResourceConfigurationAddNewOpenMapMemberPropertyUIBean.propertyName}"/> + </h:panelGroup> + <h:panelGroup> + Value: <h:inputText value="#{GroupResourceConfigurationAddNewOpenMapMemberPropertyUIBean.propertyValue}"/> + </h:panelGroup> + </h:panelGrid> + + <h:panelGrid columns="2" styleClass="buttons-table" columnClasses="button-cell"> + <h:commandButton value="OK" action="#{GroupResourceConfigurationAddNewOpenMapMemberPropertyUIBean.addProperty}" + alt="Click to Add Property" styleClass="buttonmed"/> + <h:commandButton value="CANCEL" action="#{GroupResourceConfigurationAddNewOpenMapMemberPropertyUIBean.cancel}" + immediate="true" alt="Click to Cancel" styleClass="buttonmed"/> + </h:panelGrid> + + </h:form> + + </ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/editCurrent-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/editCurrent-plain.xhtml new file mode 100644 index 0000000..cd365bd --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/editCurrent-plain.xhtml @@ -0,0 +1,69 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <h:outputText rendered="#{not ResourceGroupUIBean.permissions.configureRead}" + value="You do not have permissions to view configuration data for this group" /> + + <h:form id="configSetForm" onsubmit="prepareInputsForSubmission(this)" + rendered="#{ResourceGroupUIBean.permissions.configureRead and EditGroupResourceConfigurationUIBean.configurationSet ne null}"> + + <h:outputText rendered="#{not ResourceGroupUIBean.permissions.configureWrite}" + value="You do not have permissions to change the configuration of this group"/> + + <input type="hidden" name="groupId" value="#{param.groupId}"/> + + <h:panelGrid columns="3" styleClass="buttons-table" columnClasses="button-cell" + rendered="${ResourceGroupUIBean.permissions.configureWrite}"> + <h:commandButton type="submit" action="#{EditGroupResourceConfigurationUIBean.updateConfigurations}" + value="SAVE" title="Click to Save Changes" + styleClass="buttonmed"/> + <h:commandButton type="submit" immediate="true" + action="#{EditGroupResourceConfigurationUIBean.reset}" + value="RESET" title="Click to Reset All Properties to Their Original Values" + styleClass="buttonmed"/> + <h:commandButton type="submit" immediate="true" + action="#{EditGroupResourceConfigurationUIBean.cancel}" + value="CANCEL" title="Click to Cancel Edits and Return to View Page" + styleClass="buttonmed"/> + </h:panelGrid> + + <a4j:region selfRendered="false"> + <a4j:outputPanel layout="block" ajaxRendered="true" keepTransient="true"> + <onc:configSet id="rhq_configSet" + configurationSet="#{EditGroupResourceConfigurationUIBean.configurationSet}"/> + </a4j:outputPanel> + </a4j:region> + + <h:panelGrid columns="3" styleClass="buttons-table" columnClasses="button-cell" + rendered="${ResourceGroupUIBean.permissions.configureWrite}"> + <h:commandButton type="submit" action="#{EditGroupResourceConfigurationUIBean.updateConfigurations}" + value="SAVE" title="Click to Save Changes" + styleClass="buttonmed"/> + <h:commandButton type="submit" immediate="true" + action="#{EditGroupResourceConfigurationUIBean.reset}" + value="RESET" title="Click to Reset All Properties to Their Original Values" + styleClass="buttonmed"/> + <h:commandButton type="submit" immediate="true" + action="#{EditGroupResourceConfigurationUIBean.cancel}" + value="CANCEL" title="Click to Cancel Edits and Return to View Page" + styleClass="buttonmed"/> + </h:panelGrid> + + </h:form> + + ui:remove<!--<a4j:log popup="false" level="ALL" style="width: 800px; height: 300px;"/>--></ui:remove> + + </ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/history-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/history-plain.xhtml new file mode 100644 index 0000000..566d95b --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/history-plain.xhtml @@ -0,0 +1,281 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <h:outputText rendered="#{not ResourceGroupUIBean.permissions.configureRead}" + value="You do not have permissions to view configuration data for this group" /> + + <h:form id="historyForm" rendered="#{ResourceGroupUIBean.permissions.configureRead}"> + <input type="hidden" name="groupId" value="#{param.groupId}"/> + <input type="hidden" name="arcuId" value="#{param.arcuId}"/> + <input type="hidden" name="mode" value="#{param.mode}"/> + + rich:panel + <f:facet name="header"> + <h:outputText value="Group Configuration Update History"/> + </f:facet> + + <ui:param name="groupResourceConfigUpdateHistoryDataModel" value="#{GroupResourceConfigurationHistoryUIBean.dataModel}"/> + <rich:dataTable id="groupResourceConfigUpdateHistoryDataTable" + rows="#{PageControl.GroupResourceConfigurationUpdateHistory.pageSize}" + value="#{groupResourceConfigUpdateHistoryDataModel}" + var="item" + width="100%" + columnsWidth="1%, 9%, 25%, 25%, 10%, 10%, 20%" + styleClass="resources-table" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <f:facet name="PageControlView"> + <onc:paginationControl id="GroupResourceConfigurationUpdateHistory" /> + </f:facet> + + rich:column + <f:facet name="header"> + <onc:allSelect target="selectedUpdates" /> + </f:facet> + + <onc:select name="selectedUpdates" value="#{item.id}" /> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="arcu.id"> + <h:outputText styleClass="headerText" value="Version" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.id}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="arcu.createdTime"> + <h:outputText styleClass="headerText" value="Date Created" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.createdTime}"> + <f:converter converterId="UserDateTimeConverter" /> + </h:outputText> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="arcu.modifiedTime"> + <h:outputText styleClass="headerText" value="Last Updated" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.modifiedTime}"> + <f:converter converterId="UserDateTimeConverter" /> + </h:outputText> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="arcu.status"> + <h:outputText styleClass="headerText" value="Status" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.status}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="arcu.subjectName"> + <h:outputText styleClass="headerText" value="User" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.subjectName}" /> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Action" /> + </f:facet> + + <h:outputLink value="/rhq/group/configuration/history-plain.xhtml"> + <f:param name="groupId" value="#{param.groupId}" /> + <f:param name="arcuId" value="#{item.id}" /> + <f:param name="mode" value="group" /> + <h:outputText value="View Group Update" /> + </h:outputLink> + ui:remove + <br /> + <h:outputLink value="/rhq/group/configuration/history-plain.xhtml"> + <f:param name="groupId" value="#{param.groupId}" /> + <f:param name="arcuId" value="#{item.id}" /> + <f:param name="mode" value="details" /> + <h:outputText value="View Member Updates" /> + </h:outputLink> + </ui:remove> + + </rich:column> + + <f:facet name="footer"> + rich:columnGroup + <rich:column colspan="7" width="100%"> + <onc:selectCommandButton action="#{GroupResourceConfigurationHistoryUIBean.deleteSelectedUpdates}" + rendered="${ResourceGroupUIBean.permissions.configureWrite}" + value="DELETE SELECTED" target="selectedUpdates" + styleClass="on-pager-button buttonsmall" /> + + <ui:param name="paginationDataTableName" value="groupResourceConfigUpdateHistoryDataTable"/> + <ui:param name="paginationDataModel" value="#{groupResourceConfigUpdateHistoryDataModel}"/> + <ui:param name="paginationPageControl" value="#{PageControl.GroupResourceConfigurationUpdateHistory}"/> + <ui:include src="/rhq/resource/include/pagination-plain.xhtml"/> + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + + </rich:panel> + </h:form> + + <rich:panel rendered="#{ResourceGroupUIBean.permissions.configureRead and param.mode eq 'group' and not empty param.arcuId}"> + <f:facet name="header"> + <h:outputText value="Group Configuration Update Request"/> + </f:facet> + <h:form id="configSetForm"> + <input type="hidden" name="groupId" value="#{param.groupId}"/> + <input type="hidden" name="arcuId" value="#{param.arcuId}"/> + <input type="hidden" name="mode" value="#{param.mode}"/> + + <a4j:region selfRendered="false"> + <a4j:outputPanel layout="block" ajaxRendered="true" keepTransient="true"> + <onc:configSet id="rhq_configSet" + configurationSet="#{GroupResourceConfigurationHistoryDetailsUIBean.configurationSet}" + readOnly="true"/> + </a4j:outputPanel> + </a4j:region> + </h:form> + </rich:panel> + + <rich:panel rendered="#{ResourceGroupUIBean.permissions.configureRead and param.mode eq 'details' and not empty param.arcuId}"> + <f:facet name="header"> + <h:outputText value="Individual Resource Configuration Updates"/> + </f:facet> + + <h:form id="resourceConfigurationUpdateDetailsForm"> + <input type="hidden" name="groupId" value="#{param.groupId}"/> + <input type="hidden" name="arcuId" value="#{param.arcuId}"/> + <input type="hidden" name="mode" value="#{param.mode}"/> + + <ui:param name="groupResourceConfigurationDetailsDataModel" value="#{GroupResourceConfigurationHistoryDetailsUIBean.dataModel}"/> + <rich:dataTable id="groupResourceConfigurationDetailsDataTable" + rows="#{PageControl.GroupResourceConfigurationUpdateDetails.pageSize}" + value="#{groupResourceConfigurationDetailsDataModel}" + var="item" + width="100%" + columnsWidth="1%, 20%, 20%, 20%, 30%, 9%" + styleClass="resources-table" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <f:facet name="PageControlView"> + <onc:paginationControl id="GroupResourceConfigurationUpdateDetails" /> + </f:facet> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="cu.resource.name"> + <h:outputText styleClass="headerText" value="Resource" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.resourceName}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="cu.status"> + <h:outputText styleClass="headerText" value="Status" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.status}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Details" /> + </f:facet> + + <h:outputText value="#{item.errorMessage}"/> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="cu.createdTime"> + <h:outputText styleClass="headerText" value="Date Created" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputLink value="/rhq/resource/configuration/history-plain.xhtml"> + <f:param name="id" value="#{item.resourceId}" /> + <f:param name="configId" value="#{item.id}" /> + <h:outputText value="#{item.createdTime}"> + <f:converter converterId="UserDateTimeConverter" /> + </h:outputText> + </h:outputLink> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="cu.modifiedTime"> + <h:outputText styleClass="headerText" value="Last Updated" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.modifiedTime}"> + <f:converter converterId="UserDateTimeConverter" /> + </h:outputText> + </rich:column> + + rich:column + <f:facet name="header"> + <onc:sortableColumnHeader sort="cu.subjectName"> + <h:outputText styleClass="headerText" value="User" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.subjectName}" /> + </rich:column> + + <f:facet name="footer"> + rich:columnGroup + <rich:column colspan="6" width="100%"> + <ui:param name="paginationDataTableName" value="groupResourceConfigurationDetailsDataTable"/> + <ui:param name="paginationDataModel" value="#{groupResourceConfigurationDetailsDataModel}"/> + <ui:param name="paginationPageControl" value="#{PageControl.GroupResourceConfigurationUpdateDetails}"/> + <ui:include src="/rhq/resource/include/pagination-plain.xhtml"/> + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + + <a4j:keepAlive beanName="GroupResourceConfigurationHistoryUIBean"/> + <a4j:keepAlive beanName="GroupResourceConfigurationHistoryDetailsUIBean"/> + </h:form> + </rich:panel> + + </ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/viewCurrent-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/viewCurrent-plain.xhtml new file mode 100644 index 0000000..97184d3 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/configuration/viewCurrent-plain.xhtml @@ -0,0 +1,55 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <h:outputText rendered="#{not ResourceGroupUIBean.permissions.configureRead}" + value="You do not have permissions to view configuration data for this group" /> + + <h:form id="configSetForm" rendered="#{ResourceGroupUIBean.permissions.configureRead and ViewGroupResourceConfigurationUIBean.configurationSet ne null}"> + + <input type="hidden" name="groupId" value="#{ViewGroupResourceConfigurationUIBean.group.id}" /> + + <h:outputText rendered="#{not ResourceGroupUIBean.permissions.configureWrite}" + value="You do not have permissions to change the configuration of this group"/> + + <!-- edit button at top of config --> + <h:panelGrid columns="1" styleClass="buttons-table" columnClasses="button-cell"> + <h:commandButton value="EDIT" action="#{ViewGroupResourceConfigurationUIBean.edit}" + title="Edit this Compatible Group Configuration" + rendered="${ResourceGroupUIBean.permissions.configureWrite}" + styleClass="buttonmed"/> + </h:panelGrid> + + <a4j:region selfRendered="false"> + <a4j:outputPanel layout="block" ajaxRendered="true" keepTransient="true"> + <onc:configSet id="rhq_configSet" + configurationSet="#{ViewGroupResourceConfigurationUIBean.configurationSet}" + readOnly="true"/> + </a4j:outputPanel> + </a4j:region> + + <!-- edit button at bottom of config --> + <h:panelGrid columns="1" styleClass="buttons-table" columnClasses="button-cell"> + <h:commandButton value="EDIT" action="#{ViewGroupResourceConfigurationUIBean.edit}" + title="Edit this Compatible Group Configuration" + rendered="${ResourceGroupUIBean.permissions.configureWrite}" + styleClass="buttonmed"/> + </h:panelGrid> + + </h:form> + + ui:remove<!--<a4j:log popup="false" level="ALL" style="width: 800px; height: 300px;"/>--></ui:remove> + + </ui:define> + +</ui:composition> \ No newline at end of file
commit ba1bfcc92fbd25264c50513436dcade710e87e4d Author: Joseph Marques joseph@redhat.com Date: Thu Aug 12 02:05:22 2010 -0400
reformat, cosmetic
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 3363ea8..a1f46fc 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 @@ -134,8 +134,6 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView int groupId = this.groupComposite.getResourceGroup().getId();
monitoringTab.updateSubTab("Graphs", new FullHTMLPane("/rhq/group/monitor/graphs-plain.xhtml?groupId=" - inventoryTab.updateSubTab("Overview", new OverviewView(this.groupComposite)); - inventoryTab.updateSubTab("Members", ResourceSearchView.getMembersOf(this.groupComposite.getResourceGroup().getId())); + groupId)); monitoringTab.updateSubTab("Tables", new FullHTMLPane("/rhq/group/monitor/tables-plain.xhtml?groupId=" + groupId)); @@ -143,6 +141,9 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView + groupId)); monitoringTab.updateSubTab("Call Time", new FullHTMLPane("/rhq/group/monitor/response-plain.xhtml?groupId=" + groupId)); + + inventoryTab.updateSubTab("Overview", new OverviewView(this.groupComposite)); + inventoryTab.updateSubTab("Members", ResourceSearchView.getMembersOf(groupId)); // inventoryTab.updateSubTab("Connection Settings", new GroupPluginConfigurationEditView(this.group.getId(), this.group.getResourceType().getId(), ConfigurationEditor.ConfigType.plugin)); // // operationsTab.updateSubTab("History", OperationHistoryView.getResourceHistoryView(resource));
commit 11ebce8b1b6188a2550f8b210d911ea225a355e0 Author: Joseph Marques joseph@redhat.com Date: Thu Aug 12 02:04:44 2010 -0400
implement "plain" scheme using iframed-facelets for unfinished group > events tabs
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 c2a4f35..3363ea8 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 @@ -160,6 +160,8 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView // contentTab.updateSubTab("Subscriptions", new FullHTMLPane("/rhq/resource/content/subscription-plain.xhtml?id=" + resource.getId())); // contentTab.updateSubTab("History", new FullHTMLPane("/rhq/resource/content/history-plain.xhtml?id=" + resource.getId()));
+ eventsTab.updateSubTab("History", new FullHTMLPane("/rhq/group/events/history-plain.xhtml?groupId=" + groupId)); + // topTabSet.setSelectedTab(selectedTab);
updateTabStatus(); diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/events/history-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/events/history-plain.xhtml new file mode 100644 index 0000000..00547cb --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/events/history-plain.xhtml @@ -0,0 +1,19 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <ui:include src="/rhq/common/events/history-plain.xhtml"/> + + </ui:define> + +</ui:composition> \ No newline at end of file
commit 3cc66b4df2bdfc4252f5e5844412458f3cca4f7d Author: Joseph Marques joseph@redhat.com Date: Thu Aug 12 02:04:13 2010 -0400
implement "plain" scheme using iframed-facelets for unfinished group > monitor tabs
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 c7fbb97..c2a4f35 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 @@ -36,6 +36,7 @@ import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite; 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.FullHTMLPane; 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.tab.TwoLevelTabSelectedHandler; @@ -130,16 +131,18 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView // FullHTMLPane timelinePane = new FullHTMLPane("/rhq/resource/summary/timeline-plain.xhtml?id=" + resource.getId()); // summaryTab.updateSubTab("Overview", new ResourceOverviewView(resource)); // summaryTab.updateSubTab("Timeline", timelinePane); + int groupId = this.groupComposite.getResourceGroup().getId();
- // monitoringTab.updateSubTab("Graphs", new GraphListView(resource)); // new FullHTMLPane("/rhq/common/monitor/graphs.xhtml?id=" + resource.getId())); - // monitoringTab.updateSubTab("Tables", new FullHTMLPane("/rhq/common/monitor/tables-plain.xhtml?id=" + resource.getId())); - // monitoringTab.updateSubTab("Traits", new FullHTMLPane("/rhq/resource/monitor/traits-plain.xhtml?id=" + resource.getId())); - // monitoringTab.updateSubTab("Availability", new FullHTMLPane("/rhq/resource/monitor/availabilityHistory-plain.xhtml?id=" + resource.getId())); - // monitoringTab.updateSubTab("Schedules", new FullHTMLPane("/rhq/resource/monitor/schedules-plain.xhtml?id=" + resource.getId())); - // monitoringTab.updateSubTab("Call Time", new CallTimeView(resource)); - // + monitoringTab.updateSubTab("Graphs", new FullHTMLPane("/rhq/group/monitor/graphs-plain.xhtml?groupId=" inventoryTab.updateSubTab("Overview", new OverviewView(this.groupComposite)); inventoryTab.updateSubTab("Members", ResourceSearchView.getMembersOf(this.groupComposite.getResourceGroup().getId())); + + groupId)); + monitoringTab.updateSubTab("Tables", new FullHTMLPane("/rhq/group/monitor/tables-plain.xhtml?groupId=" + + groupId)); + monitoringTab.updateSubTab("Schedules", new FullHTMLPane("/rhq/group/monitor/schedules-plain.xhtml?groupId=" + + groupId)); + monitoringTab.updateSubTab("Call Time", new FullHTMLPane("/rhq/group/monitor/response-plain.xhtml?groupId=" + + groupId)); // inventoryTab.updateSubTab("Connection Settings", new GroupPluginConfigurationEditView(this.group.getId(), this.group.getResourceType().getId(), ConfigurationEditor.ConfigType.plugin)); // // operationsTab.updateSubTab("History", OperationHistoryView.getResourceHistoryView(resource)); @@ -235,6 +238,8 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView topTabSet.disableTab(eventsTab); }
+ // only enable "Call Time" sub-tab for those that implement it + monitoringTab.setSubTabEnabled("Call Time", typeFacets.contains(ResourceTypeFacet.CALL_TIME)); }
public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) { diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/graphs.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/graphs.xhtml index 89474e1..647d131 100644 --- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/graphs.xhtml +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/graphs.xhtml @@ -1,20 +1,14 @@ -<?xml version="1.0"?> - -<!DOCTYPE html - PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - -<html xmlns="http://www.w3.org/1999/xhtml" +<ui:composition + xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jstl/core" - xmlns:rich="http://richfaces.ajax4jsf.org/rich" - xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" xmlns:onc="http://jboss.org/on/component" - xmlns:onf="http://jboss.org/on/function%22%3E - -ui:composition + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E
<table border="0" cellpadding="0" cellspacing="0" width="100%"> <!-- chart actions --> @@ -49,8 +43,8 @@ <!-- spacer for date/time overlay, so it doesn't overlap metric display range --> <tr class="BlockContent"> <td> - <br /> - <br /> + <br /> + <br /> </td> </tr>
@@ -126,6 +120,4 @@ addWindowOnResizeEvent(maxIndicatorDivHeight); </script>
-</ui:composition> - -</html> +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/graphs-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/graphs-plain.xhtml new file mode 100644 index 0000000..14f6b68 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/graphs-plain.xhtml @@ -0,0 +1,19 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <ui:include src="/rhq/common/monitor/graphs.xhtml" /> + + </ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/response-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/response-plain.xhtml new file mode 100644 index 0000000..75a22f5 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/response-plain.xhtml @@ -0,0 +1,15 @@ +<ui:composition + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:include src="/rhq/common/monitor/response-plain.xhtml" /> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/schedules-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/schedules-plain.xhtml new file mode 100644 index 0000000..0641783 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/schedules-plain.xhtml @@ -0,0 +1,153 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <h:outputText rendered="#{not ResourceGroupUIBean.permissions.measure}" value="You don't have the measure permission for this group and therefore can not change metric schedules"/> + + <h:form id="resourceGroupSchedulesForm"> + <!-- hack to override the default button on the page, make this button pseudo-first in the form, + but take it out of the document flow and position it off the screen --> + <div style="position:absolute; top:-100px; "> + <onc:selectCommandButton id="enableAndSetSelectedSchedules" + name="enableAndSetSelectedSchedules" + action="#{ListResourceGroupMeasurementScheduleUIBean.enableAndSetSelected}" + value="SET" target="selectedResourceGroupSchedules" + styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.measure}" /> + </div> + <input type="hidden" name="groupId" value="${param.groupId}"/> + + <rich:panel styleClass="BlockContent"> + <f:facet name="header"> + <h:outputText value="Configure Metric Collection Schedules"/> + </f:facet> + + <ui:param name="resourceGroupSchedulesDataModel" value="#{ListResourceGroupMeasurementScheduleUIBean.dataModel}"/> + <rich:dataTable id="resourceGroupSchedulesDataTable" + rows="#{PageControl.ResourceGroupMeasurementScheduleList.pageSize}" + value="#{resourceGroupSchedulesDataModel}" + var="item" + width="100%" + columnsWidth="1%, 20%, 30%, 20%, 9%, 20%" + styleClass="resources-table" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <f:facet name="PageControlView"> + <onc:paginationControl id="ResourceGroupMeasurementScheduleList" /> + </f:facet> + + <rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}"> + <f:facet name="header"> + <onc:allSelect target="selectedResourceGroupSchedules" /> + </f:facet> + + <onc:select name="selectedResourceGroupSchedules" value="#{item.measurementDefinition.id}" /> + </rich:column> + + <rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}"> + <f:facet name="header"> + <onc:sortableColumnHeader sort="definition.displayName"> + <h:outputText styleClass="headerText" value="Metric" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.measurementDefinition.displayName}"/> + </rich:column> + + <rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}"> + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Description" /> + </f:facet> + + <h:outputText value="#{item.measurementDefinition.description}"/> + </rich:column> + + <rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}"> + <f:facet name="header"> + <onc:sortableColumnHeader sort="definition.dataType"> + <h:outputText styleClass="headerText" value="Type" /> + </onc:sortableColumnHeader> + </f:facet> + + <h:outputText value="#{item.measurementDefinition.dataType}"/> + </rich:column> + + <rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}"> + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Enabled" /> + </f:facet> + <h:outputText value="#{(empty item.collectionEnabled) ? 'SOME' : (item.collectionEnabled ? 'Yes' : 'No')}" /> + </rich:column> + + <rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}"> + <f:facet name="header"> + <h:outputText styleClass="headerText" value="Collection Interval" /> + </f:facet> + + <h:outputText value="#{item.collectionInterval}" rendered="#{item.collectionInterval ne 0}"> + <f:converter converterId="DurationConverter" /> + </h:outputText> + <h:outputText value="DIFFERENT" rendered="#{item.collectionInterval eq 0}" /> + </rich:column> + + <f:facet name="footer" rendered="false"> + rich:columnGroup + <rich:column colspan="6"> + <h:panelGrid columns="5" width="100%" rendered="#{ResourceGroupUIBean.permissions.measure}"> + <onc:selectCommandButton id="enableSelectedSchedules" + name="enableSelectedSchedules" + action="#{ListResourceGroupMeasurementScheduleUIBean.enableSelected}" + value="ENABLE" target="selectedResourceGroupSchedules" + styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.measure}" /> + + + <onc:selectCommandButton id="disableSelectedSchedules" + name="disableSelectedSchedules" + action="#{ListResourceGroupMeasurementScheduleUIBean.disableSelected}" + value="DISABLE" target="selectedResourceGroupSchedules" + styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.measure}" /> + + <h:panelGrid columns="3"> + <h:outputText value="Collection Interval: "/> + <onc:duration binding="#{ListResourceGroupMeasurementScheduleUIBean.duration}" + optionList="s,m,h"/> + <onc:selectCommandButton id="enableAndSetSelectedSchedules" + name="enableAndSetSelectedSchedules" + action="#{ListResourceGroupMeasurementScheduleUIBean.enableAndSetSelected}" + value="SET" target="selectedResourceGroupSchedules" + styleClass="on-pager-button buttonsmall" + rendered="#{ResourceGroupUIBean.permissions.measure}"/> + </h:panelGrid> + rich:spacer/ + <ui:param name="paginationDataTableName" value="resourceGroupSchedulesDataTable"/> + <ui:param name="paginationDataModel" value="#{resourceGroupSchedulesDataModel}"/> + <ui:param name="paginationPageControl" + value="#{PageControl.ResourceGroupMeasurementScheduleList}"/> + <ui:include src="/rhq/resource/include/pagination-plain.xhtml"/> + </h:panelGrid> + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + + </rich:panel> + </h:form> + +</ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/tables-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/tables-plain.xhtml new file mode 100644 index 0000000..a58529d --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/tables-plain.xhtml @@ -0,0 +1,128 @@ +<ui:composition template="/rhq/group/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich%22%3E + + <ui:define name="content"> + + <ui:param name="resourceGroupHealthSummaryDataModel" + value="#{ResourceGroupMetricsTableUIBean.dataModel}" /> + + <ui:include src="/rhq/common/monitor/tables.xhtml" /> + + <rich:panel styleClass="BlockContent"> + + <f:facet name="header" styleClass="BlockTitle"> + <a name="Group member Health" /> + Group Member Health + </f:facet> + + <h:form id="groupHealthSummaryForm"> + + <!-- On submit make sure these are provided for the context of any new instance of the UI beans --> + <input type="hidden" name="groupId" + value="#{ResourceGroupUIBean.groupId}" /> + + <a4j:keepAlive beanName="ResourceGroupMetricsTableUIBean"/> + + <rich:dataTable id="resourceGroupHealthSummaryDataTable" + rows="#{PageControl.ResourceGroupHealthSummary.pageSize}" + value="#{resourceGroupHealthSummaryDataModel}" + var="healthSummary" + columnsWidth="1%" + width="100%" + styleClass="resources-table" + footerClass="on-pager-footer" + onRowMouseOver="this.style.backgroundColor='#E7E7E7'" + onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"> + + <rich:column width="1%"> + <f:facet name="header"> + <onc:allSelect target="selectedResources" /> + </f:facet> + + <onc:select name="selectedResources" + value="#{healthSummary.id}" /> + </rich:column> + + <rich:column> + <f:facet name="header"> + <h:outputText value="Resource Name" /> + </f:facet> + + <h:outputLink + value="#{onf:getDefaultResourceTabURL()}"> + <f:param name="id" value="#{healthSummary.id}" /> + <h:outputText value="#{healthSummary.name}" /> + </h:outputLink> + </rich:column> + + <rich:column> + <f:facet name="header"> + <h:outputText value="Alerts" /> + </f:facet> + + <h:outputLink + value="/rhq/resource/alert/listAlertHistory-plain.xhtml"> + <f:param name="id" value="#{healthSummary.id}"/> + <f:param name="mode" value="list"/> + <h:outputText value="#{healthSummary.alerts}" /> + </h:outputLink> + </rich:column> + + <rich:column> + <f:facet name="header"> + <h:outputText value="Availability" /> + </f:facet> + + <h:graphicImage + value="/images/icons/availability_green_16.png" alt="Up" + title="Up" + rendered="#{healthSummary.availabilityType == 'UP'}" /> + <h:graphicImage value="/images/icons/availability_red_16.png" + alt="Down" title="Down" + rendered="#{healthSummary.availabilityType == 'DOWN'}" /> + <h:graphicImage + value="/images/icons/availability_grey_16.png" + alt="Unknown" title="Unknown" + rendered="#{healthSummary.availabilityType == null}" /> + </rich:column> + + <f:facet name="footer"> + <rich:columnGroup> + <rich:column colspan="4" width="100%"> + + <onc:selectCommandButton + action="#{ResourceGroupMetricsCompareUIBean.compareSelected}" + value="COMPARE METRICS" + target="selectedResources" low="2" + styleClass="on-pager-button buttonsmall" /> + + <ui:param name="paginationDataTableName" + value="resourceGroupHealthSummaryDataTable" /> + <ui:param name="paginationDataModel" + value="#{resourceGroupHealthSummaryDataModel}" /> + <ui:param name="paginationPageControl" + value="#{PageControl.ResourceGroupHealthSummary}" /> + <ui:include + src="/rhq/resource/include/pagination-plain.xhtml" /> + + </rich:column> + </rich:columnGroup> + </f:facet> + + </rich:dataTable> + </h:form> + + </rich:panel> + + </ui:define> + +</ui:composition> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/monitor/tables-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/monitor/tables-plain.xhtml new file mode 100644 index 0000000..2b4b0c1 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/monitor/tables-plain.xhtml @@ -0,0 +1,19 @@ +<ui:composition template="/rhq/resource/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich"> + + <ui:define name="content"> + + <ui:include src="/rhq/common/monitor/tables.xhtml"/> + + </ui:define> + +</ui:composition> \ No newline at end of file
commit 242e1bbd40af27e6b06027da95b0cf5ee4e2024c Author: Joseph Marques <joseph@redhat.com> Date: Thu Aug 12 02:02:10 2010 -0400
move the measurement-based navigation rule to the appropriate *-navigiation.xml file
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/inventory-navigation.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/inventory-navigation.xml index 9620666..976dd89 100644 --- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/inventory-navigation.xml +++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/inventory-navigation.xml @@ -109,19 +109,4 @@
</navigation-rule>
- <navigation-rule> - - <from-view-id>/rhq/group/monitor/tables.xhtml</from-view-id> - - <!-- === compareResourcesGroupMetrics (struts) ========================= --> - - <navigation-case> - <from-action>#{ResourceGroupMetricsCompareUIBean.compareSelected}</from-action> - <from-outcome>compareResourceGroupMetrics</from-outcome> - <to-view-id>/resource/common/monitor/Visibility.do?mode=compareMetrics&category=COMPATIBLE&groupId=#{param.groupId}#{ResourceGroupMetricsCompareUIBean.selected}</to-view-id> - <redirect /> - </navigation-case> - - </navigation-rule> - </faces-config> diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/measurement-navigation.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/measurement-navigation.xml index d7ef174..ee342f0 100644 --- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/measurement-navigation.xml +++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/measurement-navigation.xml @@ -70,4 +70,19 @@
</navigation-rule>
+ <navigation-rule> + + <from-view-id>/rhq/group/monitor/tables.xhtml</from-view-id> + + <!-- === compareResourcesGroupMetrics (struts) ========================= --> + + <navigation-case> + <from-action>#{ResourceGroupMetricsCompareUIBean.compareSelected}</from-action> + <from-outcome>compareResourceGroupMetrics</from-outcome> + <to-view-id>/resource/common/monitor/Visibility.do?mode=compareMetrics&category=COMPATIBLE&groupId=#{param.groupId}#{ResourceGroupMetricsCompareUIBean.selected}</to-view-id> + <redirect /> + </navigation-case> + + </navigation-rule> + </faces-config> \ No newline at end of file
commit ede4e8b5e26a385afe77864f2d207cfb602d4df5 Author: Joseph Marques <joseph@redhat.com> Date: Thu Aug 12 02:01:35 2010 -0400
prepare "plain" navigation scheme for iframed-facelets for groups
* copy/paste entire XXX-navigation.xml file to XXX-plain-navigation.xml * search/replace *.xhtml with *-plain.xhtml inside each * do this for the follow group subsystems: ** alerts, configuration, events, measurement, operations
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/alert-plain-navigation.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/alert-plain-navigation.xml new file mode 100644 index 0000000..854b6a6 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/alert-plain-navigation.xml @@ -0,0 +1,60 @@ +<?xml version="1.0"?> + +<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> + + <!-- Group Alert Definition List --> + <navigation-rule> + <from-view-id>/rhq/group/alert/listGroupAlertDefinitions-plain.xhtml</from-view-id> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go here --> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/alert/listGroupAlertDefinitions-plain.xhtml?groupId=#{param.groupId}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <from-outcome>createNewAlertDefinition</from-outcome> + <to-view-id>/alerts/Config.do?groupId=#{param.groupId}&mode=new</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- sorting rule --> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/alert/listGroupAlertDefinitions-plain.xhtml?groupId=#{param.groupId}</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + <!-- Alert History List --> + <navigation-rule> + <from-view-id>/rhq/group/alert/listGroupAlertHistory-plain.xhtml</from-view-id> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go here --> + <from-outcome>dateFilter</from-outcome> + <to-view-id>/rhq/group/alert/listGroupAlertHistory-plain.xhtml?groupId=#{param.groupId}&date=#{param.date}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go here --> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/alert/listGroupAlertHistory-plain.xhtml?groupId=#{param.groupId}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- sorting rule --> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/alert/listGroupAlertHistory-plain.xhtml?groupId=#{param.groupId}</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + +</faces-config> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/configuration-plain-navigation.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/configuration-plain-navigation.xml new file mode 100644 index 0000000..e89ccd6 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/configuration-plain-navigation.xml @@ -0,0 +1,45 @@ +<?xml version="1.0"?> + +<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> + + <navigation-rule> + <from-view-id>/rhq/group/configuration/editCurrent-plain.xhtml</from-view-id> + + <navigation-case> + <from-action>#{ConfigHelperUIBean.addNewOpenMapMemberProperty}</from-action> + <to-view-id>/rhq/group/configuration/addSimple-plain.xhtml</to-view-id> + </navigation-case> + </navigation-rule> + + <navigation-rule> + <from-view-id>/rhq/group/configuration/addSimple-plain.xhtml</from-view-id> + + <navigation-case> + <to-view-id>/rhq/group/configuration/editCurrent-plain.xhtml?refresh=rhq_prop</to-view-id> + </navigation-case> + </navigation-rule> + + <navigation-rule> + + <from-view-id>/rhq/group/configuration/history-plain.xhtml</from-view-id> + + <navigation-case> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/configuration/history-plain.xhtml?groupId=#{param.groupId}&mode=#{param.mode}&arcuId=#{param.arcuId}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/configuration/history-plain.xhtml?groupId=#{param.groupId}&mode=#{param.mode}&arcuId=#{param.arcuId}</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + + +</faces-config> + \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/events-plain-navigation.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/events-plain-navigation.xml new file mode 100644 index 0000000..447874c --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/events-plain-navigation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> + +<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> + + <navigation-rule> + + <from-view-id>/rhq/group/events/history-plain.xhtml</from-view-id> + + <navigation-case> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/events/history-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/events/history-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + +</faces-config> + \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/measurement-plain-navigation.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/measurement-plain-navigation.xml new file mode 100644 index 0000000..d2a81e0 --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/measurement-plain-navigation.xml @@ -0,0 +1,88 @@ +<?xml version="1.0"?> + +<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> + + <!-- ResourceGroup Measurement Schedules --> + <navigation-rule> + <from-view-id>/rhq/group/monitor/schedules-plain.xhtml</from-view-id> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go here --> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/monitor/schedules-plain.xhtml?groupId=#{param.groupId}&category=COMPATIBLE</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- sorting rule --> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/monitor/schedules-plain.xhtml?groupId=#{param.groupId}&category=COMPATIBLE</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + <!-- changing metric display range on Monitor > Graphs --> + <navigation-rule> + <from-view-id>/rhq/group/monitor/graphs-plain.xhtml</from-view-id> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go here --> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/monitor/graphs-plain.xhtml?groupId=#{param.groupId}&category=COMPATIBLE</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + <!-- changing metric display range on Monitor > Tables --> + <navigation-rule> + <from-view-id>/rhq/group/monitor/tables-plain.xhtml</from-view-id> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go here --> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/monitor/tables-plain.xhtml?groupId=#{param.groupId}&category=COMPATIBLE</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + <!-- changing metric display range on Monitor > Response --> + <navigation-rule> + <from-view-id>/rhq/group/monitor/response-plain.xhtml</from-view-id> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go here --> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/monitor/response-plain.xhtml?groupId=#{param.groupId}&category=COMPATIBLE</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- sorting rule --> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/monitor/response-plain.xhtml?groupId=#{param.groupId}&category=COMPATIBLE</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + <navigation-rule> + + <from-view-id>/rhq/group/monitor/tables-plain.xhtml</from-view-id> + + <!-- === compareResourcesGroupMetrics (struts) ========================= --> + + <navigation-case> + <from-action>#{ResourceGroupMetricsCompareUIBean.compareSelected}</from-action> + <from-outcome>compareResourceGroupMetrics</from-outcome> + <to-view-id>/resource/common/monitor/Visibility.do?mode=compareMetrics&category=COMPATIBLE&groupId=#{param.groupId}#{ResourceGroupMetricsCompareUIBean.selected}</to-view-id> + <redirect /> + </navigation-case> + + </navigation-rule> + +</faces-config> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/operation-plain-navigation.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/operation-plain-navigation.xml new file mode 100644 index 0000000..a60e56a --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-resource-group/operation-plain-navigation.xml @@ -0,0 +1,119 @@ +<?xml version="1.0"?> + +<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> + + <!-- New Resource Group Operation Schedule --> + <navigation-rule> + <from-view-id>/rhq/group/operation/groupOperationScheduleNew-plain.xhtml</from-view-id> + + <navigation-case> + <!-- schedule an operation for deferred execution --> + <from-outcome>viewOperationSchedules</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationSchedules-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- schedule an operation for immediate execution --> + <from-outcome>viewOperationHistory</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationHistory-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go back here --> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationScheduleNew-plain.xhtml?groupId=#{param.groupId}&opId=#{param.opId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- sorting rule --> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationScheduleNew-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + <!-- Resource Group Operation Schedules --> + <navigation-rule> + <from-view-id>/rhq/group/operation/groupOperationSchedules-plain.xhtml</from-view-id> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go here --> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationSchedules-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- sorting rule --> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationSchedules-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- schedule an operation for immediate execution --> + <from-outcome>viewOperationHistory</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationHistory-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + <navigation-rule> + + <from-view-id>/rhq/group/operation/groupOperationScheduleDetails-plain.xhtml</from-view-id> + + <navigation-case> + <!-- schedule an operation for immediate execution --> + <from-outcome>viewOperationHistory</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationHistory-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + <!-- Resource Group Operation History --> + <navigation-rule> + <from-view-id>/rhq/group/operation/groupOperationHistory-plain.xhtml</from-view-id> + + <navigation-case> + <!-- catch all navigation-case: if any actions return 'success', go here --> + <from-outcome>success</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationHistory-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + <navigation-case> + <!-- sorting rule --> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationHistory-plain.xhtml?groupId=#{param.groupId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + + <navigation-rule> + + <from-view-id>/rhq/group/operation/groupOperationHistoryDetails-plain.xhtml</from-view-id> + + <navigation-case> + <from-action>#{ConfigHelperUIBean.accessMap}</from-action> + <to-view-id>/rhq/group/operation/view-results-map-plain.xhtml</to-view-id> + </navigation-case> + + <navigation-case> + <!-- sorting rule --> + <from-outcome>sort</from-outcome> + <to-view-id>/rhq/group/operation/groupOperationHistoryDetails-plain.xhtml?groupId=#{param.groupId}&opId=#{param.opId}&category=#{param.category}</to-view-id> + <redirect/> + </navigation-case> + + </navigation-rule> + +</faces-config> \ No newline at end of file diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/web.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/web.xml index 03f80f0..1bcfe79 100644 --- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/web.xml +++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/web.xml @@ -177,6 +177,12 @@ /WEB-INF/jsf-navigation-resource-group/operation-navigation.xml, /WEB-INF/jsf-navigation-resource-group/measurement-navigation.xml,
+ /WEB-INF/jsf-navigation-resource-group/alert-plain-navigation.xml, + /WEB-INF/jsf-navigation-resource-group/configuration-plain-navigation.xml, + /WEB-INF/jsf-navigation-resource-group/events-plain-navigation.xml, + /WEB-INF/jsf-navigation-resource-group/operation-plain-navigation.xml, + /WEB-INF/jsf-navigation-resource-group/measurement-plain-navigation.xml, + /WEB-INF/jsf-navigation-auto-group/events-navigation.xml, /WEB-INF/jsf-navigation-auto-group/measurement-navigation.xml,
commit 67479a29abb05104a075a8c5e6a4be1aea9135c6 Author: Joseph Marques <joseph@redhat.com> Date: Thu Aug 12 02:00:07 2010 -0400
extend the "plain" layout scheme for iframed-facelets for groups
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/main-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/main-plain.xhtml new file mode 100644 index 0000000..5faaa7c --- /dev/null +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/main-plain.xhtml @@ -0,0 +1,64 @@ +<ui:composition template="/rhq/entity/layout/main-plain.xhtml" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:onc="http://jboss.org/on/component" + xmlns:onf="http://jboss.org/on/function" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" + xmlns:rich="http://richfaces.ajax4jsf.org/rich"> + + <ui:define name="content"> + <h1>Default Group Content</h1> + </ui:define> + + <ui:remove> + +<!-- + <f:param name="groupId" value="#{param.groupId}"/> + <f:param name="parentGroupId" value="#{param.parentGroupId}"/> + <f:param name="category" value="#{param.category}"/> + + <onc:tab name="Monitor" image="/images/icons/Monitor_grey_16.png" rendered="#{ResourceGroupUIBean.compatible}"> + <onc:subtab name="Graphs" url="/rhq/group/monitor/graphs.xhtml"/> + <onc:subtab name="Tables" url="/rhq/group/monitor/tables.xhtml"/> + <onc:subtab name="Schedules" url="/rhq/group/monitor/schedules.xhtml"/> + <c:if test="#{GlobalPermissionsUIBean.experimental}"> + <onc:subtab name="Response" url="/rhq/group/monitor/response.xhtml"/> + </c:if> + </onc:tab> + + <onc:tab name="Inventory" image="/images/icons/Inventory_grey_16.png"> + <onc:subtab name="Overview" url="/rhq/group/inventory/view.xhtml" /> + <c:if test="#{ResourceGroupUIBean.compatible and ResourceGroupUIBean.facets.pluginConfiguration}"> + <onc:subtab name="Connection" url="/rhq/group/inventory/view-connection.xhtml" /> + </c:if> + </onc:tab> + + <onc:tab name="Alert" image="/images/icons/Alert_grey_16.png" + rendered="#{monitorEnabled and ResourceGroupUIBean.compatible}"> + <onc:subtab name="Definitions" url="/rhq/group/alert/listGroupAlertDefinitions.xhtml" /> + <onc:subtab name="History" url="/rhq/group/alert/listGroupAlertHistory.xhtml" /> + </onc:tab> + + <onc:tab name="Configuration" displayName="Configure" image="/images/icons/Configure_grey_16.png" + rendered="#{ResourceGroupUIBean.compatible and ResourceGroupUIBean.facets.configuration}"> + <onc:subtab name="Current" url="/rhq/group/configuration/viewCurrent.xhtml" /> + <onc:subtab name="History" url="/rhq/group/configuration/history.xhtml" /> + </onc:tab> + + <onc:tab name="Operations" image="/images/icons/Operation_grey_16.png" rendered="#{ResourceGroupUIBean.compatible and ResourceGroupUIBean.facets.operation}"> + <onc:subtab name="New" url="/rhq/group/operation/groupOperationScheduleNew.xhtml"/> + <onc:subtab name="Schedules" url="/rhq/group/operation/groupOperationSchedules.xhtml"/> + <onc:subtab name="History" url="/rhq/group/operation/groupOperationHistory.xhtml"/> + </onc:tab> + + <onc:tab name="Events" image="/images/icons/Events_grey_16.png" rendered="#{ResourceGroupUIBean.compatible and ResourceGroupUIBean.facets.event}"> + <onc:subtab name="History" url="/rhq/group/events/history.xhtml"/> + </onc:tab> + --> + </ui:remove> + +</ui:composition> \ No newline at end of file
commit 84c915b2f0955e7a7693c0c8f5676b0cef53419d Author: Joseph Marques <joseph@redhat.com> Date: Thu Aug 12 01:58:45 2010 -0400
fix group-wise sub-tabs, we only support a subset of resource-wise sub-tabs
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 23da6c5..c7fbb97 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 @@ -89,7 +89,7 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView summaryTab.registerSubTabs("Overview", "Timeline");
monitoringTab = new TwoLevelTab("Monitoring", "/images/icons/Monitor_grey_16.png"); - monitoringTab.registerSubTabs("Graphs", "Tables", "Traits", "Availability", "Schedules", "Call Time"); + monitoringTab.registerSubTabs("Graphs", "Tables", "Schedules", "Call Time");
inventoryTab = new TwoLevelTab("Inventory", "/images/icons/Inventory_grey_16.png"); inventoryTab.registerSubTabs("Overview", "Members", "Connection Settings");
commit 79ffb74e96fafa82561a329341487bf149bb8c15 Author: Joseph Marques <joseph@redhat.com> Date: Thu Aug 12 01:57:38 2010 -0400
reformat, cosmetic
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 144442b..23da6c5 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 @@ -69,7 +69,6 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView
private ResourceGroupTitleBar titleBar;
- @Override protected void onDraw() { super.onDraw(); @@ -120,7 +119,6 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView // CoreGUI.addBreadCrumb(getPlace()); }
- public void onGroupSelected(ResourceGroupComposite groupComposite) {
this.groupComposite = groupComposite; @@ -181,8 +179,8 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView new ResourceTypeRepository.TypeLoadedCallback() { public void onTypesLoaded(ResourceType type) { group.setResourceType(type); - GWTServiceLookup.getAuthorizationService().getImplicitGroupPermissions( - group.getId(), new AsyncCallback<Set<Permission>>() { + GWTServiceLookup.getAuthorizationService().getImplicitGroupPermissions(group.getId(), + new AsyncCallback<Set<Permission>>() { public void onFailure(Throwable caught) { CoreGUI.getErrorHandler().handleError("Failed to load group permissions.", caught); } @@ -224,7 +222,7 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView
// Configuration tab is only enabled for compatible groups of a type that supports the Configuration facet // and when the current user has the CONFIGURE_READ permission. - if (!typeFacets.contains(ResourceTypeFacet.CONFIGURATION) && permissions.isConfigureRead()) { + if (typeFacets.contains(ResourceTypeFacet.CONFIGURATION) && permissions.isConfigureRead()) { topTabSet.enableTab(configurationTab); } else { topTabSet.disableTab(configurationTab); @@ -239,35 +237,32 @@ public class ResourceGroupDetailView extends VLayout implements BookmarkableView
}
- public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) { // Switch tabs directly, rather than letting the history framework do it, to avoid redrawing the outer views. selectTab(tabSelectedEvent.getId(), tabSelectedEvent.getSubTabId()); String tabPath = "/" + tabSelectedEvent.getId() + "/" + tabSelectedEvent.getSubTabId(); String path = "ResourceGroup/" + this.groupComposite.getResourceGroup().getId() + tabPath; - + // But still add an item to the history, specifying false to tell it not to fire an event. History.newItem(path, false); }
- public void renderView(ViewPath viewPath) { // e.g. #ResourceGroup/10010/Inventory/Overview - String tabName = (!viewPath.isEnd()) ? viewPath.getCurrent().getPath() : null; // e.g. "Inventory" + String tabName = (!viewPath.isEnd()) ? viewPath.getCurrent().getPath() : null; // e.g. "Inventory" String subTabName = (viewPath.viewsLeft() >= 1) ? viewPath.getNext().getPath() : null; // e.g. "Overview" selectTab(tabName, subTabName); }
- public void selectTab(String tabName, String subtabName) { if (tabName == null) { tabName = DEFAULT_TAB_NAME; } - TwoLevelTab tab = (TwoLevelTab)this.topTabSet.getTabByTitle(tabName); + TwoLevelTab tab = (TwoLevelTab) this.topTabSet.getTabByTitle(tabName); if (tab == null) { CoreGUI.getErrorHandler().handleError("Invalid tab name: " + tabName); // TODO: Should we fire a history event here to redirect to a valid bookmark? - tab = (TwoLevelTab)this.topTabSet.getTabByTitle(DEFAULT_TAB_NAME); + tab = (TwoLevelTab) this.topTabSet.getTabByTitle(DEFAULT_TAB_NAME); } this.topTabSet.selectTab(tab); if (subtabName != null) {
commit 1a767576db3dfd69412a858eef0af3dcdd920955 Author: Joseph Marques <joseph@redhat.com> Date: Thu Aug 12 01:56:13 2010 -0400
always render call-time iframe-facelet, conditionally render the sub-tab instead
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 ea7b88e..92d74eb 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 @@ -27,6 +27,8 @@ import com.smartgwt.client.types.Side; import com.smartgwt.client.widgets.layout.VLayout;
import org.rhq.core.domain.authz.Permission; +import org.rhq.core.domain.measurement.DataType; +import org.rhq.core.domain.measurement.MeasurementDefinition; import org.rhq.core.domain.resource.Resource; import org.rhq.core.domain.resource.ResourceType; import org.rhq.core.domain.resource.composite.ResourcePermission; @@ -204,7 +206,6 @@ public class ResourceDetailView extends VLayout implements BookmarkableView, Res
updateTabStatus();
- topTabSet.markForRedraw(); }
private void updateTabStatus() { @@ -215,8 +216,8 @@ public class ResourceDetailView extends VLayout implements BookmarkableView, Res resource.getResourceType().getId(), EnumSet.of(ResourceTypeRepository.MetadataType.content, ResourceTypeRepository.MetadataType.operations, ResourceTypeRepository.MetadataType.events, - ResourceTypeRepository.MetadataType.resourceConfigurationDefinition), - new ResourceTypeRepository.TypeLoadedCallback() { + ResourceTypeRepository.MetadataType.resourceConfigurationDefinition, + ResourceTypeRepository.MetadataType.measurements), new ResourceTypeRepository.TypeLoadedCallback() { public void onTypesLoaded(ResourceType type) {
ResourceDetailView.this.type = type; @@ -275,10 +276,23 @@ public class ResourceDetailView extends VLayout implements BookmarkableView, Res topTabSet.enableTab(contentTab); }
+ // only enable "Call Time" sub-tab for those that implement it + monitoringTab.setSubTabEnabled("Call Time", implementsCallTime(type)); + if (topTabSet.getSelectedTab().getDisabled()) { topTabSet.selectTab(0); }
+ topTabSet.markForRedraw(); + } + + private boolean implementsCallTime(ResourceType type) { + for (MeasurementDefinition definition : type.getMetricDefinitions()) { + if (definition.getDataType() == DataType.CALLTIME) { + return true; + } + } + return false; }
public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) { diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response-plain.xhtml index aa6576f..3da09e2 100644 --- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response-plain.xhtml +++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response-plain.xhtml @@ -14,20 +14,6 @@
<rich:panel styleClass="BlockContent">
- <c:if test="#{!ResourceUIBean.facets.callTime}"> - <c:if test="#{CallTimeUIBean.context.resourceId != -1}"> - Response Time Metrics are not supported for this resource. - </c:if> - <c:if test="#{CallTimeUIBean.context.groupId != -1}"> - Response Time Metrics are not supported for this compatible group. - </c:if> - <c:if test="#{CallTimeUIBean.context.parentResourceId != -1 and CallTimeUIBean.context.resourceTypeId != -1}"> - Response Time Metrics are not supported for this auto-group. - </c:if> - - </c:if> - - <c:if test="#{ResourceUIBean.facets.callTime}"> <h:form id="callTimeForm"> <a4j:keepAlive beanName="CallTimeUIBean"/>
@@ -165,7 +151,6 @@ </table>
</h:form> - </c:if>
</rich:panel>
commit a18620eb8f17662207c96e6b757d59f5cce71b9a Author: Joseph Marques <joseph@redhat.com> Date: Thu Aug 12 01:55:03 2010 -0400
allow sub-tabs to render as conditionally enabled/disabled buttons
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 bc79260..eb66445 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 @@ -18,6 +18,10 @@ */ package org.rhq.enterprise.gui.coregui.client.components.tab;
+import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.Set; + import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.event.shared.HandlerRegistration; import com.smartgwt.client.types.Overflow; @@ -27,11 +31,8 @@ import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.layout.VLayout; -import com.smartgwt.client.widgets.tab.events.TabSelectedEvent; import com.smartgwt.client.widgets.toolbar.ToolStrip;
-import java.util.LinkedHashMap; - /** * @author Greg Hinkle */ @@ -40,6 +41,7 @@ public class SubTabLayout extends VLayout { ToolStrip buttonBar;
LinkedHashMap<String, Canvas> subtabs = new LinkedHashMap<String, Canvas>(); + Set<String> disabledSubTabs = new HashSet<String>();
Canvas currentlyDisplayed; String currentlySelected; @@ -59,7 +61,6 @@ public class SubTabLayout extends VLayout { setMargin(0); setPadding(0);
- buttonBar = new ToolStrip(); buttonBar.setBackgroundColor("grey"); buttonBar.setWidth100(); @@ -68,7 +69,6 @@ public class SubTabLayout extends VLayout {
addMember(buttonBar);
- int i = 0;
for (final String title : subtabs.keySet()) { @@ -78,18 +78,22 @@ public class SubTabLayout extends VLayout { currentlySelected = title; }
- Button button = new Button(title); button.setShowRollOver(false); button.setActionType(SelectionType.RADIO); button.setRadioGroup("subtabs"); button.setBorder(null); button.setAutoFit(true); + if (disabledSubTabs.contains(title)) { + button.disable(); + } else { + button.enable(); + }
button.setBaseStyle("SubTabButton");
-// button.setStyleName("SubTabButton"); -// button.setStylePrimaryName("SubTabButton"); + // button.setStyleName("SubTabButton"); + // button.setStylePrimaryName("SubTabButton");
final Integer index = i++;
@@ -110,6 +114,14 @@ public class SubTabLayout extends VLayout { selectTab(currentlySelected); }
+ public void enableSubTab(String title) { + disabledSubTabs.remove(title); + } + + public void disableSubTab(String title) { + disabledSubTabs.add(title); + } + public void updateSubTab(String title, Canvas canvas) { subtabs.put(title, canvas); if (isDrawn() && title.equals(currentlySelected)) { @@ -121,7 +133,7 @@ public class SubTabLayout extends VLayout { private void draw(Canvas canvas) { if (currentlyDisplayed != null) { currentlyDisplayed.hide(); -// removeMember(currentlyDisplayed); + // removeMember(currentlyDisplayed); } if (canvas != null) { if (hasMember(canvas)) { @@ -137,6 +149,9 @@ public class SubTabLayout extends VLayout { } }
+ public void unregisterAllSubTabs() { + subtabs.clear(); + }
public void registerSubTab(String title, Canvas canvas) { if (currentlySelected == null) { @@ -149,8 +164,6 @@ public class SubTabLayout extends VLayout { return currentIndex; }
- - public boolean selectTab(String title) { boolean foundTab = false; currentlySelected = title; @@ -164,16 +177,14 @@ public class SubTabLayout extends VLayout { i++; }
- if (isDrawn()) { - ((Button)buttonBar.getMember(currentIndex)).select(); + ((Button) buttonBar.getMember(currentIndex)).select(); draw(subtabs.get(title)); } - + return foundTab; }
- // ------- Event support ------- // Done with a separate handler manager from parent class on purpose (compatibility issue)
@@ -184,13 +195,8 @@ public class SubTabLayout extends VLayout { }
public void fireSubTabSelection() { - TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent( - "?", - currentlySelected, - -1, - currentIndex, - currentlyDisplayed - ); + TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent("?", currentlySelected, -1, currentIndex, + currentlyDisplayed); hm.fireEvent(event); } } \ No newline at end of file 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 9f9e5d4..c335dc9 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 @@ -34,17 +34,24 @@ public class TwoLevelTab extends Tab { layout = new SubTabLayout(); }
- public void updateSubTab(String tab, Canvas canvas) { layout.updateSubTab(tab, canvas); }
public void registerSubTabs(String... tabs) { - for (String tab :tabs) { + for (String tab : tabs) { layout.registerSubTab(tab, null); } }
+ public void setSubTabEnabled(String tab, boolean enabled) { + if (enabled) { + layout.enableSubTab(tab); + } else { + layout.disableSubTab(tab); + } + } + public SubTabLayout getLayout() { return layout; } @@ -54,6 +61,4 @@ public class TwoLevelTab extends Tab { return layout; }
- - }
rhq-commits@lists.fedorahosted.org