DataObjects/Core_notify.php
[Pman.Core] / Lock.php
index 62e7ea3..a1b091f 100644 (file)
--- a/Lock.php
+++ b/Lock.php
  * baseURL + /Core/Lock/lock?on_id=...&on_table=...
  * - returns id or an array of who has the locks.
  * 
+ * Force an unlock after a warning..
  * baseURL + /Core/Lock/lock?on_id=...&on_table=...&force=1
  * - returns id..
  * 
+ * Unlock - call when window is closed..
+ * baseURL + /Core/Lock/unlock?on_id=...&on_table=...&force=1
+ * - returns jerr or jok
  */
 
 require_once 'Pman.php';
@@ -45,18 +49,24 @@ class Pman_Core_Lock extends Pman
     }
     
     function get($action)
+    {
+        // should we allow url links to lock things???
+        // only for debugging??
+        $this->post($action);
+        // 
+        $this->jerr("invalid request");
+    }
+    
+    function post($action)
     {
         
         // default action is to attempt to lock..
-        $action = empty($action) ? 'lock' : 'unlock';
-        $this->$action($curlock);
-        
-       
-        
+        $action = empty($action) || $action == 'lock' ? 'lock' : 'unlock';
+        $this->$action();
         
     }
     
-    function unlock($curlock)
+    function unlock()
     {
     
         if (empty($_REQUEST['id'])) {
@@ -96,21 +106,22 @@ class Pman_Core_Lock extends Pman
         ));
         
         
-        $nlocks = $curlock->count() 
+        $nlocks = $curlock->count() ;
         if ($nlocks && empty($_REQUEST['force'])) {
-            $curlock->selectAdd();
-            $curlock->selectAdd('distinct(person_id), created');
-            
-            
+           // DB_DataObjecT::debugLevel(1);
             $ar = $curlock->fetchAll('person_id', 'created');
             $p = DB_DataObject::factory('Person');
-            $p->whereAddIn('id', $ar, 'int');
+            $p->selectAdd();
+            $p->selectAdd('id,name,email');
+            
+            $p->whereAddIn('id', array_keys($ar), 'int');
             $p->find();
+            $ret = array();
             while ($p->fetch()) {
-                $ret[$p->id] = $p->toRooArray();
-                $ret[$p->id]->lock_created = $ar[$p->id];
+                $ret[$p->id] = $p->toArray();
+                $ret[$p->id]['lock_created'] = $ar[$p->id];
             }
-            $this->jok($ret);
+            $this->jok(array_values($ret));
             
         }
         if ($nlocks) {