[Kimchi-devel] [PATCH] UI: Grid Widget - Enable/Disable Row Selection
Aline Manera
alinefm at linux.vnet.ibm.com
Tue Mar 4 15:31:12 UTC 2014
Reviewed-by: Aline Manera <alinefm at linux.vnet.ibm.com>
On 03/04/2014 03:03 AM, Hongliang Wang wrote:
> Currently, grid widget will style hovered and selected rows and fire
> a row selected event when user clicks a row. Though it's confused in
> some cases. For example, in software update grid, we only allow user
> to "Update All" software packages: user can't select one package and
> only update it. So nothing will happen if user clicks one row.
>
> In this patch, we added the feature that allows grid consumer to
> determine disable or enable row selection.
>
> Signed-off-by: Hongliang Wang <hlwang at linux.vnet.ibm.com>
> ---
> ui/js/src/kimchi.grid.js | 25 ++++++++++++++-----------
> 1 file changed, 14 insertions(+), 11 deletions(-)
>
> diff --git a/ui/js/src/kimchi.grid.js b/ui/js/src/kimchi.grid.js
> index bb98218..20cacc5 100644
> --- a/ui/js/src/kimchi.grid.js
> +++ b/ui/js/src/kimchi.grid.js
> @@ -19,6 +19,7 @@ kimchi.widget.Grid = function(params) {
> var containerID = params['container'];
> var container = $('#' + containerID);
> var gridID = params['id'];
> + var rowSelection = params['rowSelection'] || 'single';
> var rowListener = params['onRowSelected'];
> var htmlStr = [
> '<div id="', gridID, '" class="grid">',
> @@ -229,19 +230,21 @@ kimchi.widget.Grid = function(params) {
>
> var selectedIndex = -1;
> var setBodyListeners = function() {
> - $('tr', gridBody).on('mouseover', function(event) {
> - stylingRow(this, 'hover');
> - });
> + if(rowSelection != 'disabled') {
> + $('tr', gridBody).on('mouseover', function(event) {
> + stylingRow(this, 'hover');
> + });
>
> - $('tr', gridBody).on('mouseout', function(event) {
> - stylingRow(this, 'hover', false);
> - });
> + $('tr', gridBody).on('mouseout', function(event) {
> + stylingRow(this, 'hover', false);
> + });
>
> - $('tr', gridBody).on('click', function(event) {
> - selectedIndex = $(this).index();
> - stylingRow(this, 'selected');
> - rowListener && rowListener();
> - });
> + $('tr', gridBody).on('click', function(event) {
> + selectedIndex = $(this).index();
> + stylingRow(this, 'selected');
> + rowListener && rowListener();
> + });
> + }
>
> $('.grid-body-view', gridNode).on('scroll', function(event) {
> $('.grid-header .grid-header-view', gridNode)
More information about the Kimchi-devel
mailing list