# Setting the preference (SP)
# Gerald Banon, 1998 - 2023

package provide dpi.inpe.br/banon/1998/08.02.08.56 2.1

# ----------------------------------------------------------------------

proc SPHelp {entryWidget entryName varName} {
# runs with start
# entryName and varName not used in DDHelp (used in XXDirectory)
	global homePath
	global loCoInRep
#	regexp ".*\.sp" $entryWidget win	;# .sp or .window.output.sp
#	set win $entryWidget
	set t .sphelp.f.t	
	$t delete 1.0 end
	set font [lindex [lindex [$t configure -font] end] 0]
	$t configure -font {$font 10}
	TextStyles $t
	Insert $t insert \
{Setting the Preferences}
	TagAdd $t bold12 {Setting the Preferences}
	$t insert insert "\n\n"
	Insert $t insert \
"Before using URLibService, you should set your\
preferences: language, e-mail address, browser and port number.\
You enter them in the appropriate forms and then you click\
the OK Button."
	TagAdd $t italic {language}
	TagAdd $t italic {e-mail address}
	TagAdd $t italic {browser}
	TagAdd $t italic {port number}
	TagAdd $t current9 OK
	TagAdd $t blue {OK Button}
	TagAdd $t {OK Button} {OK Button}
	TagBind $t {OK Button} $entryWidget.buttons.ok.ok
	$t insert insert "\n\n"
	Insert $t insert \
{To select the appropriate form, you click the corresponding\
button in Button Bar or the Scroll Buttons.}
	TagAdd $t blue {Button Bar}
	TagAdd $t {Button Bar} {Button Bar}
	TagBind $t {Button Bar} "$entryWidget.menubar.language.b \
		$entryWidget.menubar.mail.b $entryWidget.menubar.browser.b \
		$entryWidget.menubar.port.b"
	TagAdd $t blue {Scroll Buttons}
	TagAdd $t {Scroll Buttons} {Scroll Buttons}
	TagBind $t {Scroll Buttons} "$entryWidget.scroll.backward.b \
		$entryWidget.scroll.forward.b"
	$t insert insert "\n\n"
	Insert $t insert \
{Additionally, you can also set the appropriate permission\
for the local collection as a whole.}
	TagAdd $t italic {permission}
	$t insert insert "\n\n"
	Insert $t insert \
{Setting the Language}
	TagAdd $t bold {Setting the Language}
	$t insert insert "\n\n"
	Insert $t insert \
"You set the language by entering the name of one of the existing\
languages in the Language Form."
	TagAdd $t blue {Language Form}
	TagAdd $t {Language Form} {Language Form}
	TagBind $t {Language Form} $entryWidget.lbpre language
	TagAdd $t italic language
	$t insert insert "\n\n"
	Insert $t insert \
"To enter the language name, you can use the keyboard or alternatively\
the two Buttons < and >. First you press the < Button until\
the form is either cleared or containing the first letters of\
the desired language and then you select the apropriate\
entry menu."
	TagAdd $t courier11 <
	TagAdd $t courier11 >
	TagAdd $t blue {Buttons < and >}
	TagAdd $t {Buttons < and >2} {Buttons < and >}
	TagBind $t {Buttons < and >2} "$entryWidget.pre.entry.button1.1 \
		$entryWidget.pre.entry.button2.2"
	TagAdd $t blue {< Button}
	TagAdd $t {< Button} {< Button}
	TagBind $t {< Button} $entryWidget.pre.entry.button1.1
	$t insert insert "\n\n"
	Insert $t insert \
"A click outside the menu makes it unpost. By pressing\
the > Menu Button, you post it again."
	TagAdd $t courier11 >
	TagAdd $t blue {> Menu Button}
	TagAdd $t {> Menu Button} {> Menu Button}
	TagBind $t {> Menu Button} $entryWidget.pre.entry.button2.2
	$t insert insert "\n\n"
	Insert $t insert \
"You can use the Back Space Key in place of the < Button."
	TagAdd $t italic {Back Space Key}
	TagAdd $t courier11 <
	$t insert insert "\n\n"
	Insert $t insert \
"The S Menu Button (S for Select) may be used to re-enter the name of\
one of the most recently set languages."
	TagAdd $t current9 S
	TagAdd $t blue {S Menu Button}
	TagAdd $t {S Menu Button2} {S Menu Button}
	TagBind $t {S Menu Button2} $entryWidget.pre.entry.button3.3
	$t insert insert "\n\n"
	Insert $t insert \
{Setting your E-Mail Address}
	TagAdd $t bold {Setting your E-Mail Address}
	$t insert insert "\n\n"
	Insert $t insert \
"You set your e-mail address by entering it in the E-Mail Address\
Form. It has to be of the form: <user.name@domain.name>."
	TagAdd $t blue {E-Mail Address Form}
	TagAdd $t {E-Mail Address Form} {E-Mail Address Form}
	TagBind $t {E-Mail Address Form} $entryWidget.lbpre mail
	TagAdd $t italic {e-mail address}
	TagAdd $t fixed {<user.name@domain.name>}
	TagAdd $t italic {private}
	TagAdd $t italic {not}
	$t insert insert "\n\n"
	Insert $t insert \
"If you enter some capital letters, they will be automatically\
changed into small ones by pressing the OK Button."
	TagAdd $t current9 OK
	$t insert insert "\n\n"
	Insert $t insert \
"If you want to set an e-mail address that was previously\
set, instead of typing it again, you can use the two\
Buttons < and > as described above for entering your\
language."
	TagAdd $t courier11 <
	TagAdd $t courier11 >
	TagAdd $t courier11 < -backward
	TagAdd $t blue {Buttons < and >}
	TagAdd $t {Buttons < and >} {Buttons < and >}
	TagBind $t {Buttons < and >} "$entryWidget.pre.entry.button1.1 \
		$entryWidget.pre.entry.button2.2"
	$t insert insert "\n\n"
	Insert $t insert \
"The S Menu Button (S for Select) may be used to re-enter one of the\
most recently set e-mail addresses."
	TagAdd $t current9 S
	TagAdd $t blue {S Menu Button}
	TagAdd $t {S Menu Button} {S Menu Button}
	TagBind $t {S Menu Button} $entryWidget.pre.entry.button3.3
	$t insert insert "\n\n"
	Insert $t insert \
"The R Button (R for Remove) can be used to remove one of the\
previously set e-mail addresses."
	TagAdd $t current9 Remove
	TagAdd $t blue {Remove Button}
	TagAdd $t {Remove Button} {Remove Button}
	TagBind $t {Remove Button} $entryWidget.pre.entry.button4.4
	TagAdd $t italic remove
	$t insert insert "\n\n"
	Insert $t insert \
"In order to easily fill the entry, even partially,\
with a known previous entry, you may use the Tab Key."
	$t insert insert "\n\n"
	Insert $t insert \
{Setting the Browser}
	TagAdd $t bold {Setting the Browser}
	$t insert insert "\n\n"
	Insert $t insert \
"You set the browser by entering the name of one of the existing\
browsers in the Browser Form."
	TagAdd $t blue {Browser Form}
	TagAdd $t {Browser Form} {Browser Form}
	TagBind $t {Browser Form} $entryWidget.lbpre browser
	TagAdd $t italic browser
	$t insert insert "\n\n"
	Insert $t insert \
"You enter the browser name in the same way you enter\
your language."
	$t insert insert "\n\n"
	Insert $t insert \
{Setting the Port Number}
	TagAdd $t bold {Setting the Port Number}
	$t insert insert "\n\n"
	Insert $t insert \
"You set the port number by entering in the Port Number Form\
the integer <80> or an integer between <1905> and <6553>,"
	TagAdd $t blue {Port Number Form}
	TagAdd $t {Port Number Form} {Port Number Form}
	TagBind $t {Port Number Form} $entryWidget.lbpre port
	TagAdd $t fixed {<80>}
	TagAdd $t fixed {<1905>}
	TagAdd $t fixed {<6553>}
	TagAdd $t italic {port number}
	Insert $t insert \
" or an integer between <800> and <65539> preceded by a valid HTTP host name\
(e.g., hermes) or full name (e.g., hermes.dpi.inpe.br or www.urlib.net)."
	TagAdd $t fixed {<800>}
	TagAdd $t fixed {<65539>}
	$t insert insert "\n\n"
	Insert $t insert \
"You enter the port number in the same way you enter\
your e-mail address."
	$t insert insert "\n\n"
	Insert $t insert \
"When you start URLibService, your local collection is\
automatically posted on the Web through a dedicated\
HTTP server. The HTTP address of your local collection\
is the address of this server. It is of the form\
<hostname.domainname:portnumber>."
	TagAdd $t fixed {<hostname.domainname:portnumber>}
	$t insert insert "\n\n"
	Insert $t insert \
"Each local collection has is own HTTP address.\
We recommend using the integer <80> as port number\
of this address. If this port number is already in use\
for a given <domainname> use for example the\
port number <1905>."
	TagAdd $t fixed {<80>}
	TagAdd $t fixed {<domainname>}
	TagAdd $t fixed {<1905>}
	$t insert insert "\n\n"
	Insert $t insert \
"It is useful to know that if you choose <portnumber>\
(for example <80>) as your port number, then\
the port numbers <portnumber0> and <portnumber1>\
(in the example, <800> and <801>)\
will be used respectively by the URLib Local Collection Server\
and the Secure Sockets Layer."
	TagAdd $t fixed {<portnumber>}
	TagAdd $t fixed {<80>}
	TagAdd $t fixed {<portnumber0>}
	TagAdd $t fixed {<portnumber1>}
	TagAdd $t fixed {<800>}
	TagAdd $t fixed {<801>}
	$t insert insert "\n\n"
	Insert $t insert \
"If the <hostname> is a virtual host at port <80>\
then you must enter the expression <hostname 802>\
(assuming that port <802> is unused)."
	TagAdd $t fixed {<hostname>}
	TagAdd $t fixed {<80>}
	TagAdd $t fixed {<hostname 802>}
	TagAdd $t fixed {<802>}
	$t insert insert "\n\n"
	Insert $t insert \
{Setting the Permission}
	TagAdd $t bold {Setting the Permission}
	$t insert insert "\n\n"
	Insert $t insert \
"You set the default web access permission for the <doc>\
and <download> directories of each repository of the local collection\
by filling the Permission Form."
	TagAdd $t fixed {<doc>}
	TagAdd $t fixed {<download>}
	TagAdd $t blue {Permission Form}
	TagAdd $t {Permission Form} {Permission Form}
	TagBind $t {Permission Form} $entryWidget.lbperm
	TagAdd $t italic {permission}
	$t insert insert "\n\n"
	Insert $t insert \
"By using the check boxes, you select the appropriate\
level of priority for the <doc> and <download> directories separately.\
The resulting permission is given by the highest priority checked\
(1st meaning the highest priority)."
	TagAdd $t blue {check boxes}
	TagAdd $t {check boxes} {check boxes}
	TagBind $t {check boxes} "\
		$entryWidget.perm.tab.v1.h2 $entryWidget.perm.tab.v1.h3 \
		$entryWidget.perm.tab.v2.h2 $entryWidget.perm.tab.v2.h3"
	TagAdd $t fixed {<doc>}
	TagAdd $t fixed {<download>}
	$t insert insert "\n\n"
	Insert $t insert \
"For example, if you check the first priority for the <doc>\
directory, then the permission for that directory will be\
<allow from all>, what means that there will be no access\
restriction for the files within the <doc> directory."
	TagAdd $t fixed {<doc>}
	TagAdd $t fixed {<allow from all>}
	TagAdd $t italic {no}
	TagAdd $t fixed {<doc>} -backward
	$t insert insert "\n\n"
	Insert $t insert \
"If you leave unchecked the first and second priority, then\
the permission will be <deny from all>, what means that the\
access will be forbiden for everyone."
	TagAdd $t fixed {<deny from all>}
	$t insert insert "\n\n"
	Insert $t insert \
"If you check only the second priority, then the permission\
is given by whatever you fill in the white field. The lines\
in this field must be of the form: <deny from host> or\
<allow from host>. Host is <all>, a (partial) domain name or\
a (partial) IP address."
	TagAdd $t fixed {<deny from}
	TagAdd $t fixed {<allow from}
	TagAdd $t fixed {>}
	TagAdd $t fixed {>} -backward
	TagAdd $t italic {host}
	TagAdd $t italic {host} -backward
	TagAdd $t italic {Host}
	TagAdd $t fixed {<all>}
	$t insert insert "\n\n"
	Insert $t insert \
"For example, if you check the second priority and fill\
the white field with <allow from .ncsa.uiuc.edu>,\
then the hosts in the <ncsa.uiuc.edu> domain will have an\
allowed access and all other hosts will have a\
denied access."
	TagAdd $t fixed {<allow from .ncsa.uiuc.edu>}
	TagAdd $t fixed {<ncsa.uiuc.edu>}
	$t insert insert "\n\n"
	Insert $t insert \
"It might be interesting to note that the check boxes\
are dependent each other in such a way that the <download> directory\
has always less permission than the <doc> directory."
	TagAdd $t fixed {<doc>}
	TagAdd $t fixed {<download>}
	$t insert insert "\n\n"
if 0 {
	Insert $t insert \
"Using the E-Mail Address to Name the Repositories"
	TagAdd $t bold {Using the E-Mail Address to Name the Repositories}
	$t insert insert "\n\n"
	Insert $t insert \
"If you use your computer in standalone mode, that is,\
if your computer is not part of the Internet, then you\
should use your e-mail address to define the first\
two parts of a repository name. This is done by\
checking the Use Mail check box."
	TagAdd $t current9 {Use Mail} -backward
	TagAdd $t blue {check box}
	TagAdd $t {check box 1} {check box}
	TagBind $t {check box 1} $entryWidget.check.check1
	$t insert insert "\n\n"
	Insert $t insert \
"Nevertheless, if your e-mail address is used in more than\
one URLib local collection, then we strongly recommand\
to avoid the use of your e-mail address to name the repositories\
and to leave unchecked the Use Mail check box."
	TagAdd $t current9 {Use Mail} -backward
	TagAdd $t blue {check box}
	TagAdd $t {check box 1} {check box}
	TagBind $t {check box 1} $entryWidget.check.check1
	$t insert insert "\n\n"
}

	Insert $t insert \
"Enable the Require User Option"
	TagAdd $t bold {Enable the Require User Option}
	$t insert insert "\n\n"
	Insert $t insert \
"By checking the Require User check box you enable\
this option (Apache directive), and consequently the pop-up Login/Password windows."
	TagAdd $t current9 {Require User} -backward
	TagAdd $t blue {check box}
	TagAdd $t {check box 1} {check box}
	TagBind $t {check box 1} $entryWidget.check.check1
	$t insert insert "\n\n"

	Insert $t insert \
"Use User Authentication"
	TagAdd $t bold {Use User Authentication}
	$t insert insert "\n\n"
	Insert $t insert \
"By checking the Use User Authentication check box you restrict\
the access to ALL the records of the local collection through username/password."
	TagAdd $t current9 {Use User Authentication} -backward
	TagAdd $t blue {check box}
	TagAdd $t {check box 2} {check box}
	TagBind $t {check box 2} $entryWidget.check.check2
	if [info exists loCoInRep] {
# not installation
		$t insert insert "\n\n"
		Insert $t insert \
{The authenticated user list is defined in the file\
<$var1/col/$var2/auxdoc/@passwords.txt>.} {} $homePath $loCoInRep
		TagAdd $t fixed {<$var1/col/$var2/auxdoc/@passwords.txt>} -forward $homePath $loCoInRep
	}

	$t insert insert "\n"

	$t configure -state disabled
}
