source: contrib/Dms/inc/class.uimydms.inc.php @ 4362

Revision 4362, 44.9 KB checked in by afernandes, 13 years ago (diff)

Ticket #1416 - Disponibilizado módulo de recursos para a comunidade

  • Property svn:executable set to *
Line 
1<?php
2        /***************************************************************************\
3        * eGroupWare - mydms                                                        *
4        * http://www.linux-at-work.de                                               *
5        * http://www.phpgw.de                                                       *
6        * http://www.egroupware.org                                                 *
7        * Written by : Lars Kneschke [lkneschke@linux-at-work.de]                   *
8        * -------------------------------------------------                         *
9        * This program is free software; you can redistribute it and/or modify it   *
10        * under the terms of the GNU General Public License as published by the     *
11        * Free Software Foundation; version 2 of the License.                       *
12        \***************************************************************************/
13       
14        /* $Id: class.uimydms.inc.php 22794 2006-11-06 05:53:11Z lkneschke $ */
15define('PHPGW_SERVER_ROOT','/var/www/expresso');
16        require_once(PHPGW_SERVER_ROOT.'/mydms/inc/inc.Settings.php');
17        require_once(PHPGW_SERVER_ROOT.'/mydms/inc/inc.DBAccess.php');
18        require_once(PHPGW_SERVER_ROOT.'/mydms/inc/inc.AccessUtils.php');
19        require_once(PHPGW_SERVER_ROOT.'/mydms/inc/inc.ClassAccess.php');
20        require_once(PHPGW_SERVER_ROOT.'/mydms/inc/inc.ClassUser.php');
21        require_once(PHPGW_SERVER_ROOT.'/mydms/inc/inc.ClassGroup.php');
22        require_once(PHPGW_SERVER_ROOT.'/mydms/inc/inc.ClassFolder.php');
23        require_once(PHPGW_SERVER_ROOT.'/mydms/inc/inc.ClassDocument.php');
24
25        class uimydms
26        {
27                var $icons = array(
28                        'txt'   => 'txt.png',
29                        'doc'   => 'word.png',
30                        'rtf'   => 'document.png',
31                        'xls'   => 'excel.png',
32                        'ppt'   => 'powerpoint.png',
33                        'exe'   => 'binary.png',
34                        'html'  => 'html.png',
35                        'htm'   => 'html.png',
36                        'gif'   => 'image.png',
37                        'jpg'   => 'image.png',
38                        'bmp'   => 'image.png',
39                        'png'   => 'image.png',
40                        'log'   => 'log.png',
41                        'midi'  => 'midi.png',
42                        'pdf'   => 'pdf.png',
43                        'wav'   => 'sound.png',
44                        'mp3'   => 'sound.png',
45                        'c'     => 'source_c.png',
46                        'cpp'   => 'source_cpp.png',
47                        'h'     => 'source_h.png',
48                        'java'  => 'source_java.png',
49                        'py'    => 'source_py.png',
50                        'tar'   => 'tar.png',
51                        'gz'    => 'gz.png',
52                        'zip'   => 'gz.png',
53                        'mpg'   => 'video.png',
54                        'avi'   => 'video.png',
55                        'tex'   => 'tex.png',
56                        'default' => 'default.png',
57                );
58
59                var $public_functions = array
60                (
61                        'addACL'                => 'true',
62                        'addNotification'       => 'true',
63                        'deleteACL'             => 'true',
64                        'deleteDocument'        => 'true',
65                        'deleteFile'            => 'true',
66                        'deleteNotification'    => 'true',
67                        'folderChooser'         => 'true',
68                        'inheritACL'            => 'true',
69                        'setDefaultAccess'      => 'true',
70                        'updateACL'             => 'true',
71                        'updateDocument'        => 'true',
72                        'updateFile'            => 'true',
73                        'setOwner'              => 'true',
74                        'viewDocument'          => 'true',
75                );
76               
77                function uimydms()
78                {
79                        $this->t                =& CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
80                        $this->bomydms          =& CreateObject('mydms.bomydms');
81
82                        if (!is_object($GLOBALS['phpgw']->jscalendar))
83                        {
84                                $GLOBALS['phpgw']->jscalendar = CreateObject('phpgwapi.jscalendar');
85                        }
86                }
87
88                function addACL()
89                {
90                        $userID         = (int)$_POST['userid'];
91                        $groupID        = (int)$_POST['groupid'];
92                        $access         = (int)$_POST['access'];
93                       
94                        $documentID     = (int)$_GET['documentid'];
95
96                        if($documentID)
97                        {
98                                $this->bomydms->addACL($documentID, ($userID == 'unselected' ? false : (int)$userID), ($groupID == 'unselected' ? false : (int)$groupID), $access);
99                                $this->viewDocument($documentID);
100                        }
101                }
102
103                function addNotification()
104                {
105                        $userID         = $_POST['userid'];
106                        $groupID        = $_POST['groupid'];
107                       
108                        $documentID     = (int)$_GET['documentid'];
109
110                        if($documentID)
111                        {
112                                $this->bomydms->addNotification($documentID, ($userID == 'unselected' ? false : (int)$userID), ($groupID == 'unselected' ? false : (int)$groupID));
113                                $this->viewDocument($documentID);
114                        }
115                }
116
117                function folderChooser($_folderID=false)
118                {
119                        $folderID = ($_folderID === false ? (int)$_GET['folderid'] : $_folderID);
120                        $formName = $_GET['form'];
121                       
122                        $folder = getFolder($folderID);
123
124                        $this->display_app_header();
125               
126                        $this->t->set_file(array("folderChooser" => "folderChooser.tpl"));
127                        $this->t->set_block('folderChooser', 'main', 'main');
128
129                        $this->t->set_var('folderTree',$this->getFolderTree($folder->getPathNew(), 0, $folder, true));
130                        $this->t->set_var('formName',$formName);
131
132                        $this->t->parse("out","main");
133                       
134                        print $this->t->get('out','main');
135                }
136
137                /**
138                * create a folder tree
139                *
140                * this function will create a foldertree based on javascript
141                * on click the sorounding form gets submitted
142                *
143                * @param _folders array containing the list of folders
144                * @param _selected string containing the selected folder
145                * @param _topFolderName string containing the top folder name
146                * @param _topFolderDescription string containing the description for the top folder
147                * @param _formName string name of the sorounding form
148                * @param _hiddenVar string hidden form value, transports the selected folder
149                *
150                * @return string the html code, to be added into the template
151                */
152                function createHTMLFolder($_folders, $_selected, $_divName, $_displayCheckBox=false)
153                {
154                       
155
156?>
157<table border=0 padding=0 valign=top width=250px><tr><td valign=top>
158<div id=NAVTREE style="position:static">NAVTREE</div>
159</td></tr></table>
160<style>.navs_action {font-size: 8pt; font-family: Arial, Helvetica}.navs_tree {font-size: 8pt; font-family: Arial, Helvetica}.navs_content {border: 2 groove; padding: 5; font-size: 8pt; font-family: Arial, Helvetica}</style>
161
162
163<script language="JavaScript" type="text/javascript">
164
165// variables
166var nodes_array = new Array();
167var current_document = -1;
168
169var nav_div_id='NAVTREE';
170var nav_root = 0;
171var nav_tree = new Array();   // nav_tree
172var nav_type = new Array();
173
174var outmsg="";
175// var indentation
176var indent_width = 20;
177var indent_height = 10
178// image file
179var img_hsize = 40;
180var img_vsize = 20;
181var img_plus   = "../images/nav_plus.gif";
182var img_minus  = "../images/nav_minus.gif";
183var img_spacer  = "../images/nav_spacer.gif";
184var img_box  = "../images/nav_box.gif";
185
186//--------------------------------------------------------------
187// Define type of node
188
189function DefineType(tname, img_prefix)
190{   this.name = tname;
191    this.img_prefix = img_prefix;
192    // preload image
193    var temp_image = new Image(img_hsize, img_vsize);
194    temp_image.src = img_prefix + "_collapse.gif";
195    var temp_image = new Image(img_hsize, img_vsize);
196    temp_image.src = img_prefix + "_expand.gif";
197    var temp_image = new Image(img_hsize, img_vsize);
198    temp_image.src = img_prefix + "_open.gif";
199    var temp_image = new Image(img_hsize, img_vsize);
200    temp_image.src = img_prefix + "_close.gif";
201
202}
203
204function CreateType(tname, img_prefix)
205{   var tid = nav_type.length;
206    nav_type[tid] = new DefineType(tname, img_prefix);
207    return tid;
208}
209
210//--------------------------------------------------------------
211// This function creates a node in the tree with the following arguments:
212//    parent - parent node number
213//    Type   -  F: folder    D: document
214//    state - O: Open    C: Close
215//    header -  header to be displayed when closed
216//    content   -  detail data to be displayed when opened
217function DefineNode(parent, type, state, header, content)
218{   this.parent = parent;
219    this.state = state;
220    this.type = type;
221    this.header = header;
222    this.content = content;
223    this.child = 0;
224}
225
226function CreateNode(parent, type, state, header, content)
227{   var id = nav_tree.length;
228    nav_tree[id] = new DefineNode(parent, type, state, header, content);
229    if ( parent >= 0)
230        nav_tree[parent].child ++;
231    return id;
232}
233
234//--------------------------------------------------------------
235function output(msg)
236{   outmsg += msg;
237}
238
239//--------------------------------------------------------------
240function WriteActionAll(nav_root, nav_root_level, nav_div_id)
241{
242    outmsg="";
243    // Display collapse all, expand all icon
244    output('<span class=navs_action>');
245    output('<a href=\'javascript:change_all("open",'
246            + nav_root+ ',' + nav_root_level + ',"'+nav_div_id+'")\'>');
247    output('<img src='+img_plus+' border="0"></a>Expand All&nbsp;');
248    output('<a href=\'javascript:change_all("close",'
249            + nav_root+ ',' + nav_root_level + ',"'+nav_div_id+'")\'>');
250    output('<img src='+img_minus+' border="0"></a>Collapse All<p>');
251    output('<\/span>');
252    // now print it out
253    element = document.all[nav_div_id];
254    element.innerHTML = outmsg;
255}
256
257
258
259//--------------------------------------------------------------
260function WriteMenu(nav_root, nav_root_level, nav_div_id)
261{
262    outmsg="";
263    // Create a table for each node
264    WriteSubTree(nav_root, nav_root_level, nav_root, nav_root_level, nav_div_id);
265    // now print it out
266    element = document.all[nav_div_id];
267
268    element.innerHTML = outmsg;
269}
270
271//----------------------------------------------------------------
272// This function writes all the child node for whatever
273// parent node is specified as the argument. Note that
274// this function is called recursively whenever any
275// child node has children of its own.
276function WriteSubTree(id, level, nav_root, nav_root_level, nav_div_id)
277{
278    var child_id;
279    var indent_space;
280
281    // Write this node data first, don't write main node
282    if ( level >= 0 )
283    {   // use table for breaking up column
284        output('<table class=navs_tree border="0" cellspacing="0" cellpadding="0" width=100%>');
285        //--- determine indentation level
286        indent = level* indent_width + 1;
287        output('<tr><td width='+indent+'><img src='+img_spacer+
288           ' width=' +indent +
289           ' height='+indent_height+'>');
290        //--- display open/collapse action icon
291        output('<td width='+indent_width+'>');
292        if ( nav_tree[id].child == 0 )
293        {   output('<img src='+img_spacer+
294                   ' width=' + indent_width +
295                   ' height='+indent_height+'>');
296        }
297        else
298        {   // determine action
299            if (nav_tree[id].state == "open")
300                img_src = "_collapse.gif";
301            else
302                img_src = "_expand.gif";
303            // extract image node type
304            node_type = nav_tree[id].type;
305            img_src = nav_type[node_type].img_prefix + img_src;
306            // display it
307            output('<a href=\'javascript:toggle_state('
308                   + id + ',' + nav_root + "," + nav_root_level +
309                   ',"' + nav_div_id+ '")\'>');
310            output('<img src="'+img_src+'" border=0><\/a>')
311        }
312        //--- display item state
313        output('<td width='+indent_width+'>');
314        node_type = nav_tree[id].type;
315        img_src=nav_type[node_type].img_prefix + "_"+nav_tree[id].state+".gif";
316        output('<a href=\'javascript:toggle_state('
317                   + id + ',' + nav_root + "," + nav_root_level +
318                   ',"' + nav_div_id+ '")\'>');
319        output('<img src="'+img_src+'" border=0><\/a>')
320        //--- display header and detail
321        output("<td><b>"+nav_tree[id].header+"<\/b>");
322        if (nav_tree[id].state == "open" && nav_tree[id].content != "")
323        {   output("<tr><td colspan=3><td class=navs_content>"+nav_tree[id].content);
324        }
325        output("<\/table>");
326    }
327    //--- Run through all of the parent's child nodes
328    if (nav_tree[id].state == "open" || level < 0)
329    {   for (child_id = 0; child_id < nav_tree.length; child_id++)
330        {   // skip if the parent is different >
331            if ( nav_tree[child_id].parent == id && child_id != id )
332                WriteSubTree(child_id, level+1, nav_root, nav_root_level, nav_div_id);
333        } // for each node
334    }
335} // function WriteSubTree
336
337function toggle_state(id, root, root_level, nav_div_id)
338{   // toggle the state
339    current_state = nav_tree[id].state;
340    if (current_state == "open")
341        nav_tree[id].state = "close";
342    else
343        nav_tree[id].state = "open";
344    // Rewrite the menu
345    timeout_id = setTimeout('WriteMenu('+root+','+root_level+',"'+nav_div_id+'")', 50)
346}
347
348function change_all(new_state, root, root_level, nav_div_id)
349{   var current_node;
350    // change current nod
351    nav_tree[root].state = new_state;
352    // Run through the global nodes_array
353    for (counter = 0; counter < nav_tree.length; counter++)
354    {   if (nav_tree[counter].parent == root)
355            change_all(new_state, counter, 0, "")
356    }
357    // Rewrite the menu
358    if ( nav_div_id != "")
359        timeout_id = setTimeout('WriteMenu('+root+','+root_level+',"'+nav_div_id+'")', 50)
360}
361
362</script>
363
364
365
366<?php
367
368  // Menu01 -- This is from the original example
369
370$this->db = clone($GLOBALS['phpgw']->db);
371                $this->db->set_app('mydms');
372
373
374//$queryStr0 = "SELECT distinct parent FROM phpgw_mydms_Folders";
375$queryStr0 ="select parent,id,SEQUENCE,name  FROM phpgw_mydms_Folders ORDER BY parent,sequence";
376
377
378
379
380$resArr0 = $GLOBALS['mydms']->db->getResultArray($queryStr0);
381
382//$node0 = new HTML_TreeNode($resArr[$i]["name"], "mydms/out/out.ViewFolder.php?menuaction=dummy&folderid=1", $icon);
383
384
385$txt="<script language=\"JavaScript\" type=\"text/javascript\">nav_type0=CreateType('Folder', '../images/folder');";   
386
387$txt=$txt." "."nav_type1=CreateType('Document', '../images/document');";
388
389
390//$txt=$txt." "."nav_tree0=CreateNode(-1, 0, 'close', 'Carpetas Compartidas', '');";
391
392for ($i = 0; $i < count($resArr0); $i++)
393{
394
395//$n=$i-1;
396//$defaultpos[$i]=$n;
397$defaultposicion=$i;
398$defaultparent[$resArr0[$i]["id"]]=$resArr0[$i]["parent"];
399$defaultid[$resArr0[$i]["id"]]=$resArr0[$i]["id"];
400$defaultnombre[$resArr0[$i]["id"]]=$defaultposicion;
401if($i==0){
402        $defaultvalor[$resArr0[$i]["id"]]="-1";
403}else{
404
405$defaultvalor[$resArr0[$i]["id"]]=$defaultnombre[$resArr0[$i]["parent"]];
406}
407
408//echo $resArr0[$i]["name"]." , ".$defaultvalor[$i]." , ".$defaultparent[$i]." , ".$defaultid[$i]."   ".$defaultvalor[$resArr0[$i]["id"]]."<br>";
409
410}
411
412
413
414$queryStr0 = "SELECT distinct parent FROM phpgw_mydms_Folders";
415
416
417$resArr0 = $GLOBALS['mydms']->db->getResultArray($queryStr0);
418
419//$node0 = new HTML_TreeNode($resArr[$i]["name"], "mydms/out/out.ViewFolder.php?menuaction=dummy&folderid=1", $icon);
420
421
422$txt="<script language=\"JavaScript\" type=\"text/javascript\">nav_type0=CreateType('Folder', '../images/folder');";   
423
424$txt=$txt." "."nav_type1=CreateType('Document', '../images/document');";
425
426
427//$txt=$txt." "."nav_tree0=CreateNode(-1, 0, 'close', 'Carpetas Compartidas', '');";
428
429for ($i = 0; $i < count($resArr0); $i++)
430{
431
432
433if($valores=='')
434{
435$valores=$resArr0[$i]["parent"];
436}else
437{
438$valores=$valores.",".$resArr0[$i]["parent"];
439}
440
441}
442
443//$txt=$txt." "."nav_tree0=CreateNode(".$n.", 0, 'close', '".$resArr[$i]["name"]."', '');";
444//echo $resArr[$i]["parent"]."<br>";
445
446$queryStr = "SELECT * FROM phpgw_mydms_Folders WHERE parent in (".$valores.") ORDER BY parent,sequence";
447
448
449                        $resArr = $GLOBALS['mydms']->db->getResultArray($queryStr);
450       
451
452       
453                        //$this->_subFolders = array();
454                        for ($ii = 0; $ii < count($resArr); $ii++)
455                        {
456                               
457$valor0=$ii+1;
458
459$valor1="node";
460
461
462
463$valor2=$valor1.$ii;
464
465
466//echo "JJJJJJ".$_GET['folderid']."<br>";
467
468
469$Activo="close";
470if(($resArr[$ii]["id"]==$_GET['folderid'] )||($resArr[$ii]["id"]==1))
471{
472$Activo="open";
473}
474$ver=$_GET['folderid'];
475while ($ver!=''&&$ver!=1){
476
477//echo $ver."<br>";
478if($resArr[$ii]["id"]==$defaultparent[$ver]){
479$Activo="open";
480}
481$ver=$defaultparent[$ver];
482
483}
484
485
486
487$txt=$txt." "."nav_tree1=CreateNode(".$defaultvalor[$resArr[$ii]["id"]].",0, '".$Activo."', '<a href=out.ViewFolder.php?menuaction=dummy&folderid=".$resArr[$ii]["id"]." >".$resArr[$ii]["name"]."</a>', '');";
488
489
490
491
492//$txt=$txt." $".$valor1.$valor0."= $".$valor2."->addItem(new HTML_TreeNode(\"".$resArr[$ii]["name"]."\",\"mydms/out///out.ViewFolder.php?menuaction=dummy&folderid=".$resArr[$ii]["id"]."\",\"".$icon."\"));";
493
494
495
496//$valor2=$node0->addItem(new HTML_TreeNode($resArr[$ii]["name"], "mydms/out/out.ViewFolder.php?menuaction=dummy&folderid=".$resArr[$ii]["id"], $icon));
497//echo $resArr[$ii]["id"]."   ".$resArr[$ii]["name"]."  ". $n."_".$i. "<br>  ";
498
499
500                        }       
501
502
503//}
504//$txt=$txt." "."$menu02  = new HTML_TreeMenu(\"menuLayer02\", '../imagesAlt', '_self');";
505
506
507 /* $node1 = new HTML_TreeNode("INBOX", "test.php", $icon);
508  $foo   = &$node1->addItem(new HTML_TreeNode("deleted-items", "test.php", $icon));
509  $bar   = &$foo->addItem(new HTML_TreeNode("deleted-items", "test.php", $icon));
510  $blaat = &$bar->addItem(new HTML_TreeNode("deleted-items", "test.php", $icon));
511  $blaat1 = $blaat->addItem(new HTML_TreeNode("deleted-itemswww", "test.php", $icon));
512  $blaat1->addItem(new HTML_TreeNode("deleted-items", "test.php", $icon));
513
514  $node1->addItem(new HTML_TreeNode("sent-items",    "test.php", $icon));
515  $node1->addItem(new HTML_TreeNode("drafts",        "test.php", $icon));       */
516
517
518  // Menu02 -- This uses the "alternate" image directory
519
520        //echo "<script language=\"JavaScript\">.$txt."</script>";
521
522
523 
524$txt=$txt." "."</script><script language=\"JavaScript\" type=\"text/javascript\">WriteMenu(0, 0, 'NAVTREE');</script>";
525//$txt=$txt." "."</script><script language=\"JavaScript\" type=\"text/javascript\">WriteMenu(7, 0, 'NAVDATA');
526 
527echo $txt;
528
529 ?>
530
531
532
533
534<?php
535return "";
536
537
538                }
539
540/*              function createHTMLFolder_old($_folders, $_selected, $_divName, $_displayCheckBox=false)
541                {
542                        $allFolders = $_folders;
543                       
544                        $folderImageDir = $GLOBALS['phpgw_info']['server']['webserver_url'].'/phpgwapi/templates/default/images/';
545                       
546                        $folder_tree_new  = '<link rel="STYLESHEET" type="text/css" href="'.$GLOBALS['phpgw_info']['server']['webserver_url'].'/phpgwapi/js/dhtmlxtree/css/dhtmlXTree.css">';
547                        $folder_tree_new .= "<script type='text/javascript'>";
548                        $folder_tree_new .= "tree=new dhtmlXTreeObject('$_divName','100%','100%',0);";
549                        $folder_tree_new .= "tree.setImagePath('$folderImageDir/dhtmlxtree/');";
550                        $folder_tree_new .= "tree.setOnClickHandler('onNodeSelect');";
551
552                        $linkData = array
553                        (
554                                'menuaction'    => 'mydms.uifolder.getSubFolder',
555                        );
556                        $xmlAutoLoadURL = $GLOBALS['phpgw']->link('/index.php',$linkData);
557
558                        $folder_tree_new .= "tree.setXMLAutoLoading('$xmlAutoLoadURL');";
559                        if($_displayCheckBox)
560                        {
561                                $folder_tree_new .= "tree.enableCheckBoxes(1);";
562                                $folder_tree_new .= "tree.setOnCheckHandler('onCheckHandler');";
563                        }
564
565                        #foreach($allFolders as $folderID => $folderObject)
566                        #{
567                                $folderObject = array_shift($allFolders);
568                                $image1 = "'folderClosed.gif'";
569                                $image2 = "0";
570                                $image3 = "0";
571
572                        $linkData = array
573                        (
574                                'menuaction'    => 'mydms.uifolder.getInitialFolderView',
575                                'id'            => $folderObject->getID(),
576                        );
577                        $xmlAutoLoadURL = $GLOBALS['phpgw']->link('/index.php',$linkData);
578                               
579                                if(empty($parentName)) $parentName = '--topfolder--';
580                               
581                                $entryOptions = 'CHILD,CHECKED';
582
583                                // highlight currently selected mailbox
584                                if ($folderObject->getID() == $_selected->getID())
585                                {
586                                        $entryOptions .= ',SELECT';
587                                }
588                               
589                                $folderID       = $folderObject->getID();
590                                $folderName     = $folderObject->getName();
591                                $parentID       = ($folderObject->_parentID ? $folderObject->_parentID : 0);
592
593                                $folder_tree_new .= "tree.insertNewItem('$parentID','$folderID','$folderName',onNodeSelect,$image1,$image2,$image3,'$entryOptions');\n";
594                                $folder_tree_new .= "tree.openItem('$folderID');";
595                                $folder_tree_new .= "tree.loadXML('$xmlAutoLoadURL&id=1');";
596                                $folder_tree_new .= "tree.openItem(1);";
597                                #$folder_tree_new .= "tree.loadXML('$xmlAutoLoadURL&id=6');";
598                                #if($_displayCheckBox)
599                                #       $folder_tree_new .= "tree.setCheck('$longName','".(int)$obj->subscribed."');";
600                        #}
601       
602       
603#                       foreach($allFolders as $folderID => $folderObject)
604#                       {
605#                               $folder_tree_new .= "tree.loadXML('$xmlAutoLoadURL&id=".$folderObject->getID()."');";
606#                               $folder_tree_new .= "tree.openItem('".$folderObject->getID()."');";
607#                       }
608                       
609
610                        #$selectedID = $_selected->getID();
611                        #$folder_tree_new.= "tree.closeAllItems(0);tree.openItem('$selectedID');"
612                        $folder_tree_new.= '</script><a href="#" onclick="javascript:tree.openItem(1); return false;">test</a><a href="#" onclick="javascript:tree.closeItem(1); return false;">test b</a>';
613
614                        return $folder_tree_new;
615                }
616*/
617                function deleteACL()
618                {
619                        $userID         = (int)$_GET['userid'];
620                        $groupID        = (int)$_GET['groupid'];
621                       
622                        $documentID     = (int)$_GET['documentid'];
623
624                        if($documentID)
625                        {
626                                $this->bomydms->deleteACL($documentID, ($userID == 'unselected' ? false : (int)$userID), ($groupID == 'unselected' ? false : (int)$groupID));
627                                $this->viewDocument($documentID);
628                        }
629                }
630
631                function deleteDocument()
632                {
633                        $documentID     = (int)$_GET['documentid'];
634
635                        if($documentID)
636                        {
637                                $this->bomydms->deleteDocument($documentID);
638                        }
639                        print '<script language="JavaScript">window.close();</script>';
640                }
641
642                function deleteFile()
643                {
644                        $documentID     = (int)$_GET['documentid'];
645                        $version        = (int)$_GET['version'];
646
647                        if($documentID && $version)
648                        {
649                                $this->bomydms->deleteFile($documentID, $version);
650                                $this->viewDocument($documentID);
651                        }
652                }
653
654                function deleteNotification()
655                {
656                        $documentID     = (int)$_GET['documentid'];
657                        $userID         = (int)$_GET['userid'];
658                        $groupID        = (int)$_GET['groupid'];
659
660                        if($documentID && ($userID || $groupID))
661                        {
662                                $this->bomydms->deleteNotification($documentID, (!$userID ? false : $userID), (!$groupID ? false : $groupID));
663                                $this->viewDocument($documentID);
664                        }
665                }
666
667                function display_app_header()
668                {
669                        if(!@is_object($GLOBALS['phpgw']->js))
670                        {
671                                $GLOBALS['phpgw']->js =& CreateObject('phpgwapi.javascript');
672                        }
673                        if (!is_object($GLOBALS['phpgw']->jscalendar))
674                        {
675                                $GLOBALS['phpgw']->jscalendar = CreateObject('phpgwapi.jscalendar');
676                        }
677                        $GLOBALS['phpgw']->js->validate_file('dhtmlxtree','js/dhtmlXCommon');
678                        $GLOBALS['phpgw']->js->validate_file('dhtmlxtree','js/dhtmlXTree');
679                        switch($_GET['menuaction'])
680                        {
681                                case 'mydms.uimydms.addACL':
682                                case 'mydms.uimydms.addNotification':
683                                case 'mydms.uimydms.deleteACL':
684                                case 'mydms.uimydms.deleteFile':
685                                case 'mydms.uimydms.deleteNotification':
686                                case 'mydms.uimydms.setDefaultAccess':
687                                case 'mydms.uimydms.setOwner':
688                                case 'mydms.uimydms.updateACL':
689                                case 'mydms.uimydms.updateFile':
690                                case 'mydms.uimydms.viewDocument':
691                                case 'mydms.uimydms.inheritACL':
692                                        $GLOBALS['phpgw']->js->validate_file('tabs','tabs');
693                                        $GLOBALS['phpgw']->js->validate_file('jscode','viewDocument','mydms');
694                                        $GLOBALS['phpgw']->js->validate_file('jscode','mydms','mydms');
695
696                                        $GLOBALS['phpgw']->js->set_onload('javascript:initTabs();');
697                                        break;
698                                case 'mydms.uimydms.folderChooser':
699                                        $GLOBALS['phpgw']->js->validate_file('jscode','mydms','mydms');
700                                        $GLOBALS['phpgw']->js->validate_file('jscode','folderChooser','mydms');
701                                        break;
702                        }
703
704                        $GLOBALS['phpgw_info']['flags']['include_xajax'] = True;
705
706                        $GLOBALS['phpgw']->common->phpgw_header();
707                        #if(!$this->mailPreferences['messageNewWindow'])
708                        #       echo parse_navbar();
709                }
710
711                function getFolderTree($path, $level = 0, $_activeObj, $isFolder)
712                {
713                        return $this->createHTMLFolder($path, $_activeObj, 'mydmstreebox');                     
714                }
715               
716                function inheritACL()
717                {
718                        $documentID     = (int)$_GET['documentid'];
719                        $action         = $_GET['action'];
720                        $mode           = $_GET['mode'];
721
722                        if($documentID && $action)
723                        {
724                                $this->bomydms->inheritACL($documentID, $action, $mode);
725                                $this->viewDocument($documentID);
726                        }
727                }
728               
729                function setDefaultAccess()
730                {
731                        $documentID     = (int)$_GET['documentid'];
732                        $mode           = $_POST['defaultAccess'];
733
734                        if($documentID && $mode)
735                        {
736                                $this->bomydms->setDefaultAccess($documentID, $mode);
737                                $this->viewDocument($documentID);
738                        }
739                }
740
741                function setOwner()
742                {
743                        $documentID     = (int)$_GET['documentid'];
744                        $owner          = (int)$_POST['owner'];
745
746                        if($documentID && $owner)
747                        {
748                                $this->bomydms->setOwner($documentID, $owner);
749                                $this->viewDocument($documentID);
750                        }
751                }
752
753                function translate()
754                {
755                        $this->t->set_var('lang_informations',lang('informations'));
756                        $this->t->set_var('lang_all_versions',lang('all versions'));
757                        $this->t->set_var('lang_linked_documents',lang('linked documents'));
758                        $this->t->set_var('lang_owner',lang('owner'));
759                        $this->t->set_var('lang_comment',lang('comment'));
760                        $this->t->set_var('lang_keywords',lang('keywords'));
761                        $this->t->set_var('lang_download',lang('Descargar Archivo'));
762                        $this->t->set_var('lang_last_update',lang('last update'));
763                        $this->t->set_var('lang_current_version',lang('current version'));
764                        $this->t->set_var('lang_uploaded_by',lang('uploaded by'));
765                        $this->t->set_var('lang_file_size',lang('file size'));
766                        $this->t->set_var('lang_filename',lang('filename'));
767                        $this->t->set_var('lang_mime_type',lang('mime type'));
768                        $this->t->set_var('lang_comment_for_current_version',lang('comment for current version'));
769                        $this->t->set_var('lang_creation_date',lang('creation date'));
770                        $this->t->set_var('lang_lock_status',lang('lock status'));
771                        $this->t->set_var('lang_expires',lang('expires'));
772                        $this->t->set_var('lang_version',lang('version'));
773                        $this->t->set_var('lang_upload_date',lang('upload date'));
774                        $this->t->set_var('lang_save',lang('save'));
775                        $this->t->set_var('lang_cancel',lang('cancel'));
776                        $this->t->set_var('lang_delete',lang('delete'));
777                        $this->t->set_var('lang_view_online',lang('view online'));
778                        $this->t->set_var('lang_confirm_delete',lang('Relmente quiere borrar el documento?'));
779                        $this->t->set_var('lang_update_document',lang('update document'));
780                        $this->t->set_var('lang_update',lang('update'));
781                        $this->t->set_var('lang_acl',lang('acl'));
782                        $this->t->set_var('lang_name',lang('name'));
783                        $this->t->set_var('lang_move_document',lang('move document'));
784                        $this->t->set_var('lang_folder',lang('folder'));
785                        $this->t->set_var('lang_user',lang('user'));
786                        $this->t->set_var('lang_group',lang('group'));
787                        $this->t->set_var('lang_acl',lang('acl'));
788                        $this->t->set_var('lang_acl_get_inherited',lang('acl get inherited'));
789                        $this->t->set_var('lang_notifications',lang('notifications'));
790                        $this->t->set_var('lang_file_gets_unlocked',lang('this document gets unlocked by you.'));
791                        $this->t->set_var('lang_file_gets_locked',lang('this document gets locked by you!'));
792                        $this->t->set_var('lang_delete_this_notification',lang('delete this notification'));
793                        $this->t->set_var('lang_add_notification',lang('add notification'));
794                        $this->t->set_var('lang_information_about_last_update',lang('information about last update'));
795                        $this->t->set_var('lang_general_information',lang('general information'));
796                        $this->t->set_var('lang_copy_acl',lang('copy acl'));
797                        $this->t->set_var('lang_create_empty_acl',lang('create empty acl'));
798                        $this->t->set_var('lang_inherit_acl_again',lang('inherit acl again'));
799                        $this->t->set_var('lang_default_access',lang('default access'));
800                        $this->t->set_var('lang_permission',lang('permission'));
801                        $this->t->set_var('lang_add_acl',lang('add acl'));
802                        $this->t->set_var('lang_current_acl',lang('current acl'));
803                        $this->t->set_var('lang_access_mode',lang('access mode'));
804                        $this->t->set_var('lang_confirm_acl_delete',lang('Do you really want to delete this acl?'));
805                }
806               
807                function updateACL()
808                {
809                        $userID         = (int)$_GET['userid'];
810                        $groupID        = (int)$_GET['groupid'];
811                        $access         = (int)$_POST['mode'];
812                       
813                        $documentID     = (int)$_GET['documentid'];
814
815                        if($documentID)
816                        {
817                                $this->bomydms->updateACL($documentID, ($userID == 'unselected' ? false : (int)$userID), ($groupID == 'unselected' ? false : (int)$groupID), $access);
818                                $this->viewDocument($documentID);
819                        }
820                }
821
822                function updateDocument()
823                {
824                        $fileName       = $_POST['fname'];
825                        $comment        = $_POST['comment'];
826                        $keywords       = $_POST['keywords'];
827                        $expire         = $_POST['expire'];
828                        $expire_date    = $GLOBALS['phpgw']->jscalendar->input2date($_POST['expire_date']);
829                        $lockStatus     = $_POST['lockStatus'];
830                        $targetID       = $_POST['targetid'];
831                       
832                        $documentID     = (int)$_GET['documentid'];
833
834                        if($documentID)
835                        {
836                                $this->bomydms->updateDocument($documentID,$fileName,$comment,$keywords,($expire ? $expire_date['raw'] : 0));
837                                if($lockStatus != 'unchanged')
838                                {
839                                        $this->bomydms->updateLockStatus($documentID, $lockStatus);
840                                }
841                                if($targetID != 'unchanged')
842                                {
843                                        $this->bomydms->moveDocument($documentID, (int)$targetID);
844                                }
845                        }
846                        print '<script language="JavaScript">window.close();</script>';
847                }
848
849                function updateFile()
850                {
851                        $comment        = $_POST['comment'];
852                        $expire         = $_POST['expire'];
853                        $expire_date    = $GLOBALS['phpgw']->jscalendar->input2date($_POST['expire_date_update']);
854                        $documentID     = (int)$_GET['documentid'];
855                        $userfile       = $_FILES['userfile'];
856
857                        if($documentID && is_uploaded_file($userfile['tmp_name']))
858                        {
859                                $this->bomydms->updateFile($documentID, $userfile, $comment, ($expire ? $expire_date['raw'] : 0));
860                                $this->viewDocument($documentID);
861                        }
862                }
863
864                function viewDocument($_documentID=false)
865                {
866                        $documentID = ($_documentID === false ? (int)$_GET['documentid'] : $_documentID);
867                       
868                        //echo "documento".$documentID;
869                        if(!$document   = getDocument($documentID))
870                        {
871                                print "Access denied!"; exit;
872                        }
873               
874
875                        $user           = getUser($GLOBALS['phpgw_info']['user']['account_id']);
876                        $accessMode     = $document->getAccessMode($user);
877                        $owner          = $document->getOwner();
878                        $folder         = $document->getFolder();
879                        $latestContent  = $document->getLatestContent();
880                        $versions       = $document->getContent();
881                        $notifyList     = $document->getNotifyList();
882                        $accessList     = $document->getAccessList();
883                        $updatingUser   = $latestContent->getUser();
884                       
885                        #_debug_array($document);
886                       
887                        $this->display_app_header();
888               
889                        $this->t->set_file(array("viewDocument" => "viewDocument.tpl"));
890                        $this->t->set_block('viewDocument', 'main', 'main');
891                        $this->t->set_block('viewDocument', 'acl_row', 'acl_row');
892                        $this->t->set_block('viewDocument', 'lock_row', 'lock_row');
893                        $this->t->set_block('viewDocument', 'version_row', 'version_row');
894                        $this->t->set_block('viewDocument', 'notification_row', 'notification_row');
895                        $this->t->set_block('viewDocument', 'information_ro', 'information_ro');
896                        $this->t->set_block('viewDocument', 'information_rw', 'information_rw');
897                        $this->t->set_block('viewDocument', 'block_download', 'block_download');
898                        $this->t->set_block('viewDocument', 'block_view_online', 'block_view_online');
899                        $this->t->set_block('viewDocument', 'block_delete', 'block_delete');
900                        $this->t->set_block('viewDocument', 'block_change_owner', 'block_change_owner');
901                        $this->t->set_block('viewDocument', 'block_acl_inherite', 'block_acl_inherite');
902                        $this->t->set_block('viewDocument', 'block_acl_notinherite', 'block_acl_notinherite');
903
904                        $downloadImage  = $GLOBALS['phpgw']->common->image('mydms','download');
905                        $viewImage      = $GLOBALS['phpgw']->common->image('mydms','view');
906                        $deleteImage    = $GLOBALS['phpgw']->common->image('mydms','del');
907                        $groupImage     = $GLOBALS['phpgw']->common->image('mydms','groupicon');
908                        $userImage      = $GLOBALS['phpgw']->common->image('mydms','usericon');
909                        $saveImage      = $GLOBALS['phpgw']->common->image('mydms','save');
910                        $this->t->set_var('download_image',$downloadImage);
911                        $this->t->set_var('view_image',$viewImage);
912                        $this->t->set_var('delete_image',$deleteImage);
913                        $this->t->set_var('save_image',$saveImage);
914
915
916                        $this->translate();
917                       
918                        $linkData = array
919                        (
920                                'menuaction'    => 'mydms.uimydms.folderChooser',
921                        );
922                        $this->t->set_var('folderChooserURL', $GLOBALS['phpgw']->link('/index.php',$linkData));
923
924                        $linkData = array
925                        (
926                                'menuaction'    => 'mydms.uimydms.updateDocument',
927                                'documentid'    => $documentID,
928                        );
929                        $this->t->set_var('action_informations', $GLOBALS['phpgw']->link('/index.php',$linkData));
930
931                        // download link
932                        $linkData = array
933                        (
934                                'documentid'    => $documentID,
935                                'version'       => $latestContent->getVersion(),
936                        );
937                        $this->t->set_var('download_link', $GLOBALS['phpgw']->link('/mydms/op/op.Download.php',$linkData));
938                        $this->t->parse('download','block_download',True);
939
940                        // view Online
941                        if ($latestContent->viewOnline())
942                        {
943                                $linkData = array
944                                (
945                                        'documentid'    => $documentID,
946                                        'version'       => $latestContent->getVersion()
947                                );
948                                $this->t->set_var('view_link', $GLOBALS['phpgw']->link('/mydms/op/op.ViewOnline.php',$linkData));
949                                $this->t->parse('view_online','block_view_online',True);
950                        }
951
952                        // delete link
953                        if ($accessMode == M_ALL)
954                        {
955                                $linkData = array
956                                (
957                                        'menuaction'    => 'mydms.uimydms.deleteDocument',
958                                        'documentid'    => $documentID,
959                                );
960                                $this->t->set_var('delete_link', $GLOBALS['phpgw']->link('/index.php',$linkData));
961                                $this->t->parse('delete','block_delete',True);
962                        }
963
964                        $this->t->set_var('owner_fullname',     $owner->getFullName());
965                        $this->t->set_var('owner_email',        $owner->getEmail());
966
967                        $this->t->set_var('updater_fullname',   $updatingUser->getFullName());
968                        $this->t->set_var('updater_email',      $updatingUser->getEmail());
969
970                        $this->t->set_var('filename',           $document->getName());
971                        $this->t->set_var('comment',            $document->getComment());
972                        $this->t->set_var('keywords',           $document->getKeywords());
973                        $this->t->set_var('creation_date',      date("d.m.Y - H:i:s",$document->getDate()));
974
975                        $this->t->set_var('foldername',         $folder->getName());
976                        $this->t->set_var('current_folder_id',  $folder->getID());
977                       
978                        // lock status
979                        // lock select box
980                       
981                        if ($document->isLocked())
982                        {
983                                $lockingUser = $document->getLockingUser();
984
985                                $this->t->set_var('lang_current_status', lang('this document is locked by <a href="mailto:%1">%2</a>.',$lockingUser->getEmail(),$lockingUser->getFullName()));
986                                $this->t->set_var('checked_lock_status', 'checked');
987                                $this->t->parse('locking','lock_row',True);
988                        }
989                        else
990                        {
991                                $this->t->set_var('lang_current_status', lang('this document is currently not locked.'));
992                               
993                                $this->t->parse('locking','lock_row', True);
994                        }
995
996if (!is_object($GLOBALS['phpgw']->html))
997                        {
998                                $GLOBALS['phpgw']->html = CreateObject('phpgwapi.html');
999                        }
1000
1001                       
1002                        // expire select box
1003                        $selectOptions = array('0' => lang('does not expire'), '1' => lang('expires after'));
1004                        $this->t->set_var('select_expire',$GLOBALS['phpgw']->html->select('expire',(!$document->getExpires() ? 0 : 1),$selectOptions,true,"onchange=\"toggleJSCal(this);\""));
1005                        #$this->t->set_var('select_expire',$GLOBALS['phpgw']->html->select('expire',(!$document->getExpires() ? 0 : 1),$selectOptions,true,"onchange=\"alert('test')\""));
1006                       
1007                        if (!$document->getExpires())
1008                        {
1009                                $this->t->set_var('expire_date_ro',lang('does not expire'));
1010                                $this->t->set_var('expire_date',$GLOBALS['phpgw']->jscalendar->input('expire_date',''));
1011                                $this->t->set_var('expire_class', 'inactive');
1012                        }
1013                        else
1014                        {
1015                                $this->t->set_var('expire_date_ro',lang('expires after').' '.date("d.m.Y",$document->getExpires()));
1016                                $this->t->set_var('expire_date',$GLOBALS['phpgw']->jscalendar->input('expire_date',$document->getExpires()));
1017                                $this->t->set_var('expire_class', 'active');
1018                        }
1019                               
1020                        $this->t->set_var('current_version',    $latestContent->getVersion());
1021                        $this->t->set_var('current_comment',    $latestContent->getComment());
1022                        $this->t->set_var('mime_type',          $latestContent->getMimeType());
1023                        $this->t->set_var('file_size',          filesize($GLOBALS['phpgw_info']['server']['files_dir'] . '/mydms/' . $latestContent->getPath()));
1024                        $this->t->set_var('last_update',        date("d.m.Y - H:i:s",$latestContent->getDate()));
1025
1026                        $this->t->set_var('rownum',             count($versions)+1);
1027
1028                        if (($accessMode >= M_READWRITE))
1029                        {
1030                                $this->t->parse('informations','information_rw',True);
1031                        }
1032                        else
1033                        {
1034                                $this->t->parse('informations','information_ro',True);
1035                        }
1036
1037                        for ($i = count($versions)-1; $i >= 0; $i--)
1038                        {
1039                                $version = $versions[$i];
1040                                $uploadingUser = $version->getUser();
1041                                $comment = $version->getComment();
1042                                //if (strlen($comment) > 25) $comment = substr($comment, 0, 22) . "...";
1043
1044                                $this->t->set_var('version_version',            $version->getVersion());
1045                                $this->t->set_var('version_comment',            $version->getComment());
1046                                $this->t->set_var('version_uploadingUser',      $uploadingUser->getFullName());
1047                                $this->t->set_var('version_date',               date("d.m.Y - H:i:s",$version->getDate()));
1048                                if ($version->viewOnline())
1049                                        $this->t->set_var('url_view_online', "<a target=\"_blank\" href=\"../op/viewonline" . $version->getURL()."\"><img src=\"images/view.gif\" width=18 height=18 border=0 title=\"".lang('view online')."\"></a>");
1050                                else
1051                                        $this->t->set_var('url_view_online',    '');
1052                               
1053                                $linkData = array
1054                                (
1055                                        'documentid'    => $documentID,
1056                                        'version'       => $version->getVersion()
1057                                );
1058                                $this->t->set_var('url_download_file', $GLOBALS['phpgw']->link('/mydms/op/op.Download.php',$linkData));
1059                               
1060                                if (($accessMode == M_ALL) && (count($versions) > 1))
1061                                {
1062                                        $linkData = array
1063                                        (
1064                                                'menuaction'    => 'mydms.uimydms.deleteFile',
1065                                                'documentid'    => $documentID,
1066                                                'version'       => $version->getVersion(),
1067                                                'tabpage'       => 2,
1068                                        );
1069                                        $this->t->set_var('url_delete_file',
1070                                                "<a href=\"".$GLOBALS['phpgw']->link('/index.php',$linkData).
1071                                                        "\" onClick=\"return confirm('".lang('do you really want to delete this version of the document?').
1072                                                        "');\"><img src=\"$deleteImage\" width=15 height=15 border=0 title=\"".
1073                                                        lang("delete")."\"></a>");
1074                                }
1075                               
1076                                $this->t->parse('versions','version_row',True);
1077                        }
1078                       
1079                        // div 4 notifications
1080                        $linkData = array
1081                        (
1082                                'menuaction'    => 'mydms.uimydms.addNotification',
1083                                'documentid'    => $documentID,
1084                                'tabpage'       => 4,
1085                        );
1086                        $this->t->set_var('notify_form_action', $GLOBALS['phpgw']->link('/index.php',$linkData));
1087
1088                        foreach ((array)$notifyList["users"] as $userNotify)
1089                        {
1090                                $this->t->set_var('notify_username',$userNotify->getFullName());
1091                                $this->t->set_var('notify_image',$userImage);
1092                               
1093                                $linkData = array
1094                                (
1095                                        'menuaction'    => 'mydms.uimydms.deleteNotification',
1096                                        'documentid'    => $documentID,
1097                                        'userid'        => $userNotify->getID(),
1098                                        'tabpage'       => 4,
1099                                );
1100                                $this->t->set_var('link_notify_delete', $GLOBALS['phpgw']->link('/index.php',$linkData));
1101
1102                                $this->t->parse('notifications','notification_row',True);
1103                        }
1104                       
1105                        foreach ((array)$notifyList["groups"] as $groupNotify)
1106                        {
1107                                $this->t->set_var('notify_username',$groupNotify->getName());
1108                                $this->t->set_var('notify_image',$groupImage);
1109                               
1110                                $linkData = array
1111                                (
1112                                        'menuaction'    => 'mydms.uimydms.deleteNotification',
1113                                        'documentid'    => $documentID,
1114                                        'groupid'       => $groupNotify->getID(),
1115                                        'tabpage'       => 4,
1116                                );
1117                                $this->t->set_var('link_notify_delete', $GLOBALS['phpgw']->link('/index.php',$linkData));
1118
1119                                $this->t->parse('notifications','notification_row',True);
1120                        }
1121                       
1122                        $allUsers = getAllUsers();
1123                        $allUsersOptions = array('unselected' => lang('please select').'...');
1124                        foreach ($allUsers as $userObj)
1125                        {
1126                                $allUsersOptions[$userObj->getID()] = $userObj->getFullName();
1127                        }
1128                        $this->t->set_var('select_userid',$GLOBALS['phpgw']->html->select('userid',0,$allUsersOptions,true,"style=\"width: 300px;\" onchange=\"javascript:document.notify_form.submit();\""));
1129                       
1130                        $allGroups = getAllGroups();
1131                        $allGroupsOptions = array('unselected' => lang('please select').'...');
1132                        foreach ($allGroups as $groupObj)
1133                        {
1134                                $allGroupsOptions[$groupObj->getID()] = $groupObj->getName();
1135                        }
1136                        $this->t->set_var('select_groupid',$GLOBALS['phpgw']->html->select('groupid',0,$allGroupsOptions,true,"style=\"width: 300px;\" onchange=\"javascript:document.notify_form.submit();\""));
1137                       
1138        // div 5 ACL
1139                        if ($accessMode == M_ALL)
1140                        {
1141                                if ($user->isAdmin())
1142                                {
1143                                        $linkData = array
1144                                        (
1145                                                'menuaction'    => 'mydms.uimydms.setOwner',
1146                                                'documentid'    => $documentID,
1147                                                'tabpage'       => 5,
1148                                        );
1149                                        $this->t->set_var('action_change_owner', $GLOBALS['phpgw']->link('/index.php',$linkData));
1150
1151                                        $allUsers = getAllUsers();
1152                                        $allUsersOptions = array();
1153                                        foreach ($allUsers as $userObj)
1154                                        {
1155                                                $allUsersOptions[$userObj->getID()] = $userObj->getFullName();
1156                                        }
1157                                        $this->t->set_var('select_ownerid',$GLOBALS['phpgw']->html->select('owner',$owner->getID(),$allUsersOptions,true,"style=\"width: 300px;\" onchange=\"javascript:document.change_owner.submit();\""));
1158                                       
1159                                        $this->t->parse('change_owner','block_change_owner',True);
1160                                }
1161                               
1162                                if ($document->inheritsAccess())
1163                                {
1164                                        $linkData = array
1165                                        (
1166                                                'menuaction'    => 'mydms.uimydms.inheritACL',
1167                                                'documentid'    => $documentID,
1168                                                'action'        => 'notinherit',
1169                                                'mode'          => 'copy',
1170                                                'tabpage'       => 5,
1171                                        );
1172                                        $this->t->set_var('link_acl_copy', $GLOBALS['phpgw']->link('/index.php',$linkData));
1173                                       
1174                                        $linkData = array
1175                                        (
1176                                                'menuaction'    => 'mydms.uimydms.inheritACL',
1177                                                'documentid'    => $documentID,
1178                                                'action'        => 'notinherit',
1179                                                'mode'          => 'empty',
1180                                                'tabpage'       => 5,
1181                                        );
1182                                        $this->t->set_var('link_acl_empty', $GLOBALS['phpgw']->link('/index.php',$linkData));
1183
1184                                        $this->t->parse('display_acl','block_acl_inherite',True);
1185                                }
1186                                else
1187                                {
1188                                        $linkData = array
1189                                        (
1190                                                'menuaction'    => 'mydms.uimydms.inheritACL',
1191                                                'documentid'    => $documentID,
1192                                                'action'        => 'inherit',
1193                                                'tabpage'       => 5,
1194                                        );
1195                                        $this->t->set_var('link_acl_inherit_again', $GLOBALS['phpgw']->link('/index.php',$linkData));
1196
1197                                        $linkData = array
1198                                        (
1199                                                'menuaction'    => 'mydms.uimydms.setDefaultAccess',
1200                                                'documentid'    => $documentID,
1201                                                'tabpage'       => 5,
1202                                        );
1203                                        $this->t->set_var('action_change_default_access', $GLOBALS['phpgw']->link('/index.php',$linkData));
1204
1205                                        $linkData = array
1206                                        (
1207                                                'menuaction'    => 'mydms.uimydms.addACL',
1208                                                'documentid'    => $documentID,
1209                                                'tabpage'       => 5,
1210                                        );
1211                                        $this->t->set_var('action_add_acl', $GLOBALS['phpgw']->link('/index.php',$linkData));
1212
1213                                       
1214                                        $defaultACL = array
1215                                        (
1216                                                M_NONE          => 'access_mode_none',
1217                                                M_READ          => 'access_mode_read',
1218                                                M_READWRITE     => 'access_mode_readwrite',
1219                                                M_ALL           => 'access_mode_all',
1220                                        );
1221                                        $this->t->set_var('select_default_access',$GLOBALS['phpgw']->html->select('defaultAccess',$document->getDefaultAccess(),$defaultACL,false,"style=\"width: 300px;\" onchange=\"javascript:document.change_default_access.submit();\""));
1222
1223                                        foreach ((array)$accessList["users"] as $userAccess)
1224                                        {
1225                                                $userObj        = $userAccess->getUser();
1226                                                $userMode       = $userAccess->getMode();
1227
1228                                                $this->t->set_var('acl_username',$userObj->getFullName());
1229                                                $this->t->set_var('acl_image',$userImage);
1230
1231                                                $linkData = array
1232                                                (
1233                                                        'menuaction'    => 'mydms.uimydms.updateACL',
1234                                                        'documentid'    => $documentID,
1235                                                        'userid'        => $userObj->getID(),
1236                                                        'tabpage'       => 5,
1237                                                );
1238                                                $this->t->set_var('action_acl_row', $GLOBALS['phpgw']->link('/index.php',$linkData));
1239
1240                                                $linkData = array
1241                                                (
1242                                                        'menuaction'    => 'mydms.uimydms.deleteACL',
1243                                                        'documentid'    => $documentID,
1244                                                        'userid'        => $userObj->getID(),
1245                                                        'tabpage'       => 5,
1246                                                );
1247                                                $this->t->set_var('link_acl_delete', $GLOBALS['phpgw']->link('/index.php',$linkData));
1248
1249                                                $this->t->set_var('acl_selectbox',$GLOBALS['phpgw']->html->select('mode',$userAccess->getMode(),$defaultACL,false,"style=\"width: 300px;\""));
1250                               
1251                                                $this->t->parse('acls','acl_row',True);
1252                                        }
1253                                       
1254                                        foreach ((array)$accessList["groups"] as $groupAccess)
1255                                        {
1256                                                $groupObj       = $groupAccess->getGroup();
1257                                                $groupMode      = $groupAccess->getMode();
1258
1259                                                $this->t->set_var('acl_username',$groupObj->getName());
1260                                                $this->t->set_var('acl_image',$groupImage);
1261
1262                                                $linkData = array
1263                                                (
1264                                                        'menuaction'    => 'mydms.uimydms.updateACL',
1265                                                        'documentid'    => $documentID,
1266                                                        'groupid'       => $groupObj->getID(),
1267                                                        'tabpage'       => 5,
1268                                                );
1269                                                $this->t->set_var('action_acl_row', $GLOBALS['phpgw']->link('/index.php',$linkData));
1270
1271                                                $linkData = array
1272                                                (
1273                                                        'menuaction'    => 'mydms.uimydms.deleteACL',
1274                                                        'documentid'    => $documentID,
1275                                                        'groupid'       => $groupObj->getID(),
1276                                                        'tabpage'       => 5,
1277                                                );
1278                                                $this->t->set_var('link_acl_delete', $GLOBALS['phpgw']->link('/index.php',$linkData));
1279
1280                                                $this->t->set_var('acl_selectbox',$GLOBALS['phpgw']->html->select('mode',$groupAccess->getMode(),$defaultACL,false,"style=\"width: 300px;\""));
1281
1282                                                $this->t->parse('acls','acl_row',True);
1283                                        }
1284
1285
1286                                        $allUsers = getAllUsers();
1287                                        $allUsersOptions = array('unselected' => lang('please select').'...');
1288                                        foreach ($allUsers as $userObj)
1289                                        {
1290                                                $allUsersOptions[$userObj->getID()] = $userObj->getFullName();
1291                                        }
1292                                        $this->t->set_var('select_add_acl_userid',$GLOBALS['phpgw']->html->select('userid',0,$allUsersOptions,true,"style=\"width: 300px;\" oonchange=\"javascript:document.notify_form.submit();\""));
1293                       
1294                                        $allGroups = getAllGroups();
1295                                        $allGroupsOptions = array('unselected' => lang('please select').'...');
1296                                        foreach ($allGroups as $groupObj)
1297                                        {
1298                                                $allGroupsOptions[$groupObj->getID()] = $groupObj->getName();
1299                                        }
1300                                        $this->t->set_var('select_add_acl_groupid',$GLOBALS['phpgw']->html->select('groupid',0,$allGroupsOptions,true,"style=\"width: 300px;\" oonchange=\"javascript:document.notify_form.submit();\""));
1301
1302                                        $this->t->set_var('select_add_acl_permission',$GLOBALS['phpgw']->html->select('access',M_READ,$defaultACL,false,"style=\"width: 300px;\" oonchange=\"javascript:document.change_default_access.submit();\""));
1303
1304                                        $this->t->parse('display_acl','block_acl_notinherite',True);
1305                                }
1306                        }
1307                       
1308        // div 6 update file
1309                       
1310                        $linkData = array
1311                        (
1312                                'menuaction'    => 'mydms.uimydms.updateFile',
1313                                'documentid'    => $documentID,
1314                        );
1315                        $this->t->set_var('action_update_file', $GLOBALS['phpgw']->link('/index.php',$linkData));
1316
1317                        // expire select box
1318                        $this->t->set_var('select_expire_update',$GLOBALS['phpgw']->html->select('expire',0,$selectOptions,true,"onchange=\"toggleJSCalUpdate(this);\""));
1319                       
1320                        $this->t->set_var('expire_date_update',$GLOBALS['phpgw']->jscalendar->input('expire_date_update',''));
1321                        $this->t->set_var('expire_class_update', 'inactive');
1322                       
1323                       
1324                        $this->t->parse("out","main");
1325                       
1326                        print $this->t->get('out','main');
1327                }
1328
1329        }
1330
1331?>
Note: See TracBrowser for help on using the repository browser.