#!/usr/bin/perl -wT
# vim: ft=xml:
#----------------------------------------------------------------------
# heading     : Configuration
# description : Workgroup
# navigation  : 6000 6200
# 
# Copyright (c) 2001 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 e-smith, inc.
# Please visit our web site www.e-smith.com for details.
#----------------------------------------------------------------------



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

=head1 TESTING

=begin testing

use esmith::FormMagick::Tester;
use esmith::TestUtils;
use esmith::ConfigDB;

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

is  (mode($panel_path), '4750',              "Check permissions on script");
my @stat = stat($panel_path);
is  (getpwuid($stat[4]), 'root', "File is owned by root");
is  (getgrgid($stat[5]), 'admin', "File is owned by group admin");
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/Change workgroup settings/, "Saw translated form title");

#
# Testing password changing

my $new_pass = "default";

ok  ($ua->get_panel($panel),            "Testing panel retrieval");
can_ok($ua, "field");
ok ($ua->{form}->find_input('Workgroup'),
    'Finding the Samba Workgroup field');
ok ($ua->{form}->find_input('RoamingProfiles'),
    'Finding the Samba RoamingProfiles field');
ok ($ua->{form}->find_input('ServerName'),
    'Finding the Samba ServerName field');
ok ($ua->{form}->find_input('DomainMaster'),
    'Finding the Samba DomainMaster field');

SKIP: {
    skip 7, "Unsafe!" unless destruction_ok();

    $ua->field('Workgroup' => 'foo');
    $ua->field('RoamingProfiles' => 'yes');
    $ua->field('ServerName' => 'Blah');
    $ua->field('DomainMaster' => 'yes');


    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;

    is ($db->get('smb')->value('Workgroup'), 'foo', 'Validated value for Samba Workgroup');
    is ($db->get('smb')->prop('RoamingProfiles'), 'yes', 'Validated value for Samba RoamingProfiles');
    is ($db->get('smb')->prop('ServerName'), 'Blah', 'Validated value for Samba ServerName');
    is ($db->get('smb')->prop('DomainMaster'), 'yes', 'Validated value for Samba DomainMaster');
}

ok  ($ua->get_panel($panel),            "Testing panel retrieval");
$ua->field('Workgroup' => 'foo');
$ua->field('ServerName' => 'foo');
ok  ($ua->click("Save"),                "Click Save");
is  ($ua->{status}, 200,                "200 OK");
like($ua->{content}, qr/server and workgroup names match/, "Saw error messages for matching server and wg names");

ok  ($ua->get_panel($panel),            "Testing panel retrieval");
$ua->field('Workgroup' => 'f!oo');
$ua->field('ServerName' => 'f!oo');
ok  ($ua->click("Save"),                "Click Save");
is  ($ua->{status}, 200,                "200 OK");
like($ua->{content}, qr/server name must begin with a letter/, "Saw error messages bad server name");
like($ua->{content}, qr/workgroup name must begin with a letter/, "Saw error messages for bad wg name");
=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()">
      <field type="text" id="Workgroup" value="get_value('Workgroup')"
	     validation="validate_workgroup(), maxlength(15)">
	<label>LABEL_WORKGROUP</label>
	<description>DESC_WORKGROUP</description>
      </field>
      
      <field type="text" id="ServerName" value="get_value('ServerName')"
	     validation="validate_servername()">
	<label>LABEL_SERVERNAME</label>
	<description>DESC_SERVERNAME</description>
      </field>
      <field type="select" 
	     id="DomainMaster" 
	     options="'yes' => 'YES', 'no' => 'NO'" 
	     value="get_value('DomainMaster')">
	<label>LABEL_PDC</label>
	<description>DESC_PDC</description>
      </field>

      
      <field type="select" 
	     id="RoamingProfiles" 
	     options="'yes' => 'YES', 'no' => 'NO'" 
	     value="get_prop('smb', 'RoamingProfiles')">
	<label>LABEL_ROAM</label>
	<description>DESC_ROAM</description>
      </field>
      
      <subroutine src="print_button('SAVE')" />
    </page>
    
    <page name="Done" pre-event="turn_off_buttons">
      <description>SUCCESS</description>
    </page> 

</form>
