/** * Vložení skriptu */ function finalize() { $grid_id = $this->getTagID(); if ($this->getTagProperty('columnsAutoSize')) { $this->options['onSuccess'] = 'function() { addGrid($("#' . $grid_id . '"), this)}'; //Patch Grid Responisive $grid_js = ' var grids=[]; $(window).resize(function() { //Resize all the grids on the page //Only resize the ones whoes size has actually changed... for(var i in grids) { if(grids[i].width!=grids[i].$grid.width()) { sizeGrid(grids[i]); } } });'; $grid_js .= ' //Keep track of all grid elements and current sizes function addGrid($table, grid) { var $grid = $table.closest(\'.flexigrid\'); var data = {$table:$table, $grid:$grid, grid:grid, width:$grid.width()}; grids.push(data); sizeGrid(data); }'; $grid_js .= ' //Make all cols with auto size fill remaining width.. function sizeGrid(data) { //Auto size the middle col. var totalWidth = data.$grid.outerWidth()-15; //15 padding - not found where this is set var fixedWidth = 0; var fluidCols = []; for(var i=0; i<data.grid.colModel.length; i++ ) { if( !isNaN(data.grid.colModel[i].width) ) { fixedWidth+=data.$table.find(\'tr:eq(\'+i+\') td:eq(\'+i+\'):visible\').outerWidth(true); } else { fluidCols.push(i); } } var newWidth = (totalWidth-fixedWidth)/fluidCols.length; for(var i in fluidCols) { data.grid.g.colresize = { n:fluidCols[i], nw:newWidth }; data.grid.g.dragEnd( ); } data.width = data.$grid.width(); }'; } else { $grid_js = ''; } if ($this->select) { $this->options['query'] = current($this->select); $this->options['qtype'] = key($this->select); } if ($this->dblclk2edit) { $this->options['onDoubleClick'] = 'function(g) { var id = $(g).attr(\'id\'); id = id.substring(id.lastIndexOf(\'row\')+3); $(location).attr(\'href\',\'' . $this->dataSource->keyword . '.php?' . $this->dataSource->getMyKeyColumn() . '=\' +id); }'; } $this->options['getGridClass'] = 'function(g) { this.g=g; return g; }'; EaseShared::webPage()->addJavaScript("\n" . '$(\'#' . $grid_id . '\').flexigrid({ ' . EaseJQueryPart::partPropertiesToString($this->options) . ' }); ' . $grid_js, null, true); }