#!%TCLSH%


#
# Script de prsentation de la page des paramtres de la base
#
# Appel par : index.htgt
#
# Paramtres (formulaire ou URL) : aucun
#
# Historique
#   2003/12/08 : pda      : cration  partir de sos
#   2004/10/13 : pda      : ajout des paramtres DHCP
#   2010/10/25 : pda      : librairisation des paramtres
#

set conf(homeurl)	%HOMEURL%

#
# Chemins utiliss par les scripts
#

set conf(pkg)		%PKGTCL%
set conf(lib)		%DESTDIR%/lib
set conf(libdns)	$conf(lib)/libdns.tcl

#
# Dfinition des noms des pages " trous"
#

set conf(err)		$conf(lib)/erreur.html
set conf(page)		$conf(lib)/admparliste.html
set conf(aide)		$conf(homeurl)/bin/admparhelp

#
# Quelques paramtres du script
#

set conf(auth)		%AUTH%
set conf(base)		%BASE%
set conf(nologin)	%NOLOGIN%
set conf(log)		%LOG%

#
# Les outils du parfait concepteur de pages Web dynamiques...
#

lappend auto_path $conf(pkg)
package require webapp
package require pgsql
package require arrgen

#
# Le tableau servant  prsenter les paramtres
#

set conf(tableau) {
    global {
	chars {12 normal}
	columns {50 50}
    }
    pattern {Normal1} {
	vbar {no}
	column {
	    multicolumn {2}
	    color {909090}
	    align {center}
	    botbar {no}
	}
	vbar {no}
    }
    pattern {Normal2} {
	vbar {no}
	column {
	    align {right}
	    botbar {no}
	    format {raw}
	}
	vbar {no}
	column {
	    align {left}
	    botbar {no}
	    format {raw}
	}
	vbar {no}
    }
    pattern {Boutons} {
	vbar {no}
	column {
	    multicolumn {2}
	    color {10C090}
	    align {center}
	    botbar {no}
	    format {raw}
	}
	vbar {no}
    }
}

#
# On y va !
#

# ::webapp::cgidebug ; exit

source $conf(libdns)

##############################################################################
# Programme principal
##############################################################################

proc main {} {
    global conf

    #
    # Initialisation
    #

    init-dns $conf(nologin) $conf(auth) $conf(base) $conf(err) "admin" \
			{} ftab dbfd login tabcor $conf(log)

    #
    # Mise en forme des donnes dans le formulaire
    #

    set donnees {}

    foreach class [dnsconfig class] {
	lappend donnees [list Normal1 [dnsconfig desc $class]]

	foreach key [dnsconfig keys $class] {

	    set type   [dnsconfig keytype $key]
	    set desc   [dnsconfig desc $key]
	    set curval [dnsconfig get $key]

	    switch -- [lindex $type 0] {
		bool {
		    set html [::webapp::form-yesno $key $curval {%1$sOui %2$sNon}]
		}
		string {
		    set html [::webapp::form-text $key 1 60 0 $curval]
		}
		text {
		    set html [::webapp::form-text $key 20 70 0 $curval]
		}
		menu {
		    set lmenu [lindex $type 1]
		    set html [::webapp::form-menu $key 1 0 $lmenu {}]
		}
		default {
		    set html "<FONT COLOR=#FF0000>ERREUR : type de '$key'</FONT>"
		}
	    }

	    set aide "<A HREF=\"$conf(aide)#$key\">$desc</A>"
	    lappend donnees [list Normal2 $aide $html]
	}
    }
    set html "<INPUT TYPE=submit VALUE=\"Enregistrer\">"
    append html " <INPUT TYPE=reset VALUE=\"Rinitialiser\">"
    lappend donnees [list Boutons $html]

    #
    # Gnration de la page contenant le formulaire
    #

    set subst {}
    lappend subst [list %TAB% [::arrgen::output "html" $conf(tableau) $donnees]]

    ::webapp::send html [::webapp::file-subst $conf(page) $subst]

    #
    # Dconnexion de la base
    #

    fermer-base $dbfd
}

::webapp::cgi-exec main %DEBUG%
