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

Revision 1349, 9.3 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 inc_sort_field = 'file_name';
2var inc_sort_asc   = 1;
3var rewrite = false;
4
5function set_rewrite()
6{
7        rewrite = !rewrite;
8}
9
10function show_include_window()
11{
12        var showHnd = function(data)
13        {
14
15                div = document.getElementById('model_include_list');
16                if (!div) {
17
18                        div = document.createElement("DIV");
19                        div.style.visibility = "hidden";
20                        div.style.position   = "absolute";
21                        div.id                           = "model_include_list";
22               
23                        tb = document.createElement("TABLE");
24                        tr = document.createElement("TR");
25                        td = document.createElement("TD");
26
27                        td.innerHTML = '<b>Selecione o modelo desejado:</b><br>';
28                        se = document.createElement("SELECT");
29                        se.setAttribute('name','file');
30                        se.setAttribute('size','10');
31                        se.setAttribute('id','win_include_model');
32                        se.style.width = '200px';
33
34                        for (i = 0; i < data.length; i++)
35                        {
36                                op = document.createElement("OPTION");
37                                op.setAttribute('value',data[i]['file_name']);
38                                if (i == 0)
39                                        op.setAttribute('selected','selected');
40                                op.innerHTML = data[i]['file_name'];
41                                se.appendChild(op);
42                        }
43
44                        td.appendChild(se);
45                        tb.setAttribute('align','center');
46                        tr.appendChild(td);     
47                        tb.appendChild(tr);
48
49                        tr = document.createElement("TR");
50                        td = document.createElement("TD");
51               
52                        td.innerHTML = '<b>Nome do arquivo a ser criado:</b><br>';
53
54                        it = document.createElement("INPUT");
55                        it.setAttribute('type','text');
56                        it.setAttribute('name','novo_nome');
57                        it.setAttribute('value','arquivo.php');
58                        it.setAttribute('id','win_include_name');
59                        it.style.width = '200px';
60
61                        td.appendChild(it);
62                        tr.appendChild(td);     
63                        tb.appendChild(tr);
64
65                        tr = document.createElement("TR");
66                        td = document.createElement("TD");
67
68                        ch = document.createElement("INPUT");
69                        ch.setAttribute('type','checkbox');
70                        ch.setAttribute('name','rewrite');
71                        ch.setAttribute('onclick','set_rewrite()');
72                        ch.setAttribute('id','chk_rewrite_file');
73                        td.appendChild(ch);
74                        td.innerHTML += 'Sobrescreve se já existe';
75                        td.setAttribute('valign','top');
76
77                        tr.appendChild(td);     
78                        tb.appendChild(tr);
79
80                        tr = document.createElement("TR");
81                        td = document.createElement("TD");
82                        td.setAttribute('align','center');
83
84                        bt = document.createElement("INPUT");
85                        bt.setAttribute('type','button');
86                        bt.setAttribute('value','Ok');
87                        bt.setAttribute('name','Ok');
88                        bt.setAttribute('onclick','create_new_include()');
89                        bt.style.width = '70px';
90                        td.appendChild(bt);
91
92                        bt = document.createElement("INPUT");
93                        bt.setAttribute('type','button');
94                        bt.setAttribute('value','Cancelar');
95                        bt.setAttribute('name','Cancelar');
96                        bt.setAttribute('onclick','win.close()');
97                        bt.style.width = '70px';
98                        td.appendChild(bt);
99
100                        tr.appendChild(td);     
101                        tb.appendChild(tr);
102
103                        div.appendChild(tb);   
104
105                        document.body.appendChild(div);
106                }
107                show_window('Modelos de Classe',div,250,270);
108        };
109
110        cExecute ("$this.bo_adminsource.get_model_files", showHnd, "type=include");
111}
112
113
114function sort_include_list(field)
115{
116        inc_sort_field = field;
117        inc_sort_asc   = (inc_sort_asc == 1) ? 0 : 1;
118        redraw_include_list();
119}
120
121function createIncludeList(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 fillIncludeList = 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 = data[i]['file_name'];
151                                td[0].innerHTML = get_link("javascript:void(0)", data[i]['file_name'],"onclick=\"window.open('"+_web_server_url+"/index.php?menuaction=workflow.ui_phpeditor.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')\"");
152                                       
153                                td[1].align = 'center';
154                                td[1].innerHTML = data[i]['tamanho'];   
155               
156                                td[2].align = 'center';
157                                td[2].innerHTML = data[i]['modificado'];       
158       
159                                td[3].align = 'left';
160                                td[3].innerHTML = get_link("javascript:void(0)", get_icon('phpedit.png','Editar Include','hspace=1'),"onclick=\"window.open('"+_web_server_url+"/index.php?menuaction=workflow.ui_phpeditor.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')\"") +
161                                                              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 Include','hspace=1'),"");
162                       
163                                if (data[i]['file_name'] != 'shared.php') {
164                                        td[3].innerHTML += get_link("javascript:void(0)", get_icon('del_template.png','Excluir Include','hspace=1'),"onclick=\"delete_include('"+data[i]['file_name']+"')\"");
165                                }
166                                                                       
167                                for (j = 0; j < td.length; j++) {
168                                        tr.appendChild(td[j]);
169                                }
170       
171                                body.appendChild(tr);
172                        }
173                }
174        };
175
176    table.setAttribute("cellPadding", "2");
177    table.className = "table_elements";
178    table.id        = 'include_list';
179
180        tr.className = "table_elements_tr_header";
181
182        for (i = 0; i < td.length; i++) {
183                td[i] = document.createElement('TD');
184                td[i].style.cursor = 'pointer';
185        }
186       
187        icon_order = (inc_sort_asc == 1) ? get_icon('arrow_descendant.gif','Crescente','hspace=1') : get_icon('arrow_ascendant.gif','Decrescente','hspace=1') ;
188
189        td[0].setAttribute('width', '63%');
190        td[0].align = 'left';
191        td[0].innerHTML = 'Nome do Arquivo';
192        td[0].onclick = function() { sort_include_list('file_name'); };
193        td[0].innerHTML = ( inc_sort_field == 'file_name' ) ? td[0].innerHTML = '<b>Nome do Arquivo</b>' + icon_order : td[0].innerHTML;
194               
195        td[1].setAttribute('width', '10%');
196        td[1].align = 'center';
197        td[1].innerHTML = 'Tamanho';   
198        td[1].onclick = function() { sort_include_list('tamanho'); };
199        td[1].innerHTML = ( inc_sort_field == 'tamanho' ) ? td[1].innerHTML = '<b>Tamanho</b>' + icon_order : td[1].innerHTML;
200       
201        td[2].setAttribute('width', '20%');
202        td[2].align = 'center';
203        td[2].innerHTML = 'Modificado';
204        td[2].onclick = function() { sort_include_list('modificado'); };
205        td[2].innerHTML = ( inc_sort_field == 'modificado' ) ? td[2].innerHTML = '<b>Modificado</b>' + icon_order : td[2].innerHTML;
206
207        td[3].setAttribute('width', '7%');
208        td[3].align = 'center';
209        td[3].innerHTML = 'Ações';     
210
211        for (i = 0; i < td.length; i++)
212                tr.appendChild(td[i]);
213
214        body.appendChild(tr);
215        table.appendChild(body);
216        folder.appendChild(table);
217
218        cExecute ("$this.bo_adminsource.get_include_files", fillIncludeList, "proc_id="+proc_id+"&sort="+inc_sort_field+"&order_by="+inc_sort_asc);
219}
220
221function redraw_include_list()
222{
223        var include_folder = getFolder(ID_INCLUDES_FOLDER);
224        killElement('include_list');
225        createIncludeList(include_folder);
226}
227
228function delete_include(file_name)
229{
230        var deleteHnd = function(data) {
231                redraw_include_list();
232        };
233
234        if (confirm("Tem certeza que deseja excluir o include "+file_name+"?"))
235        {
236                cExecute ("$this.bo_adminsource.delete_file", deleteHnd, "proc_id="+proc_id+"&type=include&file_name="+file_name);
237        }
238}
239
240var createHnd = function(data) {
241        var includes_folder = getFolder(ID_INCLUDES_FOLDER);
242               
243        switch(data)
244        {
245                case 0: alert('Erro: Nome de arquivo inválido.');
246                                break;
247                case 1: alert('Erro: ID de processo inválido.');
248                                break;
249                case 2: alert('Arquivo já existe.');
250                                break;
251                case 3: alert('Arquivo criado com sucesso.');
252                                break;
253                case 4: alert('Não foi possível criar o arquivo.');
254                                break;
255
256        }
257        killElement('include_list');
258        createIncludeList(includes_folder);
259};
260
261
262function create_new_include()
263{
264
265        include_model = document.getElementById('win_include_model');
266        modelo = include_model.value;
267
268
269        text = document.getElementById('win_include_name');
270        file_name = text.value;
271        if (file_name) {
272                if (rewrite) {
273                        rewrite_file = 1;
274                } else {
275                        rewrite_file = 0;
276                }
277                cExecute ("$this.bo_adminsource.create_file", createHnd, "rewrite="+rewrite_file+"&modelo="+modelo+"&proc_id="+proc_id+"&type=include&file_name="+file_name);
278                win.close();
279        } else {
280                alert('É necessário informar o nome do arquivo a ser criado.');
281                text.focus();
282        }
283}
284
285function draw_include_toolbar(folder) {
286        var toolbar_cell = document.getElementById('td_main_toolbar_'+folder.id+'_1');
287
288    include_tool = new TMainMenu("include_tool",'horizontal');
289        include_tool.Add( new TPopMenu('Novo Include',_web_server_url+'/workflow/templateFile.php?file=images/new_template.png','f','show_include_window()', 'Insere Novo Include') );
290       
291        setToolBarStyle(include_tool);
292        //alert(toolbar_cell.innerHTML);
293        include_tool.Build(toolbar_cell.id);
294        document.getElementById(include_tool._id).style.visibility = 'visible';
295}
296
297function draw_includes_folder() {
298 
299        var includes_folder = getFolder(ID_INCLUDES_FOLDER);
300        var toolbar;
301
302        toolbar = document.getElementById("wf_toolbar_"+includes_folder.id);
303        if (toolbar == null)
304        {
305                createToolBar(ID_INCLUDES_FOLDER,false);
306                draw_include_toolbar(includes_folder);
307        }
308
309        createIncludeList(includes_folder);
310}
Note: See TracBrowser for help on using the repository browser.