various fixes to slice page plugins
[unfold.git] / plugins / scheduler2 / static / js / scheduler2.js
index 5f35a0f..77545c0 100755 (executable)
@@ -176,7 +176,7 @@ var SCHEDULER_COLWIDTH = 50;
 \r
         $scope._create_new_lease = function(resource_urn, start_time, end_time)\r
         {\r
-            var lease_key, new_lease;\r
+            var lease_key, new_lease, data;\r
 \r
             lease_key = manifold.metadata.get_key('lease');\r
 \r
@@ -190,7 +190,13 @@ var SCHEDULER_COLWIDTH = 50;
             new_lease.hashCode = manifold.record_hashcode(lease_key.sort());\r
             new_lease.equals   = manifold.record_equals(lease_key);\r
 \r
-            manifold.raise_event($scope.instance.options.query_lease_uuid, SET_ADD, new_lease);\r
+            data = {\r
+                state: STATE_SET,\r
+                key  : null,\r
+                op   : STATE_SET_ADD,\r
+                value: new_lease\r
+            }\r
+            manifold.raise_event($scope.instance.options.query_lease_uuid, FIELD_STATE_CHANGED, data);\r
             /* Add to local cache also, unless we listen to events from outside */\r
             if (!(resource_urn in $scope._leases_by_resource))\r
                 $scope._leases_by_resource[resource_urn] = [];\r
@@ -199,7 +205,7 @@ var SCHEDULER_COLWIDTH = 50;
 \r
         $scope._remove_lease = function(other)\r
         {\r
-            var lease_key, other_key;\r
+            var lease_key, other_key, data;\r
 \r
             lease_key = manifold.metadata.get_key('lease');\r
 \r
@@ -212,7 +218,13 @@ var SCHEDULER_COLWIDTH = 50;
             other_key.hashCode = manifold.record_hashcode(lease_key.sort());\r
             other_key.equals   = manifold.record_equals(lease_key);\r
 \r
-            manifold.raise_event($scope.instance.options.query_lease_uuid, SET_REMOVED, other_key);\r
+            data = {\r
+                state: STATE_SET,\r
+                key  : null,\r
+                op   : STATE_SET_REMOVE,\r
+                value: other_key\r
+            }\r
+            manifold.raise_event($scope.instance.options.query_lease_uuid, FIELD_STATE_CHANGED, data);\r
             /* Remove from local cache also, unless we listen to events from outside */\r
             $.grep($scope._leases_by_resource[other.resource], function(x) { return x != other; });\r
 \r
@@ -220,6 +232,8 @@ var SCHEDULER_COLWIDTH = 50;
 \r
         $scope.select = function(index, model_lease, model_resource)\r
         {\r
+            var data;\r
+\r
             console.log("Selected", index, model_lease, model_resource);\r
 \r
             var day_timestamp = SchedulerDateSelected.getTime() / 1000;\r
@@ -256,7 +270,13 @@ var SCHEDULER_COLWIDTH = 50;
                             other_key.hashCode = manifold.record_hashcode(lease_key.sort());\r
                             other_key.equals   = manifold.record_equals(lease_key);\r
         \r
-                            manifold.raise_event($scope.instance.options.query_lease_uuid, SET_REMOVED, other_key);\r
+                            data = {\r
+                                state: STATE_SET,\r
+                                key  : null,\r
+                                op   : STATE_SET_REMOVE,\r
+                                value: other_key\r
+                            }\r
+                            manifold.raise_event($scope.instance.options.query_lease_uuid, FIELD_STATE_CHANGED, data);\r
                             /* Remove from local cache also, unless we listen to events from outside */\r
                             $.grep($scope._leases_by_resource[model_resource.urn], function(x) { return x != other; });\r
                             return false; // ~ break\r
@@ -270,7 +290,6 @@ var SCHEDULER_COLWIDTH = 50;
                             /* The lease 'other' is just after, and there should not exist\r
                              * any other lease after it */\r
                             end_time = other.end_time;\r
-                            // XXX SET_ADD and SET_REMOVE should accept full objects\r
                             other_key = {\r
                                 resource:   other.resource,\r
                                 start_time: other.start_time,\r
@@ -280,7 +299,13 @@ var SCHEDULER_COLWIDTH = 50;
                             other_key.hashCode = manifold.record_hashcode(lease_key.sort());\r
                             other_key.equals   = manifold.record_equals(lease_key);\r
         \r
-                            manifold.raise_event($scope.instance.options.query_lease_uuid, SET_REMOVED, other_key);\r
+                            data = {\r
+                                state: STATE_SET,\r
+                                key  : null,\r
+                                op   : STATE_SET_REMOVE,\r
+                                value: other_key\r
+                            }\r
+                            manifold.raise_event($scope.instance.options.query_lease_uuid, FIELD_STATE_CHANGED, other_key);\r
                             /* Remove from local cache also, unless we listen to events from outside */\r
                             $.grep($scope._leases_by_resource[model_resource.urn], function(x) { return x != other; });\r
                             return false; // ~ break\r
@@ -337,7 +362,7 @@ var SCHEDULER_COLWIDTH = 50;
             }\r
             \r
 \r
-            //$scope._dump_leases();\r
+            $scope._dump_leases();\r
         };\r
   \r
         $scope._dump_leases = function()\r
@@ -686,54 +711,6 @@ var SCHEDULER_COLWIDTH = 50;
                 $("#plugin-scheduler").show();\r
             },\r
 \r
-        // GUI EVENTS\r
-\r
-        // TO BE REMOVED\r
-        _on_submit : function()\r
-        {\r
-            var leasesForCommit = new Array();\r
-            var tmpDateTime = SchedulerDateSelected;\r
-            for (var i = 0; i < SchedulerData.length; i++)\r
-            {\r
-                var tpmR = SchedulerData[i];\r
-                //for capturing start and end of the lease\r
-                var newLeaseStarted = false;\r
-                for (var j = 0; j < tpmR.leases.length; j++) {\r
-                    var tpmL = tpmR.leases[j];\r
-                    if (newLeaseStarted == false && tpmL.status == 'selected') {\r
-                        //get date of the slot\r
-                        tmpDateTime = schedulerGetDateTimeFromSlotId(tpmL.id, tmpDateTime);\r
-                        var unixStartTime = tmpDateTime.getTime() / 1000;\r
-                        //add lease object\r
-                        leasesForCommit.push({\r
-                            resource: tpmR.id,\r
-                            //granularity: tpmR.granularity,\r
-                            //lease_type: null,\r
-                            //slice: null,\r
-                            start_time: unixStartTime,\r
-                            end_time: null,\r
-                            //duration: null\r
-                        });\r
-                        console.log(tpmR.id);\r
-                        newLeaseStarted = true;\r
-                    } else if (newLeaseStarted == true && tpmL.status != 'selected') {\r
-                        //get date of the slot\r
-                        tmpDateTime = schedulerGetDateTimeFromSlotId(tpmL.id, tmpDateTime);\r
-                        var unixEndTime = tmpDateTime.getTime() / 1000;\r
-                        //upate end_time\r
-                        var tmpCL = leasesForCommit[leasesForCommit.length - 1];\r
-                        tmpCL.end_time = unixEndTime;\r
-                        //tmpCL.duration = schedulerFindDuration(tmpCL.start_time, tmpCL.end_time, tmpCL.granularity);\r
-                        newLeaseStarted = false;\r
-                    }\r
-                }\r
-            }\r
-            console.log(leasesForCommit);\r
-            for (var i = 0; i < leasesForCommit.length; i++) {\r
-                manifold.raise_event(scheduler2Instance.options.query_lease_uuid, SET_ADD, leasesForCommit[i]);\r
-            }\r
-        },\r
-        \r
         // PRIVATE METHODS\r
 \r
         /**\r