~open-arch-timesheets/timesheets/initial

« back to all changes in this revision

Viewing changes to ignored/curr remote js/submissionScripts.js

  • Committer: Lucian
  • Date: 2010-01-29 15:23:55 UTC
  • Revision ID: lucian.pricop@yahoo.co.uk-20100129152355-izd5bc9dbyyguuop
nothing

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
if(window.loadDependencies)
 
2
        loadDependencies(
 
3
                Array('js/ajaxRequestModule.js',
 
4
                                'js/ErrorDisplay.js',
 
5
                                'js/timesheetScripts.js',
 
6
                                'yui/build/yahoo-dom-event/yahoo-dom-event.js',
 
7
                                'yui/build/calendar/calendar-min.js'
 
8
                        ))
 
9
else
 
10
        alert("Some dependencies could not be loaded!");
 
11
        
 
12
var GDatePicker = null;//the date picker used for dates
 
13
var currentFriday = null;
 
14
 
 
15
function onDateInput(event){
 
16
        
 
17
        if(GDatePicker === null){   
 
18
                //initializing the date picker 
 
19
                var PickerDiv = document.createElement("div");
 
20
                PickerDiv.id = 'datepicker';
 
21
                PickerDiv.style.position = 'absolute';
 
22
                var body = document.getElementsByTagName("body")[0];
 
23
                body.appendChild(PickerDiv);
 
24
                var navConfig = {
 
25
                monthFormat: YAHOO.widget.Calendar.LONG
 
26
                }; 
 
27
                GDatePicker = new YAHOO.widget.Calendar( 'datepickerid', 'datepicker',{navigator: navConfig, close: true, start_weekday: 6, show_week_header: false});
 
28
                //setting the event handlers accordingly
 
29
                GDatePicker.selectEvent.subscribe(function (eventType, dateArr) {
 
30
                        var dateInput = document.getElementById('friday');
 
31
                        if ( currentFriday == null) {
 
32
                                currentFriday = ISOStringToDate(dateInput.value);
 
33
                                if (currentFriday == null) {
 
34
                                        currentFriday = new Date();
 
35
                                }
 
36
                        }
 
37
                        if (dateInput !== null) {
 
38
                                var strDate = dateArr[0][0];
 
39
                                var year = parseInt(strDate[0],10);
 
40
                                var selectedFriday = new Date(Date.UTC(year,(parseInt(strDate[1],10)-1),strDate[2]));
 
41
                                var diff = 5 - selectedFriday.getDay();
 
42
                                if (selectedFriday.getDay() == 6) {
 
43
                                        diff = 6;
 
44
                                }
 
45
                                selectedFriday = addDays(selectedFriday, diff);
 
46
                                if (currentFriday.getTime() != selectedFriday.getTime()) {
 
47
                                        dateInput.value =  DateToISOString(selectedFriday);
 
48
                                        document.forms.parameters.submit();
 
49
                                }
 
50
                                GDatePicker.hide();
 
51
                        }
 
52
                });
 
53
                
 
54
        }
 
55
        if (GDatePicker.oDomContainer.style.display == 'block') {
 
56
                GDatePicker.hide();
 
57
                return;
 
58
        }
 
59
        var dateInput = document.getElementById('friday');
 
60
        var arr = dateInput.value.split("-");
 
61
        if(arr.length == 3) {
 
62
                var year = parseInt(arr[0],10);
 
63
                var month = parseInt(arr[1],10)-1;
 
64
                var day = parseInt(arr[2],10)-1;
 
65
                GDatePicker.setMonth(month);
 
66
                GDatePicker.setYear(year);
 
67
                GDatePicker.render();
 
68
                for (var i= 0; i < GDatePicker.cells.length; ++i) {
 
69
                        if ( GDatePicker.cells[i].textContent == day && GDatePicker.cells[i].className.indexOf('selectable') != -1){
 
70
                                GDatePicker.cells[i].parentNode.style.outline = '1px solid red'; //highlighting the week
 
71
                                break;
 
72
                        }
 
73
                }
 
74
        }
 
75
        
 
76
        //positioning the date picker under the input box
 
77
        var weekStart = document.getElementById('weekStart');
 
78
        var offsetX = getX(weekStart);
 
79
        var offsetY = getY(weekStart);
 
80
        GDatePicker.oDomContainer.style.left = (offsetX-10)+"px";
 
81
        GDatePicker.oDomContainer.style.top = (offsetY+ weekStart.offsetHeight)+"px";
 
82
        
 
83
        //making the picker visible
 
84
        GDatePicker.show();
 
85
        event.preventDefault();
 
86
}
 
87
function prevWeek() {
 
88
        var dateInput = document.getElementById('friday');
 
89
        var currentFriday = ISOStringToDate(dateInput.value);
 
90
        selectedFriday = addDays(currentFriday, -7);
 
91
        dateInput.value = DateToISOString(selectedFriday);
 
92
        document.forms.parameters.submit();
 
93
}
 
94
function nextWeek() {
 
95
        var dateInput = document.getElementById('friday');
 
96
        var currentFriday = ISOStringToDate(dateInput.value);
 
97
        selectedFriday = addDays(currentFriday, 7);
 
98
        dateInput.value = DateToISOString(selectedFriday);
 
99
        document.forms.parameters.submit();
 
100
}
 
101
function remindEmployee(refid) {
 
102
        var request = "<\?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
 
103
        request += "<LIST>\n";
 
104
        request += "\t<ITEM>"+refid+"</ITEM>\n";
 
105
        request += "</LIST>\n";
 
106
        ajaxSendXMLtoPHP('sendReminder.php',request,statusCallback);
 
107
}
 
108
function remindAll() {
 
109
        var inputs = document.getElementsByTagName("input");
 
110
        var request = "<\?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
 
111
        request += "<LIST>\n";
 
112
        var count =0;
 
113
        var errorDisplay = new ErrorDisplay('errors','errorDiv');
 
114
        for(var i=0; i < inputs.length; ++i)
 
115
        {
 
116
                if(inputs[i].name != "remind")
 
117
                        continue;
 
118
                if(inputs[i].checked)
 
119
                {
 
120
                        request += "\t<ITEM>"+inputs[i].value+"</ITEM>\n";
 
121
                        count++;
 
122
                }
 
123
        }
 
124
        if(count > 0)
 
125
        {
 
126
                request += "</LIST>\n";
 
127
                //send reminders
 
128
                //test
 
129
//                                   request = "<\?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
 
130
//                                   request += "<LIST>";
 
131
//                                       request += "\t<ITEM>1273</ITEM>\n";
 
132
//                                       request += "\t<ITEM>1251</ITEM>\n";
 
133
//                                        request += "\t<ITEM>1407</ITEM>\n";
 
134
//                                       request += "</LIST>";
 
135
                //end test
 
136
//                                      alert(request);
 
137
                ajaxSendXMLtoPHP('sendReminder.php',request,statusCallback);
 
138
        }
 
139
        else
 
140
                errorDisplay.showError("Select at least one recipient",null,ErrorDisplay.WARNING);
 
141
}
 
142
function statusCallback(XML) {
 
143
        if(XML == null)
 
144
                return;
 
145
        var statuses = XML.getElementsByTagName("STATUS");
 
146
        var errorDisplay = new ErrorDisplay('errors','errorDiv');
 
147
        var successNo = XML.getElementsByTagName("SUCCESS");
 
148
        if (successNo != null) {
 
149
                successNo = successNo[0].textContent;
 
150
        }
 
151
        else {
 
152
                successNo = 0;
 
153
        }
 
154
        var failNo = XML.getElementsByTagName("FAIL");
 
155
        if (failNo != null) {
 
156
                failNo = failNo[0].textContent;
 
157
        }
 
158
        else {
 
159
                failNo = 0;
 
160
        }
 
161
        var messageType = ErrorDisplay.NOTICE;
 
162
        var message = "";
 
163
        if (successNo > 0 && failNo == 0) {
 
164
                message = "Reminder sent succesfully to "+successNo+" recipient(s)";
 
165
        }
 
166
        if (successNo > 0 && failNo > 0) {
 
167
                message = "Reminder sent succesfully to "+successNo+" recipient(s), but failed on "+failNo+" recipient(s)";
 
168
                messageType = ErrorDisplay.WARNING;
 
169
        }
 
170
        if (successNo == 0 && failNo > 0) {
 
171
                message = "Reminder failed to all "+failNo+" recipient(s)";
 
172
                messageType = ErrorDisplay.FATAL;
 
173
        }
 
174
        if( successNo == 0 && failNo == 0) {
 
175
                message = "No recipients, please contact IT department!";
 
176
                messageType = ErrorDisplay.FATAL;
 
177
        }
 
178
        errorDisplay.showError(message,null,messageType);
 
179
        if (failNo != 0) {
 
180
                errorDisplay.showError(statuses[0].textContent,null,ErrorDisplay.FATAL);
 
181
        }
 
182
}
 
 
b'\\ No newline at end of file'