Code

goFonConference
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Tue, 16 Aug 2005 06:30:11 +0000 (06:30 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Tue, 16 Aug 2005 06:30:11 +0000 (06:30 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@1147 594d385d-05f5-0310-b6e9-bd551577e9d8

plugins/gofon/conference/.class_phoneConferenceManagment.inc.swp [new file with mode: 0644]
plugins/gofon/conference/.generic.tpl.swp [new file with mode: 0644]
plugins/gofon/conference/.tabs_conference.inc.swp [new file with mode: 0644]
plugins/gofon/conference/class_phoneConferenceGeneric.inc [new file with mode: 0644]
plugins/gofon/conference/class_phoneConferenceManagment.inc [new file with mode: 0644]
plugins/gofon/conference/generic.tpl [new file with mode: 0644]
plugins/gofon/conference/headpage.tpl [new file with mode: 0644]
plugins/gofon/conference/main.inc [new file with mode: 0644]
plugins/gofon/conference/remove.tpl [new file with mode: 0644]
plugins/gofon/conference/tabs_conference.inc [new file with mode: 0644]

diff --git a/plugins/gofon/conference/.class_phoneConferenceManagment.inc.swp b/plugins/gofon/conference/.class_phoneConferenceManagment.inc.swp
new file mode 100644 (file)
index 0000000..601a09c
Binary files /dev/null and b/plugins/gofon/conference/.class_phoneConferenceManagment.inc.swp differ
diff --git a/plugins/gofon/conference/.generic.tpl.swp b/plugins/gofon/conference/.generic.tpl.swp
new file mode 100644 (file)
index 0000000..22be8d3
Binary files /dev/null and b/plugins/gofon/conference/.generic.tpl.swp differ
diff --git a/plugins/gofon/conference/.tabs_conference.inc.swp b/plugins/gofon/conference/.tabs_conference.inc.swp
new file mode 100644 (file)
index 0000000..56bfa3a
Binary files /dev/null and b/plugins/gofon/conference/.tabs_conference.inc.swp differ
diff --git a/plugins/gofon/conference/class_phoneConferenceGeneric.inc b/plugins/gofon/conference/class_phoneConferenceGeneric.inc
new file mode 100644 (file)
index 0000000..2d44350
--- /dev/null
@@ -0,0 +1,212 @@
+<?php
+/*
+  This code is part of GOsa (https://gosa.gonicus.de)
+  Copyright (C) 2003  Cajus Pollmeier
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+class conference extends plugin
+{
+  /* department attributes */
+  var $cn= "";
+  var $description= "";
+  var $base ="";
+
+
+  var $goFonPIN                                   = "";
+
+  var $goFonConferenceOption_D = "";
+  var $goFonConferenceOption_r = "";
+  var $goFonConferenceOption_M = "";
+  var $goFonConferenceOption_s = "";
+  var $goFonConferenceOption_i = "";
+  var $goFonConferenceOption_c = "";
+  var $goFonConferenceOption_P = "";
+
+  var $goFonConferenceOptionFormat             = "";
+  var $goFonConferenceOptionLifetime   = "";
+  var $goFonConferenceOptionNumber             = "";
+       
+  /* Headpage attributes */
+  var $last_dep_sorting= "invalid";
+  var $departments= array();
+
+  /* attribute list for save action */
+  var $attributes= array("cn", "description", "goFonPIN","goFonConferenceOption_D","goFonConferenceOption_r",
+                                                "goFonConferenceOption_M","goFonConferenceOption_s","goFonConferenceOption_i","goFonConferenceOption_c",
+                                                "goFonConferenceOption_P","goFonConferenceOptionFormat","goFonConferenceOptionLifetime","goFonConferenceOptionNumber");
+
+  var $objectclasses= array("top", "gosaDepartment", "organizationalUnit");
+
+  function conference ($config, $dn)
+  {
+       plugin::plugin($config, $dn);
+       $this->is_account= TRUE;
+       $this->ui= get_userinfo();
+       $this->dn= $dn;
+       $this->orig_dn= $dn;
+       $this->config= $config;
+
+       /* Set base */
+    if ($this->dn == "new"){
+               $ui= get_userinfo();
+               if(isset($_SESSION['depfilter']['depselect'])){
+                       $this->base = $_SESSION['depfilter']['depselect'];
+               }else{
+                       $this->base= dn2base($ui->dn);
+               }
+       } else {
+                $this->base= preg_replace ("/^[^,]+,/", "", $this->dn);
+        }
+  }
+
+  function execute()
+  {
+       /* Reload departments */
+       $this->config->departments= get_departments($this->dn);
+       $this->config->make_idepartments();
+       $smarty= get_smarty();
+
+       $smarty->assign("goFonConferenceOptions",               array("P"=>"Conference ",""=>"Conference without PIN"));
+       $smarty->assign("goFonConferenceOptionFormats", array("P"=>"Conference ",""=>"Conference without PIN"));
+       $smarty->assign("goFonConferenceOption" ,$this->goFonConferenceOption_P);
+       
+       foreach ($this->attributes as $val){
+               $smarty->assign("$val", $this->$val);
+               $smarty->assign("$val"."ACL", chkacl($this->acl, "$val"));
+               if($this->$val){
+                       $smarty->assign($val."CHK", "");
+               }else{
+                       $smarty->assign($val."CHK", " checked ");
+               }
+       }
+       $smarty->assign("bases", $this->config->idepartments);
+       $smarty->assign("base_select", $this->base);
+       return($smarty->fetch (get_template_path('generic.tpl', TRUE)));
+  }
+
+  function clear_fields()
+  {
+       $this->dn= "";
+       $this->base= "";
+       $this->acl= "#none#";
+
+       foreach ($this->attributes as $val){
+               $this->$val= "";
+       }
+  }
+
+
+  function remove_from_parent()
+  {
+       $ldap= $this->config->get_ldap_link();
+       $ldap->cd ($this->dn);
+       $ldap->recursive_remove();
+
+       /* Optionally execute a command after we're done */
+       $this->handle_post_events('remove');
+  }
+
+
+  /* Save data to object */
+  function save_object()
+  {
+       if (isset($_POST['base'])){
+               plugin::save_object();
+
+               /* Save base, since this is no LDAP attribute */
+               if (chkacl($this->acl, "create") == ""){
+                       $this->base= $_POST['base'];
+               }
+       }
+  }
+
+
+  /* Check values */
+  function check()
+  {
+       $message= array();
+
+       /* Permissions for that base? */
+       $this->dn= "ou=$this->ou,".$this->base;
+       $acl= get_permissions ($this->dn, $this->ui->subtreeACL);
+       $acl= get_module_permission($acl, "department", $this->dn);
+       if (chkacl($acl, "create") != ""){
+               $message[]= _("You have no permissions to create a department on this 'Base'.");
+       }
+
+       /* Check for presence of this department */
+       $ldap= $this->config->get_ldap_link();
+       $attrs= $ldap->cat ($this->dn);
+       if ($this->orig_dn == "new" && !($attrs === FALSE)){
+               $message[]= _("Department with that 'Name' already exists.");
+       } elseif ($this->orig_dn != $this->dn && !($attrs === FALSE)){
+               $message[]= _("Department with that 'Name' already exists.");
+       }
+
+       /* All required fields are set? */
+       if ($this->ou == ""){
+               $message[]= _("Required field 'Name' is not set.");
+       }
+       if ($this->description == ""){
+               $message[]= _("Required field 'Description' is not set.");
+       }
+
+       /* Validate and modify - or: spaghetti rules! */
+       if ($this->ou == "incoming"){
+               $message[]= _("The field 'Name' contains the reserved word 'incoming'.".
+                               " Please choose another name.");
+       }
+       if (preg_match ('/[,#+:=>\\\\]/', $this->ou)){
+               $message[]= _("The field 'Name' contains invalid characters.");
+       }
+       if (!is_phone_nr($this->telephoneNumber)){
+               $message[]= _("The field 'Phone' contains an invalid phone number.");
+       }
+       if (!is_phone_nr($this->facsimileTelephoneNumber)){
+               $message[]= _("The field 'Fax' contains an invalid phone number.");
+       }
+
+       return $message;
+  }
+
+
+  /* Save to LDAP */
+  function save()
+  {
+       plugin::save();
+
+       /* Write back to ldap */
+       $ldap= $this->config->get_ldap_link();
+       $ldap->cat($this->dn);
+       $a= $ldap->fetch();
+       $ldap->cd($this->dn);
+       if (count($a)){
+               $ldap->modify($this->attrs);
+               $this->handle_post_events('modify');
+       } else {
+               $ldap->add($this->attrs);
+               $this->handle_post_events('add');
+       }
+       show_ldap_error($ldap->get_error());
+
+       /* Optionally execute a command after we're done */
+       $this->postcreate();
+  }
+
+}
+
+?>
diff --git a/plugins/gofon/conference/class_phoneConferenceManagment.inc b/plugins/gofon/conference/class_phoneConferenceManagment.inc
new file mode 100644 (file)
index 0000000..f2e0bb6
--- /dev/null
@@ -0,0 +1,163 @@
+<?php
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2003  Cajus Pollmeier
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+require "tabs_conference.inc";
+
+class phoneConferenceManagment extends plugin
+{
+       /* Definitions */
+       var $plHeadline                           = "Phone Conference Rooms";
+       var $plDescription                      = "Managment ";
+
+       /* CLI vars */
+       var $cli_summary                          = "Handling of LDAP subtrees";
+       var $cli_description            = "Some longer text\nfor help";
+       var $cli_parameters                     = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
+
+       /* Headpage attributes */
+       var $conferences                          = array();
+
+       /* attribute list for save action */
+       var $attributes                           = array();
+       var $objectclasses                      = array();
+  var $conftab            = false;
+
+       /* Initialise Class */
+       function phoneConferenceManagment ($config, $ui)
+       {
+               $this->ui                       = $ui;
+               $this->dn                       = "";
+               $this->config           = $config;
+       }
+
+       /* Execute class and display something */
+       function execute()
+       {
+               /* Reload departments */
+               $this->config->departments      = get_departments();
+               $smarty                                         = get_smarty();
+               $display                                        = "";
+               $s_action                                       = "";  // Will contain an action, like del or edit
+               $s_entry                                        = "";  // The entry name for edit delete -...
+
+    foreach($_POST as $post => $key){
+      if(preg_match("/.*new.*/i",$post)){
+        $s_action = "new";
+      }
+    }
+      
+    if($s_action == "new"){
+      $this->dn= "new";
+      $this->conftab= new conferencetabs($this->config,$this->config->data['TABS']['CONFERENCETABS'], $this->dn);
+      $this->conftab->set_acl(array(':all'));
+    }
+    
+    /* if edit or new, show dialog */
+               if($this->conftab){
+      $display= $this->conftab->execute();
+
+      /* Don't show buttons if tab dialog requests this */
+      if (!$this->conftab->by_object[$this->conftab->current]->dialog){
+        $display.= "<p style=\"text-align:right\">\n";
+        $display.= "<input type=submit name=\"edit_finish\" value=\""._("Finish")."\">\n";
+        $display.= "&nbsp;\n";
+        $display.= "<input type=submit name=\"edit_cancel\" value=\""._("Cancel")."\">\n";
+        $display.= "</p>";
+      }
+      return ($display);
+    }
+
+    $this->reload();
+               $listhead = "<div style='background:#F0F0F9;padding:5px;'>  
+                  <input type='image' align='middle' src='images/list_new_department.png' 
+                      align='middle' alt='"._("Create new department")."' name='dep_new'>&nbsp;
+                                 </div>";
+    $actions = "<input type='image' src='images/edit.png'               alt='"._("edit")."'      name='dep_edit_%KEY%' title='"._("Edit this entry")."'>";
+               $actions.= "<input type='image' src='images/edittrash.png' alt='"._("delete")."'        name='dep_del_%KEY%'  title='"._("Delete this entry")."'>";
+               $linkopen= "<a href='?plug=".$_GET['plug']."&amp;act=dep_open&amp;dep_id=%s'>%s</a>";
+
+    /* Set Header */
+               $divlist  = new divlist("conferenceTabs");
+               $divlist->SetSummary(_("This table displays all available conference rooms."));
+               $divlist->SetEntriesPerPage(20);
+               $divlist->SetHeader(array(
+          array("string" => "&nbsp;"),            
+                                       array("string" =>_("Name / nummer")),
+                                       array("string" =>_("Actions"), "attach" => "style='text-align:  right;border:none'")));
+
+    foreach($this->conferences as $conference ){
+      $field1 = array("string"=>"");
+      $field2 = array("string"=>$conference['cn'][0]);
+      $field3 = array("string"=>"");
+      $divlist->AddEntry(array($field1,$field2,$field3));
+    }
+
+               $smarty->assign("search_image",     get_template_path('images/search.png'));
+               $smarty->assign("tree_image",       get_template_path('images/tree.png'));
+               $smarty->assign("infoimage",        get_template_path('images/info.png'));
+               $smarty->assign("launchimage",      get_template_path('images/launch.png'));
+    $smarty->assign("conferences",      $divlist->DrawList());
+    $smarty->assign("conferencehead",  $listhead);
+               $smarty->assign("deplist",          $this->config->idepartments);
+               $smarty->assign("apply",            apply_filter());
+               $smarty->assign("alphabet",         generate_alphabet());
+               $smarty->assign("hint",             print_sizelimit_warning());
+
+               $display= $smarty->fetch(get_template_path('headpage.tpl', TRUE));
+               return($display);
+       }
+
+
+       function reload()
+       {
+    $base = "dc=gonicus,dc=de";
+               $this->conferences= get_list($this->ui->subtreeACL, "(objectClass=goFonAccount)",TRUE, $base, array("*"), TRUE);
+         
+  }
+
+       function remove_from_parent()
+       {
+               $ldap= $this->config->get_ldap_link();
+               $ldap->cd ($this->dn);
+               $ldap->recursive_remove();
+
+               /* Optionally execute a command after we're done */
+               $this->postremove();
+
+               /* Delete references to object groups */
+               $ldap->cd ($this->config->current['BASE']);
+               $ldap->search ("(&(objectClass=gosaGroupOfNames)(member=".$this->dn."))", array("cn"));
+               while ($ldap->fetch()){
+                       $og= new conftab($this->config, $ldap->getDN());
+                       unset($og->member[$this->dn]);
+                       $og->save ();
+               }
+
+       }
+
+       function remove_lock()
+       {
+               if (isset($this->dn)){
+                       del_lock ($this->dn);
+               }
+       }
+
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/plugins/gofon/conference/generic.tpl b/plugins/gofon/conference/generic.tpl
new file mode 100644 (file)
index 0000000..3c7e55a
--- /dev/null
@@ -0,0 +1,163 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+<tr>
+<td style="vertical-align:top;">
+<h2>
+<img alt="" align="middle" src="images/rightarrow.png"> {t}Properties{/t}
+</h2>
+     
+       <table summary="">
+       <tr>
+       <td>
+       <LABEL for="cn">
+       {t}Name of Conference{/t}
+       </LABEL>
+       {$must}
+       </td>
+       <td>
+       <input id="cn" name="cn" size=25 maxlength=60 value="{$cn}" title="{t}Name of subtree to create{/t}">
+       </td>
+       </tr>
+       <tr>
+       <td>
+       <LABEL for="description">
+       {t}Description{/t}
+       </LABEL>
+       {$must}
+       </td>
+       <td>
+       <input id="description" name="description" size=25 maxlength=60 {$descriptionACL} 
+       value="{$description}" title="{t}Descriptive text for department{/t}">
+       </td>
+       </tr>
+       <tr>
+       <td colspan="2"><br></td>
+       </tr>
+       <tr>
+       <td><LABEL for="goFonConferenceOption">{t}Base{/t}</LABEL>{$must}</td>
+       <td>
+       <select id="goFonConferenceOption" size="1" name="goFonConferenceOption" title="{t}Choose subtree to place department in{/t}"> 
+       {html_options options=$goFonConferenceOptions selected=$goFonConferenceOption}
+       </select>
+       </td>
+       </tr>
+       </table>
+
+</td>
+<td>
+<h2><img alt="" align="middle" src="images/house.png"> {t}Location{/t}</h2>
+
+       <table summary="">
+       <tr>
+       <td>
+       {t}Lifetime in days{/t}
+       </td>
+       <td>
+       <input name="goFonConferenceOptionLifetime" value="{$goFonConferenceOptionLifetime}" {$goFonConferenceOptionLifetimeACL}>
+       </td>
+       </tr>
+       <tr>
+       <td>
+       {t}Number{/t}
+       </td>
+       <td>
+       <input name="goFonConferenceOptionNumber" value="{$goFonConferenceOptionNumber}" {$goFonConferenceOptionNumberACL}>
+       </td>
+       </tr>
+       </table>
+
+</td>
+</tr>
+<tr>
+<td colspan=2 style='width:100%;'>
+       <p class='seperator'>&nbsp;</p>
+</td>
+</tr>
+<tr>
+<td>
+<h2><img alt="" align="middle" src="images/house.png"> {t}Options{/t}</h2>
+
+       <table summary="">
+    <tr>
+       <td colspan=2>
+               <input type="checkbox" name="goFonConferenceOption_D" value="PD" {$goFonConferenceOption_DCHK} {$goFonConferenceOption_DACL}> 
+               {t}PIN vorgeben{/t}
+       </td>
+       </tr>
+       <tr>
+       <td>
+       &nbsp;  {t}PIN{/t}
+       </td>
+       <td>
+               <input type='text' name="goFonPIN" {$goFonPINACL} value="{$goFonPIN}">
+       </td>
+       </tr>
+       <tr>
+       <td colspan=2>
+       <br><br>
+       </td>
+       </tr>
+    <tr>
+       <td colspan=2>
+               <input type="checkbox" name="goFonConferenceOption_r" value="r" {$goFonConferenceOption_rCHK} {$goFonConferenceOption_rACL}> 
+       {t}Record Conference{/t}
+       </td>
+       </tr>
+       <tr>
+       <td>
+       &nbsp;  {t}Format{/t}
+       </td>
+       <td>
+       <select id="goFonConferenceOptionFormat" size="1" name="goFonConferenceOptionFormat" title="{t}Choose subtree to place department in{/t}"> 
+       {html_options options=$goFonConferenceOptionFormats selected=$goFonConferenceOptionFormat}
+       </select>
+       </td>
+       </tr>
+       </table>
+
+</td>
+<td>
+       <table summary="">
+       <tr>
+       <td>
+               {t}Play music on hold{/t}
+       </td>
+       <td>
+               <input type="checkbox" name="goFonConferenceOption_M" value="M" {$goFonConferenceOption_MCHK} {$goFonConferenceOption_MACL}> 
+       </td>
+       </tr>
+       <tr>
+       <td>
+               {t}Activate menu{/t}
+       </td>
+       <td>
+               <input type="checkbox" name="goFonConferenceOption_s" value="s" {$goFonConferenceOption_sCHK} {$goFonConferenceOption_sACL}> 
+       </td>
+       </tr>
+       <tr>
+       <td>
+               {t}Announce new or leaving user{/t}
+       </td>
+       <td>
+               <input type="checkbox" name="goFonConferenceOption_i" value="i" {$goFonConferenceOption_iCHK} {$goFonConferenceOption_iACL}> 
+       </td>
+       </tr>
+       <tr>
+       <td>
+               {t}Count user{/t}
+       </td>
+       <td>
+               <input type="checkbox" name="goFonConferenceOption_c" value="c" {$goFonConferenceOption_cCHK} {$goFonConferenceOption_cACL}> 
+       </td>
+       </tr>
+       </table>
+
+</td>
+</tr>
+</table>
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+  document.mainform.ou.focus();
+  -->
+</script>
diff --git a/plugins/gofon/conference/headpage.tpl b/plugins/gofon/conference/headpage.tpl
new file mode 100644 (file)
index 0000000..065e3ab
--- /dev/null
@@ -0,0 +1,31 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+<tr>
+  <td style="vertical-align:top;width:600px">
+  <div class="contentboxh">
+    <p class="contentboxh">
+     {t}List of conference rooms{/t} {$hint}
+    </p>
+  </div>
+  <div class="contentboxb">
+      {$conferencehead}
+  </div>
+  <div style='height:4px;'></div>
+  <div class="contentboxb" style="border-top:1px solid #B0B0B0;">
+      {$conferences}
+    <input type=hidden name="edit_helper">
+  </div>
+  </td>
+  <td style="vertical-align:top;">
+   <div class="contentboxh">
+    <p class="contentboxh"><img src="{$infoimage}" align="right" alt="[i]">{t}Information{/t}</p>
+   </div>
+   <div class="contentboxb">
+   <p class="contentboxb">
+     {t}This menu allows you to create, delete and edit selected departments. Having a large size of departments, you might prefer the range selectors on top of the department list.{/t}
+   </p>
+   </div>
+  </td>
+</tr>
+</table summary="">
+
+<input type="hidden" name="ignore">
diff --git a/plugins/gofon/conference/main.inc b/plugins/gofon/conference/main.inc
new file mode 100644 (file)
index 0000000..98b665d
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+/*
+  This code is part of GOsa (https://gosa.gonicus.de)
+  Copyright (C) 2003  Cajus Pollmeier
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+if ($remove_lock){
+        if(isset($_SESSION['conference'])){
+                $conference= $_SESSION['conference'];
+                $conference->remove_lock();
+                del_lock ($ui->dn);
+                sess_del ('conference');
+        }
+} else {
+       /* Create usermanagement object on demand */
+       if (!isset($_SESSION['conference']) || (isset($_GET['reset']) && $_GET['reset'] == 1)){
+               $_SESSION['conference']= new phoneConferenceManagment($config, $ui);
+       }
+       $conference= $_SESSION['conference'];
+       $output= $conference->execute();
+
+       /* Page header*/
+       if (isset($_SESSION['objectinfo'])){
+               $display= print_header(get_template_path('images/conference.png'), _("conference management"), "<img alt=\"\" align=\"middle\" src=\"".get_template_path('images/closedlock.png')."\"> ".$_SESSION['objectinfo']);
+       } else {
+               $display= print_header(get_template_path('images/conference.png'), _("conference management"));
+       }
+
+       /* Reset requested? */
+       if (isset($_GET['reset']) && $_GET['reset'] == 1){
+               del_lock ($ui->dn);
+               sess_del ('conference');
+       }
+
+       /* Show and save dialog */
+       $conference->save_object();
+       $display.= $output;
+       $_SESSION['conference']= $conference;
+}
+
+?>
diff --git a/plugins/gofon/conference/remove.tpl b/plugins/gofon/conference/remove.tpl
new file mode 100644 (file)
index 0000000..543d1da
--- /dev/null
@@ -0,0 +1,19 @@
+<div style="font-size:18px;">
+ <img alt="" src="images/button_cancel.png" align=top>&nbsp;{t}Warning{/t}
+</div>
+
+<p>
+ {$info}
+ {t}This includes <b>all</b> accounts, systems, etc. in this subtree. Please double check if your really want to do this since there is no way for GOsa to get your data back.{/t}
+</p>
+
+<p>
+ {t}Best thing to do before performing this action would be to save the current contents of your LDAP tree in a file. So - if you've done so - press <i>Delete</i> to continue or <i>Cancel</i> to abort.{/t}
+</p>
+
+<p class="plugbottom">
+  <input type=submit name="delete_department_confirm" value="{t}Delete{/t}">
+  &nbsp;
+  <input type=submit name="delete_cancel" value="{t}Cancel{/t}">
+</p>
+
diff --git a/plugins/gofon/conference/tabs_conference.inc b/plugins/gofon/conference/tabs_conference.inc
new file mode 100644 (file)
index 0000000..a3497db
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+
+class conferencetabs extends tabs
+{
+  var $base= "";
+
+  function conferencetabs($config, $data, $dn)
+  {
+       tabs::tabs($config, $data, $dn);
+       $this->base= $this->by_object['conference']->base;
+  }
+
+  function check()
+  {
+       return (tabs::check(TRUE));
+  }
+  
+
+  function save()
+  {
+       $baseobject= $this->by_object['conference'];
+       $new_dn= 'ou='.$baseobject->ou.','.$baseobject->base;
+
+       if ($this->dn != $new_dn && $this->dn != "new"){
+               $baseobject->recursive_move($this->dn, $new_dn);
+       }
+       $this->dn= $new_dn;
+
+       tabs::save(TRUE);
+  }
+
+}
+
+?>