anmolbabu has uploaded a new change for review. Change subject: [WIP]webadmin : geo-rep status detail pop up ......................................................................
[WIP]webadmin : geo-rep status detail pop up This patch adds geo-rep status detail pop up Change-Id: I0cc6151fb71a4aa67dc76ec8dd8c93b76796f165 Signed-off-by: Anmol Babu <anb...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepSessionDetailsModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepSessionDetailsPopUpPresenterWidget.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.ui.xml 6 files changed, 441 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/00/32100/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index 2ef2b40..808c5f7 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -70,6 +70,7 @@ import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterClusterService; import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionDetails; import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; @@ -133,6 +134,7 @@ import org.ovirt.engine.core.common.queries.gluster.GlusterServersQueryParameters; import org.ovirt.engine.core.common.queries.gluster.GlusterServiceQueryParameters; import org.ovirt.engine.core.common.queries.gluster.GlusterVolumeAdvancedDetailsParameters; +import org.ovirt.engine.core.common.queries.gluster.GlusterVolumeGeoRepStatusDetailsPrameters; import org.ovirt.engine.core.common.queries.gluster.GlusterVolumeProfileParameters; import org.ovirt.engine.core.common.queries.gluster.GlusterVolumeQueriesParameters; import org.ovirt.engine.core.common.utils.ObjectUtils; @@ -1489,6 +1491,16 @@ aQuery); } + public void getGlusterVolumeBrickById(AsyncQuery callback, Guid brickId) { + callback.converterCallback = new IAsyncConverter() { + @Override + public Object Convert(Object returnValue, AsyncQuery asyncQuery) { + return (returnValue != null) ? returnValue : new GlusterBrickEntity(); + } + }; + Frontend.getInstance().runQuery(VdcQueryType.GetGlusterBrickById, new IdQueryParameters(brickId), callback); + } + public void getGlusterHostsNewlyAdded(AsyncQuery aQuery, Guid clusterId, boolean isFingerprintRequired) { aQuery.converterCallback = new IAsyncConverter() { @Override @@ -1548,6 +1560,16 @@ //Frontend.getInstance().runQuery(VdcQueryType.GetGlusterVolumeGeoRepStatus, new GlusterVolumeQueriesParameters(masterVolumeClusterId, masterVolumeId), aQuery); } + public void getGlusterVolumeGeoRepSessionDetails(AsyncQuery aQuery, Guid sessionId) { + aQuery.converterCallback = new IAsyncConverter() { + @Override + public Object Convert(Object source, AsyncQuery asyncQuery) { + return source != null ? source : new ArrayList<GlusterGeoRepSessionDetails>(); + } + }; + Frontend.getInstance().runQuery(VdcQueryType.GetGlusterVolumeGeoRepSessionStatusDetail, new GlusterVolumeGeoRepStatusDetailsPrameters(sessionId), aQuery); + } + public void getGlusterHook(AsyncQuery aQuery, Guid hookId, boolean includeServerHooks) { aQuery.converterCallback = new IAsyncConverter() { @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepSessionDetailsModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepSessionDetailsModel.java new file mode 100644 index 0000000..9ff5184 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepSessionDetailsModel.java @@ -0,0 +1,154 @@ +package org.ovirt.engine.ui.uicommonweb.models.gluster; + +import java.util.ArrayList; +import java.util.List; + +import org.ovirt.engine.core.common.businessentities.gluster.GeoRepCrawlStatus; +import org.ovirt.engine.core.common.businessentities.gluster.GeoRepSessionStatus; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionDetails; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusForHost; +import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.ui.frontend.AsyncQuery; +import org.ovirt.engine.ui.frontend.INewAsyncCallback; +import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; +import org.ovirt.engine.ui.uicommonweb.models.EntityModel; +import org.ovirt.engine.ui.uicommonweb.models.ListModel; +import org.ovirt.engine.ui.uicommonweb.models.Model; +import org.ovirt.engine.ui.uicompat.FrontendMultipleQueryAsyncResult; +import org.ovirt.engine.ui.uicompat.IFrontendMultipleQueryAsyncCallback; + +public class VolumeGeoRepSessionDetailsModel extends Model{ + public static class GeoRepSessionDetailsTableRow { + private String masterHostName; + private String masterBrick; + private String slaveHostName; + private GeoRepSessionStatus status; + private String checkPointStatus; + private GeoRepCrawlStatus crawlStatus; + private Long filesSynced; + private Long filesPending; + private Long filesSkipped; + private Long deletesPending; + private Long bytesPending; + public String getMasterHostName() { + return masterHostName; + } + public void setMasterHostName(String masterHostName) { + this.masterHostName = masterHostName; + } + public String getMasterBrick() { + return masterBrick; + } + public void setMasterBrick(String masterBrick) { + this.masterBrick = masterBrick; + } + public String getSlaveHostName() { + return slaveHostName; + } + public void setSlaveHostName(String slaveHostName) { + this.slaveHostName = slaveHostName; + } + public GeoRepSessionStatus getStatus() { + return status; + } + public void setStatus(GeoRepSessionStatus status) { + this.status = status; + } + public String getCheckPointStatus() { + return checkPointStatus; + } + public void setCheckPointStatus(String checkPointStatus) { + this.checkPointStatus = checkPointStatus; + } + public GeoRepCrawlStatus getCrawlStatus() { + return crawlStatus; + } + public void setCrawlStatus(GeoRepCrawlStatus crawlStatus) { + this.crawlStatus = crawlStatus; + } + public Long getFilesSynced() { + return filesSynced; + } + public void setFilesSynced(Long filesSynced) { + this.filesSynced = filesSynced; + } + public Long getFilesPending() { + return filesPending; + } + public void setFilesPending(Long filesPending) { + this.filesPending = filesPending; + } + public Long getFilesSkipped() { + return filesSkipped; + } + public void setFilesSkipped(Long filesSkipped) { + this.filesSkipped = filesSkipped; + } + public Long getDeletesPending() { + return deletesPending; + } + public void setDeletesPending(Long deletesPending) { + this.deletesPending = deletesPending; + } + public Long getBytesPending() { + return bytesPending; + } + public void setBytesPending(Long bytesPending) { + this.bytesPending = bytesPending; + } + public GeoRepSessionDetailsTableRow(String masterHostName, String masterBrick, String slaveHostName, GeoRepSessionStatus status, String checkPointStatus, GeoRepCrawlStatus crawlStatus, Long filesSynced, Long filesPending, Long filesSkipped, Long deletesPending, Long bytesPending) { + super(); + this.masterHostName = masterHostName; + this.masterBrick = masterBrick; + this.slaveHostName = slaveHostName; + this.status = status; + this.checkPointStatus = checkPointStatus; + this.crawlStatus = crawlStatus; + this.filesSynced = filesSynced; + this.filesPending = filesPending; + this.filesSkipped = filesSkipped; + this.deletesPending = deletesPending; + this.bytesPending = bytesPending; + } + + } + + private ListModel<EntityModel<GlusterGeoRepSession>> geoRepSessionSummary; + private ListModel<EntityModel<GeoRepSessionDetailsTableRow>> geoRepSessionDetails; + + public ListModel<EntityModel<GlusterGeoRepSession>> getGeoRepSessionSummary() { + return geoRepSessionSummary; + } + + public void setGeoRepSessionSummary(ListModel<EntityModel<GlusterGeoRepSession>> geoRepSessionSummary) { + this.geoRepSessionSummary = geoRepSessionSummary; + } + + public ListModel<EntityModel<GeoRepSessionDetailsTableRow>> getGeoRepSessionDetails() { + return geoRepSessionDetails; + } + + public void setGeoRepSessionDetails(ListModel<EntityModel<GeoRepSessionDetailsTableRow>> geoRepSessionDetails) { + this.geoRepSessionDetails = geoRepSessionDetails; + } + + private void populateStatus(GlusterGeoRepSession session) { + final List<GlusterGeoRepSessionDetails> details = session.getSessionDetails(); + final List<EntityModel<GeoRepSessionDetailsTableRow>> detailRows = new ArrayList<EntityModel<GeoRepSessionDetailsTableRow>>(); + for(final GlusterGeoRepSessionDetails detail : details) { + AsyncDataProvider.getInstance().getGlusterVolumeBrickById(new AsyncQuery(new INewAsyncCallback() { + @Override + public void onSuccess(Object model, Object returnValue) { + GlusterBrickEntity brick = ((VdcQueryReturnValue) returnValue).getReturnValue(); + detailRows.add(new EntityModel<VolumeGeoRepSessionDetailsModel.GeoRepSessionDetailsTableRow>(new GeoRepSessionDetailsTableRow(brick.getServerName(), brick.getBrickDirectory(), detail.getSlaveHostName(), detail.getStatus(), detail.getCheckPointStatus(), detail.getCrawlStatus(), detail.getFilesSynced(), detail.getFilesPending(), detail.getFilesSkipped(), detail.getDeletesPending(), detail.getBytesPending()))); + if(details.indexOf(detail) == details.size() - 1) { + getGeoRepSessionDetails().setItems(detailRows); + } + } + }), detail.getMasterBrickId()); + } + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java index ccf4def..35e0ccb 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java @@ -3656,6 +3656,49 @@ @DefaultStringValue("Rebalance NOT STARTED") String rebalanceNotStarted(); + //Volume Geo Rep Status Detail Column Headers + @DefaultStringValue("Host") + String geoRepSessionHostName(); + + @DefaultStringValue("Status") + String geoRepSessionStatus(); + + @DefaultStringValue("Up Time") + String geoRepSessionUpTime(); + + @DefaultStringValue("Master Node") + String geoRepMasterNode(); + + @DefaultStringValue("Master Brick") + String geoRepMasterBrick(); + + @DefaultStringValue("Slave host") + String geoRepSlaveHostName(); + + @DefaultStringValue("Status") + String geoRepPairStatus(); + + @DefaultStringValue("Checkpoint Status") + String geoRepCheckPointStatus(); + + @DefaultStringValue("Crawl Status") + String georepCrawlStatus(); + + @DefaultStringValue("Files synced") + String geoRepFilesSynced(); + + @DefaultStringValue("Files Pending") + String geoRepFilesPending(); + + @DefaultStringValue("Bytes Pending") + String geoRepBytesPending(); + + @DefaultStringValue("Deletes Pending") + String geoRepDeletesPending(); + + @DefaultStringValue("Files Skipped") + String geoRepFilesSkipped(); + @DefaultStringValue("Manage Policy Units") String managePolicyUnits(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepSessionDetailsPopUpPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepSessionDetailsPopUpPresenterWidget.java new file mode 100644 index 0000000..9cb368f --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepSessionDetailsPopUpPresenterWidget.java @@ -0,0 +1,19 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster; + +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.common.presenter.popup.DefaultConfirmationPopupPresenterWidget; +import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeGeoRepSessionDetailsModel; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class VolumeGeoRepSessionDetailsPopUpPresenterWidget extends AbstractModelBoundPopupPresenterWidget<VolumeGeoRepSessionDetailsModel, VolumeGeoRepSessionDetailsPopUpPresenterWidget.ViewDef>{ + public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<VolumeGeoRepSessionDetailsModel> { + } + + @Inject + public VolumeGeoRepSessionDetailsPopUpPresenterWidget(EventBus eventBus, ViewDef view, Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider) { + super(eventBus, view); + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.java new file mode 100644 index 0000000..3a9e6e5 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.java @@ -0,0 +1,169 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster; + +import java.util.Date; + +import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionDetails; +import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; +import org.ovirt.engine.ui.common.idhandler.WithElementId; +import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView; +import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; +import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable; +import org.ovirt.engine.ui.common.widget.table.column.EntityModelTextColumn; +import org.ovirt.engine.ui.common.widget.table.column.FullDateTimeColumn; +import org.ovirt.engine.ui.uicommonweb.models.ListModel; +import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeGeoRepSessionDetailsModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.ApplicationMessages; +import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.VolumeGeoRepSessionDetailsPopUpPresenterWidget; +import org.ovirt.engine.ui.webadmin.widget.table.column.RebalanceFileSizeColumn; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.editor.client.SimpleBeanEditorDriver; +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.inject.Inject; + +public class VolumeGeoRepSessionDetailsPopUpView extends AbstractModelBoundPopupView<VolumeGeoRepSessionDetailsModel> implements VolumeGeoRepSessionDetailsPopUpPresenterWidget.ViewDef{ + + interface Driver extends SimpleBeanEditorDriver<VolumeGeoRepSessionDetailsModel, VolumeGeoRepSessionDetailsPopUpView> { + } + + interface ViewUiBinder extends UiBinder<SimpleDialogPanel, VolumeGeoRepSessionDetailsPopUpView> { + ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); + } + + interface ViewIdHandler extends ElementIdHandler<VolumeGeoRepSessionDetailsPopUpView> { + ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); + } + + @UiField(provided = true) + @Ignore + @WithElementId + EntityModelCellTable<ListModel> geoRepSessionSummaryTable; + + @UiField(provided = true) + @Ignore + @WithElementId + EntityModelCellTable<ListModel> geoRepSessionDetailsTable; + + ApplicationResources resources; + ApplicationConstants constants; + ApplicationMessages messages; + + @Inject + public VolumeGeoRepSessionDetailsPopUpView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants, ApplicationMessages messages) { + super(eventBus, resources); + this.resources = resources; + this.constants = constants; + this.messages = messages; + intiEditors(); + } + + private void intiEditors() { + geoRepSessionSummaryTable = new EntityModelCellTable<ListModel>(false, true); + + geoRepSessionSummaryTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSession>() { + @Override + protected String getText(GlusterGeoRepSession entity) { + return entity.getSlaveHostName(); + } + }, constants.geoRepSessionHostName()); + geoRepSessionSummaryTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSession>() { + @Override + protected String getText(GlusterGeoRepSession entity) { + return entity.getStatus().toString(); + } + }, constants.geoRepSessionStatus()); + geoRepSessionSummaryTable.addColumn(new FullDateTimeColumn<GlusterGeoRepSession>() { + @Override + protected Date getRawValue(GlusterGeoRepSession object) { + return object.getSessionDetails().get(0).getUpdatedAt(); + } + }, constants.geoRepSessionUpTime()); + + + geoRepSessionDetailsTable = new EntityModelCellTable<ListModel>(false, true); + + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterBrickEntity>() { + @Override + protected String getText(GlusterBrickEntity entity) { + return entity.getServerName(); + } + }, constants.geoRepMasterNode()); + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterBrickEntity>() { + @Override + protected String getText(GlusterBrickEntity entity) { + return entity.getBrickDirectory(); + } + }, constants.geoRepMasterBrick()); + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSessionDetails>() { + @Override + protected String getText(GlusterGeoRepSessionDetails entity) { + return entity.getSlaveHostName(); + } + }, constants.geoRepSlaveHostName()); + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSessionDetails>() { + @Override + protected String getText(GlusterGeoRepSessionDetails entity) { + return entity.getStatus().toString(); + } + }, constants.geoRepSessionStatus()); + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSessionDetails>() { + @Override + protected String getText(GlusterGeoRepSessionDetails entity) { + return entity.getCheckPointStatus(); + } + }, constants.geoRepSlaveHostName()); + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSessionDetails>() { + @Override + protected String getText(GlusterGeoRepSessionDetails entity) { + return entity.getCrawlStatus().toString(); + } + }, constants.georepCrawlStatus()); + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSessionDetails>() { + @Override + protected String getText(GlusterGeoRepSessionDetails entity) { + return entity.getFilesSynced().toString(); + } + }, constants.geoRepFilesSynced()); + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSessionDetails>() { + @Override + protected String getText(GlusterGeoRepSessionDetails entity) { + return entity.getFilesPending().toString(); + } + }, constants.geoRepFilesPending()); + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSessionDetails>() { + @Override + protected String getText(GlusterGeoRepSessionDetails entity) { + return entity.getDeletesPending().toString(); + } + }, constants.geoRepDeletesPending()); + geoRepSessionDetailsTable.addColumn(new RebalanceFileSizeColumn<GlusterGeoRepSessionDetails>(messages) { + @Override + protected Long getRawValue(GlusterGeoRepSessionDetails object) { + return object.getBytesPending(); + } + }, constants.geoRepBytesPending()); + geoRepSessionDetailsTable.addEntityModelColumn(new EntityModelTextColumn<GlusterGeoRepSessionDetails>() { + @Override + protected String getText(GlusterGeoRepSessionDetails entity) { + return entity.getFilesSkipped().toString(); + } + }, constants.geoRepFilesSkipped()); + } + + @Override + public void edit(VolumeGeoRepSessionDetailsModel object) { + + } + + @Override + public VolumeGeoRepSessionDetailsModel flush() { + return null; + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.ui.xml new file mode 100644 index 0000000..43fab80 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.ui.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" + xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic" + xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" + xmlns:w="urn:import:org.ovirt.engine.ui.common.widget"> + <ui:style> + .tablePanel { + height: 215px; + width: 981px; + padding: 1px; + border: 1px solid #CED8DF; + } + + .button table{ + width: 100%; + } + </ui:style> + + <d:SimpleDialogPanel width="480px" height="350px"> + <g:VerticalPanel> + <d:content> + <g:ScrollPanel addStyleNames="{style.tablePanel}"> + <e:EntityModelCellTable ui:field="geoRepSessionSummaryTable" /> + </g:ScrollPanel> + + <g:ScrollPanel addStyleNames="{style.tablePanel}"> + <e:EntityModelCellTable ui:field="geoRepSessionDetailsTable" /> + </g:ScrollPanel> + </d:content> + </g:VerticalPanel> + </d:SimpleDialogPanel> +</ui:UiBinder> \ No newline at end of file -- To view, visit http://gerrit.ovirt.org/32100 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0cc6151fb71a4aa67dc76ec8dd8c93b76796f165 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: anmolbabu <anb...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches