Alexander Wels has uploaded a new change for review. Change subject: webadmin: cluster sorting ......................................................................
webadmin: cluster sorting - Implemented sorting in cluster main tab - Implemented sorting in cluster sub tabs. - Fixed bug that would cause invalid SQL to be generated when sorting. - Fixed bug that caused sorting to be ignored when updating hosts and VMs for clusters. Change-Id: Ib7b2d9938a7e9b7e32238a284c0ddca6568b3bdc Signed-off-by: Alexander Wels <[email protected]> --- M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java M backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java M backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java M backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java 11 files changed, 65 insertions(+), 27 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/24/30124/1 diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java index fa4e9ff..35f80f3 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java @@ -4,7 +4,6 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -187,6 +186,7 @@ parameterSource); } + @Override public List<VDSGroup> getTrustedClusters() { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("trusted_service", true); @@ -327,7 +327,9 @@ for (VDSGroupHostsAndVMs groupDetail : dataList) { groupsById.get(groupDetail.getVdsGroupId()).setGroupHostsAndVms(groupDetail); } - return new ArrayList<VDSGroup>(groupsById.values()); + //The VDS groups have been updated, but we want to keep the order, so return the original list which is + //in the right order. + return vdsGroups; } } diff --git a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java index 76a67fd..9aadd4c 100644 --- a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java +++ b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ClusterConditionFieldAutoCompleter.java @@ -3,26 +3,31 @@ import org.ovirt.engine.core.common.businessentities.ArchitectureType; public class ClusterConditionFieldAutoCompleter extends BaseConditionFieldAutoCompleter { + public static final String NAME = "NAME"; + public static final String DESCRIPTION = "DESCRIPTION"; + public static final String COMMENT = "COMMENT"; + public static final String ARCHITECTURE = "ARCHITECTURE"; + public ClusterConditionFieldAutoCompleter() { // Building the basic vervs Dict - mVerbs.add("NAME"); - mVerbs.add("DESCRIPTION"); - mVerbs.add("COMMENT"); - mVerbs.add("ARCHITECTURE"); + mVerbs.add(NAME); + mVerbs.add(DESCRIPTION); + mVerbs.add(COMMENT); + mVerbs.add(ARCHITECTURE); // Building the autoCompletion Dict buildCompletions(); // Building the types dict - getTypeDictionary().put("NAME", String.class); - getTypeDictionary().put("DESCRIPTION", String.class); - getTypeDictionary().put("COMMENT", String.class); - getTypeDictionary().put("ARCHITECTURE", ArchitectureType.class); + getTypeDictionary().put(NAME, String.class); + getTypeDictionary().put(DESCRIPTION, String.class); + getTypeDictionary().put(COMMENT, String.class); + getTypeDictionary().put(ARCHITECTURE, ArchitectureType.class); // building the ColumnName Dict - columnNameDict.put("NAME", "name"); - columnNameDict.put("DESCRIPTION", "description"); - columnNameDict.put("COMMENT", "free_text_comment"); - columnNameDict.put("ARCHITECTURE", "architecture"); + columnNameDict.put(NAME, "name"); + columnNameDict.put(DESCRIPTION, "description"); + columnNameDict.put(COMMENT, "free_text_comment"); + columnNameDict.put(ARCHITECTURE, "architecture"); // Building the validation dict buildBasicValidationTable(); @@ -36,7 +41,7 @@ @Override public IConditionValueAutoCompleter getFieldValueAutoCompleter(String fieldName) { IConditionValueAutoCompleter retval = null; - if ("ARCHITECTURE".equals(fieldName)) { + if (ARCHITECTURE.equals(fieldName)) { retval = new EnumValueAutoCompleter(ArchitectureType.class); } return retval; diff --git a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java index c63833a..93c595c 100644 --- a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java +++ b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java @@ -326,7 +326,7 @@ "vds_groups_view", "vds_groups_storage_domain", "vds_group_id", - "name ASC ")); + "name ASC")); put(SearchObjects.QUOTA_OBJ_NAME, new EntitySearchInfo(new QuotaConditionFieldAutoCompleter(), new QuotaConditionFieldAutoCompleter(), "quota_view", diff --git a/backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java b/backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java index 4446133..de677a7 100644 --- a/backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java +++ b/backend/manager/modules/searchbackend/src/test/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerTest.java @@ -5,7 +5,6 @@ import java.util.Arrays; import org.junit.Assert; - import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -280,9 +279,9 @@ // "SELECT * FROM (SELECT * FROM vds_groups_view WHERE ( vds_group_id IN (SELECT vds_groups_storage_domain.vds_group_id FROM vds_groups_storage_domain )) ORDER BY name ASC ) as T1 OFFSET (1 -1) LIMIT 0" // Current: 1ms testValidSql("Cluster: ", - "SELECT * FROM ((SELECT vds_groups_view.* FROM vds_groups_view ) ORDER BY name ASC ) as T1 OFFSET (1 -1) LIMIT 0"); + "SELECT * FROM ((SELECT vds_groups_view.* FROM vds_groups_view ) ORDER BY name ASC) as T1 OFFSET (1 -1) LIMIT 0"); testValidSql("Cluster: storage.name = 111", - "SELECT * FROM (SELECT * FROM vds_groups_view WHERE ( vds_group_id IN (SELECT vds_groups_storage_domain.vds_group_id FROM vds_groups_storage_domain LEFT OUTER JOIN storage_domains_with_hosts_view ON vds_groups_storage_domain.storage_id=storage_domains_with_hosts_view.id WHERE storage_domains_with_hosts_view.storage_name LIKE 111 )) ORDER BY name ASC ) as T1 OFFSET (1 -1) LIMIT 0"); + "SELECT * FROM (SELECT * FROM vds_groups_view WHERE ( vds_group_id IN (SELECT vds_groups_storage_domain.vds_group_id FROM vds_groups_storage_domain LEFT OUTER JOIN storage_domains_with_hosts_view ON vds_groups_storage_domain.storage_id=storage_domains_with_hosts_view.id WHERE storage_domains_with_hosts_view.storage_name LIKE 111 )) ORDER BY name ASC) as T1 OFFSET (1 -1) LIMIT 0"); } @Test @@ -291,7 +290,7 @@ // "SELECT * FROM (SELECT * FROM vds_groups_view WHERE ( vds_group_id IN (SELECT vds_groups_storage_domain.vds_group_id FROM vds_groups_storage_domain )) ORDER BY name ASC ) as T1 OFFSET (1 -1) LIMIT 0" // Current: 1ms testValidSql("Clusters: ", - "SELECT * FROM ((SELECT vds_groups_view.* FROM vds_groups_view ) ORDER BY name ASC ) as T1 OFFSET (1 -1) LIMIT 0"); + "SELECT * FROM ((SELECT vds_groups_view.* FROM vds_groups_view ) ORDER BY name ASC) as T1 OFFSET (1 -1) LIMIT 0"); } @Test diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java index 621bc6c..792902d 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java @@ -286,11 +286,17 @@ @Override protected void syncSearch() { - SearchParameters tempVar = new SearchParameters(getSearchString(), SearchType.Cluster, isCaseSensitiveSearch()); + SearchParameters tempVar = new SearchParameters(applySortOptions(getSearchString()), SearchType.Cluster, + isCaseSensitiveSearch()); tempVar.setMaxCount(getSearchPageSize()); super.syncSearch(VdcQueryType.Search, tempVar); } + @Override + public boolean supportsServerSideSorting() { + return true; + } + public void newEntity() { if (getWindow() != null) diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java index 186094c..4e27fad 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterVmListModel.java @@ -42,7 +42,7 @@ @Override protected void syncSearch() { - SearchParameters tempVar = new SearchParameters(getSearchString(), SearchType.VM); + SearchParameters tempVar = new SearchParameters(applySortOptions(getSearchString()), SearchType.VM); tempVar.setRefresh(getIsQueryFirstTime()); super.syncSearch(VdcQueryType.Search, tempVar); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java index f0bc0ce..87d5b48 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/AbstractSubTabAffinityGroupsView.java @@ -32,6 +32,7 @@ return object.getName(); } }; + nameColumn.makeSortable(); getTable().addColumn(nameColumn, constants.nameAffinityGroup(), "150px"); //$NON-NLS-1$ TextColumnWithTooltip<AffinityGroup> descColumn = new TextColumnWithTooltip<AffinityGroup>() { @@ -40,6 +41,7 @@ return object.getDescription(); } }; + descColumn.makeSortable(); getTable().addColumn(descColumn, constants.descriptionAffinityGroup(), "150px"); //$NON-NLS-1$ BooleanColumn<AffinityGroup> polarityColumn = @@ -50,6 +52,7 @@ return object.isPositive(); } }; + polarityColumn.makeSortable(); getTable().addColumn(polarityColumn, constants.polarityAffinityGroup(), "100px"); //$NON-NLS-1$ BooleanColumn<AffinityGroup> enforceColumn = @@ -60,9 +63,10 @@ return object.isEnforcing(); } }; + enforceColumn.makeSortable(); getTable().addColumn(enforceColumn, constants.enforceAffinityGroup(), "100px"); //$NON-NLS-1$ - getTable().addColumn(new TextColumnWithTooltip<AffinityGroup>() { + TextColumnWithTooltip<AffinityGroup> membersColumn = new TextColumnWithTooltip<AffinityGroup>() { @Override public String getValue(AffinityGroup object) { String join = join(getEntityNames(object), ", "); //$NON-NLS-1$ @@ -71,7 +75,9 @@ } return join; } - }, constants.membersAffinityGroup(), "500px"); //$NON-NLS-1$ + }; + membersColumn.makeSortable(); + getTable().addColumn(membersColumn, constants.membersAffinityGroup(), "500px"); //$NON-NLS-1$ getTable().addActionButton(new WebAdminButtonDefinition<AffinityGroup>(constants.newAffinityGroupLabel()) { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java index 079d747..1d3677f 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabClusterView.java @@ -4,6 +4,7 @@ import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.mode.ApplicationMode; +import org.ovirt.engine.core.searchbackend.ClusterConditionFieldAutoCompleter; import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.widget.action.ActionButtonDefinition; @@ -25,7 +26,8 @@ import com.google.gwt.core.client.GWT; import com.google.inject.Inject; -public class MainTabClusterView extends AbstractMainTabWithDetailsTableView<VDSGroup, ClusterListModel> implements MainTabClusterPresenter.ViewDef { +public class MainTabClusterView extends AbstractMainTabWithDetailsTableView<VDSGroup, ClusterListModel> implements + MainTabClusterPresenter.ViewDef { interface ViewIdHandler extends ElementIdHandler<MainTabClusterView> { ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); @@ -49,6 +51,7 @@ return object.getName(); } }; + nameColumn.makeSortable(ClusterConditionFieldAutoCompleter.NAME); getTable().addColumn(nameColumn, constants.nameCluster(), "150px"); //$NON-NLS-1$ CommentColumn<VDSGroup> commentColumn = new CommentColumn<VDSGroup>(); @@ -78,6 +81,7 @@ return object.getdescription(); } }; + descColumn.makeSortable(ClusterConditionFieldAutoCompleter.DESCRIPTION); getTable().addColumn(descColumn, constants.descriptionCluster(), "300px"); //$NON-NLS-1$ if (ApplicationModeHelper.getUiMode() != ApplicationMode.GlusterOnly) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java index f649b0f..4252043 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java @@ -41,6 +41,7 @@ return object.getName(); } }; + nameColumn.makeSortable(); getTable().addColumn(nameColumn, constants.nameClusterHost(), "220px"); //$NON-NLS-1$ TextColumnWithTooltip<VDS> hostColumn = new TextColumnWithTooltip<VDS>() { @@ -49,6 +50,7 @@ return object.getHostName(); } }; + hostColumn.makeSortable(); getTable().addColumn(hostColumn, constants.hostIpClusterHost(), "220px"); //$NON-NLS-1$ TextColumnWithTooltip<VDS> statusColumn = new EnumColumn<VDS, VDSStatus>() { @@ -57,6 +59,7 @@ return object.getStatus(); } }; + statusColumn.makeSortable(); getTable().addColumn(statusColumn, constants.statusClusterHost(), "120px"); //$NON-NLS-1$ if (ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly)) { @@ -67,6 +70,7 @@ return ConstantsManager.getInstance().getMessages().numberOfVmsForHostsLoad(numOfActiveVMs); } }; + loadColumn.makeSortable(); getTable().addColumn(loadColumn, constants.loadClusterHost(), "120px"); //$NON-NLS-1$ } @@ -78,6 +82,7 @@ } }; + consoleColumn.makeSortable(); getTable().addColumn(consoleColumn, constants.overriddenConsoleAddress(), "220px"); //$NON-NLS-1$ } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java index 4f350c4..ac8afcc 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterNetworkView.java @@ -71,6 +71,7 @@ return object.getName(); } }; + nameColumn.makeSortable(); getTable().addColumn(nameColumn, constants.nameNetwork(), "400px"); //$NON-NLS-1$ TextColumnWithTooltip<Network> statusColumn = new EnumColumn<Network, NetworkStatus>() { @@ -79,6 +80,7 @@ return object.getCluster().getStatus(); } }; + statusColumn.makeSortable(); getTable().addColumn(statusColumn, constants.statusNetwork(), "100px"); //$NON-NLS-1$ SafeHtmlWithSafeHtmlTooltipColumn<Network> roleColumn = @@ -131,6 +133,7 @@ return object.getDescription(); } }; + descColumn.makeSortable(); getTable().addColumn(descColumn, constants.descriptionNetwork(), "400px"); //$NON-NLS-1$ if (ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly)) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java index 9c42829..c0bd1f0 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterVmView.java @@ -5,6 +5,7 @@ import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; +import org.ovirt.engine.core.searchbackend.VmConditionFieldAutoCompleter; import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider; import org.ovirt.engine.ui.common.widget.table.column.EnumColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; @@ -30,7 +31,9 @@ void initTable(ApplicationConstants constants) { getTable().enableColumnResizing(); - getTable().addColumn(new VmStatusColumn(), constants.empty(), "30px"); //$NON-NLS-1$ + VmStatusColumn<VM> statusIconColumn = new VmStatusColumn<VM>(); + statusIconColumn.makeSortable(VmConditionFieldAutoCompleter.STATUS); + getTable().addColumn(statusIconColumn, constants.empty(), "30px"); //$NON-NLS-1$ TextColumnWithTooltip<VM> nameColumn = new TextColumnWithTooltip<VM>() { @Override @@ -38,9 +41,12 @@ return object.getName(); } }; + nameColumn.makeSortable(VmConditionFieldAutoCompleter.NAME); getTable().addColumn(nameColumn, constants.nameVm(), "220px"); //$NON-NLS-1$ - getTable().addColumn(new VmTypeColumn(), constants.empty(), "30px"); //$NON-NLS-1$ + VmTypeColumn typeColumn = new VmTypeColumn(); + typeColumn.makeSortable(VmConditionFieldAutoCompleter.TYPE); + getTable().addColumn(typeColumn, constants.empty(), "30px"); //$NON-NLS-1$ TextColumnWithTooltip<VM> statusColumn = new EnumColumn<VM, VMStatus>() { @Override @@ -48,6 +54,7 @@ return object.getStatus(); } }; + statusColumn.makeSortable(VmConditionFieldAutoCompleter.STATUS); getTable().addColumn(statusColumn, constants.statusVm(), "220px"); //$NON-NLS-1$ TextColumnWithTooltip<VM> uptimeColumn = new UptimeColumn<VM>() { @@ -56,6 +63,7 @@ return object.getRoundedElapsedTime(); } }; + uptimeColumn.makeSortable(VmConditionFieldAutoCompleter.UPTIME); getTable().addColumn(uptimeColumn, constants.uptimeVm(), "220px"); //$NON-NLS-1$ } -- To view, visit http://gerrit.ovirt.org/30124 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib7b2d9938a7e9b7e32238a284c0ddca6568b3bdc Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Alexander Wels <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
