tazpanel annotate settings.cgi @ rev 338

settings.cgi: set tz
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Jan 02 14:12:12 2013 +0100 (2013-01-02)
parents 1bccb526ff67
children cc5d96a08b68
rev   line source
pankso@42 1 #!/bin/sh
pankso@42 2 #
pankso@42 3 # System settings CGI interface: user, locale, keyboard, date. Since we
paul@205 4 # don't have multiple pages here there is only one case used to get command
paul@205 5 # values and the full content is followed directly.
pankso@42 6 #
pankso@112 7 # Copyright (C) 2011 SliTaz GNU/Linux - BSD License
pankso@42 8 #
pankso@42 9
pankso@42 10 # Common functions from libtazpanel
pankso@42 11 . lib/libtazpanel
pankso@42 12 get_config
pascal@81 13 header
pankso@42 14
al@292 15 TITLE=$(gettext 'TazPanel - Settings')
pankso@42 16
pascal@336 17 # Get system database. LDAP compatible.
pascal@336 18 getdb()
pascal@336 19 {
pascal@336 20 getent $1 2>/dev/null || cat /etc/$1
pascal@336 21 }
pascal@336 22
pascal@336 23 listdb()
pascal@336 24 {
pascal@336 25 for item in $(getdb $1 | cut -d ":" -f 1); do
pascal@336 26 echo "<option>$item</option>\n"
pascal@336 27 done
pascal@336 28 }
pascal@336 29
pankso@42 30 #
pankso@42 31 # Commands executed before page loading.
pankso@42 32 #
pankso@42 33
pascal@81 34 case " $(GET) " in
pascal@115 35 *\ do\ *)
paul@205 36 # Assume no array support in httpd_helper.sh ;^)
pascal@115 37 users=""
pascal@336 38 groups=""
pascal@115 39 IFS="&"
pascal@115 40 for i in $QUERY_STRING ; do
pascal@115 41 case "$i" in
pascal@336 42 user=*) users="$users ${i#user=}" ;;
pascal@336 43 group=*) groups="$groups ${i#group=}" ;;
pascal@115 44 esac
pascal@115 45 done
pascal@115 46 unset IFS
pascal@336 47 for cmd in "Delete group" ; do
pascal@336 48 [ "$(GET do)" == "$(gettext "$cmd")" ] || continue
pascal@336 49 for group in $groups ; do
pascal@336 50 case "$cmd" in
pascal@336 51 Delete*) delgroup $group ;;
pascal@336 52 esac
pascal@336 53 done
pascal@336 54 done
pascal@115 55 for cmd in "Delete user" "Lock user" "Unlock user" \
pascal@115 56 "Change password" ; do
al@303 57 [ "$(GET do)" == "$(gettext "$cmd")" ] || continue # BUGGY
pascal@115 58 for user in $users ; do
pascal@115 59 case "$cmd" in
pascal@115 60 Delete*) deluser $user ;;
pankso@119 61 Lock*) passwd -l $user | log ;;
pankso@119 62 Unlock*) passwd -u $user | log ;;
pascal@252 63 Change*) echo "$user:$(GET password)" | chpasswd -m | log ;;
pascal@115 64 esac
pascal@115 65 done
pascal@115 66 done ;;
pascal@336 67 *\ addmember\ *)
pascal@336 68 addgroup $(GET member) $(GET group) ;;
pascal@336 69 *\ delmember\ *)
pascal@336 70 delgroup $(GET member) $(GET group) ;;
pascal@336 71 *\ addgroup\ *)
pascal@336 72 addgroup $(GET addgroup) ;;
pascal@115 73 *\ adduser\ *)
pankso@42 74 #
pankso@42 75 # Manage system user accounts
pankso@42 76 #
pascal@81 77 user=$(GET adduser)
pascal@115 78 passwd=$(GET passwd)
pascal@81 79 if [ -n "$user" ]; then
slaxemulator@233 80 adduser -D -s /bin/sh -g "SliTaz User" -G users -h /home/$user $user
pascal@252 81 echo "$user:$passwd" | chpasswd -m | log
slaxemulator@233 82 for g in audio cdrom floppy video tty
pascal@81 83 do
pascal@81 84 addgroup $user $g
pascal@81 85 done
pascal@81 86 fi ;;
pascal@81 87 *\ gen_locale\ *)
pascal@81 88 new_locale=$(GET gen_locale) ;;
pascal@141 89 *\ gen_keymap\ *)
pascal@141 90 new_keymap=$(GET gen_keymap) ;;
pascal@142 91 *\ apply_xorg_kbd\ *)
pascal@142 92 sed -i "s/XkbLayout.*/XkbLayout \" \"$(GET apply_xorg_kbd)\"/" \
pascal@142 93 /etc/X11/xorg.conf.d/40-Keyboard.conf ;;
pascal@337 94 *\ date\ *)
pascal@337 95 date $(GET month)$(GET day)$(GET hour)$(GET min)$(GET year).$(GET sec) ;;
pascal@81 96 *\ rdate\ *)
pankso@42 97 rdate -s tick.greyware.com ;;
pascal@81 98 *\ hwclock\ *)
pankso@150 99 hwclock -w -u ;;
pankso@110 100 *\ panel_pass*)
pankso@110 101 sed -i s@/:root:.*@/:root:$(GET panel_pass)@ $HTTPD_CONF ;;
pankso@110 102 *\ style*)
pankso@110 103 sed -i s/'^STYLE.*'/"STYLE=\"$(GET style)\""/ $CONFIG
al@292 104 . $CONFIG ;;
pascal@338 105 *\ settz\ *)
pascal@338 106 GET tz > /etc/TZ ;;
pankso@42 107 esac
pankso@42 108
pankso@42 109 #
pankso@42 110 # Default xHTML content
pankso@42 111 #
pankso@42 112 xhtml_header
pankso@67 113
pankso@110 114 case " $(GET) " in
pascal@336 115 *\ group*)
pascal@336 116 #
pascal@336 117 # Groups management
pascal@336 118 #
pascal@336 119 cat <<EOT
pascal@336 120 <h3 id="groups">$(gettext 'Manage groups')</h3>
pascal@336 121
pascal@336 122 <form method="get" action="$SCRIPT_NAME">
pascal@336 123 <input type="hidden" name="groups" />
pascal@336 124 <div id="actions">
pascal@336 125 <div class="float-left">
pascal@336 126 $(gettext 'Selection:')
pascal@336 127 <input type="submit" name="do" value="$(gettext 'Delete group')" />
pascal@336 128 </div>
pascal@336 129 </div>
pascal@336 130
pascal@336 131 <table class="zebra outbox">
pascal@336 132 <thead>
pascal@336 133 <tr class="thead">
pascal@336 134 <td>$(gettext 'Group')</td>
pascal@336 135 <td>$(gettext 'Group ID')</td>
pascal@336 136 <td>$(gettext 'Members')</td>
pascal@336 137 </tr>
pascal@336 138 </thead>
pascal@336 139 </tbody>
pascal@336 140 EOT
pascal@336 141 for group in `getdb group | cut -d ":" -f 1`
pascal@336 142 do
pascal@336 143 IFS=':'
pascal@336 144 set -- $(getdb group | grep "^$group:")
pascal@336 145 unset IFS
pascal@336 146 gid=$3
pascal@336 147 members=$4
pascal@336 148 cat <<EOT
pascal@336 149 <tr>
pascal@336 150 <td><input type='checkbox' name='group' value='$group' />
pascal@336 151 <img src='$IMAGES/users.png' />$group</td>
pascal@336 152 <td>$gid</td>
pascal@336 153 <td>${members//,/, }</td>
pascal@336 154 </tr>
pascal@336 155 EOT
pascal@336 156 done
pascal@336 157 cat << EOT
pascal@336 158 </tbody>
pascal@336 159 </table>
pascal@336 160 </form>
pascal@336 161
pascal@336 162 <section>
pascal@336 163 <h4>$(gettext 'Add a new group')</h4>
pascal@336 164
pascal@336 165 <form method="get" action="$SCRIPT_NAME">
pascal@336 166 <input type="hidden" name="groups" />
pascal@336 167 <table>
pascal@336 168 <tr><td>$(gettext 'Group name:')</td>
pascal@336 169 <td><input type="text" name="addgroup" size="30" /></td>
pascal@336 170 <td>
pascal@336 171 <input type="submit" value="$(gettext 'Create group')" /></td></tr>
pascal@336 172 </table>
pascal@336 173 </form>
pascal@336 174 </section>
pascal@336 175
pascal@336 176 <section>
pascal@336 177 <h4>$(gettext 'Manage group membership')</h4>
pascal@336 178
pascal@336 179 <form method="get" action="$SCRIPT_NAME">
pascal@336 180 <input type="hidden" name="groups" />
pascal@336 181 <table>
pascal@336 182 <tr><td>$(gettext 'Group name:')</td>
pascal@336 183 <td><select name="group">
pascal@336 184 $(listdb group)
pascal@336 185 </select></td>
pascal@336 186 <td>$(gettext 'User name:')</td>
pascal@336 187 <td><select name="member">
pascal@336 188 $(listdb passwd)
pascal@336 189 </select></td></tr>
pascal@336 190 <tr><td colspan="4"><input type="submit" name="addmember" value="$(gettext 'Add user')" />
pascal@336 191 <input type="submit" name="delmember" value="$(gettext 'Remove user')" /></td></tr>
pascal@336 192 </table>
pascal@336 193 </form>
pascal@336 194 </section>
pascal@336 195
pascal@336 196 EOT
pascal@336 197 ;;
pascal@336 198
pankso@110 199 *\ user*)
pankso@110 200 #
pankso@110 201 # Users management
pankso@110 202 #
pankso@110 203 cat <<EOT
al@303 204 <h3 id="users">$(gettext 'Manage users')</h3>
al@303 205
pankso@110 206 <form method="get" action="$SCRIPT_NAME">
pascal@115 207 <div id="actions">
pascal@115 208 <div class="float-left">
al@303 209 $(gettext 'Selection:')
al@303 210 <input type="submit" name="do" value="$(gettext 'Delete user')" />
al@303 211 <input type="submit" name="do" value="$(gettext 'Lock user')" />
al@303 212 <input type="submit" name="do" value="$(gettext 'Unlock user')" />
pascal@115 213 </div>
pascal@115 214 </div>
al@303 215
al@311 216 <table class="zebra outbox">
al@303 217 <thead>
pascal@115 218 <tr class="thead">
al@303 219 <td>$(gettext 'Login')</td>
al@303 220 <td>$(gettext 'User ID')</td>
al@303 221 <td>$(gettext 'Name')</td>
al@303 222 <td>$(gettext 'Home')</td>
al@303 223 <td>$(gettext 'Shell')</td>
pascal@115 224 </tr>
al@303 225 </thead>
al@303 226 </tbody>
pascal@115 227 EOT
pascal@336 228 for login in `getdb passwd | cut -d ":" -f 1`
pankso@110 229 do
pascal@115 230 if [ -d /home/$login ]; then
pascal@115 231 colorlogin=$login
pascal@115 232 grep -qs "^$login:!" /etc/shadow &&
pascal@115 233 colorlogin="<span style='color: red;'>$login</span>"
pascal@115 234 IFS=':'
pascal@336 235 set -- $(getdb passwd | grep "^$login:")
pascal@115 236 unset IFS
pascal@115 237 uid=$3
pascal@115 238 gid=$4
pascal@115 239 name="$(echo $5 | sed s/,.*//)"
pascal@115 240 home="$6"
pascal@115 241 shell=$7
pascal@115 242 cat <<EOT
pascal@115 243 <tr>
pascal@115 244 <td><input type='checkbox' name='user' value='$login' />
pascal@115 245 <img src='$IMAGES/user.png' />$colorlogin</td>
pascal@115 246 <td>$uid:$gid</td>
pascal@115 247 <td>$name</td>
pascal@115 248 <td>$home</td>
pascal@115 249 <td>$shell</td>
pascal@115 250 </tr>
pascal@115 251 EOT
pankso@110 252 fi
pankso@110 253 done
al@303 254 cat << EOT
al@303 255 </tbody>
al@303 256 </table>
al@303 257 EOT
pankso@110 258 cat << EOT
pankso@117 259 <p>
al@303 260 $(gettext 'Password:')
pascal@121 261 <input type="password" name="password" />
al@303 262 <input type="submit" name="do" value="$(gettext 'Change password')" />
pankso@117 263 </p>
pankso@42 264 </form>
pankso@42 265
al@312 266 <section>
al@303 267 <h4>$(gettext 'Add a new user')</h4>
al@303 268
pankso@42 269 <form method="get" action="$SCRIPT_NAME">
pankso@42 270 <input type="hidden" name="user" />
al@303 271 <table>
al@303 272 <tr><td>$(gettext 'User login:')</td>
al@303 273 <td><input type="text" name="adduser" size="30" /></td></tr>
al@303 274 <tr><td>$(gettext 'User password:')</td>
al@303 275 <td><input type="password" name="passwd" size="30" /></td></tr>
al@303 276 <tr><td colspan="2">
al@303 277 <input type="submit" value="$(gettext 'Create user')" /></td></tr>
al@303 278 </table>
pankso@42 279 </form>
al@312 280 </section>
pascal@147 281
al@312 282 <section>
al@303 283 <h4>$(gettext 'Current user sessions')</h4>
pascal@147 284
al@303 285 <pre>$(who)</pre>
al@312 286 </section>
al@303 287
al@312 288 <section>
al@303 289 <h4>$(gettext 'Last user sessions')</h4>
al@303 290
al@303 291 <pre>$(last)</pre>
al@312 292 </section>
pankso@42 293 EOT
pankso@110 294 ;;
al@313 295
al@313 296
al@313 297 *\ locale*)
al@313 298 #
al@313 299 # Choose locale
al@313 300 #
al@313 301 LOADING_MSG="$(gettext 'Please wait...')"
al@313 302 loading_msg
al@313 303 cur_loc=$(locale | grep LANG | cut -d= -f2)
al@318 304 cat << EOT
al@313 305 <h3 id="locale">$(gettext 'Choose locale')</h3>
al@313 306
al@313 307 <p>$(gettext 'Current locale settings:')</p>
al@313 308 <pre>$(locale)</pre>
al@313 309
al@313 310 <p>$(gettext 'Locales that are currently installed on the machine:')</p>
al@313 311 <pre>$(locale -a)</pre>
al@313 312
al@313 313 <p>$(gettext 'Available locales:')</p>
al@318 314 EOT
al@313 315
al@318 316 is_installed "glibc-locale"
al@318 317 [ $? = 1 ] &&
al@318 318 msg tip $(gettext \
paul@319 319 "Can't see your language?<br/>You can \
al@318 320 <a href='/pkgs.cgi?do=Install&glibc-locale'>install glibc-locale</a> \
paul@319 321 to see a larger list of available locales.")
al@318 322
al@318 323 cat << EOT
al@313 324 <form method="get" action="$SCRIPT_NAME">
al@313 325 <div class="outbox">
al@313 326 <table class="zebra fixed">
al@313 327 <thead>
al@313 328 <tr><td style="width:9em">$(gettext 'Code')</td>
al@313 329 <td style="width:10em">$(gettext 'Language')</td>
al@313 330 <td style="width:10em">$(gettext 'Territory')</td>
al@313 331 <td>$(gettext 'Description')</td>
al@313 332 </tr>
al@313 333 </thead>
al@313 334 </table>
al@313 335
al@313 336 <div style="max-height: 16em; overflow:auto">
al@313 337 <table class="zebra fixed">
al@313 338 <col style="width:9em">
al@313 339 <col style="width:10em">
al@313 340 <col style="width:10em">
al@313 341 <col>
al@313 342 <tbody style="max-height:10em; overflow:auto">
al@313 343 EOT
al@313 344 for locale in $(find /usr/share/i18n/locales -type f | sort)
al@313 345 do
al@313 346 locale_name=$(basename $locale)
al@313 347 locale_title=$(grep -m 1 -e '^ *title' $locale | cut -d'"' -f2)
al@313 348 if [ -n "$locale_title" ]; then
al@313 349 sel=""; [ "$locale_name" == "$cur_loc" ] && sel="checked"
al@313 350 cat << EOT
al@313 351 <tr><td><input type="radio" name="gen_locale" value="$locale_name" $sel />$locale_name</td>
al@313 352 <td>$(gettext -d iso_639 "$(grep -m 1 -e '^ *language' $locale | cut -d '"' -f2)")</td>
al@313 353 <td>$(gettext -d iso_3166 "$(grep -m 1 -e '^ *territory' $locale | cut -d '"' -f2)")</td>
al@313 354 <td>$locale_title</td>
al@313 355 </tr>
al@313 356 EOT
al@313 357 fi
al@313 358 done
al@313 359 cat << EOT
al@313 360 </tbody>
al@313 361 </table>
al@313 362 </div>
al@313 363 </div>
al@313 364 <p><input type="submit" value="$(gettext 'Activate')" /></p>
al@313 365 </form>
al@313 366 EOT
al@313 367 ;;
al@313 368
al@313 369
pankso@110 370 *)
pankso@110 371 #
pankso@110 372 # Defaut system settings page
pankso@110 373 #
pankso@110 374 cat << EOT
pankso@110 375 <div id="wrapper">
al@303 376 <h2>$(gettext 'System settings')</h2>
al@303 377 <p>$(gettext 'Manage system time, users or language settings')<p>
pankso@110 378 </div>
pankso@110 379 <div id="actions">
pankso@110 380 <a class="button" href="$SCRIPT_NAME?users">
pascal@336 381 <img src="$IMAGES/user.png" />$(gettext 'Manage users')</a>
pascal@336 382 <a class="button" href="$SCRIPT_NAME?groups">
pascal@336 383 <img src="$IMAGES/users.png" />$(gettext 'Manage groups')</a>
pankso@110 384 </div>
pankso@42 385
al@312 386 <section>
al@303 387 <h3>$(gettext 'System time')</h3>
al@303 388
pascal@338 389 <form method="get" action="$SCRIPT_NAME">
al@303 390 <table>
pascal@338 391 <tr><td>$(gettext 'Time zome:')</td><td>
pascal@338 392 <select name="tz">
pascal@338 393 $(cd /usr/share/zoneinfo ; find * -type f | while read tz; do
pascal@338 394 if [ "$(cat /etc/TZ)" == "$tz" ]; then
pascal@338 395 echo "<option selected>$tz</option>"
pascal@338 396 else
pascal@338 397 echo "<option>$tz</option>"
pascal@338 398 fi
pascal@338 399 done)
pascal@338 400 </select>
pascal@338 401 <input type="submit" name="settz" value="$(gettext 'Change')" /></td></tr>
al@303 402 <tr><td>$(gettext 'System time:')</td><td>$(date)</td></tr>
al@303 403 <tr><td>$(gettext 'Hardware clock:')</td><td>$(hwclock -r)</tr>
al@303 404 </table>
pascal@338 405 </form>
pascal@337 406 <form method="get" action="$SCRIPT_NAME">
pascal@338 407 <input type="submit" name="date" value="$(gettext 'Set date')" />
pascal@337 408 <select name="day">
pascal@337 409 $(for i in $(seq 1 31); do echo "<option>$i</option>"; done)
pascal@337 410 </select>
pascal@337 411 <select name="month">
pascal@337 412 $(for i in 01 02 03 04 05 06 07 08 09 10 11 12; do
pascal@337 413 date -d ${i}010101 '+%m %B' | \
pascal@337 414 sed 's|\(.*\) \(.*\)|<option value="\1">\2</option>|'
pascal@337 415 done)
pascal@337 416 </select>
pascal@337 417 <select name="year">
pascal@337 418 $(for i in $(seq 2010 2030); do echo "<option>$i</option>"; done)
pascal@337 419 </select>
pascal@337 420 - <select name="hour">
pascal@337 421 $(for i in $(seq 0 23); do printf "<option>%02d</option>" $i; done)
pascal@337 422 </select>
pascal@337 423 : <select name="min">
pascal@337 424 $(for i in $(seq 0 59); do printf "<option>%02d</option>" $i; done)
pascal@337 425 </select>
pascal@337 426 : <select name="sec">
pascal@337 427 $(for i in $(seq 0 59); do printf "<option>%02d</option>" $i; done)
pascal@337 428 </select>
pascal@337 429 </form>
al@303 430 <a class="button" href="$SCRIPT_NAME?rdate">$(gettext 'Sync online')</a>
al@303 431 <a class="button" href="$SCRIPT_NAME?hwclock">$(gettext 'Set hardware clock')</a>
al@312 432 </section>
pankso@110 433 EOT
pankso@110 434 #
pankso@110 435 # Locale settings
pankso@110 436 #
pankso@110 437 cat << EOT
al@312 438 <section>
al@303 439 <h3 id="locale">$(gettext 'System language')</h3>
pankso@42 440 <p>
pankso@42 441 EOT
pankso@42 442 # Check if a new locale was requested
pankso@42 443 if [ -n "$new_locale" ]; then
pankso@42 444 rm -rf /usr/lib/locale/$new_locale
pankso@42 445 localedef -i $new_locale -c -f UTF-8 \
pankso@42 446 /usr/lib/locale/$new_locale
pankso@42 447 # System configuration
pankso@42 448 echo "LANG=$new_locale" > /etc/locale.conf
pankso@42 449 echo "LC_ALL=$new_locale" >> /etc/locale.conf
al@318 450 msg warn "$(eval_gettext \
al@318 451 'You must logout and login again to your current session to use $new_locale locale.')"
pankso@42 452 else
al@313 453 gettext 'Current system locale:'; echo -n " <strong>"
al@313 454 locale | grep LANG | cut -d= -f2
pankso@42 455 fi
pankso@42 456 cat << EOT
al@313 457 </strong> <a class="button" href="$SCRIPT_NAME?locale">$(gettext 'Change')</a></p>
al@312 458 </section>
pankso@110 459
al@312 460 <section>
al@303 461 <h3 id="keymap">$(gettext 'Console keymap')</h3>
pascal@141 462 <p>
pascal@141 463 EOT
pascal@141 464 # Check if a new keymap was requested
pascal@141 465 if [ -n "$new_keymap" ]; then
pascal@141 466 echo "$new_keymap" > /etc/keymap.conf
pascal@141 467 if [ -x /bin/loadkeys ]; then
pascal@141 468 loadkeys $new_keymap
pascal@141 469 else
pascal@141 470 loadkmap < /usr/share/kmap/$new_keymap.kmap
pascal@141 471 fi
pascal@141 472 fi
pascal@142 473 keymap=$(cat /etc/keymap.conf)
al@303 474 eval_gettext 'Current console keymap: $keymap'
pascal@142 475 echo "</p>"
pascal@142 476 if [ -n "$keymap" ]; then
pascal@142 477 case "$keymap" in
pascal@142 478 fr_CH*)
pascal@142 479 keymap="ch" ;;
pascal@142 480 ru)
pascal@142 481 keymap="us,ru(winkeys)" ;;
pascal@142 482 slovene)
pascal@142 483 keymap=si ;;
pascal@142 484 *)
pascal@142 485 keymap=${keymap%-lat*}
pascal@142 486 keymap=${keymap%-abnt2} ;;
pascal@142 487 esac
pascal@142 488 keyboard_config=/etc/X11/xorg.conf.d/40-Keyboard.conf
pascal@142 489 cat << EOT
pascal@142 490 <form method="get" action="$SCRIPT_NAME">
al@303 491 $(gettext 'Suggested keymap for Xorg:')
pascal@142 492 <input type="submit" name "apply_xorg_kbd" value="$keymap" />
pascal@142 493 <a class="button" href="index.cgi?file=$keyboard_config">
al@303 494 <img src="$IMAGES/edit.png" />$(gettext 'Edit')</a>
pascal@142 495 </form>
pascal@142 496 EOT
pascal@142 497 fi
pascal@141 498 cat << EOT
pascal@141 499 <form method="get" action="$SCRIPT_NAME">
al@303 500 $(gettext 'Available keymaps:')
pascal@141 501 <select name="gen_keymap">
pascal@141 502 $(list_keymaps)
pascal@141 503 </select>
al@303 504 <input type="submit" value="$(gettext 'Activate')" />
pascal@141 505 </form>
al@312 506 </section>
pascal@141 507
al@312 508 <section>
al@303 509 <h2>$(gettext 'Panel configuration')</h2>
al@303 510
pankso@110 511 <form method="get" action="$SCRIPT_NAME">
pankso@110 512 <p>
al@303 513 $(gettext 'Style:')
pankso@110 514 <select name="style">
pankso@110 515 $(list_styles)
pankso@110 516 </select>
al@303 517 <input type="submit" value="$(gettext 'Activate')" />
pankso@110 518 </p>
pankso@110 519 </form>
pankso@110 520 <form method="get" action="$SCRIPT_NAME">
pankso@110 521 <p>
al@303 522 $(gettext 'Panel password:')
pankso@110 523 <input type="password" name="panel_pass"/>
al@303 524 <input type="submit" value="$(gettext 'Change')" />
pankso@110 525 </p>
pankso@110 526 </form>
pankso@110 527 <p>
al@303 528 $(gettext 'Configuration files:')
pankso@110 529 <a class="button" href="index.cgi?file=$CONFIG">
al@303 530 <img src="$IMAGES/edit.png" />$(gettext 'Panel')</a>
pankso@110 531 <a class="button" href="index.cgi?file=$HTTPD_CONF">
al@303 532 <img src="$IMAGES/edit.png" />$(gettext 'Server')</a>
pankso@110 533 </p>
pankso@110 534 <p>
al@303 535 $(gettext 'TazPanel provides a debuging mode and page:')
al@303 536 <a href="/index.cgi?debug">debug</a>
pankso@110 537 </p>
al@312 538 </section>
pankso@42 539 EOT
pankso@110 540 ;;
pankso@110 541 esac
pankso@42 542
pankso@42 543 xhtml_footer
pankso@42 544 exit 0