check what is being written to our log files.
[Pman.Core] / NotifyAction.php
index 52a5bf5..e3b9af5 100644 (file)
@@ -7,6 +7,7 @@
  *
  *
  */
+require_once 'Pman.php';
 
 class Pman_Core_NotifyAction extends Pman
 {
@@ -30,46 +31,54 @@ class Pman_Core_NotifyAction extends Pman
     }
     
     
-    function get()
+    function get($v, $opts=array())
     {
         $this->jerr("invalid request");
         
     }
-    function post()
+    function post($v)
     {
         // needs: (Array of...)
-        // on_table, action(eg. APPROVAL)
-        // on_id (comma delimited.)
+        //   on_table,
+        //   action(eg. APPROVAL)
+        //   on_id (comma delimited.)
+        //DB_DataObject::debugLevel(1);
         $n = DB_DataObject::factory('core_notify');
         $n->person_id = $this->authUser->id;
         // in theory in workflow, this could trigger another action...
         // if watch is on it..
-        foreach(array('on_table','on_id','action') as $k) {
+        foreach(array('ontable','onid','action') as $k) {
             if (empty($_POST[$k])) {
                 $this->jerr("missing argument $k");
             }
-            if ($k == 'on_id') {
+            if ($k == 'onid') {
                 continue;
             }
-            $n->$k = $v;
+            $n->$k = $_POST[$k];
         }
-        $ids = explode(',', $_POST['on_id']);
+        
         $n->whereAdd('sent < act_when'); // not issued yet..
-        $n->whereAdd("join_watch_id_id.medium = '". $n->escape($k) ."'");
-        $n->whereAddIn('core_notify.id', $ids, 'int' );
+        $n->whereAdd("join_watch_id_id.medium = '". $n->escape($n->action) ."'");
+        $n->whereAddIn('core_notify.onid', explode(',', $_POST['onid']), 'int' );
         $n->autoJoin();
         $ar = $n->fetchAll();
         
+        $done = array();
+        
         foreach($ar as $n) {
             $nc = clone($n);
             $nc->sent = date('Y-m-d H:i:s');
             $nc->update($n);
-            // add an event?????
+            
+            // add an event????? - yeap... only once per object
+            $key = implode(':', array($nc->ontable,$nc->onid));
+            if (!isset($done[$key])) { 
+                
+                $e = $this->addEvent($_POST['action'],$n->object());
+            }
+            $done[$key] = true;
         }
-        
-    
-        
-        
+        $this->jok("updated");
         
         
     }