final move of files
[web.mtrack] / MTrackWeb / Watch.php
1 <?php # vim:ts=2:sw=2:et:
2 /* For licensing and copyright terms, see the file named LICENSE */
3 /**
4  * watch code 
5  * - reponsilbe for
6  * a) listing watchers.
7  * 
8  * b) updateding watchers.
9  * 
10  */
11  
12 require_once 'MTrackWeb.php';
13 class MTrackWeb_Watch extends MTrackWeb
14 {
15     var $id; // 0 = new
16     var $issue = false;
17     var $preview;
18     var $error;
19     var $editable;
20     var $tid = 0;
21     
22     var $masterTemplate = 'watch.html';
23     
24     
25     function getAuth() 
26     {
27         parent::getAuth();
28         require_once 'MTrack/ACL.php';
29         MTrackACL::requireAllRights('Reports', 'read');
30         return true;
31   
32     }
33     
34     function get()
35     {
36   
37         
38         $this->objname = empty($_REQUEST['objname']) ? '' : $_REQUEST['objname'];
39         $this->objid = empty($_REQUEST['objid']) ? '' : $_REQUEST['objid'];
40         
41          
42         // rights..
43          
44         MTrackACL::requireAllRights( $this->objname.':'.$this->objid, 'read');
45          
46         // list..
47         $this->watchers = MTrackWatch::objectWatchersNameId(  $this->objname,   $this->objid);
48         
49          
50         $users =  MTrack_DataObjects_Userinfo::selectList(array(''=>'-- Select to add --'));
51         $this->selfsubscribe = true;
52         foreach($this->watchers as $w) {
53             if (isset($users[$w->userid])) {
54                 unset($users[$w->userid]);
55             }
56             if ($this->authUser->userid == $w->userid) {
57                 $this->selfsubscribe = false;
58             }
59         }
60         require_once 'HTML/Template/Flexy/Element.php';
61         $this->elements['subscribe-add'] = new HTML_Template_Flexy_Element('select');
62         $this->elements['subscribe-add']->setOptions($users);
63         $this->addsubscribe = true;
64         if (count(array_keys($users)) == 1) {
65             $this->addsubscribe = false;
66         }
67         // never inherit..
68         $this->elements['subscribe-add']->setValue('');
69          
70         //$this->renderEvents();
71         
72     }
73      
74     function post()
75     {
76         
77         $this->objname = empty($_REQUEST['objname']) ? '' : $_REQUEST['objname'];
78         $this->objid = empty($_REQUEST['objid']) ? '' : $_REQUEST['objid'];
79         
80         if (empty($_REQUEST['userid'])) {
81             die("INVALID USER ID");
82         }
83         
84         require_once 'DataObjects/Userinfo.php';
85         
86         // throws exception if fails..
87         MTrack_DataObjects_Userinfo::get($_REQUEST['userid']);
88        // echo "Trying to add...";
89         MTrackWatch::watch_object(  $this->objname,   $this->objid, $_REQUEST['userid']);
90          
91         return $this->get(); 
92         // carry on and show get(..
93     }
94      
95 }