1 | /* contém o e-mail padrão quando se envia somente um e-mail por usuário */ |
---|
2 | var 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\ |
---|
4 | Caro usuário,<br/>\n\ |
---|
5 | As 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\ |
---|
7 | Instância %atual_instancia% de %quantidade_instancia%<br/>\n\ |
---|
8 | Atividade: %atividade%<br/>\n\ |
---|
9 | Aguardando por: %tempo_atividade% (desde %inicio_atividade%)<br/>\n\ |
---|
10 | Identificador: %identificador%<br/>\n\ |
---|
11 | Link para execução: %link%<br/>\n\ |
---|
12 | <br/><br/>\n\ |
---|
13 | %fim_loop%\n\ |
---|
14 | \n\ |
---|
15 | Atenciosamente,<br/>\n\ |
---|
16 | Workflow do Expresso'; |
---|
17 | |
---|
18 | /* contém o e-mail padrão quando se envia um e-mail por instância */ |
---|
19 | var 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\ |
---|
21 | Caro usuário,<br/>\n\ |
---|
22 | Existe 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\ |
---|
24 | Atividade: %atividade%<br/>\n\ |
---|
25 | Aguardando por: %tempo_atividade% (desde %inicio_atividade%)<br/>\n\ |
---|
26 | Identificador: %identificador%<br/>\n\ |
---|
27 | Link para execução: %link%<br/>\n\ |
---|
28 | <br/>\n\ |
---|
29 | \n\ |
---|
30 | Atenciosamente,<br/>\n\ |
---|
31 | Workflow do Expresso'; |
---|
32 | |
---|
33 | /** |
---|
34 | * Constrói a interface para envio de e-mails (dentro de um elemento LightBox) |
---|
35 | * @return void |
---|
36 | */ |
---|
37 | function 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 += ' '; |
---|
53 | content += '<button onclick="sendMail(); return false;">Enviar</button>'; |
---|
54 | content += ' '; |
---|
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 | */ |
---|
94 | function 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 | */ |
---|
110 | function 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 | */ |
---|
141 | function 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 | */ |
---|
170 | function 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 | } |
---|