tazpanel diff settings.cgi @ rev 419

Bunch of changes. Development in progress, please note it have few known bugs.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Tue Mar 24 03:39:08 2015 +0200 (2015-03-24)
parents 106b85c1951c
children aeaf1b718445
line diff
     1.1 --- a/settings.cgi	Sat Jan 03 17:11:14 2015 +0200
     1.2 +++ b/settings.cgi	Tue Mar 24 03:39:08 2015 +0200
     1.3 @@ -4,17 +4,21 @@
     1.4  # don't have multiple pages here there is only one case used to get command
     1.5  # values and the full content is followed directly.
     1.6  #
     1.7 -# Copyright (C) 2011-2014 SliTaz GNU/Linux - BSD License
     1.8 +# Copyright (C) 2011-2015 SliTaz GNU/Linux - BSD License
     1.9  #
    1.10  
    1.11 +
    1.12  # Common functions from libtazpanel
    1.13 +
    1.14  . lib/libtazpanel
    1.15  get_config
    1.16  header
    1.17  
    1.18  TITLE=$(gettext 'TazPanel - Settings')
    1.19  
    1.20 +
    1.21  # Get system database. LDAP compatible.
    1.22 +
    1.23  getdb()
    1.24  {
    1.25  	getent $1 2>/dev/null || cat /etc/$1
    1.26 @@ -27,63 +31,209 @@
    1.27  	done
    1.28  }
    1.29  
    1.30 +
    1.31 +#############################
    1.32 +# Get info from locale file #
    1.33 +#############################
    1.34 +
    1.35 +get_locale_info()
    1.36 +{
    1.37 +	# Commands like `LC_ALL=fr_FR locale -k LC_MEASUREMENT` will do the job
    1.38 +	#   only when your locale is generated and exists in the /usr/lib/locale.
    1.39 +	# Here we manually parse locale definition files from /usr/share/i18n/locales/.
    1.40 +	# Strange, bloated and not script-friendly format :(
    1.41 +
    1.42 +	[ ! -e /usr/share/i18n/locales/$1 ] && return
    1.43 +
    1.44 +	# Prepare file
    1.45 +	if [ ! -e /tmp/tazpanel-$1 ]; then
    1.46 +		sed 's|^[ \t]*||;/^%/d;/^comment_char/d;/^escape_char/d' /usr/share/i18n/locales/$1 | tr '\n' '&' | sed 's|/&||g' | tr '&' '\n' | sed 's|<U\([0-9a-fA-F]*\)>|\&#x\1;|g' | sed 's|&#x00|\&#x|g' > /tmp/tazpanel-$1
    1.47 +	fi
    1.48 +
    1.49 +	local ANS=$(grep -e "^$2[ 	]" /tmp/tazpanel-$1 | sed 's|^[^ \t][^ \t]* *||')
    1.50 +	if [ -z "$ANS" ]; then
    1.51 +		# Not found, then section is copied from other locale definition file...
    1.52 +		case $2 in
    1.53 +			measurement)
    1.54 +				section='LC_MEASUREMENT';;
    1.55 +			width|height)
    1.56 +				section='LC_PAPER';;
    1.57 +			currency_symbol|int_curr_symbol)
    1.58 +				section='LC_MONETARY';;
    1.59 +			day|abday|mon|abmon|d_t_fmt|d_fmt|t_fmt|am_pm|t_fmt_ampm|date_fmt)
    1.60 +				section='LC_TIME';;
    1.61 +		esac
    1.62 +		# Recursive call
    1.63 +		get_locale_info $(sed -n '/^'$section'/,/^END '$section'/p' /tmp/tazpanel-$1 | grep 'copy' | cut -d'"' -f2) $2
    1.64 +	else
    1.65 +		case $2 in
    1.66 +			day|abday|mon|abmon|am_pm)		# semicolon-separated list in double quotes
    1.67 +				echo "$ANS";;
    1.68 +			*)		# single value in double qoutes
    1.69 +				echo "$ANS" | cut -d'"' -f2;;
    1.70 +		esac
    1.71 +	fi
    1.72 +}
    1.73 +
    1.74 +
    1.75 +# Get info from locale file about measurement system
    1.76 +
    1.77 +get_locale_info_measurement()
    1.78 +{
    1.79 +	# faster to use pre-processed values
    1.80 +	case $1 in
    1.81 +		en_AG|en_US|es_PR|es_US|nl_AW|yi_US) gettext 'US' ;;
    1.82 +		POSIX) ;;
    1.83 +		*) gettext 'metric' ;;
    1.84 +	esac
    1.85 +}
    1.86 +
    1.87 +
    1.88 +# Get info from locale file about paper size
    1.89 +
    1.90 +get_locale_info_paper()
    1.91 +{
    1.92 +	# faster to use pre-processed values
    1.93 +	case $1 in
    1.94 +		en_AG|en_US|es_PR|es_US|nl_AW|yi_US) echo '8½×11 (US Letter)';;
    1.95 +		en_CA|en_PH|es_CL|es_CO|es_CR|es_GT|es_MX|es_NI|es_PA|es_SV|es_VE|fil_PH|fr_CA|ik_CA|iu_CA|shs_CA|tl_PH) echo '216×279 (US Letter)';;
    1.96 +		POSIX) ;;
    1.97 +		*) echo '210×297 (A4)';;
    1.98 +	esac
    1.99 +}
   1.100 +
   1.101 +
   1.102 +# Get info from locale file about date and time format
   1.103 +
   1.104 +get_locale_info_date_time()
   1.105 +{
   1.106 +	case $2 in
   1.107 +		c) get_locale_info $1 d_t_fmt ;;
   1.108 +		x) get_locale_info $1 d_fmt ;;
   1.109 +		X) get_locale_info $1 t_fmt ;;
   1.110 +		r) get_locale_info $1 t_fmt_ampm ;;
   1.111 +		*) get_locale_info $1 date_fmt ;;
   1.112 +	esac | sed 's|&#x20;| |g; s|&#x25;|%|g; s|&#x2C;|,|g; s|&#x2D;|-|g; s|&#x2E;|.|g; s|&#x2F;|/|g; s|&#x3A;|:|g; s|&#x41;|A|g; s|&#x42;|B|g; s|&#x43;|C|g; s|&#x46;|F|g; s|&#x48;|H|g; s|&#x49;|I|g; s|&#x4D;|M|g; s|&#x4F;|O|g; s|&#x52;|R|g; s|&#x53;|S|g; s|&#x54;|T|g; s|&#x58;|X|g; s|&#x59;|Y|g; s|&#x5A;|Z|g; s|&#x61;|a|g; s|&#x62;|b|g; s|&#x65;|e|g; s|&#x64;|d|g; s|&#x6B;|k|g; s|&#x6D;|m|g; s|&#x6E;|n|g; s|&#x6F;|o|g; s|&#x70;|p|g; s|&#x72;|r|g; s|&#x74;|t|g; s|&#x78;|x|g; s|&#x79;|y|g; s|&#x7A;|z|g;'
   1.113 +
   1.114 +}
   1.115 +
   1.116 +
   1.117 +parse_date()
   1.118 +{
   1.119 +	local weekday month day abday mon abmon rtime d_fmt t_fmt am_pm
   1.120 +	weekday=$(( $(date +%w) + 1 ))											# 1=Sunday ...
   1.121 +	  month=$(date +%-m)													# 1=January ...
   1.122 +	  day=$(get_locale_info $1   day | cut -d'"' -f$(( 2 * $weekday )) | sed 's|&|\\\&|g')	# translated day of week
   1.123 +	abday=$(get_locale_info $1 abday | cut -d'"' -f$(( 2 * $weekday )) | sed 's|&|\\\&|g')	#   same, abbreviated
   1.124 +	  mon=$(get_locale_info $1   mon | cut -d'"' -f$(( 2 * $month   )) | sed 's|&|\\\&|g')	# translated month
   1.125 +	abmon=$(get_locale_info $1 abmon | cut -d'"' -f$(( 2 * $month   )) | sed 's|&|\\\&|g')	#   same, abbreviated
   1.126 +	# next %-codes expanded into other %-codes
   1.127 +	rtime=$(get_locale_info_date_time $1 r | sed 's|&|\\\&|g')									# %r: 12-hour time
   1.128 +	d_fmt=$(get_locale_info_date_time $1 x | sed 's|&|\\\&|g')									# %x: date
   1.129 +	t_fmt=$(get_locale_info_date_time $1 X | sed 's|&|\\\&|g')									# %X: time
   1.130 +
   1.131 +	case $(LC_ALL=POSIX date +%P) in										# translated am/pm
   1.132 +		am) am_pm=$(get_locale_info $1 am_pm | cut -d'"' -f2 | sed 's|&|\\\&|g');;
   1.133 +		pm) am_pm=$(get_locale_info $1 am_pm | cut -d'"' -f4 | sed 's|&|\\\&|g');;
   1.134 +	esac
   1.135 +
   1.136 +	# r x X | OC | Y y Oy Ey | m -m Om | d -d Od | e -e Oe | F | H OH k | I OI l | M OM | S OS | R T | Z z | t | P p Op A a B b
   1.137 +	# Note: %P=am/pm; %p=AM/PM. But here they the same because it is not a simple job to convert letters.
   1.138 +	echo "$2" | sed "s|%r|$rtime|; s|%x|$d_fmt|; s|%X|$t_fmt|; \
   1.139 +		s|%OC|S(date +%OC)|; \
   1.140 +		s|%Y|$(date +%Y)|; s|%y|$(date  +%y )|; s|%Oy|$(date +%Oy)|; s|%Ey|$(date +%Ey)|; \
   1.141 +		s|%m|$(date +%m)|; s|%-m|$(date +%-m)|; s|%Om|$(date +%Om)|; \
   1.142 +		s|%d|$(date +%d)|; s|%-d|$(date +%-d)|; s|%Od|$(date +%Od)|; \
   1.143 +		s|%e|$(date +%e)|; s|%-e|$(date +%-e)|; s|%Oe|$(date +%Oe)|; \
   1.144 +		s|%F|$(date +%F)|; \
   1.145 +		s|%H|$(date +%H)|; s|%OH|$(date +%OH)|; s|%k|$(date +%k)|; \
   1.146 +		s|%I|$(date +%I)|; s|%OI|$(date +%OI)|; s|%l|$(date +%l)|; \
   1.147 +		s|%M|$(date +%M)|; s|%OM|$(date +%OM)|; \
   1.148 +		s|%S|$(date +%S)|; s|%OS|$(date +%OS)|; \
   1.149 +		s|%R|$(date +%R)|; s|%T|$(date  +%T )|; \
   1.150 +		s|%Z|$(date +%Z)|; s|%z|$(date  +%z )|; \
   1.151 +		s|%t|\t|; \
   1.152 +		s|%P|$am_pm|; s|%p|$am_pm|; s|%Op|$am_pm|; s|%A|$day|; s|%a|$abday|; s|%B|$mon|; s|%b|$abmon|;"
   1.153 +
   1.154 +}
   1.155 +
   1.156 +list_of()
   1.157 +{
   1.158 +	cd /usr/share/i18n/locales
   1.159 +	#mon=$(date +%-m); monn=$(( $mon * 2 ))
   1.160 +	#echo "mon=\"$mon\" monn=\"$monn\""
   1.161 +
   1.162 +	echo '<pre>'
   1.163 +for LOC in be_BY ca_IT el_CY fr_CH ru_RU ru_UA; do
   1.164 +	case $LOC in
   1.165 +		iso*|translit*) ;;
   1.166 +		*)
   1.167 +			#echo -e "$LOC:\t$(parse_date $LOC $(get_locale_info_date_time $LOC c | sed 's|&|\\\&|g'))";;
   1.168 +			FMT="$(get_locale_info_date_time $LOC c)"
   1.169 +			echo -e "$LOC:\t$FMT"
   1.170 +			parse_date $LOC "$FMT"
   1.171 +			echo;;
   1.172 +	esac
   1.173 +done
   1.174 +	echo '</pre>'
   1.175 +}
   1.176 +
   1.177 +
   1.178 +
   1.179 +
   1.180 +
   1.181  #
   1.182  # Commands executed before page loading.
   1.183  #
   1.184  
   1.185  case " $(GET) " in
   1.186  	*\ do\ *)
   1.187 -		# Assume no array support in httpd_helper.sh ;^)
   1.188 -		users=""
   1.189 -		groups=""
   1.190 -		IFS="&"
   1.191 -		for i in $QUERY_STRING ; do
   1.192 -			case "$i" in
   1.193 -			user=*)	 users="$users ${i#user=}" ;;
   1.194 -			group=*) groups="$groups ${i#group=}" ;;
   1.195 -			esac
   1.196 -		done
   1.197 -		unset IFS
   1.198 -		for cmd in "Delete group" ; do
   1.199 -			[ "$(GET do)" == "$(gettext "$cmd")" ] || continue
   1.200 -			for group in $groups ; do
   1.201 -				case "$cmd" in
   1.202 -				Delete*)	delgroup $group ;;
   1.203 -				esac
   1.204 -			done
   1.205 -		done
   1.206 -		for cmd in "Delete user" "Lock user" "Unlock user" \
   1.207 -			   "Change password" ; do
   1.208 -			[ "$(GET do)" == "$(gettext "$cmd")" ] || continue			# BUGGY
   1.209 -			for user in $users ; do
   1.210 -				case "$cmd" in
   1.211 -				Delete*)	deluser $user ;;
   1.212 -				Lock*)		passwd -l $user | log ;;
   1.213 -				Unlock*)	passwd -u $user | log ;;
   1.214 -				Change*)	echo "$user:$(GET password)" | chpasswd -m | log ;;
   1.215 -				esac
   1.216 -			done
   1.217 -		done ;;
   1.218 -	*\ addmember\ *)
   1.219 -		addgroup $(GET member) $(GET group) ;;
   1.220 -	*\ delmember\ *)
   1.221 -		delgroup $(GET member) $(GET group) ;;
   1.222 -	*\ addgroup\ *)
   1.223 -		addgroup $(GET addgroup) ;;
   1.224 -	*\ adduser\ *)
   1.225 -		#
   1.226 -		# Manage system user accounts
   1.227 -		#
   1.228 -		user=$(GET adduser)
   1.229 -		passwd=$(GET passwd)
   1.230 -		if [ -n "$user" ]; then
   1.231 -			adduser -D -s /bin/sh -g "SliTaz User" -G users -h /home/$user $user
   1.232 -			echo "$user:$passwd" | chpasswd -m | log
   1.233 -			for g in audio cdrom floppy video tty
   1.234 -			do
   1.235 -				addgroup $user $g
   1.236 -			done
   1.237 -		fi ;;
   1.238 +		 users=$(echo $QUERY_STRING | awk 'BEGIN{RS="&";FS="="}{if($1=="user") print $2}')
   1.239 +		groups=$(echo $QUERY_STRING | awk 'BEGIN{RS="&";FS="="}{if($1=="group")print $2}')
   1.240 +
   1.241 +		case $(GET do) in
   1.242 +
   1.243 +			# Groups page
   1.244 +			delgroups)
   1.245 +				for i in $groups; do delgroup $i; done ;;
   1.246 +			addgroup)
   1.247 +				addgroup $groups ;;
   1.248 +			addmember)
   1.249 +				addgroup $(GET member) $groups ;;
   1.250 +			delmember)
   1.251 +				delgroup $(GET member) $groups ;;
   1.252 +
   1.253 +			# Users page
   1.254 +			delusers)
   1.255 +				for i in $users; do deluser $i; done ;;
   1.256 +			lockusers)
   1.257 +				for i in $users; do passwd -l $i | log; done ;;
   1.258 +			unlockusers)
   1.259 +				for i in $users; do passwd -u $i | log; done ;;
   1.260 +			chpasswd)
   1.261 +				echo "$users:$(GET password)" | chpasswd -m | log ;;
   1.262 +			adduser)
   1.263 +				if [ -n "$users" ]; then
   1.264 +					name=$(GET name); name=${name:-SliTaz User}
   1.265 +					adduser -D -s /bin/sh -g "$name" -G users -h /home/$users $users
   1.266 +					echo "$user:$(GET passwd)" | chpasswd -m | log
   1.267 +					for i in audio cdrom floppy video tty; do addgroup $users $i; done
   1.268 +				fi ;;
   1.269 +
   1.270 +			# System time
   1.271 +			settz)
   1.272 +				GET tz > /etc/TZ;;
   1.273 +			date) # normalize to two digits
   1.274 +				date $(printf '%02d%02d%02d%02d%d.%02d' "$(GET month)" "$(GET day)" "$(GET hour)" "$(GET min)" "$(GET year)" "$(GET sec)") >/dev/null;;
   1.275 +			rdate)
   1.276 +				rdate -s tick.greyware.com ;;
   1.277 +			hwclock)
   1.278 +				hwclock -w -u ;;
   1.279 +
   1.280 +		esac
   1.281 +		;;
   1.282 +
   1.283 +
   1.284  	*\ gen_locale\ *)
   1.285  		new_locale=$(GET gen_locale) ;;
   1.286  	*\ gen_keymap\ *)
   1.287 @@ -91,24 +241,21 @@
   1.288  	*\ apply_xorg_kbd\ *)
   1.289  		sed -i "s/XkbLayout.*/XkbLayout \" \"$(GET apply_xorg_kbd)\"/" \
   1.290  			/etc/X11/xorg.conf.d/40-Keyboard.conf ;;
   1.291 -	*\ date\ *)
   1.292 -		date $(GET month)$(GET day)$(GET hour)$(GET min)$(GET year).$(GET sec) ;;
   1.293 -	*\ rdate\ *)
   1.294 -		rdate -s tick.greyware.com ;;
   1.295 -	*\ hwclock\ *)
   1.296 -		hwclock -w -u ;;
   1.297  	*\ panel_pass*)
   1.298  		sed -i s@/:root:.*@/:root:$(GET panel_pass)@ $HTTPD_CONF ;;
   1.299  	*\ style*)
   1.300  		sed -i s/'^STYLE.*'/"STYLE=\"$(GET style)\""/ $CONFIG
   1.301  		. $CONFIG ;;
   1.302 -	*\ settz\ *)
   1.303 -		GET tz > /etc/TZ ;;
   1.304  esac
   1.305  
   1.306 +
   1.307 +
   1.308 +
   1.309 +
   1.310  #
   1.311  # Default xHTML content
   1.312  #
   1.313 +
   1.314  xhtml_header
   1.315  
   1.316  case " $(GET) " in
   1.317 @@ -117,116 +264,123 @@
   1.318  		# Groups management
   1.319  		#
   1.320  		cat <<EOT
   1.321 -<h3 id="groups">$(gettext 'Manage groups')</h3>
   1.322 +<h2 id="groups">$(gettext 'Manage groups')</h2>
   1.323  
   1.324 -<form method="get" action="">
   1.325 -	<input type="hidden" name="groups" />
   1.326 -<div id="actions">
   1.327 -	<div class="float-left">
   1.328 -		$(gettext 'Selection:')
   1.329 -		<input type="submit" name="do" value="$(gettext 'Delete group')" />
   1.330 -	</div>
   1.331 -</div>
   1.332  
   1.333 -<table class="zebra outbox">
   1.334 -<thead>
   1.335 -<tr class="thead">
   1.336 -	<td>$(gettext 'Group')</td>
   1.337 -	<td>$(gettext 'Group ID')</td>
   1.338 -	<td>$(gettext 'Members')</td>
   1.339 -</tr>
   1.340 -</thead>
   1.341 -</tbody>
   1.342 +<section>
   1.343 +	<form class="wide">
   1.344 +		<header>
   1.345 +			<input type="hidden" name="groups"/>
   1.346 +			<!-- $(gettext 'Selection:') -->
   1.347 +			<button name="do" value="delgroups" data-icon="delete">$(gettext 'Delete group')</button>
   1.348 +		</header>
   1.349 +
   1.350 +		<div class="scroll">
   1.351 +			<table class="wide zebra scroll">
   1.352 +				<thead>
   1.353 +					<tr class="thead">
   1.354 +						<td>$(gettext 'Group')</td>
   1.355 +						<td>$(gettext 'Group ID')</td>
   1.356 +						<td>$(gettext 'Members')</td>
   1.357 +					</tr>
   1.358 +				</thead>
   1.359 +				<tbody>
   1.360  EOT
   1.361 -		for group in `getdb group | cut -d ":" -f 1`
   1.362 -		do
   1.363 +		for group in $(getdb group | cut -d ":" -f 1); do
   1.364  			IFS=':'
   1.365  			set -- $(getdb group | grep "^$group:")
   1.366  			unset IFS
   1.367  			gid=$3
   1.368  			members=$4
   1.369  			cat <<EOT
   1.370 -<tr>
   1.371 -	<td><input type='checkbox' name='group' value='$group' />
   1.372 -		<img src='$IMAGES/users.png' />$group</td>
   1.373 -	<td>$gid</td>
   1.374 -	<td>${members//,/, }</td>
   1.375 -</tr>
   1.376 +					<tr>
   1.377 +						<td><input type="checkbox" name="group" value="$group" id="$group"/>
   1.378 +							<label for="$group" data-icon="group">$group</label></td>
   1.379 +						<td>$gid</td>
   1.380 +						<td>${members//,/, }</td>
   1.381 +					</tr>
   1.382  EOT
   1.383  		done
   1.384 -		cat << EOT
   1.385 -</tbody>
   1.386 -</table>
   1.387 -</form>
   1.388 +		cat <<EOT
   1.389 +				</tbody>
   1.390 +			</table>
   1.391 +		</div>
   1.392 +	</form>
   1.393 +</section>
   1.394 +
   1.395  
   1.396  <section>
   1.397 -<h4>$(gettext 'Add a new group')</h4>
   1.398 -
   1.399 -<form method="get" action="">
   1.400 -	<input type="hidden" name="groups" />
   1.401 -	<table>
   1.402 -		<tr><td>$(gettext 'Group name:')</td>
   1.403 -			<td><input type="text" name="addgroup" size="30" /></td>
   1.404 -		<td>
   1.405 -			<input type="submit" value="$(gettext 'Create group')" /></td></tr>
   1.406 -	</table>
   1.407 -</form>
   1.408 +	<header>$(gettext 'Add a new group')</header>
   1.409 +	<form>
   1.410 +		<input type="hidden" name="groups"/>
   1.411 +		<table>
   1.412 +			<tr><td>$(gettext 'Group name:')</td>
   1.413 +				<td><input type="text" name="group"/></td>
   1.414 +			</tr>
   1.415 +			<tr><td colspan="2">
   1.416 +				<button type="submit" name="do" value="addgroup" data-icon="add">$(gettext 'Create group')</button>
   1.417 +			</td></tr>
   1.418 +		</table>
   1.419 +	</form>
   1.420  </section>
   1.421  
   1.422 +
   1.423  <section>
   1.424 -<h4>$(gettext 'Manage group membership')</h4>
   1.425 -
   1.426 -<form method="get" action="">
   1.427 -	<input type="hidden" name="groups" />
   1.428 -	<table>
   1.429 -		<tr><td>$(gettext 'Group name:')</td>
   1.430 -		    <td><select class="button" name="group">
   1.431 -		    	$(listdb group)
   1.432 -		    </select></td>
   1.433 -		<td>$(gettext 'User name:')</td>
   1.434 -		    <td><select class="button" name="member">
   1.435 -		    	$(listdb passwd)
   1.436 -		    </select></td></tr>
   1.437 -		<tr><td colspan="4"><input type="submit" name="addmember" value="$(gettext 'Add user')" />
   1.438 -			<input type="submit" name="delmember" value="$(gettext 'Remove user')" /></td></tr>
   1.439 -	</table>
   1.440 -</form>
   1.441 +	<header>$(gettext 'Manage group membership')</header>
   1.442 +	<form>
   1.443 +		<input type="hidden" name="groups"/>
   1.444 +		<table>
   1.445 +			<tr>
   1.446 +				<td>$(gettext 'Group name:')</td>
   1.447 +				<td><select name="group">$(listdb group)</select></td>
   1.448 +				<td>$(gettext 'User name:')</td>
   1.449 +				<td><select name="member">$(listdb passwd)</select></td>
   1.450 +			</tr>
   1.451 +			<tr>
   1.452 +				<td colspan="2">
   1.453 +					<button name="do" value="addmember" data-icon="add">$(gettext 'Add user')</button>
   1.454 +				</td>
   1.455 +				<td colspan="2">
   1.456 +					<button name="do" value="delmember" data-icon="delete">$(gettext 'Remove user')</button>
   1.457 +				</td>
   1.458 +			</tr>
   1.459 +		</table>
   1.460 +	</form>
   1.461  </section>
   1.462  
   1.463  EOT
   1.464  		;;
   1.465  
   1.466 +
   1.467  	*\ user*)
   1.468  		#
   1.469  		# Users management
   1.470  		#
   1.471  		cat <<EOT
   1.472 -<h3 id="users">$(gettext 'Manage users')</h3>
   1.473 +<h2 id="users">$(gettext 'Manage users')</h2>
   1.474  
   1.475 -<form method="get" action="">
   1.476 -<div id="actions">
   1.477 -	<div class="float-left">
   1.478 -		$(gettext 'Selection:')
   1.479 -		<input type="submit" name="do" value="$(gettext 'Delete user')" />
   1.480 -		<input type="submit" name="do" value="$(gettext 'Lock user')" />
   1.481 -		<input type="submit" name="do" value="$(gettext 'Unlock user')" />
   1.482 -	</div>
   1.483 -</div>
   1.484 +<section>
   1.485 +	<form class="wide">
   1.486 +		<header>
   1.487 +			<!--$(gettext 'Selection:')-->
   1.488 +			<button name="do" value="delusers"    data-icon="delete">$(gettext 'Delete user')</button>
   1.489 +			<button name="do" value="lockusers"   data-icon="lock"  >$(gettext 'Lock user'  )</button>
   1.490 +			<button name="do" value="unlockusers" data-icon="unlock">$(gettext 'Unlock user')</button>
   1.491 +		</header>
   1.492  
   1.493 -<table class="zebra outbox">
   1.494 -<thead>
   1.495 -<tr class="thead">
   1.496 -	<td>$(gettext 'Login')</td>
   1.497 -	<td>$(gettext 'User ID')</td>
   1.498 -	<td>$(gettext 'Name')</td>
   1.499 -	<td>$(gettext 'Home')</td>
   1.500 -	<td>$(gettext 'Shell')</td>
   1.501 -</tr>
   1.502 -</thead>
   1.503 -</tbody>
   1.504 +		<table class="wide zebra center">
   1.505 +			<thead>
   1.506 +				<tr>
   1.507 +					<td>$(gettext 'Login')</td>
   1.508 +					<td>$(gettext 'User ID')</td>
   1.509 +					<td>$(gettext 'Name')</td>
   1.510 +					<td>$(gettext 'Home')</td>
   1.511 +					<td>$(gettext 'Shell')</td>
   1.512 +				</tr>
   1.513 +			</thead>
   1.514 +			</tbody>
   1.515  EOT
   1.516 -		for login in `getdb passwd | cut -d ":" -f 1`
   1.517 -		do
   1.518 +		for login in $(getdb passwd | cut -d ":" -f 1); do
   1.519  			if [ -d /home/$login ]; then
   1.520  				colorlogin=$login
   1.521  				grep -qs "^$login:!" /etc/shadow &&
   1.522 @@ -234,61 +388,65 @@
   1.523  				IFS=':'
   1.524  				set -- $(getdb passwd | grep "^$login:")
   1.525  				unset IFS
   1.526 -				uid=$3
   1.527 -				gid=$4
   1.528 -				name="$(echo $5 | sed s/,.*//)"
   1.529 -				home="$6"
   1.530 -				shell=$7
   1.531  				cat <<EOT
   1.532  <tr>
   1.533 -	<td><input type='checkbox' name='user' value='$login' />
   1.534 -		<img src='$IMAGES/user.png' />$colorlogin</td>
   1.535 -	<td>$uid:$gid</td>
   1.536 -	<td>$name</td>
   1.537 -	<td>$home</td>
   1.538 -	<td>$shell</td>
   1.539 +	<td style="white-space: nowrap">
   1.540 +		<input type="checkbox" name="user" value="$login" id="$login"/>
   1.541 +		<label for="$login" data-icon="user">$colorlogin</label></td>
   1.542 +	<td>$3:$4</td>
   1.543 +	<td>$(echo $5 | sed s/,.*//)</td>
   1.544 +	<td>$6</td>
   1.545 +	<td>$7</td>
   1.546  </tr>
   1.547  EOT
   1.548  			fi
   1.549  		done
   1.550 -		cat << EOT
   1.551 -</tbody>
   1.552 -</table>
   1.553 +		cat <<EOT
   1.554 +			</tbody>
   1.555 +		</table>
   1.556  EOT
   1.557 -		cat << EOT
   1.558 -<p>
   1.559 -	$(gettext 'Password:')
   1.560 -	<input type="password" name="password" />
   1.561 -	<input type="submit" name="do" value="$(gettext 'Change password')" />
   1.562 -</p>
   1.563 -</form>
   1.564 +		cat <<EOT
   1.565 +		<footer>
   1.566 +			<div>
   1.567 +				$(gettext 'Password:')
   1.568 +				<input type="password" name="password"/>
   1.569 +				<button type="submit" name="do" value="chpasswd" data-icon="ok">$(gettext 'Change password')</button>
   1.570 +			</div>
   1.571 +		</footer>
   1.572 +	</form>
   1.573 +</section>
   1.574 +
   1.575  
   1.576  <section>
   1.577 -<h4>$(gettext 'Add a new user')</h4>
   1.578 +	<header>$(gettext 'Add a new user')</header>
   1.579  
   1.580 -<form method="get" action="">
   1.581 -	<input type="hidden" name="user" />
   1.582 -	<table>
   1.583 -		<tr><td>$(gettext 'User login:')</td>
   1.584 -			<td><input type="text" name="adduser" size="30" /></td></tr>
   1.585 -		<tr><td>$(gettext 'User password:')</td>
   1.586 -			<td><input type="password" name="passwd" size="30" /></td></tr>
   1.587 -		<tr><td colspan="2">
   1.588 -			<input type="submit" value="$(gettext 'Create user')" /></td></tr>
   1.589 -	</table>
   1.590 -</form>
   1.591 +	<form>
   1.592 +		<input type="hidden" name="users"/>
   1.593 +		<table class="summary">
   1.594 +			<tr><td>$(gettext 'User login:')</td>
   1.595 +				<td><input type="text" name="user" size="30" pattern="[a-z]*"/></td></tr>
   1.596 +			<tr><td>$(gettext 'User name:')</td>
   1.597 +				<td><input type="text" name="name" size="30"/></td></tr>
   1.598 +			<tr><td>$(gettext 'User password:')</td>
   1.599 +				<td><input type="password" name="passwd" size="30"/></td></tr>
   1.600 +		</table>
   1.601 +
   1.602 +		<footer>
   1.603 +			<button type="submit" name="do" value="adduser" data-icon="add">$(gettext 'Create user')</button>
   1.604 +		</footer>
   1.605 +	</form>
   1.606  </section>
   1.607  
   1.608 +
   1.609  <section>
   1.610 -<h4>$(gettext 'Current user sessions')</h4>
   1.611 -
   1.612 -<pre>$(who)</pre>
   1.613 +	<header>$(gettext 'Current user sessions')</header>
   1.614 +	<pre>$(who)</pre>
   1.615  </section>
   1.616  
   1.617 +
   1.618  <section>
   1.619 -<h4>$(gettext 'Last user sessions')</h4>
   1.620 -
   1.621 -<pre>$(last)</pre>
   1.622 +	<header>$(gettext 'Last user sessions')</header>
   1.623 +	<div class="scroll"><pre>$(last)</pre></div>
   1.624  </section>
   1.625  EOT
   1.626  		;;
   1.627 @@ -298,19 +456,25 @@
   1.628  		#
   1.629  		# Choose locale
   1.630  		#
   1.631 -		LOADING_MSG="$(gettext 'Please wait...')"
   1.632 -		loading_msg
   1.633 +		LOADING_MSG="$(gettext 'Please wait...')"; loading_msg
   1.634 +
   1.635  		cur_loc=$(locale | grep LANG | cut -d= -f2)
   1.636 -		cat << EOT
   1.637 -<h3 id="locale">$(gettext 'Choose locale')</h3>
   1.638 +		cat <<EOT
   1.639 +<h2 id="locale">$(gettext 'Choose locale')</h2>
   1.640  
   1.641 -<p>$(gettext 'Current locale settings:')</p>
   1.642 -<pre>$(locale)</pre>
   1.643 +<section>
   1.644 +	<header>$(gettext 'Current locale settings:')</header>
   1.645 +	<div>
   1.646 +		<pre>$(locale)</pre>
   1.647 +	</div>
   1.648 +</section>
   1.649  
   1.650 -<p>$(gettext 'Locales that are currently installed on the machine:')</p>
   1.651 -<pre>$(locale -a)</pre>
   1.652 -
   1.653 -<p>$(gettext 'Available locales:')</p>
   1.654 +<section>
   1.655 +	<header>$(gettext 'Locales that are currently installed on the machine:')</header>
   1.656 +	<div>
   1.657 +		<pre>$(locale -a)</pre>
   1.658 +	</div>
   1.659 +</section>
   1.660  EOT
   1.661  
   1.662  		is_installed "glibc-locale"
   1.663 @@ -320,49 +484,48 @@
   1.664  <a href='/pkgs.cgi?do=Install&amp;glibc-locale'>install glibc-locale</a> \
   1.665  to see a larger list of available locales.")
   1.666  
   1.667 -		cat << EOT
   1.668 -<form method="get" action="">
   1.669 -	<div class="outbox">
   1.670 -	<table class="zebra fixed">
   1.671 -	<thead>
   1.672 -		<tr><td style="width:9em">$(gettext 'Code')</td>
   1.673 -			<td style="width:10em">$(gettext 'Language')</td>
   1.674 -			<td style="width:10em">$(gettext 'Territory')</td>
   1.675 -			<td>$(gettext 'Description')</td>
   1.676 -		</tr>
   1.677 -	</thead>
   1.678 -	</table>
   1.679  
   1.680 -	<div style="max-height: 16em; overflow:auto">
   1.681 -	<table class="zebra fixed">
   1.682 -		<col style="width:9em">
   1.683 -		<col style="width:10em">
   1.684 -		<col style="width:10em">
   1.685 -		<col>
   1.686 -	<tbody style="max-height:10em; overflow:auto">
   1.687 +		cat <<EOT
   1.688 +<section>
   1.689 +	<header>$(gettext 'Available locales:')</header>
   1.690 +	<form class="wide">
   1.691 +		<table class="wide zebra">
   1.692 +			<thead>
   1.693 +				<tr><td>$(gettext 'Code')</td>
   1.694 +					<td>$(gettext 'Language')</td>
   1.695 +					<td>$(gettext 'Territory')</td>
   1.696 +					<td>$(gettext 'Description')</td>
   1.697 +				</tr>
   1.698 +			</thead>
   1.699 +			<tbody>
   1.700  EOT
   1.701 -	for locale in $(find /usr/share/i18n/locales -type f | sort)
   1.702 -	do
   1.703 +	for locale in $(find /usr/share/i18n/locales -type f | sort); do
   1.704  		locale_name=$(basename $locale)
   1.705  		locale_title=$(grep -m 1 -e '^	*title' $locale | cut -d'"' -f2)
   1.706  		if [ -n "$locale_title" ]; then
   1.707 -			sel=""; [ "$locale_name" == "$cur_loc" ] && sel="checked"
   1.708 -			cat << EOT
   1.709 -		<tr><td><input type="radio" name="gen_locale" value="$locale_name" $sel />$locale_name</td>
   1.710 -			<td>$(gettext -d iso_639 "$(grep -m 1 -e '^	*language' $locale | cut -d '"' -f2)")</td>
   1.711 -			<td>$(gettext -d iso_3166 "$(grep -m 1 -e '^	*territory' $locale | cut -d '"' -f2)")</td>
   1.712 -			<td>$locale_title</td>
   1.713 -		</tr>
   1.714 +			sel=''; [ "$locale_name" == "$cur_loc" ] && sel='checked="checked"'
   1.715 +			cat <<EOT
   1.716 +				<tr>
   1.717 +					<td>
   1.718 +						<input type="radio" name="gen_locale" value="$locale_name" $sel id="$locale_name"/>
   1.719 +						<label for="$locale_name">$locale_name</label>
   1.720 +					</td>
   1.721 +					<td>$(gettext -d iso_639  "$(grep -m 1 -e '^	*language'  $locale | cut -d '"' -f2)")</td>
   1.722 +					<td>$(gettext -d iso_3166 "$(grep -m 1 -e '^	*territory' $locale | cut -d '"' -f2)")</td>
   1.723 +					<td>$locale_title</td>
   1.724 +				</tr>
   1.725  EOT
   1.726  		fi
   1.727  	done
   1.728 -	cat << EOT
   1.729 -	</tbody>
   1.730 -	</table>
   1.731 -	</div>
   1.732 -	</div>
   1.733 -	<p><input type="submit" value="$(gettext 'Activate')" /></p>
   1.734 -</form>
   1.735 +	cat <<EOT
   1.736 +			</tbody>
   1.737 +		</table>
   1.738 +
   1.739 +		<footer>
   1.740 +			<button type="submit" data-icon="ok">$(gettext 'Activate')</button>
   1.741 +		</footer>
   1.742 +	</form>
   1.743 +</section>
   1.744  EOT
   1.745  		;;
   1.746  
   1.747 @@ -371,64 +534,72 @@
   1.748  		#
   1.749  		# Default system settings page
   1.750  		#
   1.751 -		cat << EOT
   1.752 -<div id="wrapper">
   1.753 -	<h2>$(gettext 'System settings')</h2>
   1.754 -	<p>$(gettext 'Manage system time, users or language settings')<p>
   1.755 -</div>
   1.756 -<div id="actions">
   1.757 -	<a class="button" href="?users">
   1.758 -		<img src="$IMAGES/user.png" />$(gettext 'Manage users')</a>
   1.759 -	<a class="button" href="?groups">
   1.760 -		<img src="$IMAGES/users.png" />$(gettext 'Manage groups')</a>
   1.761 -</div>
   1.762 +		list_of
   1.763 +		cat <<EOT
   1.764 +<h2>$(gettext 'System settings')</h2>
   1.765 +
   1.766 +<p>$(gettext 'Manage system time, users or language settings')<p>
   1.767 +
   1.768 +<form><!--
   1.769 +	--><button name="users"  data-icon="user" >$(gettext 'Manage users' )</button><!--
   1.770 +	--><button name="groups" data-icon="group">$(gettext 'Manage groups')</button>
   1.771 +</form>
   1.772  
   1.773  <section>
   1.774 -<h3>$(gettext 'System time')</h3>
   1.775 +	<header>$(gettext 'System time')</header>
   1.776 +	<div>
   1.777 +	<form class="wide">
   1.778 +		<fieldset><legend>$(gettext 'Time zone:')</legend>
   1.779 +			<select name="tz">
   1.780 +				$(cd /usr/share/zoneinfo; find * -type f ! -name '*.tab' | sort | \
   1.781 +				awk -vtz="$(cat /etc/TZ)" \
   1.782 +				'{printf("<option%s>%s</option>", ($1 == tz)?" selected":"", $1)}')
   1.783 +			</select>
   1.784 +			<button name="do" value="settz" data-icon="ok">$(gettext 'Change')</button>
   1.785 +		</fieldset>
   1.786 +		<fieldset><legend>$(gettext 'System time:')</legend>
   1.787 +			$(date | sed 's|[0-9][0-9]:[0-9:]*|<span id="time">&</span>|')
   1.788 +			<button name="do" value="rdate" data-icon="sync">$(gettext 'Sync online')</button>
   1.789 +		</fieldset>
   1.790 +		<fieldset><legend>$(gettext 'Hardware clock:')</legend>
   1.791 +			$(hwclock -ur | sed 's|0.000000 seconds||')
   1.792 +			<button name="do" value="hwclock" data-icon="clock">$(gettext 'Set hardware clock')</button>
   1.793 +		</fieldset>
   1.794 +		<fieldset><legend>$(gettext 'Set date')</legend>
   1.795 +			<input type="number" name="day" value="$(date +%d)" min="1" max="31" size="4" required/>
   1.796 +			<select name="month" value="$(date +%m)">
   1.797 +				$(for i in $(seq 12); do
   1.798 +					printf '<option value="%s">%s</option>' $(date -d $i.01-01:01 '+%m %B')
   1.799 +				done)
   1.800 +			</select>
   1.801 +			<input type="number" name="year" value="$(date +%Y)" min="2015" max="2030" size="6" required/>
   1.802 +		-	<input type="number" name="hour" value="$(date +%H)" min="0"    max="23"   size="4" required/><!--
   1.803 +		-->:<input type="number" name="min"  value="$(date +%M)" min="0"    max="59"   size="4" required/><!--
   1.804 +		-->:<input type="number" name="sec"  value="00"          min="0"    max="59"   size="4" required/>
   1.805 +			<button name="do" value="date" data-icon="ok">$(gettext 'Set date')</button>
   1.806 +		</fieldset>
   1.807 +	</form>
   1.808 +	</div>
   1.809  
   1.810 -<form method="get" action="">
   1.811 -<table>
   1.812 -	<tr><td>$(gettext 'Time zone:')</td><td>
   1.813 -		<select class="button" name="tz">
   1.814 -		$(cd  /usr/share/zoneinfo ; find * -type f | while read tz; do
   1.815 -			if [ "$(cat /etc/TZ)" == "$tz" ]; then
   1.816 -				echo "<option selected>$tz</option>"
   1.817 -			else
   1.818 -				echo "<option>$tz</option>"
   1.819 -			fi
   1.820 -		done)
   1.821 -		</select>
   1.822 -		<input type="submit" name="settz" value="$(gettext 'Change')" /></td></tr>
   1.823 -	<tr><td>$(gettext 'System time:')</td><td>$(date)</td></tr>
   1.824 -	<tr><td>$(gettext 'Hardware clock:')</td><td>$(hwclock -r)</tr>
   1.825 -</table>
   1.826 -</form>
   1.827 -
   1.828 -<form method="get" action="">
   1.829 -	<input type="submit" name="date" value="$(gettext 'Set date')" />
   1.830 -	<select class="button" name="day">$(printf '<option>%d</option>' $(seq 31))</select>
   1.831 -	<select class="button" name="month">
   1.832 -		$(for i in $(seq 12); do
   1.833 -			printf '<option value="%s">%s</option>' $(date -d $i.01-01:01 '+%m %B')
   1.834 -		done)
   1.835 -	</select>
   1.836 -	<select class="button" name="year">$(printf '<option>%d</option>' $(seq 2010 2030))</select>
   1.837 --	<select class="button" name="hour">$(printf '<option>%02d</option>' $(seq 0 23))</select>
   1.838 -:	<select class="button" name="min">$(printf '<option>%02d</option>' $(seq 0 59))</select>
   1.839 -:	<select class="button" name="sec">$(printf '<option>%02d</option>' $(seq 0 59))</select>
   1.840 -</form>
   1.841 -
   1.842 -<a class="button" href="?rdate">$(gettext 'Sync online')</a>
   1.843 -<a class="button" href="?hwclock">$(gettext 'Set hardware clock')</a>
   1.844 +<script type="text/javascript">
   1.845 +// Live time on page
   1.846 +Date.prototype.timeNow = function() {
   1.847 +	return ((this.getHours() < 10)?"0":"") + this.getHours() + ":" + ((this.getMinutes() < 10)?"0":"") + this.getMinutes() + ":" + ((this.getSeconds() < 10)?"0":"") + this.getSeconds();
   1.848 +}
   1.849 +setInterval(function(){document.getElementById('time').innerText = new Date().timeNow()}, 1000);
   1.850 +</script>
   1.851  </section>
   1.852  EOT
   1.853 +
   1.854 +
   1.855  		#
   1.856  		# Locale settings
   1.857  		#
   1.858 -		cat << EOT
   1.859 +		cat <<EOT
   1.860  <section>
   1.861 -<h3 id="locale">$(gettext 'System language')</h3>
   1.862 -<p>
   1.863 +	<header id="locale">$(gettext 'System language')</header>
   1.864 +	<div>
   1.865 +	<form>
   1.866  EOT
   1.867  		# Check if a new locale was requested
   1.868  		if [ -n "$new_locale" ]; then
   1.869 @@ -441,16 +612,21 @@
   1.870  			msg warn "$(eval_gettext \
   1.871  			'You must logout and login again to your current session to use $new_locale locale.')"
   1.872  		else
   1.873 -			gettext 'Current system locale:'; echo -n " <strong>"
   1.874 -			locale | grep LANG | cut -d= -f2
   1.875 +			cat <<EOT
   1.876 +		$(gettext 'Current system locale:')
   1.877 +		<strong>$(locale | grep LANG | cut -d= -f2)</strong>
   1.878 +		<button name="locale" data-icon="locale">$(gettext 'Change')</button>
   1.879 +EOT
   1.880  		fi
   1.881 -		cat << EOT
   1.882 -</strong> <a class="button" href="?locale">$(gettext 'Change')</a></p>
   1.883 +		cat <<EOT
   1.884 +	</div>
   1.885 +	</form>
   1.886  </section>
   1.887  
   1.888 +
   1.889  <section>
   1.890 -<h3 id="keymap">$(gettext 'Console keymap')</h3>
   1.891 -<p>
   1.892 +	<header id="keymap">$(gettext 'Keyboard layout')</header>
   1.893 +	<div>
   1.894  EOT
   1.895  		# Check if a new keymap was requested
   1.896  		if [ -n "$new_keymap" ]; then
   1.897 @@ -461,15 +637,15 @@
   1.898  				loadkmap < /usr/share/kmap/$new_keymap.kmap
   1.899  			fi
   1.900  		fi
   1.901 +
   1.902  		keymap=$(cat /etc/keymap.conf)
   1.903  		eval_gettext 'Current console keymap: $keymap'
   1.904 -		echo "</p>"
   1.905  		if [ -n "$keymap" ]; then
   1.906  			case "$keymap" in
   1.907  			fr_CH*)
   1.908  				keymap="ch" ;;
   1.909  			ru)
   1.910 -				keymap="us,ru(winkeys)" ;;
   1.911 +				keymap="us,ru" ;;
   1.912  			slovene)
   1.913  				keymap=si ;;
   1.914  			*)
   1.915 @@ -477,55 +653,52 @@
   1.916  				keymap=${keymap%-abnt2} ;;
   1.917  			esac
   1.918  			keyboard_config=/etc/X11/xorg.conf.d/40-Keyboard.conf
   1.919 -			cat << EOT
   1.920 -<form method="get" action="">
   1.921 -	$(gettext 'Suggested keymap for Xorg:')
   1.922 -	<input type="submit" name "apply_xorg_kbd" value="$keymap" />
   1.923 -	<a class="button" href="index.cgi?file=$keyboard_config">
   1.924 -		<img src="$IMAGES/edit.png" />$(gettext 'Edit')</a>
   1.925 -</form>
   1.926 +			cat <<EOT
   1.927 +		<form id="settings"></form>
   1.928 +		<form id="index" action="index.cgi"></form>
   1.929 +		<br/>
   1.930 +		$(gettext 'Suggested keymap for Xorg:') $keymap
   1.931 +		<button form="settings" name="apply_xorg_kbd" value="$keymap" data-icon="ok">$(gettext 'Activate')</button>
   1.932 +		<button form="index" name="file" value="$keyboard_config" data-icon="edit">$(gettext 'Edit')</button>
   1.933 +		<br/>
   1.934  EOT
   1.935  		fi
   1.936 -		cat << EOT
   1.937 -<form method="get" action="">
   1.938 -	$(gettext 'Available keymaps:')
   1.939 -	<select class="button" name="gen_keymap">
   1.940 -		$(list_keymaps)
   1.941 -	</select>
   1.942 -	<input type="submit" value="$(gettext 'Activate')" />
   1.943 -</form>
   1.944 +		cat <<EOT
   1.945 +		<form>
   1.946 +			$(gettext 'Available keymaps:')
   1.947 +			<select name="gen_keymap">
   1.948 +				$(list_keymaps)
   1.949 +			</select>
   1.950 +			<button type="submit" data-icon="ok">$(gettext 'Activate')</button>
   1.951 +		</form>
   1.952 +	</div>
   1.953  </section>
   1.954  
   1.955 +
   1.956  <section>
   1.957 -<h2>$(gettext 'Panel configuration')</h2>
   1.958 +	<header>$(gettext 'Panel configuration')</header>
   1.959 +	<div>
   1.960 +	<form class="wide">
   1.961 +		<fieldset><legend>$(gettext 'Style:')</legend>
   1.962 +			<select name="style">$(list_styles)</select>
   1.963 +			<button data-icon="ok">$(gettext 'Activate')</button>
   1.964 +		</fieldset>
   1.965  
   1.966 -<form method="get" action="">
   1.967 -	<p>
   1.968 -		$(gettext 'Style:')
   1.969 -		<select class="button" name="style">
   1.970 -			$(list_styles)
   1.971 -		</select>
   1.972 -		<input type="submit" value="$(gettext 'Activate')" />
   1.973 +		<fieldset><legend>$(gettext 'Panel password:')</legend>
   1.974 +			<input type="password" name="panel_pass"/>
   1.975 +			<button data-icon="ok">$(gettext 'Change')</button>
   1.976 +		</fieldset>
   1.977 +	</form>
   1.978 +
   1.979 +	<fieldset><legend>$(gettext 'Configuration files:')</legend>
   1.980 +		<button form="index" name="file" value="$CONFIG" data-icon="edit">$(gettext 'Panel')</button>
   1.981 +		<button form="index" name="file" value="$HTTPD_CONF" data-icon="edit">$(gettext 'Server')</button>
   1.982 +	</fieldset>
   1.983 +
   1.984 +	<p>$(gettext 'TazPanel provides a debugging mode and page:')
   1.985 +		<a href="/index.cgi?debug">debug</a>
   1.986  	</p>
   1.987 -</form>
   1.988 -<form method="get" action="">
   1.989 -	<p>
   1.990 -		$(gettext 'Panel password:')
   1.991 -		<input type="password" name="panel_pass"/>
   1.992 -		<input type="submit" value="$(gettext 'Change')" />
   1.993 -	</p>
   1.994 -</form>
   1.995 -<p>
   1.996 -	$(gettext 'Configuration files:')
   1.997 -	<a class="button" href="index.cgi?file=$CONFIG">
   1.998 -		<img src="$IMAGES/edit.png" />$(gettext 'Panel')</a>
   1.999 -	<a class="button" href="index.cgi?file=$HTTPD_CONF">
  1.1000 -		<img src="$IMAGES/edit.png" />$(gettext 'Server')</a>
  1.1001 -</p>
  1.1002 -<p>
  1.1003 -	$(gettext 'TazPanel provides a debugging mode and page:')
  1.1004 -	<a href="/index.cgi?debug">debug</a>
  1.1005 -</p>
  1.1006 +	</div>
  1.1007  </section>
  1.1008  EOT
  1.1009  	;;