source: branches/1.2/workflow/js/monitors/instances.js @ 1349

Revision 1349, 23.0 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 workflowMonitorUserMapping;
2var workflowMonitorActivityMapping;
3var sortColumn = 2;
4var order = 'A';
5var workflowMonitorInstancesParams = null;
6var completedSortColumn = 1;
7var completedOrder = 'A';
8
9var workflowMonitorCurrentList = '';
10
11/* retorno do Ajax para listagem de instâncias */
12function instanceList(data)
13{
14        if (handleError(data))
15        {
16                /* salva algumas informações vindas da chamada Ajax */
17                workflowMonitorInstancesParams = data['params'];
18                workflowMonitorUserMapping = data['userMapping'];
19                workflowMonitorActivityMapping = data['activityMapping'];
20
21
22                if (!workflowMonitorInstancesParams['filters'])
23                {
24                        $('divInstance').innerHTML = '';
25                }
26                else
27                {
28                        var objectRemovalList = new Array();
29                        objectRemovalList[0] = $('monitorMessage');
30                        objectRemovalList[1] = $('instancesTable');
31                        objectRemovalList[2] = $('pagingTop');
32                        objectRemovalList[3] = $('pagingBottom');
33                        for (var i = 0; i < objectRemovalList.length; i++)
34                                if (objectRemovalList[i])
35                                        objectRemovalList[i].remove();
36                }
37
38                if (data['data'].length == 0)
39                {
40                        var divInstance = $('divInstance');
41                        if (workflowMonitorInstancesParams['filters'])
42                        {
43                                new Insertion.Bottom(divInstance, '<p id="monitorMessage" style="clear: both;">Nenhuma instância satisfaz o critério de filtragem utilizado</p>');
44                                $('instanceCount').innerHTML = '0';
45                        }
46                        else
47                                divInstance.innerHTML = '<p>Este processo não possui instâncias ativas</p>';
48                }
49                else
50                        drawInstancesList(data);
51        }
52}
53
54/* retorno do Ajax para listagem de usuários */
55function userList(data)
56{
57        if (handleError(data))
58        {
59                if (data['data'].length == 0)
60                {
61                        var parag = document.createElement("P");
62                        parag.className = "text_dsp";
63                        parag.innerHTML = "Não existem usuários";
64                        divInstance.appendChild(parag);
65                }
66                else
67                {
68                        var aid = data['params']['aid'];
69                        var pid = data['params']['pid'];
70                        var uid = data['params']['uid'];
71                        var iid = data['params']['iid'];
72                        var message = document.getElementById("nu_" + iid);
73                        var td = message.parentNode;
74                        td.innerHTML = constructSelectBox("nu_" + iid, data['data'], uid);
75                        td.innerHTML += "<button onclick=\"updateUser(" + iid + ", " + aid + ", " + pid + "); return false;\" class=\"ok\">OK</button>";
76                }
77        }
78}
79
80/* retorno do Ajax para listagem de atividades */
81function activityList(data)
82{
83        if (handleError(data))
84        {
85                if (data['data'].length == 0)
86                {
87                        var parag = document.createElement("P");
88                        parag.className = "text_dsp";
89                        parag.innerHTML = "Não existem atividades";
90                        divInstance.appendChild(parag);
91                }
92                else
93                {
94                        var aid = data['params']['aid'];
95                        var pid = data['params']['pid'];
96                        var iid = data['params']['iid'];
97                        var message = document.getElementById("na_" + iid);
98                        var td = message.parentNode;
99                        td.innerHTML = constructSelectBox("na_" + iid, data['data'], aid);
100                        td.innerHTML += "<button onclick=\"updateActivity(" + iid + ", " + pid + "); return false;\" class=\"ok\">OK</button>";
101                }
102        }
103}
104
105/**** LISTA DE INSTÂNCIAS DE UM PROCESSO ****/
106function callInstanceList(pid, srt, p_page, p_filters)
107{
108        workflowMonitorCurrentList = 'active';
109        var params = 'pid=' + pid;
110
111        if (srt == null)
112                srt = sortColumn;
113
114        params += '&srt=' + srt;
115
116        if ((srt == sortColumn) && (p_page == null))
117                order = (order == 'A') ? 'D' : 'A';
118        params += '&ord=' + ((order == 'A') ? '__ASC' : '__DESC');
119
120        if (p_page)
121                params += '&p_page=' + p_page;
122
123        sortColumn = srt;
124
125        if (p_filters)
126                params += '&filters=' + p_filters;
127
128        cExecute('$this.bo_monitors.listInstances', instanceList, params);
129}
130
131function resultCompletedInstanceList(data)
132{
133        if (handleError(data))
134        {
135                /* salva algumas informações vindas da chamada Ajax */
136                workflowMonitorInstancesParams = data['params'];
137                workflowMonitorUserMapping = data['userMapping'];
138
139                if (!workflowMonitorInstancesParams['filters'])
140                {
141                        $('divInstance').innerHTML = '';
142                }
143                else
144                {
145                        var objectRemovalList = new Array();
146                        objectRemovalList[0] = $('monitorMessage');
147                        objectRemovalList[1] = $('instancesTable');
148                        objectRemovalList[2] = $('pagingTop');
149                        objectRemovalList[3] = $('pagingBottom');
150                        for (var i = 0; i < objectRemovalList.length; i++)
151                                if (objectRemovalList[i])
152                                        objectRemovalList[i].remove();
153                }
154
155                if (data['data'].length == 0)
156                {
157                        var divInstance = $('divInstance');
158                        if (workflowMonitorInstancesParams['filters'])
159                        {
160                                $('instanceCount').innerHTML = '0';
161                                new Insertion.Bottom(divInstance, '<p id="monitorMessage" style="clear: both;">Nenhuma instância satisfaz o critério de filtragem utilizado</p>');
162                        }
163                        else
164                                divInstance.innerHTML = '<p>Este processo não possui instâncias finalizadas</p>';
165                }
166                else
167                        drawCompletedInstancesList(data);
168        }
169}
170
171function drawCompletedInstancesList(data)
172{
173        var instances = data['data'];
174        var pid = data['params']['pid'];
175        var pagingData = data['pagingData'];
176
177        var divInstance = $('divInstance');
178
179        var menuCreated = false;
180        var content = '';
181
182        if (divInstance.innerHTML == '')
183        {
184                menuCreated = true;
185                content += '<h2>Instâncias Finalizadas</h2>';
186                content += '<div id="monitorMenu">';
187                content += '<ul class="horizontalMenu" id="filterMenu" align="center">';
188                content += '<li><a href="javascript:addFilterSelection(true);"><img src="workflow/templateFile.php?file=images/filter_add.png"/>&nbsp;Adicionar Filtro</a></li>';
189                content += '<li><a href="javascript:filterInstances(true);"><img src="workflow/templateFile.php?file=images/filter.png"/>&nbsp;Filtrar</a></li>';
190                if (permissions[pid]['bits'][IP_REMOVE_COMPLETED_INSTANCES])
191                        content += '<li><a href="javascript:void(0)" onclick="removeCompletedInstances();"><img src="workflow/templateFile.php?file=images/del_template.png"/>&nbsp;Remover Instâncias</a></li>';
192                content += '</ul>';
193                content += '<span style="float: left; font-size: 11px !important; height: 2.5em; line-height: 2.5em;">&nbsp;&nbsp;&nbsp;<strong>Total de Instâncias:</strong> <span id="instanceCount">' + data['instanceCount'] + '</span></span>';
194                content += '<br/><br/><br/>';
195                content += '</div>';
196        }
197        else
198        {
199                $('instanceCount').innerHTML = data['instanceCount'];
200        }
201
202        var pagingDataCount = pagingData.length;
203        var pagingLinks = '';
204        for (var i = 0; i < pagingDataCount; i++)
205        {
206                if (pagingData[i].do_link == true)
207                        pagingLinks += '<a href="javascript:monitorPaginateInstances(' + pagingData[i].p_page + ');">' + pagingData[i].name + '</a>&nbsp;';
208                else
209                        pagingLinks += '<strong>' + pagingData[i].name + '</strong>&nbsp;';
210        }
211
212        content += '<div align="right" id="pagingTop">' + pagingLinks + '</div>';
213        content += '<table width="100%" align="center" border="1" class="content_table" id="instancesTable" style="clear: both;">';
214        content += '<tr><th><span onClick="monitorSortInstances(1);" style="cursor:pointer;">ID</span></th><th><span onClick="monitorSortInstances(2);" style="cursor:pointer;">Identificador</span></th><th><span onClick="monitorSortInstances(3);" style="cursor:pointer;">Proprietário</span></th><th><span onClick="monitorSortInstances(4);" style="cursor:pointer;">Pri.</span></th><th><span onClick="monitorSortInstances(5);" style="cursor:pointer;">Data Início</span></th><th><span onClick="monitorSortInstances(6);" style="cursor:pointer;">Data Fim</span></th><th><span onClick="monitorSortInstances(7);" style="cursor:pointer;">Status</span></th><th>Ações</th></tr>';
215
216        /*** gera a lista de instâncias ****/
217        var instanceCount = instances.length;
218        var ownerName = '';
219        for (var i = 0; i < instanceCount; i++)
220        {
221                if (workflowMonitorUserMapping[instances[i]['wf_owner']])
222                        ownerName = workflowMonitorUserMapping[instances[i]['wf_owner']];
223                else
224                        ownerName = 'ID: ' + instances[i]['wf_owner'];
225
226                if (!instances[i]['wf_instance_name'])
227                        instances[i]['wf_instance_name'] = '';
228
229                content += '<tr>';
230
231                /* id da instância */
232                content += '<td>' + instances[i]['wf_instance_id'] + '</td>';
233
234                /* identificador da instância */
235                content += '<td>' + instances[i]['wf_instance_name'] + '</td>';
236
237                /* proprietário da instância */
238                content += '<td>' + ownerName + '</td>';
239
240                /* prioridade da instância */
241                content += '<td>' + instances[i]['wf_priority'] + '</td>';
242
243                /* data início da instância */
244                content += '<td>' + instances[i]['wf_started'] + '</td>';
245
246                /* data fim da instância */
247                content += '<td>' + instances[i]['wf_ended'] + '</td>';
248
249                /* status da instância */
250                content += '<td>' + statusQuickTranslation[instances[i]['wf_status']] + '</td>';
251
252                /* ações da instância */
253                content += '<td><a href="#" onclick="workflowInboxActionView(' + instances[i]['wf_instance_id'] + ', null); return false;">visualizar</a></td>';
254
255                content += '</tr>';
256        }
257
258        content += '</table>';
259        content += '<div align="right" id="pagingBottom">' + pagingLinks + '</div>';
260        new Insertion.Bottom(divInstance, content);
261        if (menuCreated)
262                lb_initialize();
263}
264
265function callCompletedInstanceList(pid, sort, p_page, p_filters)
266{
267        workflowMonitorCurrentList = 'completed';
268        var params = 'pid=' + pid;
269
270        if (sort == null)
271                sort = 1;
272
273        params += '&sort=' + sort;
274
275        if ((sort == completedSortColumn) && (p_page == null))
276                completedOrder = (completedOrder == 'A') ? 'D' : 'A';
277        params += '&ord=' + ((completedOrder == 'A') ? '__ASC' : '__DESC');
278
279        if (p_page)
280                params += '&p_page=' + p_page;
281
282        completedSortColumn = sort;
283
284        if (p_filters)
285                params += '&filters=' + p_filters;
286
287        cExecute('$this.bo_monitors.listCompletedInstances', resultCompletedInstanceList, params);
288}
289
290function drawInstancesList(data)
291{
292        var instances = data['data'];
293        var pid = data['params']['pid'];
294        var pagingData = data['pagingData'];
295
296        var divInstance = $('divInstance');
297
298        var menuCreated = false;
299        var content = '';
300
301        if (divInstance.innerHTML == '')
302        {
303                menuCreated = true;
304                content += '<h2>Instâncias Ativas</h2>';
305                content += '<div id="monitorMenu">';
306                content += '<ul class="horizontalMenu" id="filterMenu" align="center">';
307                content += '<li><a href="javascript:addFilterSelection(false);"><img src="workflow/templateFile.php?file=images/filter_add.png"/>&nbsp;Adicionar Filtro</a></li>';
308                content += '<li><a href="javascript:filterInstances(false);"><img src="workflow/templateFile.php?file=images/filter.png"/>&nbsp;Filtrar</a></li>';
309                if (permissions[pid]['bits'][IP_SEND_EMAILS])
310                        content += '<li><a href="javascript:void(0)" onclick="sendMailConfig();" class="lbOn"><img src="workflow/templateFile.php?file=images/mail_new.png"/>&nbsp;Enviar E-mail</a></li>';
311                content += '</ul>';
312                content += '<span style="float: left; font-size: 11px !important; height: 2.5em; line-height: 2.5em;">&nbsp;&nbsp;&nbsp;<strong>Total de Instâncias:</strong> <span id="instanceCount">' + data['instanceCount'] + '</span></span>';
313                content += '<br/><br/><br/>';
314                content += '</div>';
315        }
316        else
317        {
318                $('instanceCount').innerHTML = data['instanceCount'];
319        }
320
321        var pagingDataCount = pagingData.length;
322        var pagingLinks = '';
323        for (var i = 0; i < pagingDataCount; i++)
324        {
325                if (pagingData[i].do_link == true)
326                        pagingLinks += '<a href="javascript:monitorPaginateInstances(' + pagingData[i].p_page + ');">' + pagingData[i].name + '</a>&nbsp;';
327                else
328                        pagingLinks += '<strong>' + pagingData[i].name + '</strong>&nbsp;';
329        }
330
331        content += '<div align="right" id="pagingTop">' + pagingLinks + '</div>';
332        content += '<table width="100%" align="center" border="1" class="content_table" id="instancesTable" style="clear: both;">';
333        content += '<tr><th><span onClick="monitorSortInstances(1);" style="cursor:pointer;">ID</span></th><th><span onClick="monitorSortInstances(2);" style="cursor:pointer;">Atividade</span></th><th><span onClick="monitorSortInstances(3);" style="cursor:pointer;">Identificador</span></th><th><span onClick="monitorSortInstances(4);" style="cursor:pointer;">Pri.</span></th><th><span onClick="monitorSortInstances(5);" style="cursor:pointer;">Usuário</span></th><th><span onClick="monitorSortInstances(6);" style="cursor:pointer;">Status</span></th><th>Ações</th></tr>';
334
335        /*** gera a lista de instâncias ****/
336        var instanceCount = instances.length;
337        for (var i = 0; i < instanceCount; i++)
338        {
339                content += '<tr>';
340                /* id da instância */
341                content += '<td>' + instances[i]['wf_instance_id'] + '</td>';
342
343                /* atividade da instância */
344                content += '<td>';
345                if (permissions[pid]['bits'][IP_CHANGE_ACTIVITY])
346                        content += "<a href=\"\" onclick=\"clickActivity(this, " + instances[i]['wf_p_id']  + ", " + instances[i]['wf_activity_id']  + ", " + instances[i]['wf_instance_id'] + "); return false;\">" + workflowMonitorActivityMapping[instances[i]['wf_activity_id']] + "</a>";
347                else
348                        content += workflowMonitorActivityMapping[instances[i]['wf_activity_id']];
349                content += '</td>';
350
351                /* nome da instância */
352                if (!instances[i]['wf_instance_name'])
353                        instances[i]['wf_instance_name'] = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
354                content += '<td>';
355                if (permissions[pid]['bits'][IP_CHANGE_NAME])
356                        content += "<a href=\"\" onclick=\"clickName(this, " + instances[i]['wf_instance_id'] + ", " + instances[i]['wf_p_id'] + "); return false;\">" + instances[i]['wf_instance_name']  + "</a>";
357                else
358                        content += instances[i]['wf_instance_name'];
359                content += '</td>';
360
361                /* prioridade da instância */
362                content += '<td>';
363                if (permissions[pid]['bits'][IP_CHANGE_PRIORITY])
364                        content += "<a href=\"\" onclick=\"clickPriority(this, " + instances[i]['wf_instance_id']  + ", " + instances[i]['wf_p_id'] + "); return false;\">" + instances[i]['wf_priority'] + "</a>";
365                else
366                        content += instances[i]['wf_priority'];
367                content += '</td>';
368
369                /* usuário da instância */
370                if (workflowMonitorUserMapping[instances[i]['wf_user']])
371                        userName = workflowMonitorUserMapping[instances[i]['wf_user']];
372                else
373                        userName = 'ID: ' + instances[i]['wf_user'];
374                content += '<td>';
375                if (permissions[pid]['bits'][IP_CHANGE_USER])
376                        content += "<a href=\"\" onclick=\"clickUser(this, " + instances[i]['wf_p_id']  + ", " + instances[i]['wf_activity_id']  + ", " + instances[i]['wf_instance_id'] + ", '" + ((instances[i]['wf_user'] == '*') ? '-1' : instances[i]['wf_user']) + "'); return false;\">" + userName + "</a>";
377                else
378                        content += userName;
379                content += '</td>';
380
381                /* staus da instância */
382                content += '<td>';
383                if (permissions[pid]['bits'][IP_CHANGE_STATUS])
384                        content += "<a href=\"\" onclick=\"clickStatus(this, " + instances[i]['wf_instance_id'] + ", " + instances[i]['wf_p_id'] + ", '" + instances[i]['wf_status'] + "'); return false;\">" + statusQuickTranslation[instances[i]['wf_status']] + "</a>";
385                else
386                        content += statusQuickTranslation[instances[i]['wf_status']];
387                content += '</td>';
388
389                instances[i]['wf_actions'] = '';
390                /* ações da instância */
391                if ((permissions[pid]['bits'][IP_VIEW_PROPERTIES]) || (permissions[pid]['bits'][IP_CHANGE_PROPERTIES]))
392                        instances[i]['wf_actions'] += '<a href="#" onclick="editProperties(' + instances[i]['wf_instance_id'] + ', ' + instances[i]['wf_p_id'] + '); return false;">propriedades</a>&nbsp;';
393
394                instances[i]['wf_actions'] += '<a href="#" onclick="workflowInboxActionView(' + instances[i]['wf_instance_id'] + ', null); return false;">visualizar</a>';
395
396                content += '<td>';
397                if (!instances[i]['wf_actions'])
398                        content += "&nbsp;";
399                else
400                        content += instances[i]['wf_actions'];
401                content += '</td>';
402
403                content += '</tr>';
404        }
405
406        content += '</table>';
407        content += '<div align="right" id="pagingBottom">' + pagingLinks + '</div>';
408        new Insertion.Bottom(divInstance, content);
409        if (menuCreated)
410                lb_initialize();
411}
412
413/**** AÇÕES DE ATUALIZAÇÃO DA INSTÂNCIA ****/
414function clickPriority(link, iid, pid)
415{
416        var td = link.parentNode;
417        var previousValue = link.innerHTML;
418        var items = new Array();
419        for (var i = 0; i < 5; i++)
420        {
421                items[i] = new Array();
422                items[i]['id'] = i;
423                items[i]['name'] = i;
424        }
425        td.innerHTML = constructSelectBox('np_' + iid, items, link.innerHTML);
426        td.innerHTML += "<button onclick=\"updatePriority(" + iid + ", " + pid + "); return false;\" class=\"ok\">OK</button>";
427}
428
429function updatePriority(iid, pid)
430{
431        var selectBox = document.getElementById('np_' + iid);
432        var np = selectBox.value;
433        cExecute ("$this.bo_monitors.updatePriority", updatePriorityResult, 'iid=' + iid + '&pid=' + pid + '&np=' + np);
434        selectBox.parentNode.innerHTML = "<p id=\"np_" + iid  + "\" class=\"ajax_message\"> (atualizando) </p>";
435}
436
437function updatePriorityResult(data)
438{
439        if (handleError(data))
440        {
441                var message = document.getElementById('np_' + data['iid']);
442                message.parentNode.innerHTML = "<a href=\"\" onclick=\"clickPriority(this, " + data['iid']  + ", " + data['pid']  + "); return false;\">" + data['np'] + "</a>";
443        }
444}
445
446function clickUser(link, pid, aid, iid, uid)
447{
448        link.parentNode.innerHTML = "<p id=\"nu_" + iid + "\" class=\"ajax_message\"> (carregando lista) </p>";
449        cExecute ("$this.bo_monitors.listUsers", userList, 'pid=' + pid + '&aid=' + aid + '&iid=' + iid  + '&uid=' + uid);
450}
451
452function updateUser(iid, aid, pid)
453{
454        var selectBox = document.getElementById("nu_" + iid);
455        var uid = selectBox.value;
456        cExecute ("$this.bo_monitors.updateUser", updateUserResult, 'iid=' + iid + '&user=' + uid + '&aid=' + aid + '&pid=' + pid);
457        selectBox.parentNode.innerHTML = "<p id=\"nu_" + iid + "\" class=\"ajax_message\"> (atualizando) </p>";
458}
459
460function updateUserResult(data)
461{
462        if (handleError(data))
463        {
464                var message = document.getElementById('nu_' + data['iid']);
465                message.parentNode.innerHTML = "<a href=\"\" onclick=\"clickUser(this, " + data['pid']  + ", " + data['aid']  + ", " + data['iid'] + ", " + data['user']  + "); return false;\">" + data['fullname'] + "</a>";
466        }
467}
468
469function clickActivity(link, pid, aid, iid)
470{
471        link.parentNode.innerHTML = "<p id=\"na_" + iid + "\" class=\"ajax_message\"> (carregando lista) </p>";
472        cExecute ("$this.bo_monitors.listActivities", activityList, 'pid=' + pid + '&aid=' + aid + '&iid=' + iid);
473}
474
475function updateActivity(iid, pid)
476{
477        var selectBox = document.getElementById("na_" + iid);
478        var aid = selectBox.value;
479        cExecute ("$this.bo_monitors.updateActivity", updateActivityResult, 'iid=' + iid + '&aid=' + aid + '&pid=' + pid);
480        selectBox.parentNode.innerHTML = "<p id=\"na_" + iid + "\" class=\"ajax_message\"> (atualizando) </p>";
481}
482
483function updateActivityResult(data)
484{
485        if (handleError(data))
486        {
487                var message = document.getElementById('na_' + data['iid']);
488                message.parentNode.innerHTML = "<a href=\"\" onclick=\"clickActivity(this, " + data['pid']  + ", " + data['aid']  + ", " + data['iid'] + "); return false;\">" + data['name'] + "</a>";
489        }
490}
491
492function clickStatus(link, iid, pid, selected)
493{
494        var td = link.parentNode;
495        td.innerHTML = constructSelectBox('np_' + iid, statusCorrelation, selected);
496        td.innerHTML += "<button onclick=\"updateStatus(" + iid + ", " + pid + "); return false;\" class=\"ok\">OK</button>";
497}
498
499function updateStatus(iid, pid)
500{
501        var selectBox = document.getElementById('np_' + iid);
502        cExecute ("$this.bo_monitors.updateStatus", updateStatusResult, 'iid=' + iid + '&pid=' + pid + '&ns=' + selectBox.value);
503        selectBox.parentNode.innerHTML = "<p id=\"np_" + iid  + "\" class=\"ajax_message\"> (atualizando) </p>";
504}
505
506function updateStatusResult(data)
507{
508        if (handleError(data))
509        {
510                var message = document.getElementById('np_' + data['iid']);
511                if (data['ns'] == 'aborted')
512                        message.parentNode.parentNode.remove();
513                else
514                        message.parentNode.innerHTML = "<a href=\"\" onclick=\"clickStatus(this, " + data['iid'] + ", " + data['pid'] + ", '" + data['ns'] + "'); return false;\">" + statusQuickTranslation[data['ns']] + "</a>";
515        }
516}
517
518function clickName(link, iid, pid)
519{
520        var td = link.parentNode;
521        if (link.innerHTML == "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;")
522                link.innerHTML = "";
523        td.innerHTML = '<input type="text" value="' + link.innerHTML + '" id="nn_' + iid + '"/>';
524        td.innerHTML += "<button onclick=\"updateName(" + iid + ", " + pid + "); return false;\" class=\"ok\">OK</button>";
525        td.childNodes[0].focus();
526        td.childNodes[0].select();
527}
528
529function updateName(iid, pid)
530{
531        var text = document.getElementById("nn_" + iid);
532        cExecute ("$this.bo_monitors.updateName", updateNameResult, 'iid=' + iid + '&pid=' + pid + '&nn=' + escape(text.value));
533        text.parentNode.innerHTML = "<p id=\"nn_" + iid + "\" class=\"ajax_message\"> (atualizando) </p>";
534}
535
536function updateNameResult(data)
537{
538        if (handleError(data))
539        {
540                var message = document.getElementById('nn_' + data['iid']);
541                if (data['nn'] == "")
542                        data['nn'] = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
543                message.parentNode.innerHTML = "<a href=\"\" onclick=\"clickName(this, " + data['iid'] + ", " + data['pid'] + "); return false;\">" + data['nn'] + "</a>";
544        }
545}
546
547function editProperties(iid, pid)
548{
549        var border_id = create_border("Propriedades - ID: " + iid);
550        elem = $("content_id_" + border_id);
551        loadProperties(iid, pid, elem);
552}
553
554function monitorPaginateInstances(p_page)
555{
556        if (workflowMonitorCurrentList == 'active')
557                callInstanceList(workflowMonitorInstancesParams['pid'], workflowMonitorInstancesParams['str'], p_page, workflowMonitorInstancesParams['filters']);
558        else
559                callCompletedInstanceList(workflowMonitorInstancesParams['pid'], workflowMonitorInstancesParams['str'], p_page, workflowMonitorInstancesParams['filters']);
560}
561
562function monitorSortInstances(sort)
563{
564        if (workflowMonitorCurrentList == 'active')
565                callInstanceList(workflowMonitorInstancesParams['pid'], sort, null, workflowMonitorInstancesParams['filters']);
566        else
567                callCompletedInstanceList(workflowMonitorInstancesParams['pid'], sort, null, workflowMonitorInstancesParams['filters']);
568}
569
570function loadInstances(pid)
571{
572        for (var i = 0; i < filters.length; i++)
573                filters[i] = null;
574        filters = new Array();
575        callInstanceList(pid, null, 0);
576}
577
578function loadCompletedInstances(pid)
579{
580        for (var i = 0; i < filters.length; i++)
581                filters[i] = null;
582        filters = new Array();
583        callCompletedInstanceList(pid, null, 0);
584}
585
586function loadInconsistentInstances(pid)
587{
588        cExecute('$this.bo_monitors.loadInconsistentInstances', resultInconsistentInstances, 'pid=' + pid);
589}
590
591function resultInconsistentInstances(data)
592{
593        var instances = data['instances'];
594        var names = data['names'];
595        var divInstance = $('divInstance');
596        var content = '';
597
598        content += '<h2>Instâncias Inconsistentes</h2>';
599
600        for (var i = 0; i < instances.length; i++)
601        {
602                content += '<br/><br/><h2 style="text-align: left;">' + instances[i]['name'] + '</h2>';
603                content += '<p style="text-align: left;">' + instances[i]['description'] + '</p>';
604                var instanceList = instances[i]['items'];
605                if (instanceList.length == 0)
606                {
607                        content += '<p style="font-weight: bold; font-size: 120%;">Nenhuma ocorrência encontrada.</p>';
608                        continue;
609                }
610                content += '<table width="100%" align="center" border="1" class="content_table" id="instancesTable" style="clear: both;">';
611                content += '<tr><th>ID</th><th>Atividade</th><th>Identificador</th><th>Pri.</th><th>Usuário</th><th>Status</th></tr>';
612                for (var j = 0; j < instanceList.length; j++)
613                {
614                        if (!instanceList[j]['wf_instance_name'])
615                                instanceList[j]['wf_instance_name'] = '';
616                        content += '<tr>';
617                        content += '<td>' + instanceList[j]['wf_instance_id'] + '</td>';
618                        content += '<td>' + instanceList[j]['wf_activity_name'] + '</td>';
619                        content += '<td>' + instanceList[j]['wf_instance_name'] + '</td>';
620                        content += '<td>' + instanceList[j]['wf_priority'] + '</td>';
621                        content += '<td>' + names[instanceList[j]['wf_user']] + '</td>';
622                        content += '<td>' + statusQuickTranslation[instanceList[j]['wf_status']] + '</td>';
623                        content += '</tr>';
624                }
625                content += '</table>';
626        }
627
628        divInstance.innerHTML = content;
629}
Note: See TracBrowser for help on using the repository browser.