From 0ea5195f2edcbc7e8d4a5b9f82744c3ad9e1b7bc Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Sat, 2 May 2015 10:42:53 +0000 Subject: [PATCH] allow to iterate over grids and set checkboxes readonly (disabled) --- etemplate/js/et2_widget_checkbox.js | 10 ++++++++++ etemplate/js/et2_widget_grid.js | 24 ++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/etemplate/js/et2_widget_checkbox.js b/etemplate/js/et2_widget_checkbox.js index ba0376f1de..e34e7005cc 100644 --- a/etemplate/js/et2_widget_checkbox.js +++ b/etemplate/js/et2_widget_checkbox.js @@ -105,6 +105,16 @@ var et2_checkbox = et2_inputWidget.extend( } }, + /** + * Disable checkbox on runtime + * + * @param {boolean} _ro + */ + set_readonly: function(_ro) + { + jQuery(this.getDOMNode()).attr('disabled', _ro); + }, + /** * Override default to return unchecked value */ diff --git a/etemplate/js/et2_widget_grid.js b/etemplate/js/et2_widget_grid.js index cc008aed97..8e1635a0f1 100644 --- a/etemplate/js/et2_widget_grid.js +++ b/etemplate/js/et2_widget_grid.js @@ -1068,6 +1068,30 @@ var et2_grid = et2_DOMWidget.extend([et2_IDetachedDOM, et2_IAligned, et2_IResize } } } + }, + + /** + * Function which allows iterating over the complete widget tree. + * + * @param _callback is the function which should be called for each widget + * @param _context is the context in which the function should be executed + * @param _type is an optional parameter which specifies a class/interface + * the elements have to be instanceOf. + */ + iterateOver: function(_callback, _context, _type) + { + if (!this.cells) return; + + for(var r=0; r < this.cells.length; ++r) + { + var row = this.cells[r]; + for(var c=0; c < row.length; ++c) + { + if (!row[c].widget) continue; + + row[c].widget.iterateOver(_callback, _context, _type); + } + } } }); et2_register_widget(et2_grid, ["grid"]); \ No newline at end of file