source: branches/1.2/workflow/js/adminsource/templates_folder.js @ 1349

Revision 1349, 9.9 KB checked in by niltonneto, 15 years ago (diff)

Ticket #561 - Inclusão do módulo Workflow faltante nessa versão.

  • Property svn:executable set to *
Line 
1var tpl_sort_field = 'file_name';
2var tpl_sort_asc   = 1;
3var tpl_toolbar;
4var tpl_rewrite = false;
5
6function set_tpl_rewrite()
7{
8        tpl_rewrite = !tpl_rewrite;
9}
10
11function show_template_window()
12{
13        var showHnd = function(data)
14        {
15                div = document.getElementById('model_template_list');
16                if (!div) {
17                        div = document.createElement("DIV");
18                        div.style.visibility = "hidden";
19                        div.style.position   = "absolute";
20                        div.id                           = "model_template_list";
21               
22                        tb = document.createElement("TABLE");
23                        tr = document.createElement("TR");
24                        td = document.createElement("TD");
25
26                        td.innerHTML = '<b>Selecione o modelo desejado:</b><br>';
27                        se = document.createElement("SELECT");
28                        se.setAttribute('name','tplfile');
29                        se.setAttribute('size','10');
30                        se.setAttribute('id','win_tpl_model');
31                        se.style.width = '200px';
32
33                        for (i = 0; i < data.length; i++)
34                        {
35                                op = document.createElement("OPTION");
36                                op.setAttribute('value',data[i]['file_name']);
37                                if (i == 0)
38                                        op.setAttribute('selected','selected');
39                                op.innerHTML = data[i]['file_name'];
40                                se.appendChild(op);
41                        }
42
43                        td.appendChild(se);
44                        tb.setAttribute('align','center');
45                        tr.appendChild(td);     
46                        tb.appendChild(tr);
47
48                        tr = document.createElement("TR");
49                        td = document.createElement("TD");
50               
51                        td.innerHTML = '<b>Nome do arquivo a ser criado:</b><br>';
52
53                        it = document.createElement("INPUT");
54                        it.setAttribute('type','text');
55                        it.setAttribute('name','tpl_novo_nome');
56                        it.setAttribute('value','arquivo.tpl');
57                        it.setAttribute('id','win_tpl_name');
58                        it.style.width = '200px';
59
60                        td.appendChild(it);
61                        tr.appendChild(td);     
62                        tb.appendChild(tr);
63
64                        tr = document.createElement("TR");
65                        td = document.createElement("TD");
66
67                        ch = document.createElement("INPUT");
68                        ch.setAttribute('type','checkbox');
69                        ch.setAttribute('name','tplrewrite');
70                        ch.setAttribute('onclick','set_tpl_rewrite()');
71                        td.appendChild(ch);
72                        td.innerHTML += 'Sobrescreve se já existe';
73                        td.setAttribute('valign','top');
74
75                        tr.appendChild(td);     
76                        tb.appendChild(tr);
77
78                        tr = document.createElement("TR");
79                        td = document.createElement("TD");
80                        td.setAttribute('align','center');
81
82                        bt = document.createElement("INPUT");
83                        bt.setAttribute('type','button');
84                        bt.setAttribute('value','Ok');
85                        bt.setAttribute('name','Ok');
86                        bt.setAttribute('onclick','create_new_template()');
87                        bt.style.width = '70px';
88                        td.appendChild(bt);
89
90                        bt = document.createElement("INPUT");
91                        bt.setAttribute('type','button');
92                        bt.setAttribute('value','Cancelar');
93                        bt.setAttribute('name','Cancelar');
94                        bt.setAttribute('onclick','win.close()');
95                        bt.style.width = '70px';
96                        td.appendChild(bt);
97
98                        tr.appendChild(td);     
99                        tb.appendChild(tr);
100
101                        div.appendChild(tb);   
102
103                        document.body.appendChild(div);
104                }
105                show_window('Modelos de Template',div,250,270);
106        };
107
108        cExecute ("$this.bo_adminsource.get_model_files", showHnd, "type=template");
109}
110
111function sort_tpl_list(field)
112{
113        var icon_order;
114
115        tpl_sort_field = field;
116        tpl_sort_asc   = (tpl_sort_asc == 1) ? 0 : 1;
117
118        redraw_template_list();
119}
120
121function createTemplateList(folder)
122{
123        var table = document.createElement("TABLE");
124    var body  = document.createElement("TBODY");
125        var tr    = document.createElement("TR");
126        var td    = new Array(4);
127
128        var fillTemplateList = function(data) {
129                var tr;
130                var td;         
131               
132                if (data != null) {
133                        for (i = 0; i < data.length; i++) {
134                                tr = document.createElement("TR");
135                                td = new Array(5);
136       
137                                for (j = 0; j < td.length; j++) {
138                                        td[j] = document.createElement('TD');
139                                }
140         
141                                tr.className = 'table_elements_tr_line';
142
143                                if (i % 2) {
144                    tr.style.backgroundColor = '#FFFFFF';
145                } else {
146                    tr.style.backgroundColor = '#F5F5F5';
147                }
148
149                                td[0].align = 'left';
150                                td[0].innerHTML = get_link("javascript:void(0)", data[i]['file_name'],"onclick=\"window.open('"+_web_server_url+"/index.php?menuaction=workflow.ui_templateeditor.form&proc_name="+data[i]['proc_name']+"&file_name="+data[i]['file_name']+"&type="+data[i]['tipo_codigo']+"&proc_id="+data[i]['proc_id']+"','','width=850,height=680,screenX=100,left=10,screenY=100,top=10,toolbar=no,scrollbars=yes,resizable=yes')\"");
151                                       
152                                td[1].align = 'center';
153                                td[1].innerHTML = data[i]['tamanho'];   
154               
155                                td[2].align = 'center';
156                                td[2].innerHTML = data[i]['modificado'];       
157       
158                                td[3].align = 'center';
159                                td[3].innerHTML = get_link("javascript:void(0)", get_icon('phpedit.png','Editar Template','hspace=1'),"onclick=\"window.open('"+_web_server_url+"/index.php?menuaction=workflow.ui_templateeditor.form&proc_name="+data[i]['proc_name']+"&file_name="+data[i]['file_name']+"&type="+data[i]['tipo_codigo']+"&proc_id="+data[i]['proc_id']+"','','width=850,height=680,screenX=100,left=10,screenY=100,top=10,toolbar=no,scrollbars=yes,resizable=yes')\"") +
160                                                              get_link(_web_server_url+"/index.php?menuaction=workflow.bo_adminsource.export_file&file_name="+escape(data[i]['file_name'])+"&type="+data[i]['tipo_codigo']+"&proc_id="+proc_id,get_icon('phpexport.png','Exportar Template','hspace=1'),"") +
161                                                                  get_link("javascript:void(0)", get_icon('del_template.png','Excluir Template','hspace=1'),"onclick=\"delete_template('"+data[i]['file_name']+"')\"");
162                                                                       
163                                for (j = 0; j < td.length; j++) {
164                                        tr.appendChild(td[j]);
165                                }
166       
167                                body.appendChild(tr);
168                        }
169                }
170        };
171
172    table.setAttribute("cellPadding", "2");
173    table.className = "table_elements";
174    table.id        = 'template_list';
175
176        tr.className = "table_elements_tr_header";
177
178        for (i = 0; i < td.length; i++) {
179                td[i] = document.createElement('TD');
180                td[i].style.cursor = 'pointer';
181        }
182
183        icon_order = (tpl_sort_asc == 1) ? get_icon('arrow_descendant.gif','Crescente','hspace=1') : get_icon('arrow_ascendant.gif','Decrescente','hspace=1') ;
184       
185        td[0].setAttribute('width', '60%');
186        td[0].align = 'left';
187        td[0].innerHTML = 'Nome do Arquivo';
188        td[0].onclick = function() { sort_tpl_list('file_name'); };
189        td[0].innerHTML = ( tpl_sort_field == 'file_name' ) ? td[0].innerHTML = '<b>Nome do Arquivo</b>' + icon_order : td[0].innerHTML;
190               
191        td[1].setAttribute('width', '10%');
192        td[1].align = 'center';
193        td[1].innerHTML = 'Tamanho';   
194        td[1].onclick = function() { sort_tpl_list('tamanho'); };
195        td[1].innerHTML = ( tpl_sort_field == 'tamanho' ) ? td[1].innerHTML = '<b>Tamanho</b>' + icon_order : td[1].innerHTML;
196       
197        td[2].setAttribute('width', '20%');
198        td[2].align = 'center';
199        td[2].innerHTML = 'Modificado';
200        td[2].onclick = function() { sort_tpl_list('modificado'); };
201        td[2].innerHTML = ( tpl_sort_field == 'modificado' ) ? td[2].innerHTML = '<b>Modificado</b>' + icon_order : td[2].innerHTML;
202
203        td[3].setAttribute('width', '10%');
204        td[3].align = 'center';
205        td[3].innerHTML = 'Ações';     
206
207        for (i = 0; i < td.length; i++)
208                tr.appendChild(td[i]);
209
210        body.appendChild(tr);
211        table.appendChild(body);
212        folder.appendChild(table);
213
214        cExecute ("$this.bo_adminsource.get_template_files", fillTemplateList, "proc_id="+proc_id+"&sort="+tpl_sort_field+"&order_by="+tpl_sort_asc);
215}
216
217function delete_template(file_name)
218{
219        var deleteHnd = function(data) {
220                var templates_folder = getFolder(ID_TEMPLATES_FOLDER);
221               
222                alert(data);
223                killElement('template_list');
224                createTemplateList(templates_folder);
225        };
226
227        if (confirm("Tem certeza que deseja excluir o template "+file_name+"?"))
228        {
229                cExecute ("$this.bo_adminsource.delete_file", deleteHnd, "proc_id="+proc_id+"&type=template&file_name="+file_name);
230        }
231}
232
233function redraw_template_list()
234{
235        var templates_folder = getFolder(ID_TEMPLATES_FOLDER);
236               
237        killElement('template_list');
238        createTemplateList(templates_folder);
239}
240
241function create_new_template()
242{
243        var createHnd = function(data) {
244                var templates_folder = getFolder(ID_TEMPLATES_FOLDER);
245       
246                switch(data)
247                {
248                        case 0: alert('Erro: Nome de arquivo inválido.');
249                                        break;
250                        case 1: alert('Erro: ID de processo inválido.');
251                                        break;
252                        case 2: alert('Arquivo já existe.');
253                                        break;
254                        case 3: alert('Arquivo criado com sucesso.');
255                                        break;
256                        case 4: alert('Não foi possível criar o arquivo.');
257                                        break;
258                }
259
260                killElement('template_list');
261                createTemplateList(templates_folder);
262        };
263
264        tpl_model = document.getElementById('win_tpl_model');
265    modelo = tpl_model.value;
266
267        text = document.getElementById('win_tpl_name');
268        file_name = text.value;
269        if (file_name) {
270                if (tpl_rewrite) {
271                        rewrite_file = 1;
272                } else {
273                        rewrite_file = 0;
274                }
275                cExecute ("$this.bo_adminsource.create_file", createHnd, "rewrite="+rewrite_file+"&modelo="+modelo+"&proc_id="+proc_id+"&type=template&file_name="+file_name);
276                win.close();
277        } else {
278                alert('É necessário informar o nome do arquivo a ser criado.');
279                text.focus();
280        }
281}
282
283function draw_template_toolbar(folder) {
284        var toolbar_cell = document.getElementById('td_main_toolbar_'+folder.id+'_1');
285
286    template_tool = new TMainMenu("template_tool",'horizontal');
287
288        _new_template = new TPopMenu('Novo Template',_icon_dir + '/new_template.png','f','show_template_window()', 'Insere Novo Template');
289        template_tool.Add( _new_template );
290
291        //_new_template.Add( new TPopMenu('Em Branco',_icon_dir + '/arrow.gif','f','create_new_template(0)', 'Em Branco') );
292        //_new_template.Add( new TPopMenu('Modelo de Consulta',_icon_dir + '/arrow.gif','f','create_new_template(1)', 'Modelo Consulta') );
293        //_new_template.Add( new TPopMenu('Modelo de Cadastro',_icon_dir + '/arrow.gif','f','create_new_template(2)', 'Modelo Cadastro') );
294        //_new_template.Add( new TPopMenu('Modelo de Visualizar',_icon_dir + '/arrow.gif','f','create_new_template(3)', 'Modelo Visualizar') );
295       
296        setToolBarStyle(template_tool);
297        template_tool.Build(toolbar_cell.id);
298        document.getElementById(template_tool._id).style.visibility = 'visible';
299}
300
301function draw_templates_folder() {
302 
303        var templates_folder = getFolder(ID_TEMPLATES_FOLDER);
304        var toolbar;
305
306        toolbar = document.getElementById("wf_toolbar_"+templates_folder.id);
307
308        if (toolbar == null)
309        {
310                createToolBar(ID_TEMPLATES_FOLDER,false);
311                draw_template_toolbar(templates_folder);
312        }
313
314        createTemplateList(templates_folder);
315}
Note: See TracBrowser for help on using the repository browser.