$ari->popup = 1; // no mostrar el main_frame //STORE PARA TRAER EL LISTADO DE MODULOS $store = new PhpExt_Data_JsonStore(); $store->setUrl("/admin/module/get_modules")->setRoot("topics")->setAutoLoad(true)->setTotalProperty("totalCount"); //AGREGO LOS CAMPOS AL STORE $store->addField(new PhpExt_Data_FieldConfigObject("nicename")); $store->addField(new PhpExt_Data_FieldConfigObject("modulename")); $store->addField(new PhpExt_Data_FieldConfigObject("description")); $store->addField(new PhpExt_Data_FieldConfigObject("checked")); $store->addField(new PhpExt_Data_FieldConfigObject("optional")); //CHECKBOX PARA SELECCIONAR LOS MODULOS $checkColumn = new PhpExtUx_Grid_CheckColumn("Habilitado"); $checkColumn->setDataIndex("checked")->setId("check")->setWidth(55); //AGREGO LAS COLUMNAS A LA GRILLA $col_model = new PhpExt_Grid_ColumnModel(); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Nombre del Módulo", "nicename", null, 150)); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Descripción", "description", null, 340)); $col_model->addColumn($checkColumn); //GRILLA $grid = new PhpExt_Grid_GridPanel(); $grid->setStore($store)->setColumnModel($col_model)->setLoadMask(true)->setenableColLock(false); $grid->getPlugins()->add($checkColumn); $grid->getPlugins()->add(new PhpExtUx_App_FitToParent()); $grid_render = "\n\nvar store = grid.getStore();\n\ngrid.on( 'afteredit', function(e){\n\t\tvar datos = e.record.data;\n\t\tif(!datos.optional){\n\t\t\te.record.set( 'checked', true );\t\n\t\t\te.record.commit();\n\t\t}\n});\n\nvar save = function(){\n\t\n\tvar store_changes = store.getModifiedRecords();\n\tvar items = Array();\t\n\tfor(var i = 0, len = store_changes.length; i < len; i++){\n\t\tvar item = { \n\t\t\t\t modulename : store_changes[i].get('modulename'),\n\t\t\t\t\t checked : store_changes[i].get('checked')\n\t\t\t\t\t}\n\t\titems.push(item);\n\t}\t\n\tstore.load( {params : { UpdateEnabledData : Ext.encode(items) } } );\n\tstore.commitChanges();\n\n}\n\nvar refresh = function(){\n\tstore.load( {params : {UpdateList:true} } );\n}\n\nvar button1 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Guardar Cambios') } );\nbutton1.on( 'click', save );\n\nvar button2 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Actualizar Lista') } );\nbutton2.on( 'click', refresh );\n\n\n"; $grid->setEnableKeyEvents(true); $grid->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $grid_render, array("grid")))); //BOTON PARA GUARDAR LOS CAMBIOS HECHOS EN LA GRILLA $button_toolbar = $grid->getTopToolbar(); $button_toolbar->addButton("save_changes", "Guardar Cambios", "images/save.gif"); $button_toolbar->addButton("refresh", "Actualizar Lista", "images/Refresh.gif");
$modulos = array(); if ($listado_modulos = OOB_module::listModules()) { foreach ($listado_modulos as $modulo) { $modulos[] = array($modulo->name(), $modulo->nicename()); } //end each } //end if $store_modulos = new PhpExt_Data_SimpleStore(); $store_modulos->addField("id"); $store_modulos->addField("detalle"); $store_modulos->setData(PhpExt_Javascript::variable(json_encode($modulos))); $cbo_modulo = PhpExt_Form_ComboBox::createComboBox("cbo_modulo")->setStore($store_modulos)->setDisplayField("detalle")->setValueField("id")->setLazyRender(true)->setEditable(false)->setForceSelection(true)->setSingleSelect(true)->setMode(PhpExt_Form_ComboBox::MODE_LOCAL)->setTriggerAction(PhpExt_Form_ComboBox::TRIGGER_ACTION_ALL); $format_contacto = "\n\t function( v, params, record , rowIndex, colIndex, store ){\t\t\t\n\t\treturn record.data['contacto'];\n\t }\n"; $format_modulo = "\n\t function( v, params, record , rowIndex, colIndex, store ){\t\t\t\n\t\treturn record.data['modulenicename'];\n\t }\n"; $col_model = new PhpExt_Grid_ColumnModel(); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Id", "id", null, 30)); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Nombre", "nombre", null, 280)->setEditor($txt_nombre)); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Descripción", "descripcion", null, 280)->setEditor($txt_descripcion)); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Modulo", "modulo", null, 80, PhpExt_Ext::HALIGN_RIGHT, new PhpExt_JavascriptStm($format_modulo))->setEditor($cbo_modulo)); $grid = new PhpExt_Grid_EditorGridPanel(); $grid->setStore($store)->setColumnModel($col_model)->setSelectionModel(new PhpExt_Grid_RowSelectionModel())->setLoadMask(true)->setenableColLock(false); $grid->getPlugins()->add($filter_plugin); $grid->getPlugins()->add(new PhpExtUx_App_FitToParent()); $grid->setBottomToolbar($paging); $grid_render = "\n\nvar store = grid.getStore();\n\ngrid.on('validateedit', function(e){\n if(e.field == 'modulo'){\n\t\tvar combo = grid.getColumnModel().getCellEditor(e.column, e.row).field;\t\t\t\t \t\t \n e.record.data['modulenicename'] = combo.getRawValue();\n }\t\n});\n\n\nvar nuevo = function(){\n\nvar cmodel = Ext.data.Record.create([\n\t\t\t\t {name: 'id'},\n\t\t\t\t {name: 'nombre', type: 'string'},\n\t\t\t\t {name: 'sucursal', type: 'string'},\n\t\t\t\t {name: 'contacto', type: 'string'},\n\t\t\t\t {name: 'sucursal::nombre'},\n\t\t\t\t {name: 'contacto::apellido'}\n\t\t\t ]);\n\nvar cm = new cmodel({\n\t\t\t\t\tid : '',\n\t\t\t nombre : '',\t\t\t \n\t\t\t sucursal : '',\n\t\t\t contacto : '',\n\t'sucursal::nombre' : '',\n 'contacto::apellido' : ''\n\t\t\t\t\t});\n\t\t\t\t\n\tgrid.stopEditing();\n\tstore.insert(0, cm);\n\tgrid.startEditing(0, 1);\n\n}\n\nvar eliminar = function(){\n\n\t\tvar noborrar = 0;\n\t\tvar m = grid.getSelections();\n if( m.length > 0 )\n {\n\t\t\tvar msg = 'Esta seguro que desea ' + ((m.length > 1)?'los':'el') + ' deposito' + ((m.length > 1)?'s':'') + '?';\n\t\t\n \tExt.MessageBox.confirm('Emporika', msg , function( btn ){\n\t\t\t\t\tif( btn == 'yes' )\n\t\t\t\t\t{\t\n\t\t\t\t\t\tvar m = grid.getSelections();\n\t\t\t\t\t\tvar items = Array();\n\t\t\t\t\t\tfor( var i = 0, len = m.length; i < len; i++ ){ \t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tvar item = { id : m[i].get('id') }\n\t\t\t\t\t\t\t\titems.push( item );\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar pag = grid.getStore().lastOptions.params['start'];\t\t\t\t\t\t\n\t\t\t\t\t\tstore.load( { params : { \n\t\t\t\t\t\t\t\t\t\t\t\tstart : pag, \n\t\t\t\t\t\t\t\t\t\t\t\tlimit : {$page_size}, \n\t\t\t\t\t\t\t\t\t\t DeleteData : Ext.encode(items) }\n\t\t\t\t\t\t\t\t\t});\t\t\n\t\t\t\t\t}\t\t\t\n\t\t\t});\t\n }\n else\n {\n \tExt.MessageBox.alert('Emporika', 'Por favor seleccione un deposito');\n }\n}\n\nvar save = function(){\n\n\tvar hab = true;\n\tvar store_changes = store.getModifiedRecords();\n\tvar items = Array();\t\n\t\n\tfor( var i = 0, len = store_changes.length; i < len; i++ ){\n\t\n\t\t\t\t\n\t\tif( store_changes[i].get('nombre') == '' ){\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\tgrid.startEditing(i, 1);\n\t\t\thab = false;\n\t\t}\n\t\t\n\t\tif( store_changes[i].get('contacto') == '' && hab ){\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\tgrid.startEditing(i, 2);\n\t\t\thab = false;\n\t\t}\n\t\t\n\t\tif( store_changes[i].get('sucursal') == '' && hab ){\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\tgrid.startEditing(i, 3);\n\t\t\thab = false;\n\t\t}\n\t\t\n\t\t\t\n\t\tvar item = { \n\t\t\t\t\t id : store_changes[i].get('id'),\n\t\t\t nombre : store_changes[i].get('nombre'),\n\t\t\t contacto : store_changes[i].get('contacto::apellido'),\n\t\t\t sucursal : store_changes[i].get('sucursal::nombre')\n\t\t\t\t }\t\n\t\titems.push(item);\t\t \n\t}\t\n\t\n\tif(hab){\n\t\tvar pag = grid.getStore().lastOptions.params['start'];\n\t\tstore.load( { params:{ \n\t\t\t\t\t\t\tstart : pag, \n\t\t\t\t\t\t\tlimit : {$page_size} , \n\t\t\t\t NewsValuesData : Ext.encode(items) }\n\t\t\t\t } );\n\t\tstore.commitChanges();\n\t}\n\t\n}\n\nvar button1 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Nuevo') } );\nbutton1.on( 'click', nuevo );\n\nvar button2 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Borrar') } );\nbutton2.on( 'click', eliminar );\n\nvar button3 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Guardar cambios') } );\nbutton3.on( 'click', save );\n\n"; $grid->setEnableKeyEvents(true); $grid->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $grid_render, array("grid")))); $tb = $grid->getTopToolbar(); $tb->addButton("new", "Nuevo", "images/add.png"); $tb->addSeparator("sep1");
public static function Render($dataModel, $object, $PageSize = 5, $Titulo = '') { include_once 'PhpExt/Ext.php'; include_once 'PhpExt/Data/SimpleStore.php'; include_once 'PhpExt/Data/ArrayReader.php'; include_once 'PhpExt/Data/JsonReader.php'; include_once 'PhpExt/Data/ScriptTagProxy.php'; include_once 'PhpExt/Data/FieldConfigObject.php'; include_once 'PhpExt/Data/StoreLoadOptions.php'; include_once 'PhpExt/Data/HttpProxy.php'; include_once 'PhpExt/Data/JsonStore.php'; include_once 'PhpExt/Button.php'; include_once 'PhpExt/Toolbar/PagingToolbar.php'; include_once 'PhpExt/Grid/ColumnModel.php'; include_once 'PhpExt/Grid/ColumnConfigObject.php'; include_once 'PhpExt/Grid/GridPanel.php'; include_once 'PhpExt/Window.php'; include_once 'PhpExt/Form/FormPanel.php'; include_once 'PhpExt/Ext.php'; include_once 'PhpExt/Data/Store.php'; include_once 'PhpExt/Data/ArrayReader.php'; include_once 'PhpExt/Data/FieldConfigObject.php'; include_once 'PhpExt/Grid/ColumnModel.php'; include_once 'PhpExt/Grid/ColumnConfigObject.php'; include_once 'PhpExt/Panel.php'; include_once 'PhpExt/Grid/GridPanel.php'; include_once 'PhpExt/Grid/RowSelectionModel.php'; include_once 'PhpExt/Listener.php'; include_once 'PhpExt/Config/ConfigObject.php'; include_once 'PhpExt/Form/FormPanel.php'; include_once 'PhpExt/Form/FieldSet.php'; include_once 'PhpExt/Form/TextField.php'; include_once 'PhpExt/QuickTips.php'; include_once 'PhpExt/Layout/ColumnLayout.php'; include_once 'PhpExt/Layout/ColumnLayoutData.php'; include_once 'PhpExt/Layout/FitLayout.php'; $reader = new PhpExt_Data_JsonReader(); $reader->setRoot("topics")->setTotalProperty("totalCount")->setId("ID"); foreach ($object->properties as $k => $v) { $reader->addField(new PhpExt_Data_FieldConfigObject($k)); } $store = new PhpExt_Data_Store(); $store->setUrl('action_main.php')->setReader($reader)->setBaseParams(array("limit" => $PageSize)); $colModel = new PhpExt_Grid_ColumnModel(); foreach ($object->properties as $k => $v) { if (strpos($k, "S_") !== 0) { $colModel->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn($object->properties_desc[$k], $k, $k, null, null, null, true, true)); } } readfile(dirname(__FILE__) . "/local/Tmpl/PhpExt.tmpl"); $selModel = new PhpExt_Grid_RowSelectionModel(); $selModel->setSingleSelect(true)->attachListener("rowselect", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, "Ext.getCmp(\"idGrid\").getForm().loadRecord(rec);", array("sm", "row", "rec")))); // Grid $grid = new PhpExt_Grid_GridPanel("idGrid"); $grid->setStore($store)->setColumnModel($colModel)->setStripeRows(true)->setWidth(500)->setHeight(350)->setTitle("Elementos"); $grid->setSelectionModel($selModel); $paging = new PhpExt_Toolbar_PagingToolbar(); $paging->setStore($store)->setPageSize($PageSize)->setDisplayInfo("Topics {0} - {1} of {2}")->setEmptyMessage("No topics to display"); $grid->setBottomToolbar($paging); $window = new PhpExt_Window(); $window->setTitle($Titulo)->setWidth(600)->setHeight(450)->setMinWidth(300)->setMinHeight(200)->setPlain(true)->setBodyStyle("padding:5px")->setButtonAlign(PhpExt_Ext::HALIGN_CENTER); $window->addButton(PhpExt_Button::createTextButton("Editar")); $window->addButton(PhpExt_Button::createTextButton("Borrar")); $window->addItem($grid); // Ext.OnReady ----------------------- echo PhpExt_Ext::onReady(null, null, $store->getJavascript(false, "store"), $store->load(new PhpExt_Data_StoreLoadOptions(array("start" => 0, "limit" => $PageSize))), $grid->getJavascript(false, "grid"), $window->getJavascript(false, "window"), $window->show()); echo "</script>"; }
include_once 'PhpExt/Grid/ColumnConfigObject.php'; include_once 'PhpExt/Grid/GridPanel.php'; include_once 'PhpExt/Grid/GroupingView.php'; // Sample Data $myData = array(array('3m Co', 71.72, 0.02, 0.03, '4/2 12:00am', 'Manufacturing'), array('Alcoa Inc', 29.01, 0.42, 1.47, '4/1 12:00am', 'Manufacturing'), array('Altria Group Inc', 83.81, 0.28, 0.34, '4/3 12:00am', 'Manufacturing'), array('American Express Company', 52.55, 0.01, 0.02, '4/8 12:00am', 'Finance'), array('American International Group, Inc.', 64.13, 0.31, 0.49, '4/1 12:00am', 'Services'), array('AT&T Inc.', 31.61, -0.48, -1.54, '4/8 12:00am', 'Services'), array('Boeing Co.', 75.43000000000001, 0.53, 0.71, '4/8 12:00am', 'Manufacturing'), array('Caterpillar Inc.', 67.27, 0.92, 1.39, '4/1 12:00am', 'Services'), array('Citigroup, Inc.', 49.37, 0.02, 0.04, '4/4 12:00am', 'Finance'), array('E.I. du Pont de Nemours and Company', 40.48, 0.51, 1.28, '4/1 12:00am', 'Manufacturing'), array('Exxon Mobil Corp', 68.09999999999999, -0.43, -0.64, '4/3 12:00am', 'Manufacturing'), array('General Electric Company', 34.14, -0.08, -0.23, '4/3 12:00am', 'Manufacturing'), array('General Motors Corporation', 30.27, 1.09, 3.74, '4/3 12:00am', 'Automotive'), array('Hewlett-Packard Co.', 36.53, -0.03, -0.08, '4/3 12:00am', 'Computer'), array('Honeywell Intl Inc', 38.77, 0.05, 0.13, '4/3 12:00am', 'Manufacturing'), array('Intel Corporation', 19.88, 0.31, 1.58, '4/2 12:00am', 'Computer'), array('International Business Machines', 81.41, 0.44, 0.54, '4/1 12:00am', 'Computer'), array('Johnson & Johnson', 64.72, 0.06, 0.09, '4/2 12:00am', 'Medical'), array('JP Morgan & Chase & Co', 45.73, 0.07000000000000001, 0.15, '4/2 12:00am', 'Finance'), array('McDonald\'s Corporation', 36.76, 0.86, 2.4, '4/2 12:00am', 'Food'), array('Merck & Co., Inc.', 40.96, 0.41, 1.01, '4/2 12:00am', 'Medical'), array('Microsoft Corporation', 25.84, 0.14, 0.54, '4/2 12:00am', 'Computer'), array('Pfizer Inc', 27.96, 0.4, 1.45, '4/8 12:00am', 'Services', 'Medical'), array('The Coca-Cola Company', 45.07, 0.26, 0.58, '4/1 12:00am', 'Food'), array('The Home Depot, Inc.', 34.64, 0.35, 1.02, '4/8 12:00am', 'Retail'), array('The Procter & Gamble Company', 61.91, 0.01, 0.02, '4/1 12:00am', 'Manufacturing'), array('United Technologies Corporation', 63.26, 0.55, 0.88, '4/1 12:00am', 'Computer'), array('Verizon Communications', 35.57, 0.39, 1.11, '4/3 12:00am', 'Services'), array('Wal-Mart Stores, Inc.', 45.45, 0.73, 1.63, '4/3 12:00am', 'Retail'), array('Walt Disney Company (The) (Holding Company)', 29.89, 0.24, 0.8100000000000001, '4/1 12:00am', 'Services')); $changeRenderer = PhpExt_Javascript::functionDef("change", "if(val > 0){\r\n return '<span style=\"color:green;\">' + val + '</span>';\r\n }else if(val < 0){\r\n return '<span style=\"color:red;\">' + val + '</span>';\r\n }\r\n return val;", array("val")); $reader = new PhpExt_Data_ArrayReader(); $reader->addField(new PhpExt_Data_FieldConfigObject("company")); $reader->addField(new PhpExt_Data_FieldConfigObject("price", null, "float")); $reader->addField(new PhpExt_Data_FieldConfigObject("change", null, "float")); $reader->addField(new PhpExt_Data_FieldConfigObject("pctChange", null, "float")); $reader->addField(new PhpExt_Data_FieldConfigObject("lastChange", null, "date", "n/j h:ia")); $reader->addField(new PhpExt_Data_FieldConfigObject("industry")); // Store $store = new PhpExt_Data_GroupingStore(); $store->setSortInfo(new PhpExt_Data_SortInfoConfigObject("company")); $store->setGroupField("industry"); $store->setReader($reader); $store->setData($myData); // ColumnModel $colModel = new PhpExt_Grid_ColumnModel(); $colModel->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Company", "company", "company", 60, null, null, true, false))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Price", "price", null, 20, null, PhpExt_Javascript::variable("Ext.util.Format.usMoney"), true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Change", "change", null, 20, null, PhpExt_Javascript::variable('change'), true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Industry", "industry", null, 20, null, null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Last Updated", "lastChange", null, 20, null, PhpExt_Javascript::variable("Ext.util.Format.dateRenderer('m/d/Y')"), true)); // View $view = new PhpExt_Grid_GroupingView(); $view->setForceFit(true); $view->setGroupTextTemplate('{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'); // Grid $grid = new PhpExt_Grid_GridPanel(); $grid->setStore($store)->setColumnModel($colModel)->setView($view)->setFrame(true)->setCollapsible(true)->setAnimCollapse(true)->setTitle("Grouping Example")->setIconCssClass("icon-grid")->setRenderTo("grouping-example")->setWidth(700)->setHeight(450); // Ext.OnReady ----------------------- echo PhpExt_Ext::onReady(PhpExt_Javascript::assignNew("myData", PhpExt_Javascript::valueToJavascript($myData)), $changeRenderer, $store->getJavascript(false, "store"), $grid->getJavascript(false, "grid"));
<?php set_include_path(get_include_path() . PATH_SEPARATOR . realpath('../../library')); include_once 'PhpExt/Javascript.php'; PhpExt_Javascript::sendContentType(); include_once 'PhpExt/Ext.php'; include_once 'PhpExt/Data/SimpleStore.php'; include_once 'PhpExt/Data/ArrayReader.php'; include_once 'PhpExt/Data/FieldConfigObject.php'; include_once 'PhpExt/Grid/ColumnModel.php'; include_once 'PhpExt/Grid/ColumnConfigObject.php'; include_once 'PhpExt/Grid/GridPanel.php'; // Sample Data $myData = array(array('3m Co', 71.72, 0.02, 0.03, '9/1 12:00am'), array('Alcoa Inc', 29.01, 0.42, 1.47, '9/1 12:00am'), array('Altria Group Inc', 83.81, 0.28, 0.34, '9/1 12:00am'), array('American Express Company', 52.55, 0.01, 0.02, '9/1 12:00am'), array('American International Group, Inc.', 64.13, 0.31, 0.49, '9/1 12:00am'), array('AT&T Inc.', 31.61, -0.48, -1.54, '9/1 12:00am'), array('Boeing Co.', 75.43000000000001, 0.53, 0.71, '9/1 12:00am'), array('Caterpillar Inc.', 67.27, 0.92, 1.39, '9/1 12:00am'), array('Citigroup, Inc.', 49.37, 0.02, 0.04, '9/1 12:00am'), array('E.I. du Pont de Nemours and Company', 40.48, 0.51, 1.28, '9/1 12:00am'), array('Exxon Mobil Corp', 68.09999999999999, -0.43, -0.64, '9/1 12:00am'), array('General Electric Company', 34.14, -0.08, -0.23, '9/1 12:00am'), array('General Motors Corporation', 30.27, 1.09, 3.74, '9/1 12:00am'), array('Hewlett-Packard Co.', 36.53, -0.03, -0.08, '9/1 12:00am'), array('Honeywell Intl Inc', 38.77, 0.05, 0.13, '9/1 12:00am'), array('Intel Corporation', 19.88, 0.31, 1.58, '9/1 12:00am'), array('International Business Machines', 81.41, 0.44, 0.54, '9/1 12:00am'), array('Johnson & Johnson', 64.72, 0.06, 0.09, '9/1 12:00am'), array('JP Morgan & Chase & Co', 45.73, 0.07000000000000001, 0.15, '9/1 12:00am'), array('McDonald\'s Corporation', 36.76, 0.86, 2.4, '9/1 12:00am'), array('Merck & Co., Inc.', 40.96, 0.41, 1.01, '9/1 12:00am'), array('Microsoft Corporation', 25.84, 0.14, 0.54, '9/1 12:00am'), array('Pfizer Inc', 27.96, 0.4, 1.45, '9/1 12:00am'), array('The Coca-Cola Company', 45.07, 0.26, 0.58, '9/1 12:00am'), array('The Home Depot, Inc.', 34.64, 0.35, 1.02, '9/1 12:00am'), array('The Procter & Gamble Company', 61.91, 0.01, 0.02, '9/1 12:00am'), array('United Technologies Corporation', 63.26, 0.55, 0.88, '9/1 12:00am'), array('Verizon Communications', 35.57, 0.39, 1.11, '9/1 12:00am'), array('Wal-Mart Stores, Inc.', 45.45, 0.73, 1.63, '9/1 12:00am')); $changeRenderer = PhpExt_Javascript::functionDef("change", "if(val > 0){\r\n return '<span style=\"color:green;\">' + val + '</span>';\r\n }else if(val < 0){\r\n return '<span style=\"color:red;\">' + val + '</span>';\r\n }\r\n return val;", array("val")); $pctChangeRenderer = PhpExt_Javascript::functionDef("pctChange", "if(val > 0){\r\n return '<span style=\"color:green;\">' + val + '%</span>';\r\n }else if(val < 0){\r\n return '<span style=\"color:red;\">' + val + '%</span>';\r\n }\r\n return val;", array("val")); // Store $store = new PhpExt_Data_SimpleStore(); $store->addField(new PhpExt_Data_FieldConfigObject("company")); $store->addField(new PhpExt_Data_FieldConfigObject("price", null, "float")); $store->addField(new PhpExt_Data_FieldConfigObject("change", null, "float")); $store->addField(new PhpExt_Data_FieldConfigObject("pctChange", null, "float")); $store->addField(new PhpExt_Data_FieldConfigObject("lastChange", null, "date", "n/j h:ia")); // ColumnModel $colModel = new PhpExt_Grid_ColumnModel(); $colModel->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Company", "company", "company", 160, null, null, true, false))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Price", "price", null, 75, null, PhpExt_Javascript::variable("Ext.util.Format.usMoney"), null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Change", "change", null, 75, null, PhpExt_Javascript::variable('change'), null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("% Change", "pctChange", null, 75, null, PhpExt_Javascript::variable('pctChange'), null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Last Updated", "lastChange", null, 85, null, PhpExt_Javascript::variable("Ext.util.Format.dateRenderer('m/d/Y')"), null, true)); // Grid $grid = new PhpExt_Grid_GridPanel(); $grid->setStore($store)->setColumnModel($colModel)->setStripeRows(true)->setAutoExpandColumn("company")->setHeight(350)->setWidth(600)->setTitle("Array Grid"); // Ext.OnReady ----------------------- echo PhpExt_Ext::onReady(PhpExt_Javascript::assignNew("myData", PhpExt_Javascript::valueToJavascript($myData)), $changeRenderer, $pctChangeRenderer, $store->getJavascript(false, "store"), $store->loadData(PhpExt_Javascript::variable("myData")), $grid->getJavascript(false, "grid"), $grid->render("grid-example"));
<?php set_include_path(get_include_path() . PATH_SEPARATOR . realpath('../../library')); include_once 'PhpExt/Javascript.php'; PhpExt_Javascript::sendContentType(); include_once 'PhpExt/Ext.php'; include_once 'PhpExt/Data/Store.php'; include_once 'PhpExt/Data/XmlReader.php'; include_once 'PhpExt/Data/FieldConfigObject.php'; include_once 'PhpExt/Grid/ColumnModel.php'; include_once 'PhpExt/Grid/ColumnConfigObject.php'; include_once 'PhpExt/Grid/GridPanel.php'; // Xml Reader $reader = new PhpExt_Data_XmlReader(); $reader->setRecord("Item")->setTotalRecords("@total")->setId("ASIN"); $reader->addField(new PhpExt_Data_FieldConfigObject("Author", "ItemAttributes > Author")); $reader->addField(new PhpExt_Data_FieldConfigObject("Title")); $reader->addField(new PhpExt_Data_FieldConfigObject("Manufacturer")); $reader->addField(new PhpExt_Data_FieldConfigObject("ProductGroup")); // Store $store = new PhpExt_Data_Store(); $store->setUrl("examples/grid/sheldon.xml")->setReader($reader); // ColumnModel $colModel = new PhpExt_Grid_ColumnModel(); $colModel->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Author", "Author", null, 120, null, null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Title", "Title", null, 180, null, null, null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Manufacturer", "Manufacturer", null, 115, null, null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Product Group", "ProductGroup", null, 100, null, null, true)); // Grid $grid = new PhpExt_Grid_GridPanel(); $grid->setStore($store)->setColumnModel($colModel)->setHeight(200)->setWidth(540)->setTitle("Xml Grid"); // Ext.OnReady ----------------------- echo PhpExt_Ext::onReady($store->getJavascript(false, "store"), $grid->getJavascript(false, "grid"), $grid->render("example-grid"), $store->load());
$store = new PhpExt_Data_Store(); $reader = new PhpExt_Data_ArrayReader(); $reader->addField(new PhpExt_Data_FieldConfigObject("company")); $reader->addField(new PhpExt_Data_FieldConfigObject("price", null, "float")); $reader->addField(new PhpExt_Data_FieldConfigObject("change", null, "float")); $reader->addField(new PhpExt_Data_FieldConfigObject("pctChange", null, "float")); $reader->addField(new PhpExt_Data_FieldConfigObject("lastChange", null, "date", "n/j h:ia", null, null, null)); $store->setReader($reader)->setData(PhpExt_Javascript::variable("data")); /* Data array could be used directly also as $store->setData($myData) */ $italicRenderer = PhpExt_Javascript::functionDef("italic", "return '<i>' + value + '</i>'", array("value")); $changeRenderer = PhpExt_Javascript::functionDef("change", "if(val > 0){\r\n return '<span style=\"color:green;\">' + val + '</span>';\r\n }else if(val < 0){\r\n return '<span style=\"color:red;\">' + val + '</span>';\r\n }\r\n return val;", array("val")); $pctChangeRenderer = PhpExt_Javascript::functionDef("pctChange", "if(val > 0){\r\n return '<span style=\"color:green;\">' + val + '%</span>';\r\n }else if(val < 0){\r\n return '<span style=\"color:red;\">' + val + '%</span>';\r\n }\r\n return val;", array("val")); // ColumnModel $colModel = new PhpExt_Grid_ColumnModel(); $colModel->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Company", "company", "company", 160, null, null, true, false))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Price", "price", null, 75, null, PhpExt_Javascript::variable("Ext.util.Format.usMoney"), null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Change", "change", null, 75, null, PhpExt_Javascript::variable('change'), null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("% Change", "pctChange", null, 75, null, PhpExt_Javascript::variable('pctChange'), null, true))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Last Updated", "lastChange", null, 75, null, PhpExt_Javascript::variable("Ext.util.Format.dateRenderer('m/d/Y')"), null, true)); // Form Panel $gridForm = new PhpExt_Form_FormPanel("company-form"); $gridForm->setFrame(true)->setLabelAlign(PhpExt_Form_FormPanel::LABEL_ALIGN_LEFT)->setTitle("Company Data")->setBodyStyle("padding: 5px;")->setWidth(750)->setLayout(new PhpExt_Layout_ColumnLayout()); // Setup Grid $leftPanel = new PhpExt_Panel(); $leftPanel->setLayout(new PhpExt_Layout_FitLayout()); $selModel = new PhpExt_Grid_RowSelectionModel(); $selModel->setSingleSelect(true)->attachListener("rowselect", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, "Ext.getCmp(\"company-form\").getForm().loadRecord(rec);", array("sm", "row", "rec")))); $grid = new PhpExt_Grid_GridPanel(); $grid->setStore($store)->setColumnModel($colModel)->setSelectionModel($selModel)->setAutoExpandColumn("company")->setHeight(350)->setTitle("Company Data")->setBorder(true)->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, "g.getSelectionModel().selectRow(0);", array("g")), null, 10)); $leftPanel->addItem($grid); $gridForm->addItem($leftPanel, new PhpExt_Layout_ColumnLayoutData(0.6)); // Setup Fields $rightPanel = new PhpExt_Form_FieldSet();
global $ari; $ari->popup = 1; // no mostrar el main_frame $separador_decimal = trim($ari->locale->get('decimal', 'numbers')); $store = new PhpExt_Data_JsonStore(); $store->setUrl("/currency/currency/get_currencys_change")->setRoot("topics")->setTotalProperty("totalCount"); //AGREGO LOS CAMPOS AL STORE $store->addField(new PhpExt_Data_FieldConfigObject("id")); $store->addField(new PhpExt_Data_FieldConfigObject("currency")); $store->addField(new PhpExt_Data_FieldConfigObject("value")); $store->addField(new PhpExt_Data_FieldConfigObject("date")); $store->addField(new PhpExt_Data_FieldConfigObject("new")); $txt_nuevo_valor = new PhpExt_Form_NumberField(); $txt_nuevo_valor->setDecimalSeparator($separador_decimal)->setMsgTarget(PhpExt_Form_FormPanel::MSG_TARGET_SIDE); //AGREGO LAS COLUMNAS A LA GRILLA $col_model = new PhpExt_Grid_ColumnModel(); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Id", "id", null, 35)); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Moneda", "currency")); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Ultimo Valor", "value")); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Fecha", "date", null, 110)); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Nuevo Valor", "new")->setEditor($txt_nuevo_valor)); $paging = new PhpExt_Toolbar_PagingToolbar(); $paging->setStore($store)->setDisplayInfo(true)->setEmptyMessage("No tiene monedas flotantes para definir el tipo de cambio"); //GRILLA $grid = new PhpExt_Grid_EditorGridPanel(); $grid->setStore($store)->setColumnModel($col_model)->setSelectionModel(new PhpExt_Grid_RowSelectionModel())->setLoadMask(true)->setenableColLock(false); $grid->setBottomToolbar($paging); $grid->getPlugins()->add(new PhpExtUx_App_FitToParent()); $grid_render = "\n\n\nvar save = function(){\n\tvar fecha = grid.getTopToolbar().items.find( function(c){ return (c.xtype == 'datefield') } );\t\n\tvar store = grid.getStore();\n\tvar store_changes = store.getModifiedRecords();\n\t\n\tvar items = Array();\n\t\n\tfor( var i = 0, len = store_changes.length; i < len; i++ )\n\t{\t\t\n\t\tvar item = { \n\t\t\t\t\t id : store_changes[i].get('id'),\n\t\t\t\t value : store_changes[i].get('new')\t\t\t\t\t\n\t\t }\n\t\titems.push(item);\n\t}\n\t\n\tvar json = { \n\t\t\t\t fecha : fecha.value,\n\t\t\t\t items : items \n\t\t\t }\n\t\n\tstore.load( { params:{ NewsValuesData : Ext.encode(json) } } );\n\tstore.commitChanges();\n\t\n\t\n}\n\t\nvar button1 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Guardar cambios') } );\nbutton1.on( 'click', save );\n\n"; $grid->setEnableKeyEvents(true); $grid->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $grid_render, array("grid"))));
$store->addField(new PhpExt_Data_FieldConfigObject("id")); $store->addField(new PhpExt_Data_FieldConfigObject("uname")); $store->addField(new PhpExt_Data_FieldConfigObject("email")); $store->addField(new PhpExt_Data_FieldConfigObject("status")); $check_select = new PhpExt_Grid_CheckboxSelectionModel(); //Paso los estado a json $estados = array(); foreach (oob_user::getStatus() as $id => $descripcion) { $estados[] = array($id, $descripcion); } $filter_plugin = new PhpExtUx_Grid_GridFilters(); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("numeric", "id")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("string", "uname")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("string", "email")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("list", "status", PhpExt_Javascript::variable(json_encode($estados)), PhpExt_Javascript::variable("1"), true)); $col_model = new PhpExt_Grid_ColumnModel(); $col_model->addColumn($check_select)->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Id", "id", null, 40))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Usuario", "uname", null, 140))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Email", "email", null, 170))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Estado", "status")); $paging = new PhpExt_Toolbar_PagingToolbar(); $paging->setStore($store)->setPageSize($page_size)->setDisplayInfo(true)->setEmptyMessage("No se encontraron usuarios"); $paging->getPlugins()->add($filter_plugin); //GRILLA $grid = new PhpExt_Grid_GridPanel(); $grid->setStore($store)->setSelectionModel($check_select)->setColumnModel($col_model)->setLoadMask(true)->setenableColLock(false); $grid->getPlugins()->add($filter_plugin); $grid->getPlugins()->add(new PhpExtUx_App_FitToParent()); $grid_render = "\n\nvar combo = grid.getTopToolbar().items.find( function(c){ return ( c.xtype == 'combo') } );\nvar store = grid.getStore();\n\n\tvar nuevo = function(){\n\t\tvar id = 'gid=' + grid.id ;\n\t\taddTab( 'Nuevo Usuario', '/seguridad/user/new', true, id );\n\t}\n\nvar edit = function(){\n\t\n\t\t\tvar id;\n\t\t\tvar m = grid.getSelections();\n\n\t\t\tif( m.length >= 1 ){\t\n\t\t\t\tfor( var i = 0, len = m.length; i < len; i++ ){\t\t\t\t\t\n\t\t\t\t\t\tvar id = 'id=' + m[i].get('id') + '&gid=' + grid.id ;\n\t\t\t\t\t\taddTab('Modificar Usuario','/seguridad/user/update',true,id);\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tExt.MessageBox.alert('Emporika', 'Por favor seleccione un item');\n\t\t\t}\t\t\t\n}\n\n\tvar save = function(){\n\t\n\tif( combo.getValue() == '' ){\n\t\tExt.Msg.alert('Nutus Economía', 'Debe seleccionar un estado' );\t\n\t}\n\telse\n\t{\n\t\n\t\tvar m = grid.getSelections();\n if(m.length > 0)\n {\n \tExt.MessageBox.confirm( 'Emporika', 'Esta seguro que desea cambiar el estado?' , function(btn){\n\t\t\t\t\n\t\t\t\tif( btn == 'yes' ){\t\n\t\t\t\t\tvar m = grid.getSelections();\n\t\t\t\t\t\n\t\t\t\t\tvar items = Array();\n\t\t\t\t\tfor(var i = 0, len = m.length; i < len; i++){ \n\t\t\t\t\t\tvar item = { id : m[i].get('id') };\n\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t}\n\t\t\t\t\tvar json = { \n\t\t\t\t\t\t\t\t status : combo.getRawValue() ,\n\t\t\t\t\t\t\t\t items : items\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t }\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\tvar pag = grid.getStore().lastOptions.params['start'];\n\t\t\t\t\tgrid.getStore().load( { params : { start : pag, limit: {$page_size} , UpdateStateData: Ext.encode(json) } } );\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, this );\t\n }\n else\n {\n \tExt.MessageBox.alert('Emporika', 'Por favor seleccione un item');\n }\n\n\t}\n\t\n\t}\n\n\nvar eliminar = function(){\n\t\n\tvar m = grid.getSelections();\n if(m.length > 0)\n {\n\t\t\tvar msg = 'Esta seguro que desea eliminar ' + ((m.length>1)?'los':'el') + ' usuario' + ((m.length>1)?'s':'') + '?';\n \tExt.MessageBox.confirm('Emporika', msg , \n\t\t\tfunction(btn){\n\t\t\t\t\tif( btn == 'yes' ){\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar items = Array();\n\t\t\t\t\t\t\tfor(var i = 0, len = m.length; i < len; i++){ \n\t\t\t\t\t\t\t\tvar item = { id: m[i].get('id') };\n\t\t\t\t\t\t\t\titems.push( item );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar pag = grid.getStore().lastOptions.params['start'];\t\n\t\t\t\t\t\t\tstore.load( { params:{ \n\t\t\t\t\t\t\t\t\t\t\t\tstart: pag,\n\t\t\t\t\t\t\t\t\t\t\t\tlimit: {$page_size} , \n\t\t\t\t\t\t\t\t\t\tDeleteUserData: Ext.encode(items) \n\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t });\t\t\n\t\t\t\t\t}\t\t\n\t\t\t}, this );\t\n }\n else\n {\n \tExt.MessageBox.alert('Emporika', 'Por favor seleccione un item');\n }\n}\t\n\t\nvar button1 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Nuevo') } );\nbutton1.on( 'click', nuevo );\n\nvar button2 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Modificar') } );\nbutton2.on( 'click', edit );\n\nvar button3 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Guardar cambios') } );\nbutton3.on( 'click', save );\n\nvar button4 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Eliminar') } );\nbutton4.on( 'click', eliminar );\n\ngrid.on( 'celldblclick', edit );\n\n"; $grid->setEnableKeyEvents(true); $grid->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $grid_render, array("grid")))); //SETEO LA BARRA DE PAGINACION $grid->setBottomToolbar($paging); //Data_Store para llenar el combo con los datos
include_once 'PhpExt/Grid/ColumnConfigObject.php'; include_once 'PhpExt/Grid/GridPanel.php'; include_once 'PhpExt/Data/JsonStore.php'; include_once 'PhpExt/Data/FieldConfigObject.php'; include_once 'PhpExtUx/App/FitToParent.php'; global $ari; $ari->popup = 1; // no mostrar el main_frame //STORE PARA TRAER LA LISTA DE PERSPECTIVAS $store = new PhpExt_Data_JsonStore(); $store->setUrl("/admin/perspective/get_prespectives")->setRoot("topics")->setTotalProperty("totalCount")->setId("id")->setAutoLoad(true); //CAMPOS DEL STORE $store->addField(new PhpExt_Data_FieldConfigObject("name")); $store->addField(new PhpExt_Data_FieldConfigObject("path")); //SE AGREGAN LAS COLUMNAS A LA GRILLA $col_model = new PhpExt_Grid_ColumnModel(); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Nombre", "name", null, 80))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Ruta", "path", null, 250)); //GRILLA $grid = new PhpExt_Grid_GridPanel(); $grid->setColumnModel($col_model)->setStore($store)->setStripeRows(true)->setLoadMask(true); $grid->getPlugins()->add(new PhpExtUx_App_FitToParent()); $grid_render = "\n\nvar edit = function(){\n\nvar m = grid.getSelections();\n\nif(m.length ==1 ){\n\tvar id = 'id=' + m[0].get('name');\n\taddTab( 'Modificar Perpectiva', '/admin/perspective/update', true, id );\n}else{\n\tExt.MessageBox.alert('Emporika', 'Por favor seleccione \"un\" item');\n}\n\n}\n\nvar button1 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Modificar') } );\nbutton1.on( 'click', edit );\n\n\ngrid.on( 'celldblclick', edit );\n\n"; $grid->setEnableKeyEvents(true); $grid->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $grid_render, array("grid")))); //AGREGO EL BOTON MODIFICAR EN LA GRILLA $tb = $grid->getTopToolbar(); $tb->addButton("modificar", "Modificar", "images/edit.gif"); //RESULTADO $resultado = ''; $resultado .= $store->getJavascript(false, "store"); $resultado .= $grid->getJavascript(false, "contenido");
include_once 'PhpExtUx/App/FitToParent.php'; global $ari; $ari->popup = 1; // no mostrar el main_frame $page_size = PAGE_SIZE; $store = new PhpExt_Data_JsonStore(); $store->setUrl("/seguridad/group/get_groups")->setRoot("topics")->setTotalProperty("totalCount")->setId("id"); $store->addField(new PhpExt_Data_FieldConfigObject("id")); $store->addField(new PhpExt_Data_FieldConfigObject("name")); $store->addField(new PhpExt_Data_FieldConfigObject("description")); $check_select = new PhpExt_Grid_CheckboxSelectionModel(); $filter_plugin = new PhpExtUx_Grid_GridFilters(); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("numeric", "id")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("string", "name")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("string", "description")); $col_model = new PhpExt_Grid_ColumnModel(); $col_model->addColumn($check_select)->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Id", "id", null, 30))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Nombre", "name", null, 120))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Descripción", "description", null, 180)); $paging = new PhpExt_Toolbar_PagingToolbar(); $paging->setStore($store)->setPageSize($page_size)->setDisplayInfo(true)->setEmptyMessage("No se encontraron grupos"); $paging->getPlugins()->add($filter_plugin); $grid = new PhpExt_Grid_GridPanel(); $grid->setColumnModel($col_model)->setStore($store)->setStripeRows(true)->setSelectionModel($check_select)->setLoadMask(true); $grid->getPlugins()->add($filter_plugin); $grid->getPlugins()->add(new PhpExtUx_App_FitToParent()); $grid->setBottomToolbar($paging); $grid_render = "\n\nvar store = grid.getStore();\n\n// var tb = grid.getBottomToolbar();\n// tb.doLoad(tb.cursor);\n//nuevo grupo\nvar nuevo = function(){\n\tvar id = 'gid=' + grid.id;\n\taddTab( 'Nuevo Grupo', '/seguridad/group/new', true , id );\n}\n\n//modificar grupo\nvar edit = function(){\n\n\tvar id;\n\tvar m = grid.getSelections();\n\n\tif( m.length >= 1 ){\t\n\t\tfor( var i = 0, len = m.length; i < len; i++ ){\t\t\t\n\t\t\t\tvar id = 'id=' + m[i].get('id') + '&gid=' + grid.id;\n\t\t\t\taddTab( 'Modificar Grupo', '/seguridad/group/update', true, id );\n\t\t}\n\t}\n\telse\n\t{\n\t\tExt.MessageBox.alert('Emporika', 'Por favor seleccione un item');\n\t}\t\n\n}\n\n//eliminar grupo\nvar eliminar = function(){\n\n\t\tvar m = grid.getSelections();\n if(m.length > 0)\n {\n\t\t\tvar msg = 'Esta seguro que desea eliminar ' + ((m.length>1)?'los':'el') + ' grupo' + ((m.length>1)?'s':'') + '?';\n \tExt.MessageBox.confirm('Emporika', msg , function(btn){\n\t\t\t\tif( btn == 'yes' ){\n\t\t\t\t\tvar m = grid.getSelections();\n\t\t\t\t\tvar items = Array();\n\t\t\t\t\tfor( var i = 0, len = m.length; i < len; i++){ \n\t\t\t\t\t\tvar item = { id : m[i].get('id') }\n\t\t\t\t\t\titems.push(item);\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\tvar pag = grid.getStore().lastOptions.params['start'];\n\t\t\t\t\tstore.load({params:{ start : pag,\n \t\t\t\t\t limit : {$page_size},\n\t\t\t\t\t\t\t DeleteGroupData : Ext.encode(items)\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t});\t\t\t\t\t\n\t\t\t\t}\t\n\t\t\t},this );\t\n }\n else\n {\n \tExt.MessageBox.alert('Emporika', 'Por favor seleccione un item');\n }\n\n\n\n\n}\n\ngrid.on( 'celldblclick', edit );\n\nvar button1 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Nuevo') } );\nbutton1.on( 'click', nuevo );\n\nvar button2 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Modificar') } );\nbutton2.on( 'click', edit );\n\nvar button3 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Eliminar') } );\nbutton3.on( 'click', eliminar );\n\n"; $grid->setEnableKeyEvents(true); $grid->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $grid_render, array("grid")))); $tb = $grid->getTopToolbar(); $tb->addButton("new", "Nuevo", "images/add.png"); $tb->addSeparator("sep1");
include_once 'PhpExt/Form/ComboBox.php'; include_once 'PhpExtUx/Grid/CheckColumn.php'; $formatDate = PhpExt_Javascript::functionDef("formatDate", "return value ? value.dateFormat('M d, Y') : '';", array("value")); // custom column plugin example $checkColumn = new PhpExtUx_Grid_CheckColumn("Indoor?"); $checkColumn->setDataIndex("indoor"); $checkColumn->setWidth(55); // the column model has information about grid columns //dataIndex maps the column to the specific data field in // the data store (created below) // ColumnModel $txtCommon = PhpExt_Form_TextField::createTextField('txtCommon')->setAllowBlank(false); $cmbLight = PhpExt_Form_ComboBox::createComboBox("cmbLight")->setTypeAhead(true)->setTriggerAction(PhpExt_Form_ComboBox::TRIGGER_ACTION_ALL)->setTransform("light")->setLazyRender(true)->setListCssClass('x-combo-list-small'); $txtPrice = PhpExt_Form_NumberField::createNumberField("txtPrice")->setAllowBlank(false)->setAllowNegative(false)->setMaxValue(100000); $dtAvailable = PhpExt_Form_DateField::createDateField("dtAvaliable")->setFormat("m/d/y")->setMinValue("01/01/06")->setDisabledDays(array(0, 6))->setDisabledDaysText("Plants are not available on the weekends"); $colModel = new PhpExt_Grid_ColumnModel(); $colModel->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Common Name", "common", "common", 220)->setEditor($txtCommon))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Light", "light", null, 130)->setEditor($cmbLight))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Price", "price", "price", 70, PhpExt_Ext::HALIGN_RIGHT, "usMoney")->setEditor($txtPrice))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Avaliable", "availDate", "availDate", 95, null, PhpExt_Javascript::variable('formatDate'))->setEditor($dtAvailable))->addColumn($checkColumn); // this could be inline, but we want to define the Plant record // type so we can add records dynamically $fields = new PhpExt_Data_FieldConfigObjectCollection(); $fields->add(new PhpExt_Data_FieldConfigObject("common", null, PhpExt_Data_FieldConfigObject::TYPE_STRING)); $fields->add(new PhpExt_Data_FieldConfigObject("botanical", null, PhpExt_Data_FieldConfigObject::TYPE_STRING)); $fields->add(new PhpExt_Data_FieldConfigObject("light")); $fields->add(new PhpExt_Data_FieldConfigObject("price", null, PhpExt_Data_FieldConfigObject::TYPE_FLOAT)); $fields->add(new PhpExt_Data_FieldConfigObject("availDate", "availability", PhpExt_Data_FieldConfigObject::TYPE_DATE, "m/d/Y")); $fields->add(new PhpExt_Data_FieldConfigObject("indoor", null, PhpExt_Data_FieldConfigObject::TYPE_BOOLEAN)); $plant = PhpExt_Data_Record::create($fields); // Reader $reader = new PhpExt_Data_XmlReader(); $reader->setRecord("plant"); $reader->setRecordType("Plant");
$types = array(); $types[] = array(1, "Fijo"); $types[] = array(2, "Flotante"); $filter_plugin = new PhpExtUx_Grid_GridFilters(); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("numeric", "id")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("string", "name")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("boolean", "default")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("list", "type", PhpExt_Javascript::variable(json_encode($types)))); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("numeric", "cotizacion")); //SE CREA EL PAGINADOR $paging = new PhpExt_Toolbar_PagingToolbar(); $paging->setStore($store)->setPageSize($page_size)->setDisplayInfo(true)->setEmptyMessage("No se encontraron Monedas"); $paging->getPlugins()->add($filter_plugin); $check_select = new PhpExt_Grid_CheckboxSelectionModel(); //AGREGO LAS COLUMNAS QUE VA USAR EL GRID $col_model = new PhpExt_Grid_ColumnModel(); $col_model->addColumn($check_select)->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Id", "id"))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Moneda", "name"))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Predeterminada", "default"))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Tipo", "type"))->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Ultima cotización", "cotizacion")); //CREACION DEL GRID $grid = new PhpExt_Grid_EditorGridPanel(); $grid->setStore($store)->setSelectionModel($check_select)->setColumnModel($col_model)->setLoadMask(true)->setenableColLock(false); $grid->getPlugins()->add($filter_plugin); $grid->getPlugins()->add(new PhpExtUx_App_FitToParent()); $grid->setBottomToolbar($paging); $grid_render = "\n\nvar nueva = function(){\n\tvar id = 'gid=' + grid.id ;\n\taddTab( 'Nueva Moneda', '/currency/currency/new', true, id );\n}\n\nvar edit = function(){\n\n\tvar id;\n\tvar m = grid.getSelections();\n\n\t\tif( m.length >= 1 )\n\t\t{\t\n\t \t for( var i = 0, len = m.length; i < len; i++ ){\t\t\t\t\t\n\t\t\t\tvar id = 'id=' + m[i].get('id') + '&gid=' + grid.id ;\n\t\t\t\taddTab( 'Modificar Moneda', '/currency/currency/update' , true, id );\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tExt.MessageBox.alert('Emporika', 'Por favor seleccione un item');\n\t\t}\t\n}\n\nvar button1 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Nueva') } );\nbutton1.on( 'click', nueva );\n\nvar button2 = grid.getTopToolbar().items.find( function(c){ return ( c.text == 'Modificar') } );\nbutton2.on( 'click', edit );\n\ngrid.on( 'celldblclick', edit );\n\n"; $grid->setEnableKeyEvents(true); $grid->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $grid_render, array("grid")))); //SE AGREGON LOS BOTONES EN LA BARRA DE MENU TOP $tb = $grid->getTopToolbar(); $tb->addButton("new", "Nueva", "images/add.png"); $tb->addSeparator("sep1"); $tb->addButton("modificar", "Modificar", "images/edit.gif");