#!/usr/bin/perl -wT
# vim:ft=xml:

#----------------------------------------------------------------------
# heading     : Configuration
# description : Directory
# navigation  : 6000 6300
#----------------------------------------------------------------------
# copyright (C) 2002 Mitel Networks Corporation
# 
# 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
# 
# Technical support for this program is available from Mitel Networks 
# Please visit our web site www.e-smith.com for details.
#----------------------------------------------------------------------


use strict;
use esmith::util;
use esmith::FormMagick::Panel::directory;
my $f = esmith::FormMagick::Panel::directory->new();
$f->display();

=head1 TESTING


=begin testing

use esmith::FormMagick::Tester;
use esmith::TestUtils;
use esmith::ConfigDB;
my $panel = 'directory';
my $panel_path = "/etc/e-smith/web/functions/".$panel;
my $ua = esmith::FormMagick::Tester->new();



is  (mode($panel_path), '4750',              "Check permissions on script");
ok  ($ua->get_panel($panel),            "ABOUT TO RUN L10N TESTS");
is  ($ua->{status}, 200,                "200 OK");
like($ua->{content}, qr/FORM_TITLE/,    "Saw untranslated form title");
ok  ($ua->set_language("en-us"),        "Set language to U.S. English");
ok  ($ua->get_panel($panel),            "Get panel");

is  ($ua->{status}, 200,                "200 OK");

like($ua->{content}, qr/LDAP directory settings/, "Saw translated form title");

# Testing changes

ok  ($ua->get_panel($panel),            "Testing panel retrieval");
can_ok($ua, "field");

# Destructive testing:

ok ($ua->{form}->find_input('Department'), 'Finding the Department field');

$ua->field('Department' => 'TestDept' );
$ua->field('Existing' => 'update');

ok  ($ua->click("Save"),                "Click Save");
is  ($ua->{status}, 200,                "200 OK");
like($ua->{content}, qr/settings have been saved/, "Saw validation messages");

# Gotta open this later, so we don't cache stale data
my $db = esmith::ConfigDB->open;

ok($db->get('ldap')->prop('defaultDepartment') eq 'TestDept');

my $a = esmith::AccountsDB->open;
my @users    = $a->users();
foreach $user (@users) {
    ok( $user->prop('Dept') eq 'TestDept');
}


=end testing

=cut

__DATA__
<form title="FORM_TITLE" header="/etc/e-smith/web/common/head.tmpl" footer="/etc/e-smith/web/common/foot.tmpl">
    <page 
        name="First"  
        post-event="change_settings()" 
        pre-event="turn_off_buttons()">
        <description>DESCRIPTION</description>

        <field type="literal" value="get_ldap_base()">
            <label>LABEL_ROOT</label>
        </field>

        <field 
            type="select"
            id="Access"
            value="get_prop('ldap','access')"
            options="'private' => 'PRIVATE', 'public'  => 'PUBLIC'">
            <label>DIRECTORY_ACCESS</label>
            <description>DESC_DIRECTORY_ACCESS</description>
        </field>

        <field 
            type="text" 
            id="Department" 
            value="get_prop('ldap','defaultDepartment')">
            <label>DEPARTMENT</label>
            <description>DESC_DEPARTMENT</description>
        </field>

        <field type="text" id="Company" value="get_prop('ldap','defaultCompany')">
            <label>COMPANY</label>
        </field>

        <field type="text" id="Street" value="get_prop('ldap','defaultStreet')">
            <label>STREET</label>
        </field>
        <field type="text" id="City" value="get_prop('ldap','defaultCity')">
            <label>CITY</label>
        </field>

        <field 
            type="text" 
            id="PhoneNumber" 
            value="get_prop('ldap','defaultPhoneNumber')">
            <label>PHONENUMBER</label>
        </field>

        <field id="Existing"
            type="select"
            value='leave'
            options="'leave'  => 'LEAVE', 'update' => 'UPDATE'">
            <label>EXISTING</label>
            <description>DESC_EXISTING</description>
        </field>

        <subroutine src="print_button('SAVE')" />
    </page>

    <page name="Done" pre-event="turn_off_buttons">
        <description>SUCCESS</description>
    </page>

</form>
