Code

21885ff2aa559d2c4f2fd956193019c70aaaaeec
[gosa.git] / plugins / admin / applications / class_divListApplication.inc
1 <?php
3 class divListApplication extends MultiSelectWindow
4 {
5   /* Current base */
6   var $selectedBase       = "";
7   var $selectedRelease    = "main";
8   var $AvailableReleases  = array();
9   var $departments        = array();
10   var $parent               ;
11   var $ui                   ;
13   /* Regex */
14   var $Regex           = "*";
16   /* Subsearch checkbox */
17   var $SubSearch;
19   var $SaveAdditionalVars = array("selectedRelease");
21   function divListApplication ($config,$parent)
22   {
23     MultiSelectWindow::MultiSelectWindow($config,"Application");
24     
25     $this->parent       = $parent;
26     $this->ui           = get_userinfo();
28     /* Set default base */
29     if(!isset($_SESSION['CurrentMainBase'])){
30       $_SESSION['CurrentMainBase'] = $this->config->current['BASE'];
31     }
32     $this->selectedBase = $_SESSION['CurrentMainBase'];
34     /* Set list strings */
35     $this->SetTitle(_("List of Application"));
36     $this->SetSummary(_("This table displays all applications in the selected tree."));
38     /* Result page will look like a headpage */
39     $this->SetHeadpageMode();
40     $this->SetInformation(_("This menu allows you to add, edit and remove selected applications. ".
41                             "You may want to use the range selector on top of the application listbox, ".
42                             "when working with a large number of applications."));
44     $this->EnableAplhabet(true);
45   
46     /* Disable buttonsm */
47     $this->EnableCloseButton(false);
48     $this->EnableSaveButton (false);
50     /* set Page header */
51     $this->AddHeader(array("string" => "&nbsp;",                "attach" => "style='text-align:center;width:20px;'"));
52     $this->AddHeader(array("string" => _("Application name")." / "._("Department"), "attach" => "style=''"));
53     $this->AddHeader(array("string" => _("Actions"),            "attach" => "style='width:80px;border-right:0px;text-align:right;'"));
55     /* Add SubSearch checkbox */
56     $this->AddCheckBox("SubSearch",  _("Select to search within subtrees"), _("Ignore subtrees"), false);
58     /*                  Name                 ,Text                              ,Default  , Connect with alphabet  */
59     $this->AddRegex   ("Regex",     _("Display users matching"),"*" , true);
60   }
62   function AddUserBoxToFilter($position){
63     $str = "";
64     if($position  == 2){
65       $smarty = get_smarty();
66       $smarty->assign("selectedRelease",$this->selectedRelease);
67       $smarty->assign("branchimage","images/branch.png");
68       $smarty->assign("releases",$this->AvailableReleases);
69       $str = $smarty->fetch(get_template_path('release_select.tpl', TRUE));
70     }
71     return($str);
72   }
74   function GenHeader()
75   {
76     /* Prepare departments,
77        which are shown in the listbox on top of the listbox
78      */
79     $options= "";
80     foreach ($this->config->idepartments as $key => $value){
81       if ($this->selectedBase == $key){
82         $options.= "<option selected='selected' value='$key'>$value</option>";
83       } else {
84         $options.= "<option value='$key'>$value</option>";
85       }
86     }
88     /* Get copy & paste icon */
89     if($this->parent->CopyPasteHandler){
90       $Copy_Paste = $this->parent->CopyPasteHandler->generatePasteIcon();
91     }else{
92       $Copy_Paste ="";
93     }
95     /* Create listhead, it will be shown on top of the divlist.
96      * It provides general navigation and object creation
97      */
98     $listhead = "<div style='background:#F0F0F9;padding:5px;'>".
99       " <input class='center' type='image' src='images/list_root.png' align='middle' 
100         title='"._("Go to root department")."' name='dep_root' alt='"._("Root")."'>&nbsp;".
101       " <input class='center' type='image' align='middle' src='images/list_back.png' 
102         title='"._("Go up one department")."' alt='"._("Up")."' name='dep_back'>&nbsp;".
103       " <input class='center' type='image' align='middle' src='images/list_home.png' 
104         title='"._("Go to users department")."' alt='"._("Home")."' name='dep_home'>&nbsp;".
105       " <input class='center' type='image' src='images/list_reload.png' align='middle' 
106         title='"._("Reload list")."' name='submit_department' alt='"._("Submit")."'>&nbsp;".
107       " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'>&nbsp;".
108       " <input class='center' type='image' align='middle' src='images/list_new_app.png' alt='"._("new")."' 
109         title='"._("Create new application")."' name='appl_new'>&nbsp;".
110       $Copy_Paste.
111       " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'>&nbsp;".
112       _("Base")."&nbsp;<select name='CurrentMainBase' onChange='mainform.submit()' class='center'>$options</select>".
113       " <input class='center' type='image' src='images/list_submit.png' align='middle' 
114         title='"._("Submit department")."' name='submit_department' alt='"._("Submit")."'>&nbsp;".
115       "</div>";
117     $this->SetListHeader($listhead);
118   }
120   /* so some basic settings */
121   function execute()
122   {
123     $this->ClearElementsList();
124     $this->GenHeader();
125     $this->AvailableReleases = $this->parent->getReleases($this->selectedBase);
126   }
128   function setEntries($list)
129   {
130     /********************
131       Variable init
132      ********************/
133   
134     /* Create links */
135     $linkopen = "<a href='?plug=".$_GET['plug']."&amp;act=dep_open&amp;dep_id=%s'>%s</a>";
136     $editlink = "<a href='?plug=".$_GET['plug']."&amp;id=%s&amp;act=edit_entry'>%s</a>";
137     $userimg  = "<img class='center' src='images/select_groups.png' alt='User'    title='%s'>";
138     $applimg  = "<img class='center' src='images/select_application.png' alt='A'  title='"._("Application")."'>";
139     $empty    = "<img class='center' src='images/empty.png' style='width:16px;height:16px;' alt=''>";
142     /* Create action icons */
143     $actions = "";
144     if($this->parent->CopyPasteHandler){
145       $actions.= "<input class='center' type='image'
146         src='images/editcut.png' alt='"._("cut")."' name='cut_%KEY%' title='"._("Cut this entry")."'>&nbsp;";
147       $actions.= "<input class='center' type='image'
148         src='images/editcopy.png' alt='"._("copy")."' name='copy_%KEY%' title='"._("Copy this entry")."'>&nbsp;";
149     }
150     $actions.= "<input class='center' type='image'
151       src='images/edit.png' alt='"._("edit")."' name='appl_edit_%KEY%' title='"._("Edit this entry")."'>";
152     $actions.= "<input class='center' type='image'
153       src='images/edittrash.png' alt='"._("delete")."' name='appl_del_%KEY%' title='"._("Delete this entry")."'>";
156     /********************
157       Attach objects
158      ********************/
160     foreach($list as $key => $val){
161       $title = "title='dn:&nbsp;".@LDAP::fix($val['dn'])."'";
163       if(!isset($val['description'][0])){
164         $desc = "";
165       }else{
166         $desc = " - [ ".$val['description'][0]." ]";
167       }
168       $field1 = array("string" => sprintf($applimg,$val['dn']), "attach" => "style='text-align:center;width:20px;'");
169       $field2 = array("string" => sprintf($editlink,$key,($val['cn']['0'].$desc)), "attach" => "style='' ".$title);
170       $field3 = array("string" => preg_replace("/%KEY%/", $key, $actions), "attach" => "style='width:80px;border-right:0px;text-align:right;'");
171       $this->AddElement(array($field1,$field2,$field3));
172     }
173   }
175   function Save()
176   {
177     MultiSelectWindow::Save();  
178   }
180   function save_object()
181   {
182     /* Save automatic created POSTs like regex, checkboxes */
183     MultiSelectWindow::save_object(); 
184     $_SESSION['appfilter']['release']  = $this->selectedRelease;
185   }
187 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
188 ?>