Example #1
0
 /**
  * Helper function to create a Hidden field.  Useful for quick adding it to a ComponentCollection
  *
  * @param string $name The field's HTML name attribute.
  * @param string $value A value to initialize this field with.
  * @param string $id The unique id of this component (defaults to an auto-assigned id).
  * @return PhpExt_Form_Hidden
  */
 public static function createHidden($name, $value = null, $id = null)
 {
     $c = new PhpExt_Form_Hidden();
     $c->setName($name);
     if ($value !== null) {
         $c->setValue($value);
     }
     if ($id !== null) {
         $c->setId($id);
     }
     return $c;
 }
Example #2
0
$check_change = "\n\n\n\nif( n.isLeaf() ){\n\tvar contador = 0;\n\t\tn.bubble(function(c){\n\t\t\tif(c.getUI().checkbox){\n\t\t\t\tif(!c.isLeaf() ){\n\t\t\t\t\tif(n.getUI().checkbox.checked == true ){\n\t\t\t\t\t\tc.getUI().checkbox.checked = true;\n\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tc.eachChild(function(nc){\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif(!nc.isLeaf()){\n\t\t\t\t\t\t\t\t\tnc.eachChild(function(ncc){\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tif( ncc.getUI().checkbox.checked == true ){\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tcontador++;\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\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\t\t\t\t\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif(contador == 0){\n\t\t\t\t\t\t\t\t\t\tc.getUI().checkbox.checked = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\n\n}\n\nif(!n.isLeaf()){\n\tn.eachChild(function(nc){\n\tif( n.getUI().checkbox.checked == false ){\n\t\tif(!nc.isLeaf()){\n\t\t\tnc.eachChild(function(ncc){\t\t\t\t\n\t\t\t\tncc.getUI().checkbox.checked = false;\n\t\t\t});\n\t\t}\n\t}\t\n\t});\n\t\n}\n\nvar cambios = new Array();\nvar entro = true;\nvar cont = this.findParentByType('form').getForm().findField('modulos');\n\n\nif(cont.getValue()!=''){\nvar cambios = cont.getValue().split(',');\n\nfor( i = 0; i < cambios.length; i++ ){\n\tif(n.id==cambios[i]){\n\t\t\tcambios[i+1] = c;\n\t\t\tentro = false;\n\t\t\t}\n\t\t\t}\n}\n\t\t\nif(entro){\n\tcambios.push(n.id);\n\tcambios.push(c);\n}\nif( cambios.length >1 ){\n\tcont.setValue(cambios.join(','));\n}\n\n\t\t   ";
$tree_modulos = new PhpExt_Tree_TreePanel();
$tree_modulos->setAnimate(true)->setHeight(250)->setWidth(530)->setRootVisible(false)->setEnableDd(false)->setRoot($root)->setContainerScroll(true)->setAutoScroll(true)->setLoader($tree_loader);
$tree_modulos->attachListener("checkchange", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $check_change, array("n,c"))));
$tab_modulos->addItem($tree_modulos);
$tab_panel->addItem($tab_modulos);
//Boton actualizar OnClick
$handler_actualizar = "function(){\n\nthis.findParentByType('form').getForm().submit(\n\t{      \n\t\t\twaitMsg : 'Enviando Datos',\n\t\t  waitTitle : 'Emporika',\n\t \tsuccess_msg : 'Rol guardado correctamente',\n\tgrid_reload_id  : '{$grid_id}',\n\t\t    success : function(){\t\t\t\t\n\t\t\t\tExt.getCmp('treePanel').getRootNode().reload();\t\t\t\t\n\t\t   }\n\t}\n\t);\t\n\n\t}";
$btn_actualizar = PhpExt_Button::createTextButton("Actualizar", new PhpExt_JavascriptStm($handler_actualizar));
//Data_Reader para leer los resultados devueltos
$error_reader = new PhpExt_Data_JsonReader();
$error_reader->setRoot("errors");
$error_reader->setSuccessProperty("success");
$error_reader->addField(new PhpExt_Data_FieldConfigObject("id"));
$error_reader->addField(new PhpExt_Data_FieldConfigObject("msg"));
$modulos = PhpExt_Form_Hidden::createHidden("modulos");
$id_role = array();
$id_role["id"] = $role->get("role");
//formulario que contiene todos los controles
$frm_update_role = new PhpExt_Form_FormPanel();
$frm_update_role->setErrorReader($error_reader)->setBaseParams($id_role)->setUrl("/seguridad/role/update_process")->setFrame(true)->setWidth(580)->setHeight(400)->setTitle("Datos del rol")->setMethod(PhpExt_Form_FormPanel::METHOD_POST);
$form_render = "\n\tvar chk = form.findBy( function(c){ return ( c.name == 'chk_anonimo' ); } );\t\t\t\n\tvar panel_usuarios = form.findBy( function(c){ return (c.xtype == 'panel' && c.title == 'Usuarios' ) } );\t\t\t\n\tvar panel_grupos = form.findBy( function(c){ return (c.xtype == 'panel' && c.title == 'Grupos' ) } );\t\t\t\n\n\tvar groups = form.findBy( function(c){ return ( c.name == 'grupos' ) } );\t\t\t\n\tvar users = form.findBy( function(c){ return ( c.name == 'usuarios' ) } );\t\t\t\n\t\n\tchk[0].on( 'check', function(t,c){\n\t\n\t\n\n\tif( ( groups[0].toStore.getCount() != 0 ) || ( users[0].toStore.getCount() != 0 ) ){\t\n\t\tt.setValue(false);\n\t\tpanel_usuarios[0].setDisabled(false);\n\t\tpanel_grupos[0].setDisabled(false);\n\t}\n\telse\n\t{\n\t\tpanel_usuarios[0].setDisabled(c);\n\t\tpanel_grupos[0].setDisabled(c);\n\t}\t\n});\n\n";
$frm_update_role->setEnableKeyEvents(true);
$frm_update_role->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $form_render, array("form"))));
//marco para contenener los controles
$marco = new PhpExt_Form_FieldSet();
$marco->setAutoHeight(true);
//agrego todos los controles al marco
$marco->addItem($tab_panel);
$marco->addItem($modulos);
$frm_update_role->addButton($btn_actualizar);