summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f0ece7f)
raw | patch | inline | side by side (parent: f0ece7f)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 16 Aug 2005 06:30:11 +0000 (06:30 +0000) | ||
committer | hickert <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] | patch | blob |
plugins/gofon/conference/.generic.tpl.swp | [new file with mode: 0644] | patch | blob |
plugins/gofon/conference/.tabs_conference.inc.swp | [new file with mode: 0644] | patch | blob |
plugins/gofon/conference/class_phoneConferenceGeneric.inc | [new file with mode: 0644] | patch | blob |
plugins/gofon/conference/class_phoneConferenceManagment.inc | [new file with mode: 0644] | patch | blob |
plugins/gofon/conference/generic.tpl | [new file with mode: 0644] | patch | blob |
plugins/gofon/conference/headpage.tpl | [new file with mode: 0644] | patch | blob |
plugins/gofon/conference/main.inc | [new file with mode: 0644] | patch | blob |
plugins/gofon/conference/remove.tpl | [new file with mode: 0644] | patch | blob |
plugins/gofon/conference/tabs_conference.inc | [new file with mode: 0644] | patch | blob |
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
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
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
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
--- /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
--- /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.= " \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'>
+ </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']."&act=dep_open&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" => " "),
+ 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
--- /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'> </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>
+ {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>
+ {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
--- /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
--- /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
--- /dev/null
@@ -0,0 +1,19 @@
+<div style="font-size:18px;">
+ <img alt="" src="images/button_cancel.png" align=top> {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}">
+
+ <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
--- /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);
+ }
+
+}
+
+?>