source: branches/1.2/workflow/js/adminjobs/utils.js @ 1349

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

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

Line 
1var DateUnity =
2        {
3                YEAR: 0,
4                MONTH: 1,
5                WEEK: 2,
6                DAY: 3,
7                HOUR: 4,
8                MINUTE: 5,
9                NONE: 6
10        };
11
12var DateType =
13        {
14                ABSOLUTE_DATE: 0,
15                WEEK_DATE: 1,
16                RELATIVE_DATE: 2
17        };
18
19var WeekDays =
20        {
21                SUNDAY: 1,
22                MONDAY: 2,
23                TUESDAY: 4,
24                WEDNESDAY: 8,
25                THURSDAY: 16,
26                FRIDAY: 32,
27                SATURDAY: 64
28        };
29
30var JobStatus =
31        {
32                JOB_SUCCESS: 0,
33                JOB_FAIL: 1,
34                FAIL: 2,
35                ERROR: 3,
36                UNKNOWN: 4
37        };
38
39function getRepetitionSummary(jobInfo)
40{
41        switch (parseInt(jobInfo['date_type']))
42        {
43                case DateType.ABSOLUTE_DATE:
44                        return getRepetitionSummaryAbsoluteDate(jobInfo);
45
46                case DateType.WEEK_DATE:
47                        return getRepetitionSummaryWeekDate(jobInfo);
48
49                case DateType.RELATIVE_DATE:
50                        return getRepetitionSummaryRelativeDate(jobInfo);
51        }
52}
53
54function getRepetitionSummaryAbsoluteDate(jobInfo)
55{
56        var output = 'Executado';
57
58        if (parseInt(jobInfo['interval_unity']) == DateUnity.NONE)
59        {
60                var data = jobInfo['time_start'].split(' ')[0].split('-');
61                output += ' no dia ' + data[2] + '/' + data[1] + '/' + data[0];
62        }
63        else
64        {
65                output += ' uma vez';
66                var plural = (jobInfo['interval_value'] > 1);
67                if ((parseInt(jobInfo['interval_unity']) == DateUnity.HOUR) && (jobInfo['interval_value'] == 2))
68                        output += ' a cada duas';
69                else
70                        output += plural ? ' a cada ' + jobInfo['interval_value'] : ' por';
71                switch (parseInt(jobInfo['interval_unity']))
72                {
73                        case DateUnity.YEAR:
74                                output += plural ? ' anos' : ' ano';
75                                break;
76
77                        case DateUnity.MONTH:
78                                output += plural ? ' meses' : ' mês';
79                                break;
80
81                        case DateUnity.DAY:
82                                output += plural ? ' dias' : ' dia';
83                                break;
84
85                        case DateUnity.HOUR:
86                                output += plural ? ' horas' : ' hora';
87                                break;
88
89                        case DateUnity.MINUTE:
90                                output += plural ? ' minutos' : ' minuto';
91                                break;
92                }
93        }
94        return output;
95}
96
97function getRepetitionSummaryWeekDate(jobInfo)
98{
99        var output = 'Executado';
100
101        function numberToWeekDays(num, plural)
102        {
103                var output = '';
104                if (num & WeekDays.SUNDAY)
105                        output += 'domingo' + (plural ? 's ' : ' ');
106
107                if (plural)
108                        output = (output == '') ? 'às;' : 'aos;' + output;
109
110                if (num & WeekDays.MONDAY)
111                        output += 'segunda' + (plural ? 's ' : ' ');
112
113                if (num & WeekDays.TUESDAY)
114                        output += 'terça' + (plural ? 's ' : ' ');
115
116                if (num & WeekDays.WEDNESDAY)
117                        output += 'quarta' + (plural ? 's ' : ' ');
118
119                if (num & WeekDays.THURSDAY)
120                        output += 'quinta' + (plural ? 's ' : ' ');
121
122                if (num & WeekDays.FRIDAY)
123                        output += 'sexta' + (plural ? 's ' : ' ');
124
125                if (num & WeekDays.SATURDAY)
126                        output += 'sábado' + (plural ? 's ' : ' ');
127
128                output = output.substr(0, output.length-1).replace(/ /g, ', ').replace(/;/g, ' ');
129
130                var lastComma = output.lastIndexOf(', ');
131                if (lastComma != -1)
132                        output = output.substr(0, lastComma) + ' e' + output.substr(lastComma + 1);
133
134                return output;
135
136        }
137
138        var plural = (parseInt(jobInfo['interval_unity']) == DateUnity.WEEK);
139        switch (parseInt(jobInfo['week_days']))
140        {
141                case 0:
142                        return 'Não é executado';
143                        break;
144
145                case 62:
146                        output += plural ? ' nos dias da semana' : ' nos dias';
147                        break;
148
149                case 65:
150                        output += plural ? ' nos finais de semana' : ' no fim de semana';
151                        break;
152
153                case 127:
154                        output += ' todos os dias da semana';
155                        break;
156
157                default:
158                        output += ' ' + numberToWeekDays(jobInfo['week_days'], plural);
159        }
160
161        if (parseInt(jobInfo['interval_unity']) == DateUnity.NONE)
162        {
163                var data = jobInfo['time_start'].split(' ')[0].split('-');
164                output += ' da semana do dia ' + data[2] + '/' + data[1] + '/' + data[0];
165                return output;
166        }
167
168        switch (parseInt(jobInfo['interval_value']))
169        {
170                case 1:
171                        break;
172
173                case 2:
174                        output += ' a cada duas semanas';
175                        break;
176
177                default:
178                        output += ' a cada ' + jobInfo['interval_value'] + ' semanas';
179        }
180
181        return output;
182}
183
184function getRepetitionSummaryRelativeDate(jobInfo)
185{
186        var output = 'Executado';
187
188        switch (parseInt(jobInfo['month_offset']))
189        {
190                case 1:
191                        output += ' no último dia do mês';
192                        break;
193
194                case 2:
195                        output += ' no penúltimo dia do mês';
196                        break;
197
198                case 3:
199                        output += ' no antepenúltimo dia do mês';
200                        break;
201
202                default:
203                        output += ' quando faltar ' + jobInfo['month_offset'] + ' dias para o fim do mês';
204        }
205
206        if (parseInt(jobInfo['interval_unity']) == DateUnity.NONE)
207        {
208                var data = jobInfo['time_start'].split(' ')[0].split('-');
209                output += ' ' + data[1] + '/' + data[0];
210                return output;
211        }
212
213        if (jobInfo['interval_value'] == 1)
214                return output;
215
216        switch (parseInt(jobInfo['interval_value']))
217        {
218                case 2:
219                        output += '. Repete bimestralmente';
220                        break;
221
222                case 3:
223                        output += '. Repete trimestralmente';
224                        break;
225
226                case 6:
227                        output += '. Repete semestralmente';
228                        break;
229
230                case 12:
231                        output += '. Repete anualmente';
232                        break;
233
234                default:
235                        output += '. Repete a cada ' + jobInfo['interval_value'] + ' meses';
236        }
237
238        return output;
239}
240
241function checkError(data)
242{
243        if (data)
244        {
245                if (data['error'])
246                {
247                        if (typeof(data['error']) == 'string')
248                                alert(data['error']);
249                        else
250                                if (typeof(data['error']) == 'object')
251                                        alert(data['error'].join("\n"));
252                                return true;
253                        }
254                }
255
256        return false;
257}
Note: See TracBrowser for help on using the repository browser.