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

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

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

Line 
1/* contém o e-mail padrão quando se envia somente um e-mail por usuário */
2var workflowMonitorEmailUser = '<font color="#FF6666">Atenção: esta mensagem foi gerada automaticamente pelo sistema e não deve ser respondida.</font><br/><br/>\n\
3\n\
4Caro usuário,<br/>\n\
5As seguintes atividades de workflow do processo <strong>%processo%</strong> estão aguardando execução em sua caixa de tarefas pendentes. Favor providenciar o andamento:<br/><br/>\n\
6%inicio_loop%\n\
7Instância %atual_instancia% de %quantidade_instancia%<br/>\n\
8Atividade: %atividade%<br/>\n\
9Aguardando por: %tempo_atividade% (desde %inicio_atividade%)<br/>\n\
10Identificador: %identificador%<br/>\n\
11Link para execução: %link%<br/>\n\
12<br/><br/>\n\
13%fim_loop%\n\
14\n\
15Atenciosamente,<br/>\n\
16Workflow do Expresso';
17
18/* contém o e-mail padrão quando se envia um e-mail por instância */
19var workflowMonitorEmailInstance = '<font color="#FF6666">Atenção: esta mensagem foi gerada automaticamente pelo sistema e não deve ser respondida.</font><br/><br/>\n\
20\n\
21Caro usuário,<br/>\n\
22Existe uma atividades de workflow do processo <strong>%processo%</strong> que está aguardando execução em sua caixa de tarefas pendentes. Favor providenciar o andamento:<br/><br/>\n\
23\n\
24Atividade: %atividade%<br/>\n\
25Aguardando por: %tempo_atividade% (desde %inicio_atividade%)<br/>\n\
26Identificador: %identificador%<br/>\n\
27Link para execução: %link%<br/>\n\
28<br/>\n\
29\n\
30Atenciosamente,<br/>\n\
31Workflow do Expresso';
32
33/**
34 * Constrói a interface para envio de e-mails (dentro de um elemento LightBox)
35 * @return void
36 */
37function sendMailConfig()
38{
39        var content = '';
40        content += '<div id="emailCompose">';
41        content += '<h2>Enviar E-mail</h2>';
42        content += '<input type="radio" name="emailType" id="onePerUser" value="1" checked="true" onclick="$(\'emailBody\').value = workflowMonitorEmailUser;"/> <label for="onePerUser">Um e-mail por usuário</label>';
43        content += '<label><input type="radio" name="emailType" id="onePerInstance" value="1" onclick="$(\'emailBody\').value = workflowMonitorEmailInstance;"/> <label for="onePerInstance">Um e-mail por instância</label>';
44        content += '<br/><label>Assunto do E-mail <input type="text" id="emailSubject" value="Atividades de Workflow Pendentes" size="40"/></label>';
45        content += '<br/>Texto do E-mail:<br/><textarea style="width: 100%; height: 170px;" id="emailBody">' + workflowMonitorEmailUser + '</textarea>';
46
47        content += '<table style="width: 100%">';
48        content += '<tr><td style="width: 60%"></td>';
49        content += '<td>';
50
51        content += '<button onclick="previewEmail(); return false;">Preview</button>';
52        content += '&nbsp;&nbsp;&nbsp;&nbsp;';
53        content += '<button onclick="sendMail(); return false;">Enviar</button>';
54        content += '&nbsp;&nbsp;&nbsp;&nbsp;';
55        content += '<button onclick="valid.deactivate(); return false;">Cancelar</button>';
56
57        content += '</td>';
58        content += '</tr>';
59        content += '<tr>';
60        content += '<td colspan="2">';
61
62        content += '<table style="width: 100%">';
63        content += '<tr style="color: #FFFFFF; background-color: #000000; font-size: 11px;"><th>Variável</th><th>Significado</th></tr>';
64        content += '<tr><td>%atividade%</td><td>O nome da atividade atual</td></tr>'
65        content += '<tr><td>%usuario%</td><td>O nome do usuário que está com a instância</td></tr>'
66        content += '<tr><td>%processo%</td><td>O nome do processo</td></tr>'
67        content += '<tr><td>%identificador%</td><td>O identificador da instância</td></tr>'
68        content += '<tr><td>%tempo_atividade%</td><td>A duração (até o momento) da atividade atual</td></tr>'
69        content += '<tr><td>%tempo_instancia%</td><td>A duração (até o momento) da instância</td></tr>'
70        content += '<tr><td>%inicio_atividade%</td><td>O início da atividade atual</td></tr>'
71        content += '<tr><td>%inicio_instancia%</td><td>O início da instância</td></tr>'
72        content += '<tr><td>%quantidade_instancia%</td><td>A quantidade de instâncias com o usuário</td></tr>'
73        content += '<tr><td>%atual_instancia%</td><td>A instância atual (número em relação à quantidade)</td></tr>'
74        content += '<tr><td>%link%</td><td>Link para a execução da instância (abre em nova janela)</td></tr>'
75        content += '<tr><td>%url%</td><td>Somente a URL para a execução da instância</td></tr>'
76        content += '<tr><td>%prioridade%</td><td>A prioridade da instância</td></tr>'
77        content += '</table>';
78
79        content += '</td>';
80        content += '</tr>';
81        content += '</table>';
82        content += '</div>';
83
84        content += '<div id="emailPreview" style="display: none;"></div>';
85
86        $('lbContent').innerHTML = content;
87//      $('emailBody').innerHTML = workflowMonitorEmailUser;
88}
89
90/**
91 * Gera uma string contento os parâmetros para as chamadas Ajax do envio de e-mails
92 * @return string A string de parâmetros
93 */
94function commonParams()
95{
96        var output = 'pid=' + workflowMonitorInstancesParams['pid'];
97
98        output += '&p_page=0';
99
100        if (workflowMonitorInstancesParams['filters'])
101                output += '&filters=' + workflowMonitorInstancesParams['filters'];
102
103        return output;
104}
105
106/**
107 * Envia os e-mails para as instâncias selecionadas
108 * @return void
109 */
110function sendMail()
111{
112        function resultSendMail(data)
113        {
114                if (data['error'])
115                {
116                        alert(data['error']);
117                        return;
118                }
119
120                var content = '';
121                content += '<h2>Resultado de Envio</h2>';
122                content += '<br/><font color="#FF0000">Foram enviados ' + data + ' e-mails alertando sobre as instâncias.</font>'
123                content += '<br/><br/><button onclick="valid.deactivate(); return false;">Fechar</button>';
124                $('lbContent').innerHTML = content;
125
126        }
127
128        if (!confirm('Este e-mail será enviado para todos os usuários listados na tela anterior.\nDeseja continuar?'))
129                return;
130        var params = commonParams();
131        params += '&emailType=' + (($F('onePerUser') == 1) ? 'user' : 'instance');
132        params += '&emailBody=' + escape($F('emailBody'));
133        params += '&emailSubject=' + escape($F('emailSubject'));
134        cExecute('$this.bo_monitors.sendMail', resultSendMail, params);
135}
136
137/**
138 * Gera um preview dos e-mails que serão enviados
139 * @return void
140 */
141function previewEmail()
142{
143        function resultPreviewEmail(data)
144        {
145                if (data['error'])
146                {
147                        alert(data['error']);
148                        return;
149                }
150
151                var content = '<h2>Preview</h2>';
152                content += '<p><strong>Número de e-mails que serão enviados:</strong> ' + data['emailCount'] + '</p>';
153                content += '<div style="background-color: #FFFFFF; border: 1px solid black; padding: 10px;">' + data['emailBody'] + '</div>';
154                content += '<br/><button onclick="$(\'emailPreview\').hide();$(\'emailCompose\').show()"; return false;>Fechar Preview</button>';
155                $('emailPreview').innerHTML = content;
156                $('emailCompose').hide();
157                $('emailPreview').show();
158        }
159        var params = commonParams();
160        params += '&emailType=' + (($F('onePerUser') == 1) ? 'user' : 'instance');
161        params += '&emailBody=' + escape($F('emailBody'));
162        params += '&emailSubject=' + escape($F('emailSubject'));
163        cExecute('$this.bo_monitors.previewEmail', resultPreviewEmail, params);
164}
165
166/**
167 * Remove as instâncias finalizadas (completadas ou abortadas) que foram selecionadas
168 * @return void
169 */
170function removeCompletedInstances()
171{
172        function resultRemoveCompletedInstances(data)
173        {
174                if (data['error'])
175                {
176                        alert(data['error']);
177                        return;
178                }
179
180                /* define a mensagem que será exibida */
181                var message = '';
182                if (data < 1)
183                        message = 'Nenhuma instância foi removida';
184                else
185                        if (data == 1)
186                                message = 'Uma instância foi removida';
187                        else
188                                message = 'Foram removidas ' + data + ' instâncias';
189                write_msg(message);
190
191                /* recarrega a lista de instâncias */
192                filterInstances(true);
193        }
194
195        if (!confirm('Todas as instâncias listadas nesta tela (inclusive as paginadas) serão removidas.\nDeseja continuar?'))
196                return;
197        var params = commonParams();
198        cExecute('$this.bo_monitors.removeCompletedInstances', resultRemoveCompletedInstances, params);
199}
Note: See TracBrowser for help on using the repository browser.