fixed removing pending_in slots
[unfold.git] / plugins / scheduler2 / static / js / scheduler2.js
index 0150830..862b8a7 100755 (executable)
@@ -313,7 +313,7 @@ var SCHEDULER_COLWIDTH = 50;
                     }\r
         \r
                     $scope._create_new_lease(model_resource.urn, start_time, end_time);\r
-                    model_lease.status = 'pendingin'; \r
+                    model_lease.status = (model_lease.status == 'free') ? 'pendingin' : 'in';\r
                     // unless the exact same lease already existed (pending_out status for the lease, not the cell !!)\r
 \r
                     break;\r
@@ -351,7 +351,7 @@ var SCHEDULER_COLWIDTH = 50;
                     }\r
                 \r
                     // cf comment in previous switch case\r
-                    model_lease.status = 'pendingout'; \r
+                    model_lease.status = (model_lease.status == 'selected') ? 'pendingout' : 'free';\r
 \r
                     break;\r
 \r
@@ -682,7 +682,7 @@ var SCHEDULER_COLWIDTH = 50;
 \r
                 resource = this.scope_resources_by_key[lease.resource];\r
                 day_timestamp = SchedulerDateSelected.getTime() / 1000;\r
-                id_start = (lease.start_time - day_timestamp) / resource.granularity;\r
+                id_start = Math.floor((lease.start_time - day_timestamp) / resource.granularity);\r
 \r
                 /* Some leases might be in the past */\r
                 if (id_start < 0)\r
@@ -691,14 +691,14 @@ var SCHEDULER_COLWIDTH = 50;
                 if (id_start >= this._all_slots.length)\r
                     return true; // ~ continue\r
 \r
-                id_end   = (lease.end_time   - day_timestamp) / resource.granularity - 1;\r
+                id_end   = Math.ceil((lease.end_time   - day_timestamp) / resource.granularity);\r
                 colspan_lease = resource.granularity / this._granularity; //eg. 3600 / 1800 => 2 cells\r
                 if (id_end >= this._all_slots.length / colspan_lease) {\r
                     /* Limit the display to the current day */\r
                     id_end = this._all_slots.length / colspan_lease\r
                 }\r
 \r
-                for (i = id_start; i <= id_end; i++) {\r
+                for (i = id_start; i < id_end; i++) {\r
                     // the same slots might be affected multiple times.\r
                     // PENDING_IN + PENDING_OUT => IN \r
                     //\r
@@ -735,7 +735,11 @@ var SCHEDULER_COLWIDTH = 50;
                             lease_success = '';\r
                             break;\r
                         case STATE_SET_OUT_PENDING:\r
-                            lease_class = 'pendingout';\r
+                            // pending_in & pending_out == IN == replacement\r
+                            if (resource.leases[i].status == 'pendingin')\r
+                                lease_class = 'pendingin'\r
+                            else\r
+                                lease_class = 'pendingout';\r
                             lease_success = '';\r
                             break;\r
                     \r