#!/usr/bin/perl -wT

#----------------------------------------------------------------------
# heading     : dungog.net
# description : Dansguardian
# navigation  : 4000 4121
#
# Modified (c) 2008 Stephen Noble <support@dungog.net>
#----------------------------------------------------------------------

use strict;
use warnings;

use esmith::FormMagick::Panel::dungogdansguardian;

my $fm = esmith::FormMagick::Panel::dungogdansguardian->new();
$fm->display();

__DATA__
<form title="Dansguardian"
    header="/etc/e-smith/web/common/head.tmpl"
    footer="/etc/e-smith/web/common/foot.tmpl">

    <page 
        name="First"
        pre-event="print_status_message()">

        <description>FORM_DESCRIPTION</description>

        <field type="literal">
            <description>GLOBALH2</description>
        </field>
        <field type="literal">
            <description>GLOBAL_LINK</description>
        </field>
        <field type="literal">
            <description>PROXY_LINK</description>
        </field>
        <subroutine src="get_status_summary" />

        <field type="literal">
            <description>FILTERH2</description>
        </field>

        <field type="literal">
            <description>FILTERGROUP_DESC</description>
        </field>

        <subroutine src="print_summary" />
    </page>

    <page 
        name="GlobalPage"
        pre-event="print_status_message()"
        post-event="save_reload()">

        <description>GLOBALH2</description>

        <field type="literal">
            <description>LOG_DESC</description>
        </field>

        <field 
          type="select"
          id="loglevel"
          options="'0' => 'Lnone',
                   '1' => 'Ljust denied and exceptions',
                   '2' => 'Lall text based',
                   '3' => 'Lall requests',"
          value="get_loglevel()">
          <label>LOGLEVEL</label>
        </field>

        <field 
          type="select" 
          id="logfileformat"
          options="'1' => 'LDansGuardian format',
                   '2' => 'LCSV-style',
                   '3' => 'LSquid Log File',
                   '4' => 'LTab delimited',"
          value="get_logfileformat()">
          <label>LOGFORMAT</label>
        </field>

        <field 
          type="text" size="40"
          id="deniedurl" 
          value="get_deniedurl()">
          <label>Ldeniedpage</label>
        </field>

        <field type="literal">
            <description>FILTERH2</description>
        </field>

        <field type="literal">
            <description>GLOBAL_FILTERGROUP_DESC</description>
        </field>

        <subroutine src="print_global_table" />

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

    <page 
        name="ProxyPage"
        pre-event="print_status_message()"
        post-event="save_proxy()"> 

        <description>PROXYH2</description>

        <field type="literal">
            <description>MODIFY_PROXY_DESC</description>
        </field>

        <field 
          type="select" 
          id="status"
          options="'enabled'  => 'ENABLED',
                   'disabled' => 'DISABLED',"
          value="get_status()">
          <label>STATUS</label>
        </field>

        <field 
          type="text" size="10"
          id="port"
          value="get_port()"
          validation="portentry()">
          <label>PORT</label>
        </field>

        <field 
          type="select"
          id="proxyaccess"
          options="'pam'   => 'L1pam',
                   'ldap'  => 'L2ldap',
                   'ncsa'  => 'L2ncsa',
                   'ident' => 'L3ident',
                   'no'    => 'L4transproxy',"
          value="get_proxyaccess()">
          <label>PROXYACCESS</label>
        </field>

        <field 
          type="select" 
          id="portblocking"
          options="'yes' => 'ENABLED',
                   'no'  => 'DISABLED',"
          value="get_portblocking()">
          <label>PORTBLOCKING</label>
        </field>

        <field type="literal">
            <description>PROXY_RESTRICTIONS_DESC</description>
        </field>

        <field 
          type="text" size="80"
          id="bypassproxyto"
          value="get_bypassproxyto()">
          <label>BYPASSTO</label>
        </field>

        <field 
          type="text" size="80"
          id="bypassproxyfrom"
          value="get_bypassproxyfrom()">
          <label>BYPASSFROM</label>
        </field>

        <field 
          type="text" size="80"
          id="TCPBlocks"
          value="get_TCPBlocks()">
          <label>TCP_PORTBLOCKS</label>
        </field>

        <field 
          type="text" size="80"
          id="UDPBlocks"
          value="get_UDPBlocks()">
          <label>UDP_PORTBLOCKS</label>
        </field>

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

     <page 
        name="GroupSettings"
        pre-event="print_status_message()"
        post-event="save_group_settings()">

        <description>FILTERH2</description>

        <field type="literal">
            <description>FILTER_SETTINGS</description>
        </field>

        <field 
          type="select"
          id="mode"
          options="'0'  => 'Lbanned',
                   '1'  => 'Lfiltered',
                   '2'  => 'Lunfiltered',"
          value="get_mode()">
          <label>FMODE</label>
        </field>

        <field 
          type="select"
          id="bypass"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_bypass()">
          <label>Lbypass</label>
        </field>

        <field 
          type="select"
          id="reportinglevel"
          options="'-1'  => 'Lareplevn1',
                    '0'  => 'Lbreplev0',
                    '1'  => 'Lcreplev1',
                    '2'  => 'Ldreplev2',
                    '3'  => 'Lereplev3',"
          value="get_reportinglevel()">
          <label>Lreportinglevel</label>
        </field>

        <field 
          type="select"
          id="scan"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_scan()">
          <label>Lscan</label>
        </field>

        <field 
          type="select"
          id="weight"
          options="'50'   => 'La50',
                   '100'  => 'Lb100',
                   '160'  => 'Lc160',
                   '300'  => 'Ld300',
                   '9999' => 'Le9999',"
          value="get_weight()">
          <label>Lweight</label>
        </field>

        <field 
          type="select"
          id="pics"
          options="'strict' => 'Lstrict',
                   'some'   => 'Lsome',
                   'unused' => 'Lunused',"
          value="get_pics()">
          <label>Lpics</label>
        </field>

        <field 
          type="select"
          id="deniedpage"
          options="'default' => 'Ldefault',
                   'cgi'     => 'cgi',
                   'html'    => 'html',"
          value="get_deniedpage()">
          <label>Ldeniedpage</label>
        </field>

        <field 
          type="literal" 
          id=""
          value="get_custom_denied()">
          <label>Ldeniedpage</label>
        </field>

        <field 
          type="text" size="40"
          id="deniedurl" 
          value="get_deniedurl()">
          <label>Ldeniedurl</label>
        </field>

        <field type="literal">
            <description>BLANKET_BANS</description>
        </field>

        <field 
          type="select"
          id="blanketban"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_blanketban()">
          <label>Lblanketban</label>
        </field>
        <field 
          type="select"
          id="https"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_https()">
          <label>Lhttps</label>
        </field>
        <field 
          type="select"
          id="ipban"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_ipban()">
          <label>Lipban</label>
        </field>
        <field 
          type="select"
          id="file"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_file()">
          <label>Lfile</label>
        </field>

        <field type="literal">
            <description>SELECTIVE_BANS</description>
        </field>

        <field 
          type="select"
          id="regexpurl"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_regexpurl()">
          <label>Lporn</label>
        </field>
        <field 
          type="select"
          id="regexpsearch"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_regexpsearch()">
          <label>Lsearch</label>
        </field>
        <field 
          type="select"
          id="regexpurlads"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_regexpurlads()">
          <label>Lads</label>
        </field>
        <field 
          type="select"
          id="regexpurlproxy"
          options="'on'  => 'ENABLED',
                   'off' => 'DISABLED'"
          value="get_regexpurlproxy()">
          <label>Lproxy</label>
        </field>

        <subroutine src="print_button('SAVE_RESTART')" />
        <field 
          type="text" size="2"
          id="g" 
          value="">
          <label>GROUP</label>
        </field>
        <field 
          type="text" size="20"
          id="gname" 
          value="">
          <label>-</label>
        </field>
    </page>

     <page 
        name="GroupLists"
        pre-event="print_status_message()">

        <description>FILTERH2</description>

        <subroutine src="print_list_description()" />

        <subroutine src="print_list_table" />

        <field 
          type="text" size="2"
          id="g" 
          value="">
          <label>GROUP</label>
        </field>
        <field 
          type="text" size="20"
          id="gname" 
          value="">
          <label>-</label>
        </field>
    </page>

   <page 
        name="ViewList"
        pre-event="turn_off_buttons()"
        post-event="save_record()">

        <description>LIST_DESCRIPTION</description>

        <subroutine src="print_record_table()" />

        <field 
          type="text" size="2"
          id="g" 
          value="">
          <label>GROUP</label>
        </field>
        <field 
          type="text" size="30"
          id="list" 
          value="">
          <label>LIST</label>
        </field>
    </page>

   <page 
        name="ShowAllLists"
        pre-event="turn_off_buttons()">

        <description>ALL_LISTS</description>

        <subroutine src="print_all_lists()" />

        <field 
          type="text" size="2"
          id="g" 
          value="">
          <label>GROUP</label>
        </field>
         <field 
          type="text" size="20"
          id="gname" 
          value="">
          <label>-</label>
        </field>
   </page>
   <page 
        name="ShowCommonLists"
        pre-event="turn_off_buttons()">

        <description>COMMON_LISTS</description>

        <subroutine src="print_common_lists()" />

        <field 
          type="text" size="2"
          id="g" 
          value="">
          <label>GROUP</label>
        </field>
        <field 
          type="text" size="20"
          id="gname" 
          value="">
          <label>-</label>
        </field>
   </page>

    <page 
        name="Delete"
        pre-event="turn_off_buttons()"
        post-event="delete_record()">

        <field 
          type="literal" 
          id="criterion">
          <label>REMOVE_DESCRIPTION</label>
        </field>

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

    <page 
        name="Edit"
        pre-event="turn_off_buttons()"
        post-event="save_record()">

        <description>MODIFY_RECORD_DESC</description>

        <field 
          type="text" size="30"
          id="criterion" 
          value="get_criterion()"
          validation="nonblank()">
           <label>RECORD</label>
        </field>

        <subroutine src="print_button('SAVE')" />
        <field 
          type="text" size="2"
          id="g" 
          value="">
          <label>GROUP</label>
        </field>
        <field 
          type="text" size="30"
          id="list" 
          value="">
          <label>LIST</label>
        </field>
        <field 
          type="text" size="30"
          id="key" 
          value="">
          <label>KEY</label>
        </field>
    </page>

    <page 
        name="ViewPhraseList"
        pre-event="turn_off_buttons()"
        post-event="save_phrase()">

        <description>PHRASELIST_DESC</description>

        <subroutine src="print_phraselist_table()" />

        <subroutine src="print_button('SAVE')" />
        <field 
          type="text" size="2"
          id="g" 
          value="">
          <label>GROUP</label>
        </field>
        <field 
          type="text" size="20"
          id="gname" 
          value="">
          <label>-</label>
        </field>

        <subroutine src="print_phraselist_head()" />
    </page>

    <page 
        name="ViewBlackList"
        pre-event="turn_off_buttons()"
        post-event="save_black()">

        <description>BLACKLIST_DESC</description>

        <subroutine src="print_blacklist_table()" />

        <subroutine src="print_button('SAVE')" />
        <field 
          type="text" size="2"
          id="g" 
          value="">
          <label>GROUP</label>
        </field>
        <field 
          type="text" size="20"
          id="gname" 
          value="">
          <label>-</label>
        </field>

        <subroutine src="print_blacklist_head()" />
    </page>

</form>
