Example #1
0
$page->addComponent($f);
$page->addComponent(new TitleComponent("Cargar plantilla Excel (<" . $POS_CONFIG["TAM_MAX_PLANTILLAS"] . "MB)", 4));
$CmdSubirArchivo = "<p>\n";
$CmdSubirArchivo .= "<form action=\"documentos.php#Base\" method=\"post\" enctype=\"multipart/form-data\">\n";
$CmdSubirArchivo .= "<input type=\"file\" name=\"Plantilla\" size=\"50\"  class=\"POS Boton\" id=\"subArch\" accept=\"xlsx\"\n";
$CmdSubirArchivo .= "<br><br><p>\n";
$CmdSubirArchivo .= "<input type=\"submit\" value=\"Subir plantilla\"></p>\n";
$CmdSubirArchivo .= "</form>\n";
$CmdSubirArchivo .= "</p>\n";
$page->addComponent($CmdSubirArchivo);
$page->addComponent(new TitleComponent("Campos para el documento", 3));
$html = "<div id='editor-grid' style='margin-top: 5px'></div>\n\n\t<script type='text/javascript' charset='utf-8'>\n\tvar extraParamsStore;\n\tvar rowEditing;\n\tvar comboBoxEnums = [];\n\n\tfunction attachExtraParams(o) {\n\t\to.extra_params = getParams();\n\t\treturn o;\n\t}\n\n\tfunction getParams() {\n\t\tvar c = extraParamsStore.getCount(),\n\t\tout = [];\n\t\tfor (var i=0; i < c; i++) {\n\t\t\tvar o = extraParamsStore.getAt(i);\n\t\t\tout.push({\n\t\t\t\t\tdesc : o.get('desc'),\n\t\t\t\t\ttype : o.get('type'),\n\t\t\t\t\tobligatory : o.get('obligatory'),\n\t\t\t\t\tenum : o.get('enum_list')\n\t\t\t});\n\t\t};\n\t\treturn Ext.JSON.encode(out);\n\t}\n\n\tvar win;\n\tvar enumsWindow;\n\n\tfunction showEnumWindow(event, record) {\n\t\tenumsWindow = Ext.create('Ext.window.Window', {\n\t\t\ttitle: 'Layout Window with title <em>after</em> tools',\n\t\t\tclosable: true,\n\t\t\tcloseAction: 'hide',\n\t\t\tmodal:  true,\n\t\t\t\tpadding : 5,\n\t\t\twidth: 300,\n\t\t\tminWidth: 250,\n\t\t\titems: [\n\t\t\t{\n\t\t\t\txtype : 'panel',\n\t\t\t\titems :[{\n\t\t\t\t\txtype : 'textarea',\n\t\t\t\t\tfieldLabel: 'Enums',\n\t\t\t\t\tid : 'enums_textarea',\n\t\t\t\t\tpadding : 5,\n\t\t\t\t\tallowBlank: false,\n\t\t\t\t\tvalue : record.get('enum_list')\n\t\t\t\t},{\n\t\t\t\t\txtype : 'button',\n\t\t\t\t\tpadding : 5,\n\t\t\t\t\ttext : 'Guardar',\n\t\t\t\t\thandler :  function(a,b,c){\n\t\t\t\t\t\trecord.set('enum_list',Ext.getCmp('enums_textarea').getValue() );\n\t\t\t\t\t\tenumsWindow.destroy();\n\t\t\t\t\t}\n\t\t\t\t}]\n\t\t\t}\n\t\t\t]\n\t\t}).show();\n\t}\n\n\tExt.onReady(function(){\n\t\tExt.define('ExtraParam', {\n\t\t\textend: 'Ext.data.Model',\n\t\t\tfields: [ \n\t\t\t\t'id',\n\t\t\t\t'desc',\n\t\t\t\t{ name: 'type', type: 'enum' },\n\t\t\t\t{ name: 'enum_list', type: 'string' },\n\t\t\t\t{ name: 'obligatory', type: 'bool' }\n\t\t\t]});\n\n\t\t\textraParamsStore = Ext.create('Ext.data.Store', {\n\t\t\t\t  autoDestroy: true,\n\t\t\t\t  model: 'ExtraParam',\n\t\t\t\t  proxy: {\n\t\t\t\t\t\ttype: 'memory'\n\t\t\t\t  },\n\t\t\t\t  data: [],\n\t\t\t\t  sorters: [{\n\t\t\t\t\t\tproperty: 'start',\n\t\t\t\t\t\tdirection: 'ASC'\n\t\t\t\t  }],\n\t\t\t\t\tlisteners : {\n\t\t\t\t\t\t'dataChanged' : function(context, eopts) {\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'update' : function(event, record) {\n\t\t\t\t\t\t\tvar changes = record.getChanges();\n\t\t\t\t\t\t\tif ((changes.type !== undefined) \n\t\t\t\t\t\t\t\t&& (changes.type == 'enum') ) {\n\t\t\t\t\t\t\t\tshowEnumWindow(event, record);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t});\n\n\t\t\trowEditing = Ext.create('Ext.grid.plugin.RowEditing', { clicksToMoveEditor: 1, autoCancel: false });\n\n\t\t\tgrid = Ext.create('Ext.grid.Panel', {\n\t\t\t\t  store: extraParamsStore,\n\t\t\t\t  bodyCls: 'foo',\n\t\t\t\t  id : 'extra-params-grid',\n\t\t\t\t  columns: [{\n\t\t\t\t\t\theader: 'Descripcion',\n\t\t\t\t\t\tdataIndex: 'desc',\n\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\teditor: { allowBlank: false }\n\t\t\t\t  },\n\t\t\t\t  {\n\t\t\t\t\t\theader: 'Tipo de dato',\n\t\t\t\t\t\tdataIndex: 'type',\n\t\t\t\t\t\twidth: 130,\n\t\t\t\t\t\tfield: {\n\t\t\t\t\t\t\txtype: 'combobox',\n\t\t\t\t\t\t\ttypeAhead: true,\n\t\t\t\t\t\t\ttriggerAction: 'all',\n\t\t\t\t\t\t\tselectOnTab: true,\n\t\t\t\t\t\t\tstore: [\n\t\t\t\t\t\t\t\t['textarea',\t\t'Area de texto'],\n\t\t\t\t\t\t\t\t['text',\t\t\t'Linea de texto'],\n\t\t\t\t\t\t\t\t['date',\t\t\t'Fecha'],\n\t\t\t\t\t\t\t\t['bool',\t\t\t'Desicion'],\n\t\t\t\t\t\t\t\t['password',\t\t'Contrasena'],\n\t\t\t\t\t\t\t\t['enum',\t\t\t'Opciones']\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\tlazyRender: true,\n\t\t\t\t\t\tlistClass: 'x-combo-list-small'\n\t\t\t\t\t\t}\n\t\t\t\t  },\n\t\t\t\t  {\n\t\t\t\t\t\theader: 'Obligatorio',\n\t\t\t\t\t\tdataIndex: 'obligatory',\n\t\t\t\t\t\twidth: 130,\n\t\t\t\t\t\tfield: {\n\t\t\t\t\t\t\t  xtype: 'combobox',\n\t\t\t\t\t\t\t  typeAhead: true,\n\t\t\t\t\t\t\t  triggerAction: 'all',\n\t\t\t\t\t\t\t  selectOnTab: true,\n\t\t\t\t\t\t\t  store: [\n\t\t\t\t\t\t\t\t\t[true,\t'Si'],\n\t\t\t\t\t\t\t\t\t[false, 'No']\n\t\t\t\t\t\t\t  ],\n\t\t\t\t\t\t\tlazyRender: true,\n\t\t\t\t\t\t\tlistClass: 'x-combo-list-small'\n\t\t\t\t\t\t}\n\t\t\t\t  }],\n\t\t\t\t  renderTo: 'editor-grid',\n\t\t\t\t  width: '100%',\n\t\t\t\t  height: 400,\n\t\t\t\t  frame: false,\n\t\t\t\t  tbar: [{\n\t\t\t\t\t\t\ttext: 'Nuevo parametro',\n\t\t\t\t\t\t\ticonCls: 'not-ok',\n\t\t\t\t\t\t\thandler : function() {\n\t\t\t\t\t\t\t\trowEditing.cancelEdit();\n\t\t\t\t\t\t\t\tvar r = Ext.ModelManager.create({\n\t\t\t\t\t\t\t\t\tdesc: 'nuevo',\n\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\tobligator: false\n\t\t\t\t\t\t\t\t}, 'ExtraParam');\n\t\t\t\t\t\t\t\textraParamsStore.insert(0, r);\n\t\t\t\t\t\t\t\trowEditing.startEdit(0, 0);\n\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\t\titemId: 'removeEmployee',\n\t\t\t\t\t\t\ttext: 'Remover parametro',\n\t\t\t\t\t\t\ticonCls: 'ok',\n\t\t\t\t\t\t\thandler: function() {\n\t\t\t\t\t\t\t\tvar sm = grid.getSelectionModel();\n\t\t\t\t\t\t\t\trowEditing.cancelEdit();\n\t\t\t\t\t\t\t\textraParamsStore.remove(sm.getSelection());\n\t\t\t\t\t\t\t\tsm.select(0);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdisabled: true\n\t\t\t\t\t\t}],\n\t\t\t\t\tplugins: [rowEditing],\n\t\t\t\t\tlisteners: {\n\t\t\t\t\t\t'selectionchange': function(view, records) {\n\t\t\t\t\t\tgrid.down('#removeEmployee').setDisabled(!records.length);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\tvar grid;\n\tfunction InsertarFila(Elemento) {\n\t\trowEditing.cancelEdit();\n\n\t\tfor (Elem in Elemento) {\n\t\t\t var r = Ext.ModelManager.create({\n\t\t\t\t\t\tdesc: Elemento[Elem],\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tobligator: false\n\t\t\t\t\t\t}, 'ExtraParam');\n\n\t\t\textraParamsStore.insert(Elem, r);\n\t\t}\n\t};\n          document.getElementsByName(\"nombre_plantilla\")[0].setAttribute(\"disabled\",\"disabled\");\n\n</script>";
$page->addComponent($html);
$page->addComponent($W);
//Componente en caso de abrir algĂșn archivo de plantilla
$page->render();
die;
$json = '{
			"margin-top" : 1,
			"margin-bottom" : 1,
			"margin-left" : 1,
			"margin-right" : 1,
			"body" : [
				{
					"type" 		: "text",
					"fontSize" 	: 17,
					"x" 		: 0,
					"y" 		: 15,
					"value" 	: "hola {nombre}"
				},
				{