275894a30fad956b379c7cda9dea7c782b17371e
[unfold.git] / plugins / scheduler2 / static / js / table-selector.js
1 ////version 3\r
2 var scheduler_table_dragStart_td = 0;\r
3 var scheduler_table_dragStart_tr = 0;\r
4 var scheduler_table_dragEnd_td = 0;\r
5 var scheduler_table_dragEnd_tr = 0;\r
6 //tmp gia ta loops & check gia to last state\r
7 var tmp_scheduler_table_dragStart_td;\r
8 var tmp_scheduler_table_dragStart_tr;\r
9 var tmp_scheduler_table_dragEnd_td;\r
10 var tmp_scheduler_table_dragEnd_tr;\r
11 var schedulerTableIsDragging = false;\r
12 // try stop \r
13 var continueExecuting = false;\r
14 var isExecuting = false;\r
15 \r
16 \r
17 \r
18 function rangeMouseDown(e) {\r
19     if (Debug) console.time("mouse:rangeMouseDown");\r
20     if (schedulerIsRightClick(e)) {\r
21         return false;\r
22     } else {\r
23         scheduler_table_dragStart_tr = $(this).parent().index();\r
24         scheduler_table_dragStart_td = $(this).index();\r
25         scheduler_table_dragEnd_tr = scheduler_table_dragStart_tr;\r
26         scheduler_table_dragEnd_td = scheduler_table_dragStart_td;\r
27         //alert(scheduler_table_dragStart_tr);\r
28         //var allCells = $("#tblReservation td");\r
29         //dragStart = allCells.index($(this));\r
30 \r
31         if ( $(this).hasClass("free"))\r
32             $(this).addClass("selected_tmp");\r
33 \r
34         schedulerTableIsDragging = true;\r
35         //selectRange();\r
36 \r
37         if (typeof e.preventDefault != 'undefined') { e.preventDefault(); }\r
38         document.documentElement.onselectstart = function () { return false; };\r
39     }\r
40     if (Debug) console.timeEnd("mouse:rangeMouseDown");\r
41 }\r
42 \r
43 function rangeMouseUp(e) {\r
44     if (Debug) console.time("mouse:rangeMouseUp");\r
45     if (schedulerIsRightClick(e)) {\r
46         return false;\r
47     } else {\r
48         //var allCells = $("#tblReservation td");\r
49         //dragEnd = allCells.index($(this));\r
50 \r
51         scheduler_table_dragEnd_tr = $(this).parent().index();\r
52         scheduler_table_dragEnd_td = $(this).index();\r
53 \r
54         schedulerTableIsDragging = false;\r
55         selectRange(false);\r
56 \r
57         document.documentElement.onselectstart = function () { return true; };\r
58     }\r
59     if (Debug) console.timeEnd("mouse:rangeMouseUp");\r
60 }\r
61 \r
62 function rangeMouseMove(e) {\r
63     //if (Debug) console.time("mouse:rangeMouseMove");\r
64     if (schedulerTableIsDragging) {\r
65         scheduler_table_dragEnd_tr = $(this).parent().attr('data-trindex');\r
66         scheduler_table_dragEnd_td = $(this).attr('data-tdindex');\r
67 \r
68         //if (Debug) this.debug('foo');\r
69 \r
70         if ((scheduler_table_dragEnd_tr != tmp_scheduler_table_dragEnd_tr) || (scheduler_table_dragEnd_td != tmp_scheduler_table_dragEnd_td)) {\r
71             //console.log(scheduler_table_dragEnd_tr + " - " + tmp_scheduler_table_dragEnd_tr);\r
72             //console.log(scheduler_table_dragEnd_td + " - " + tmp_scheduler_table_dragEnd_td);\r
73             //selectRange(true);\r
74         }\r
75     }\r
76     //if (Debug) console.timeEnd("mouse:rangeMouseMove");\r
77 }\r
78 \r
79 function selectRange(isTemp) {\r
80     if (Debug) console.time("mouse:---selectRange");\r
81 \r
82     if (!schedulerCtrlPressed)\r
83         $("#" + rsvrTblNm + "  td:not([class='info'],[class='closed'])").removeClass('selected selected_tmp').addClass('free');\r
84 \r
85     tmp_scheduler_table_dragStart_td = scheduler_table_dragStart_td;\r
86     tmp_scheduler_table_dragStart_tr = scheduler_table_dragStart_tr;\r
87     tmp_scheduler_table_dragEnd_td = scheduler_table_dragEnd_td;\r
88     tmp_scheduler_table_dragEnd_tr = scheduler_table_dragEnd_tr;\r
89 \r
90     if (tmp_scheduler_table_dragStart_td > tmp_scheduler_table_dragEnd_td) {\r
91         var tmp = tmp_scheduler_table_dragStart_td;\r
92         tmp_scheduler_table_dragStart_td = tmp_scheduler_table_dragEnd_td;\r
93         tmp_scheduler_table_dragEnd_td = tmp;\r
94     }\r
95 \r
96     if (tmp_scheduler_table_dragStart_tr > tmp_scheduler_table_dragEnd_tr) {\r
97         var tmp = tmp_scheduler_table_dragStart_tr;\r
98         tmp_scheduler_table_dragStart_tr = tmp_scheduler_table_dragEnd_tr;\r
99         tmp_scheduler_table_dragEnd_tr = tmp;\r
100     }\r
101 \r
102     //alert("tmp_scheduler_table_dragStart_td:" + tmp_scheduler_table_dragStart_td + "\n tmp_scheduler_table_dragStart_tr:" + tmp_scheduler_table_dragStart_tr + "\n tmp_scheduler_table_dragEnd_td:" + tmp_scheduler_table_dragEnd_td + "\n tmp_scheduler_table_dragEnd_tr:" + tmp_scheduler_table_dragEnd_tr);\r
103 \r
104 \r
105     for (var i = tmp_scheduler_table_dragStart_tr; i <= tmp_scheduler_table_dragEnd_tr; i++) {\r
106         for (var j = tmp_scheduler_table_dragStart_td; j <= tmp_scheduler_table_dragEnd_td; j++) {\r
107             //alert("i:" + i + "j:" + j);\r
108             var cell = $('#' + rsvrTblNm + '  tbody tr:eq(' + i + ') td:eq(' + j + ')');\r
109             //$(cell)\r
110             var curClass = $(cell).attr("class");\r
111             //alert(curClass);\r
112             switch (curClass) {\r
113                 case "free_tmp":\r
114                     $(cell).removeClass();\r
115                     if (isTemp)\r
116                         $(cell).addClass("free_tmp");\r
117                     else\r
118                         $(cell).addClass("free");\r
119                     break;\r
120                 case "free":\r
121                     $(cell).removeClass();\r
122                     if (isTemp)\r
123                         $(cell).addClass("selected_tmp");\r
124                     else\r
125                         $(cell).addClass("selected");\r
126                     break;\r
127                 case "selected_tmp":\r
128                     $(cell).removeClass();\r
129                     if (isTemp)\r
130                         $(cell).addClass("selected_tmp");\r
131                     else\r
132                         $(cell).addClass("selected");\r
133                     break;\r
134                 case "selected":\r
135                     $(cell).removeClass();\r
136                     if (isTemp)\r
137                         $(cell).addClass("free_tmp");\r
138                     else\r
139                         $(cell).addClass("free");\r
140                     break;\r
141                 case "closed":\r
142                     //do nothing\r
143                     //alert("not allowed!");\r
144                     break;\r
145             }\r
146         }\r
147     }\r
148 \r
149 \r
150     /*if (dragEnd + 1 < dragStart) { // reverse select\r
151     //alert(1);\r
152     $("#tblReservation td:not([class='info'])").slice(dragEnd, dragStart + 1).addClass('selected');\r
153     } else {\r
154     alert(dragStart + "-" + dragEnd);\r
155     $("#tblReservation td:not([class='info'])").slice(dragStart, dragEnd).addClass('selected');\r
156     }*/\r
157 \r
158 \r
159     if (Debug) console.timeEnd("mouse:---selectRange");\r
160 }\r
161 \r
162 function ClearTableSelection(){\r
163     $('#' + rsvrTblNm + ' .selected').addClass("free").removeClass("selected");\r
164 }\r
165 \r
166 \r