21885ff2aa559d2c4f2fd956193019c70aaaaeec
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");
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);
46 /* Disable buttonsm */
47 $this->EnableCloseButton(false);
48 $this->EnableSaveButton (false);
50 /* set Page header */
51 $this->AddHeader(array("string" => " ", "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")."'> ".
101 " <input class='center' type='image' align='middle' src='images/list_back.png'
102 title='"._("Go up one department")."' alt='"._("Up")."' name='dep_back'> ".
103 " <input class='center' type='image' align='middle' src='images/list_home.png'
104 title='"._("Go to users department")."' alt='"._("Home")."' name='dep_home'> ".
105 " <input class='center' type='image' src='images/list_reload.png' align='middle'
106 title='"._("Reload list")."' name='submit_department' alt='"._("Submit")."'> ".
107 " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'> ".
108 " <input class='center' type='image' align='middle' src='images/list_new_app.png' alt='"._("new")."'
109 title='"._("Create new application")."' name='appl_new'> ".
110 $Copy_Paste.
111 " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'> ".
112 _("Base")." <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")."'> ".
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 ********************/
134 /* Create links */
135 $linkopen = "<a href='?plug=".$_GET['plug']."&act=dep_open&dep_id=%s'>%s</a>";
136 $editlink = "<a href='?plug=".$_GET['plug']."&id=%s&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")."'> ";
147 $actions.= "<input class='center' type='image'
148 src='images/editcopy.png' alt='"._("copy")."' name='copy_%KEY%' title='"._("Copy this entry")."'> ";
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: ".@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 }
186 }
187 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
188 ?>