[ovirt-devel] Sortable columns in UI

Michal Kenneth mkenneth at redhat.com
Wed May 14 08:59:18 UTC 2014


I must chime in as well (for old time sake … :) 
Nice to see things evolving in the GUI - this one specifically was there from day ONE.

Great work, Vojtech!!!

Miki

On May 13, 2014, at 8:06 PM, Vojtech Szocs <vszocs at redhat.com> wrote:

> Thanks Malini & Einav :-)
> 
> Indeed, the patch only adds the necessary infrastructure; sorting must be
> enabled for individual columns (either server-side or client-side sorting).
> 
> Currently, sort icon (triangle) is positioned to the left of column header
> text. Alternatively, it could be positioned to the right-corner of column
> header, but this would interfere with resize area (mouse area where cursor
> changes, indicating that user can click and drag to resize).
> 
> Each column that supports sorting uses following (default) styling:
> - mouse move over the header
>  -> text color changes from black to dark grey
>  -> cursor changes to "hand" (CSS cursor:pointer)
> - using default GWT CellTable triangle icon
> 
> (Above default styling can be changed anytime.)
> 
> Vojtech
> 
> 
> ----- Original Message -----
>> From: "Einav Cohen" <ecohen at redhat.com>
>> To: "Vojtech Szocs" <vszocs at redhat.com>, "Malini Rao" <mrao at redhat.com>
>> Cc: devel at ovirt.org
>> Sent: Tuesday, May 13, 2014 4:54:38 PM
>> Subject: Re: [ovirt-devel] Sortable columns in UI
>> 
>> Many thanks, Vojtech, for making it happen - it is highly appreciated!
>> Clarifying that, to my understanding, just the infrastructure is in
>> place - there aren't any sortable columns in the GUI yet. In order
>> to turn columns in the GUI to sortable, need to follow Vojtech's
>> instructions below for each relevant column.
>> 
>> ----
>> Thanks,
>> Einav
>> 
>> ----- Original Message -----
>>> From: "Malini Rao" <mrao at redhat.com>
>>> To: "Vojtech Szocs" <vszocs at redhat.com>
>>> Cc: devel at ovirt.org
>>> Sent: Tuesday, May 13, 2014 10:48:44 AM
>>> Subject: Re: [ovirt-devel] Sortable columns in UI
>>> 
>>> Yay!!!! Thank you for making this happen. This is a basic need that users
>>> have talked to me about in almost all UX conversations I have had so far!
>>> 
>>> ----- Original Message -----
>>> From: "Vojtech Szocs" <vszocs at redhat.com>
>>> To: devel at ovirt.org
>>> Sent: Tuesday, May 13, 2014 10:37:51 AM
>>> Subject: [ovirt-devel] Sortable columns in UI
>>> 
>>> Hey guys,
>>> 
>>> oVirt UI has been missing column sort functionality for quite a while
>>> now, but here's some good news.
>>> 
>>> I've just merged patch [1] that adds support for both server-side and
>>> client-side sorting of table columns. This patch adds the necessary
>>> infra/API; column sorting must be enabled per-column for given table,
>>> just like with column resizing.
>>> 
>>> [1] http://gerrit.ovirt.org/#/c/25910/
>>> 
>>> Currently, only TextColumnWithTooltip (and its subclasses) support
>>> sorting, however this can easily be changed in future by having the
>>> column class extend SortableColumn.
>>> 
>>> To enable sorting:
>>> 
>>>  // Enables server-side sorting via search query
>>>  // ... SORTBY name ASC|DESC
>>>  column.makeSortable("name"); // consider using shared constant
>>> 
>>>  -or-
>>> 
>>>  // Enables client-side sorting using comparator
>>>  column.makeSortable(comparator);
>>> 
>>> In order for server-side sorting to work properly, corresponding
>>> SearchableListModel must apply the search options while executing
>>> "Search" query.
>>> 
>>> For example, in DataCenterListModel:
>>> 
>>>  @Override
>>>  public boolean supportsServerSideSorting() {
>>>    // Default is false
>>>    return true;
>>>  }
>>> 
>>>  @Override
>>>  protected void syncSearch() {
>>>    // Append "SORTBY" clause to search query
>>>    String search = applySortOptions(getSearchString());
>>>    ...
>>>  }
>>> 
>>> If a model doesn't support server-side sorting, client-side sorting
>>> will be used as fall back (assuming a comparator was provided).
>>> 
>>> In general, all main tab list models in WebAdmin utilize "Search"
>>> query, so we can enable server-side sorting for columns that exist
>>> within main tab tables.
>>> 
>>> As for sub tabs (whose list models generally don't use "Search"
>>> query, but also don't support paging at the moment), these can
>>> simply use client-side sorting, i.e. reuse existing comparators
>>> defined in Linq class.
>>> 
>>> PS: I've attached a screenshot depicting sorted column in action.
>>> 
>>> Regards,
>>> Vojtech
>>> 
>>> _______________________________________________
>>> Devel mailing list
>>> Devel at ovirt.org
>>> http://lists.ovirt.org/mailman/listinfo/devel
>>> _______________________________________________
>>> Devel mailing list
>>> Devel at ovirt.org
>>> http://lists.ovirt.org/mailman/listinfo/devel
>>> 
>> 
> _______________________________________________
> Devel mailing list
> Devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/devel




More information about the Devel mailing list