Guest User

Untitled

a guest
Jul 22nd, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.03 KB | None | 0 0
  1. /**
  2. * perfil.js
  3. *
  4. * Vista de la opción de perfiles
  5. *
  6. * @author Alex Barrios <alex@alexertech.com>
  7. * @version 27.01.2010 11:46:44
  8. * @package perfiles
  9. *
  10. * */
  11.  
  12. // Inicialización
  13.  
  14. var controlador = 'perfil.php';
  15. var idCmp = 'Perfil';
  16.  
  17. var cancelar = new Ext.form.Button({
  18. text : 'Cancelar',
  19. handler : function(){
  20. this.findParentByType('window').close();
  21. }
  22. });
  23.  
  24.  
  25. /**
  26. *
  27. * Definición del formulario de agregar
  28. *
  29. **/
  30.  
  31. appAir.form.Perfil= Ext.extend(Ext.FormPanel, {
  32.  
  33. initComponent : function() {
  34.  
  35. // Atributos básicos para el formulario
  36. var config = {
  37. method : 'POST',
  38. autoWidth : true,
  39. autoHeight : true,
  40. labelWidth : 80,
  41. frame : true,
  42. defaultType : 'textfield',
  43. monitorValid : true,
  44. items : [{
  45. fieldLabel : 'Nombre',
  46. name : 'nombre',
  47. allowBlank : false
  48. }]
  49. };
  50.  
  51. Ext.apply(this, Ext.apply(this.initialConfig, config));
  52.  
  53. appAir.form.Perfil.superclass.initComponent.call(this);
  54.  
  55. }
  56. });
  57.  
  58. // Registramos el componente en Ext
  59. Ext.reg('appAir.form.Perfil', appAir.form.Perfil);
  60.  
  61.  
  62.  
  63. /**
  64. *
  65. * Definición de la rejilla con sus opciones integradas
  66. *
  67. **/
  68.  
  69. appAir.grid.Perfil = Ext.extend(Ext.grid.GridPanel, {
  70.  
  71. initComponent : function() {
  72.  
  73. /**
  74. *
  75. * Definición del lector de campos para las interacciones JSON
  76. *
  77. **/
  78.  
  79. var dReader = new Ext.data.JsonReader({
  80. successProperty : 'success',
  81. root : 'rows',
  82. totalProperty : 'totaldata',
  83. id : 'cod_perfil'
  84. }, Ext.data.Record.create ([
  85. { name : 'cod_perfil', type : 'int'},
  86. { name : 'nombre' , type : 'string'}
  87. ])
  88. );
  89.  
  90. /**
  91. *
  92. * Fuente de datos: indícamos de donde vamos a obtener la
  93. * información para cargar en la rejilla
  94. *
  95. **/
  96.  
  97. var dstore = new Ext.data.Store({
  98. url : remoteSrvUrl+''+controlador+''+phpSes,
  99. reader : dReader
  100. });
  101. dstore.load();
  102.  
  103.  
  104. /**
  105. *
  106. * Agregar: Generamos una nueva ventana de tipo dialogo (modal)
  107. * que desactiva todo el fondo para dar el foco total a este
  108. * elemento y muestra el formulario
  109. *
  110. **/
  111. function agregar() {
  112.  
  113. var formAgregar = new appAir.form.Perfil({
  114. url : remoteSrvUrl+''+controlador+''+phpSes+'&acc=1',
  115. buttons : [{
  116. text : 'Agregar',
  117. scope : this,
  118. handler : function() {
  119.  
  120. var msj = Ext.MessageBox.wait('Por favor espere...', 'Enviando datos');
  121.  
  122. formAgregar.getForm().submit({
  123. success : function(f,a){
  124.  
  125. msj.hide();
  126. var resp = a.result;
  127.  
  128. if (resp.success == 'true') {
  129. Ext.MessageBox.alert('Mensaje', resp.mensaje);
  130. formAgregar.findParentByType('window').close();
  131. dstore.reload();
  132. } else
  133. Ext.MessageBox.alert('Mensaje', resp.mensaje);
  134.  
  135. },
  136. failure : errores
  137. });
  138. }
  139. },
  140. cancelar
  141. ]
  142.  
  143. });
  144.  
  145. mostrarVentana('Agregar Registro',formAgregar);
  146.  
  147. }
  148.  
  149. /**
  150. *
  151. * Modificar: Generamos una nueva ventana de tipo dialogo (modal)
  152. * que desactiva todo el fondo para dar el foco total a este
  153. * elemento y muestra el formulario
  154. *
  155. **/
  156. function modificar(idSel) {
  157.  
  158. }
  159.  
  160.  
  161. /**
  162. *
  163. * Eliminar: Una vez el usuario ha seleccionado una fila de
  164. * la rejilla, pide confirmación y luego elimina el registro.
  165. *
  166. **/
  167. function eliminar(idSel){
  168.  
  169. var msj = Ext.MessageBox.wait('Por favor espere...', 'Enviando datos');
  170.  
  171. var vparams ='&cod='+idSel+'&acc=3';
  172.  
  173. Ext.Ajax.request({
  174. url : remoteSrvUrl+''+controlador+''+phpSes,
  175. method : 'POST',
  176. params : vparams,
  177. success : function(responseObject) {
  178.  
  179. var resp = Ext.decode(responseObject.responseText);
  180.  
  181. if (resp.success == 'true') {
  182. Ext.MessageBox.alert('Mensaje', resp.mensaje);
  183. dstore.load();
  184. } else
  185. Ext.MessageBox.alert('Error!', resp.mensaje);
  186.  
  187. },
  188. failure : function(responseObject) {
  189. Ext.MessageBox.alert('Error', 'Servidor no encontrado');
  190. }
  191. });
  192.  
  193. }
  194.  
  195.  
  196. /**
  197. *
  198. * Barra de herramientas
  199. *
  200. **/
  201.  
  202. this.tbar = new Ext.Toolbar({
  203. margins : '5 5 5 5',
  204. items : [
  205. ' ',
  206. {
  207. text : ' Agregar ',
  208. iconCls : 'tb_add',
  209. handler : agregar
  210. },{
  211. text : ' Modificar ',
  212. iconCls : 'tb_edit',
  213. scope : this,
  214. handler : function() {
  215.  
  216. selId = this.selModel.selections.items;
  217.  
  218. if( selId.length > 0 )
  219. modificar(selId[0].id);
  220. else
  221. Ext.MessageBox.alert('Mensaje', 'Por favor selecciona un item a eliminar');
  222. }
  223. },{
  224. text : ' Eliminar ',
  225. iconCls : 'tb_del',
  226. scope : this,
  227. handler : function() {
  228.  
  229. selId = this.selModel.selections.items;
  230.  
  231. if( selId.length > 0 )
  232. Ext.MessageBox.confirm('Confirmación', 'De verdad deseas eliminar el registro?', function() {eliminar(selId[0].id)});
  233. else
  234. Ext.MessageBox.alert('Mensaje', 'Por favor selecciona un item a eliminar');
  235. }
  236. }
  237. ]
  238. });
  239.  
  240.  
  241. /**
  242. *
  243. * Barra de paginación
  244. *
  245. **/
  246.  
  247. this.bbar = new Ext.PagingToolbar({
  248. pageSize : res_perpage,
  249. store : dstore,
  250. displayInfo : false,
  251. disabled : true,
  252. beforePageText : 'Página',
  253. afterPageText : 'de {0}',
  254. });
  255.  
  256.  
  257. /**
  258. *
  259. * Atributos básicos para la rejilla
  260. *
  261. **/
  262.  
  263. this.columns = [{
  264. id : 'nombre',
  265. header : 'Nombre',
  266. dataIndex : 'nombre'
  267. }];
  268.  
  269. this.on('rowdblclick', function(grid,rowIndex, e) {
  270. // air.Introspector.Console.dump(grid.store.data.items[rowIndex]);
  271. // Ext.Msg.alert('Mensaje', 'cod_perfil = '+grid.store.data.items[rowIndex].id);
  272. });
  273.  
  274. Ext.apply(this, {
  275. trackMouseOver : false,
  276. disableSelection : false,
  277. loadMask : true,
  278. store : dstore,
  279. stripeRows : true,
  280. autoExpandColumn : 'nombre'
  281. });
  282.  
  283. appAir.grid.Perfil.superclass.initComponent.call(this);
  284.  
  285. }
  286. });
  287.  
  288. Ext.reg('appAir.grid.Perfil', appAir.grid.Perfil);
Add Comment
Please, Sign In to add comment