wok-next rev 20428
Port changes from cooking wok: fake-sane, sane-backends.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Wed Jan 24 13:17:46 2018 +0200 (2018-01-24) |
parents | 7d149a8fe301 |
children | 2569c3879795 |
files | fake-sane/receipt sane-backends/receipt sane-backends/stuff/tazpanel/crop.js sane-backends/stuff/tazpanel/drag.gif sane-backends/stuff/tazpanel/sane.cgi |
line diff
1.1 --- a/fake-sane/receipt Wed Jan 24 12:19:58 2018 +0200 1.2 +++ b/fake-sane/receipt Wed Jan 24 13:17:46 2018 +0200 1.3 @@ -1,18 +1,19 @@ 1.4 -# SliTaz package receipt. 1.5 +# SliTaz package receipt v2. 1.6 1.7 PACKAGE="fake-sane" 1.8 -VERSION="1.0" 1.9 +VERSION="180124" 1.10 CATEGORY="system-tools" 1.11 -SHORT_DESC="Fake scanimage output for tazpanel/sane.cgi." 1.12 +SHORT_DESC="Fake scanimage output for tazpanel/sane.cgi" 1.13 MAINTAINER="pascal.bellard@slitaz.org" 1.14 LICENSE="BSD" 1.15 WEB_SITE="http://www.slitaz.org/" 1.16 1.17 -DEPENDS="sane-backends tazpanel" 1.18 +compile_rules() { 1.19 + mkdir -p $fs/var/www/tazpanel/fake-sane 1.20 + cp $stuff/* $fs/var/www/tazpanel/fake-sane 1.21 +} 1.22 1.23 -# Rules to gen a SliTaz package suitable for Tazpkg. 1.24 -genpkg_rules() 1.25 -{ 1.26 - mkdir -p $fs/var/www/tazpanel 1.27 - cp $stuff/* $fs/var/www/tazpanel/ 1.28 +genpkg_rules() { 1.29 + copy @std 1.30 + DEPENDS="sane-backends tazpanel" 1.31 }
2.1 --- a/sane-backends/receipt Wed Jan 24 12:19:58 2018 +0200 2.2 +++ b/sane-backends/receipt Wed Jan 24 13:17:46 2018 +0200 2.3 @@ -1,23 +1,21 @@ 2.4 -# SliTaz package receipt. 2.5 +# SliTaz package receipt v2. 2.6 2.7 PACKAGE="sane-backends" 2.8 VERSION="1.0.22" 2.9 CATEGORY="system-tools" 2.10 -SHORT_DESC="Scanner Access Now Easy." 2.11 +SHORT_DESC="Scanner Access Now Easy" 2.12 MAINTAINER="pankso@slitaz.org" 2.13 LICENSE="GPL2" 2.14 +WEB_SITE="http://www.sane-project.org/" 2.15 + 2.16 TARBALL="$PACKAGE-$VERSION.tar.gz" 2.17 -WEB_SITE="http://www.sane-project.org/" 2.18 WGET_URL="ftp://ftp2.sane-project.org/pub/sane/$PACKAGE-$VERSION/$TARBALL" 2.19 2.20 -DEPENDS="libusb-compat jpeg tiff zlib libgphoto2 libv4l libltdl" 2.21 -BUILD_DEPENDS="libusb-compat-dev jpeg-dev tiff-dev zlib-dev libv4l-dev \ 2.22 -libgphoto2-dev libtool udev-dev" 2.23 -SUGGESTED="imagemagick gocr tesseract-ocr" 2.24 +BUILD_DEPENDS="libusb-compat-dev libjpeg-turbo-dev tiff-dev zlib-dev libv4l-dev \ 2.25 +libgphoto2-dev libtool eudev-dev" 2.26 +SPLIT="sane-backends-dev" 2.27 2.28 -# Rules to configure and make the package. 2.29 -compile_rules() 2.30 -{ 2.31 +compile_rules() { 2.32 sed -i 's|prefix}/doc|prefix}/share/doc|' configure 2.33 patch -Np1 -i $stuff/libv4l-0.8.3.patch 2.34 # fix https://bugs.archlinux.org/task/26114 2.35 @@ -28,58 +26,61 @@ 2.36 --mandir=/usr/share/man \ 2.37 $CONFIGURE_ARGS && 2.38 make && 2.39 - make -j 1 DESTDIR=$DESTDIR install 2.40 + make -j 1 DESTDIR=$install install || return 1 2.41 2.42 # copy the missing udev rule 2.43 - [ ! -d $DESTDIR/etc/udev/rules.d ] && mkdir -p $DESTDIR/etc/udev/rules.d 2.44 - cp -a $src/tools/udev/libsane.rules $DESTDIR/etc/udev/rules.d/55-sane.rules 2.45 + mkdir -p $install/etc/udev/rules.d 2.46 + cp $src/tools/udev/libsane.rules $install/etc/udev/rules.d/55-sane.rules 2.47 + 2.48 + # TazPanel stuff 2.49 + mkdir -p \ 2.50 + $install/var/www/tazpanel/lib/ \ 2.51 + $install/var/www/tazpanel/report.d/ \ 2.52 + $install/var/www/tazpanel/menu.d/hardware/ \ 2.53 + $install/var/www/tazpanel/styles/default/images 2.54 + cp $stuff/tazpanel/sane.cgi $install/var/www/tazpanel/ 2.55 + cp $stuff/tazpanel/sane $install/var/www/tazpanel/report.d/ 2.56 + cp $stuff/tazpanel/crop.js $install/var/www/tazpanel/lib/ 2.57 + cp $stuff/tazpanel/drag.gif $install/var/www/tazpanel/styles/default/images/ 2.58 + ln -s ../../sane.cgi $install/var/www/tazpanel/menu.d/hardware/sane 2.59 + 2.60 + # fix groups/permissions on /var/lock/sane ; add it to scanner group 2.61 + chmod 775 "$install/var/lock/sane" 2.62 + chgrp 96 "$install/var/lock/sane" 2.63 + 2.64 + # fix hp officejets 2.65 + echo "hpaio" >> "$install/etc/sane.d/dll.conf" 2.66 } 2.67 2.68 -# Rules to gen a SliTaz package suitable for Tazpkg. 2.69 -genpkg_rules() 2.70 -{ 2.71 - mkdir -p $fs/usr/lib $fs/usr/share \ 2.72 - $fs/var/lock/sane $fs/etc/sane.d \ 2.73 - $fs/var/www/tazpanel/lib \ 2.74 - $fs/var/www/tazpanel/report.d \ 2.75 - $fs/var/www/tazpanel/menu.d/hardware 2.76 - 2.77 - cp -a $install/etc/sane.d $fs/etc 2.78 - cp -a $install/usr/bin $fs/usr 2.79 - cp -a $install/usr/sbin $fs/usr 2.80 - cp -a $install/usr/lib/*.so* $fs/usr/lib 2.81 - cp -a $install/usr/lib/sane $fs/usr/lib 2.82 - cp -a $install/usr/share/sane $fs/usr/share 2.83 - cp $stuff/tazpanel/sane.cgi $fs/var/www/tazpanel/ 2.84 - cp $stuff/tazpanel/sane $fs/var/www/tazpanel/report.d/ 2.85 - cp $stuff/tazpanel/crop.js $fs/var/www/tazpanel/lib/ 2.86 - ln -s ../../sane.cgi $fs/var/www/tazpanel/menu.d/hardware/sane 2.87 - 2.88 - # fix groups/permissions on /var/lock/sane ; add it to scanner group 2.89 - chmod 775 "$fs/var/lock/sane" 2.90 - chgrp 96 "$fs/var/lock/sane" 2.91 - 2.92 - # fix hp officejets 2.93 - echo "hpaio" >> "$fs/etc/sane.d/dll.conf" 2.94 +genpkg_rules() { 2.95 + case $PACKAGE in 2.96 + sane-backends) 2.97 + copy @std 2.98 + DEPENDS="libusb-compat libjpeg-turbo tiff zlib libgphoto2 libv4l libltdl" 2.99 + SUGGESTED="imagemagick gocr tesseract-ocr" 2.100 + ;; 2.101 + *-dev) 2.102 + copy @dev 2.103 + DEPENDS="sane-backends" 2.104 + ;; 2.105 + esac 2.106 } 2.107 2.108 -post_install() 2.109 -{ 2.110 - tazpkg reconfigure udev --root="$1" 2.111 - 2.112 +post_install_sane_backends() { 2.113 + tazpkg reconfigure eudev --root="$1" 2.114 + 2.115 # add group scanner 2.116 if ! grep -q scanner "$1/etc/group" ; then 2.117 chroot "$1/" addgroup -g 96 scanner 2.118 fi 2.119 - 2.120 + 2.121 echo " ADD yourself to group scanner to use sane: addgroup tux scanner" 2.122 - 2.123 - rm -f "$1"/var/cache/tazpanel/* 2> /dev/null 2.124 + 2.125 + rm -f "$1"/var/cache/tazpanel/* 2>/dev/null 2.126 [ -e "$1/var/www/tazpanel/tmp" ] || 2.127 ln -s /tmp "$1/var/www/tazpanel/tmp" 2.128 } 2.129 2.130 -post_remove() 2.131 -{ 2.132 +post_remove_sane_backends() { 2.133 chroot "$1/" delgroup scanner & >/dev/null 2.134 }
3.1 --- a/sane-backends/stuff/tazpanel/crop.js Wed Jan 24 12:19:58 2018 +0200 3.2 +++ b/sane-backends/stuff/tazpanel/crop.js Wed Jan 24 13:17:46 2018 +0200 3.3 @@ -31,7 +31,7 @@ 3.4 function cropCreateDragImg(id) 3.5 { 3.6 var div = document.createElement('IMG'); 3.7 - div.src = 'drag.gif'; 3.8 + div.src = 'styles/default/images/drag.gif'; 3.9 div.width = 12; 3.10 div.style.position = 'absolute'; 3.11 div.style.cursor = div.id = id;
4.1 Binary file sane-backends/stuff/tazpanel/drag.gif has changed
5.1 --- a/sane-backends/stuff/tazpanel/sane.cgi Wed Jan 24 12:19:58 2018 +0200 5.2 +++ b/sane-backends/stuff/tazpanel/sane.cgi Wed Jan 24 13:17:46 2018 +0200 5.3 @@ -2,7 +2,7 @@ 5.4 # 5.5 # Scanner CGI interface - Scan documents via a browser 5.6 # 5.7 -# (C) 2015 SliTaz GNU/Linux - BSD License 5.8 +# (C) 2018 SliTaz GNU/Linux - BSD License 5.9 # 5.10 5.11 # Common functions from libtazpanel 5.12 @@ -24,6 +24,7 @@ 5.13 EOT 5.14 export TEXTDOMAIN=$TEXTDOMAIN_original 5.15 exit 5.16 + ;; 5.17 esac 5.18 5.19 TITLE="$(_ 'TazPanel - Hardware') - $(_ 'Scanner')" 5.20 @@ -34,19 +35,20 @@ 5.21 [ $1 -gt $3 ] && n=$3 5.22 echo $n 5.23 } 5.24 - 5.25 + 5.26 getgeometry() { 5.27 CMD="" 5.28 ARGS="" 5.29 - for i in x y l t ; do 5.30 + for i in x y l t; do 5.31 j=$(inrange $(xPOST geometry_$i) $(xPOST ${i}_min) $(xPOST ${i}_max)) 5.32 eval "geometry_$i=$j" 5.33 CMD="$CMD -$i $j" 5.34 ARGS="$ARGS $j" 5.35 done 5.36 - for i in mode source contrast brightness ; do 5.37 + for i in mode source contrast brightness; do 5.38 [ "$(xPOST $i)" ] && CMD="$CMD --$i '$(xPOST $i)'" 5.39 done 5.40 + 5.41 resolution=${1:-0} 5.42 if [ $resolution -eq 0 ]; then 5.43 resolution=$(xPOST res_min) 5.44 @@ -56,21 +58,27 @@ 5.45 resolution=$(($resolution * 2)) 5.46 done 5.47 fi 5.48 + 5.49 case "$(xPOST mode)" in 5.50 - *lack*|*ineart*) mode="-monochrome" ;; 5.51 - *ray*) mode="-colorspace gray" ;; 5.52 - *) mode="" ;; 5.53 + *lack*|*ineart*) mode="-monochrome";; 5.54 + *ray*) mode="-colorspace gray";; 5.55 + *) mode="";; 5.56 esac 5.57 + 5.58 [ -d tmp ] || ln -s /tmp tmp 5.59 + 5.60 case "$device" in 5.61 - fake*) f=/usr/share/images/slitaz-banner.png 5.62 - c="$(echo $ARGS $(identify $f | sed \ 5.63 - 's/.* \([0-9]*\)x.*/\1/') $(GET width) $(POST x_max) | awk ' 5.64 -function a(x) { return int(($x * $5)/ $7); } 5.65 -{ printf "%dx%d+%d+%d -resize %dx%d",a(1),a(2),a(3),a(4),$6,int(($2*$6)/$1)} 5.66 -')" 5.67 - suf="png"; [ "$1" ] && suf="pnm" 5.68 - cat <<EOT 5.69 + fake*) 5.70 + f=$(ls fake-sane/*.png | sed q) 5.71 + [ -s "$f" ] || f=/usr/share/images/slitaz-banner.png 5.72 + c="$(echo $ARGS $(identify $f \ 5.73 + | sed 's/.* \([0-9]*\)x.*/\1/') $(GET width) $(POST x_max) \ 5.74 + | awk ' 5.75 + function a(x) { return int(($x * $5)/ $7); } 5.76 + { printf "%dx%d+%d+%d -resize %dx%d",a(1),a(2),a(3),a(4),$6,int(($2*$6)/$1)} 5.77 + ')" 5.78 + suf="png"; [ "$1" ] && suf="pnm" 5.79 + cat <<EOT 5.80 if convert -crop $c $mode $f /tmp/sane$$.$suf 2> /dev/null ; then 5.81 cat /tmp/sane$$.$suf 5.82 rm -f /tmp/sane$$.$suf 5.83 @@ -78,57 +86,68 @@ 5.84 cat $f 5.85 fi 5.86 EOT 5.87 - ;; 5.88 - *) echo -n "scanimage -d '$(echo $device | sed 's/,.*//')' --resolution '$(inrange $resolution $(xPOST res_min) $(xPOST res_max))dpi'$CMD" 5.89 - if [ -z "$1" -a "$(which convert)" ]; then 5.90 - echo -n "> /tmp/sane$$.pnm ; convert -resize " 5.91 - echo $ARGS $(GET width) | awk '{ printf "%dx%d",$5,int(($2*$5)/$1)}' 5.92 - echo -n " /tmp/sane$$.pnm /tmp/sane$$.png ;" 5.93 - echo -n "cat /tmp/sane$$.png ; rm -f /tmp/sane$$.pn?" 5.94 - fi 5.95 + ;; 5.96 + *) 5.97 + echo -n "scanimage -d '$(echo $device \ 5.98 + | sed 's/,.*//')' --resolution '$(inrange $resolution $(xPOST res_min) $(xPOST res_max))dpi'$CMD" 5.99 + if [ -z "$1" -a "$(which convert)" ]; then 5.100 + echo -n "> /tmp/sane$$.pnm ; convert -resize " 5.101 + echo $ARGS $(GET width) | awk '{ printf "%dx%d",$5,int(($2*$5)/$1)}' 5.102 + echo -n " /tmp/sane$$.pnm /tmp/sane$$.png ;" 5.103 + echo -n "cat /tmp/sane$$.png ; rm -f /tmp/sane$$.pn?" 5.104 + fi 5.105 + ;; 5.106 esac 5.107 } 5.108 5.109 imgformat() { 5.110 -tmp=$(mktemp -u -t tazsane.XXXXXX) 5.111 -while read key name type exe pkg cmd ; do 5.112 - case "$key" in 5.113 - \#*) continue 5.114 - esac 5.115 - case "$1" in 5.116 - list) 5.117 - echo -n "<option value=\"$key\"" 5.118 - [ "$(which $exe 2> /dev/null)" ] || 5.119 - echo -n " disabled title=\"$exe not found: install $pkg\"" 5.120 - [ "$key" == "pnm" ] && 5.121 - echo -n " title=\"not supported by most browsers\"" 5.122 - echo ">$key" ;; 5.123 - *) 5.124 + tmp=$(mktemp -u -t tazsane.XXXXXX) 5.125 + while read key name type exe pkg cmd; do 5.126 case "$key" in 5.127 - $(xPOST format)|'*') 5.128 - case "$HTTP_USER_AGENT" in 5.129 + \#*) continue 5.130 + esac 5.131 5.132 - # Tazweb has no download support 5.133 - TazWe*) rm -f /tmp/$name 5.134 - eval "$(getgeometry $(xPOST resolution)) $cmd >/tmp/$name" 2> $tmp.err 5.135 - if [ -s /tmp/$name ]; then 5.136 - info="Stored in /tmp/$name ($(stat -c %s /tmp/$name) bytes)." 5.137 - else 5.138 - error="$(sed 's|$|<br />|' $tmp.err)" 5.139 - [ "$error" ] || error="I/O error" 5.140 - fi 5.141 - rm -f $tmp.* ;; 5.142 + case "$1" in 5.143 + list) 5.144 + echo -n "<option value=\"$key\"" 5.145 + [ "$(which $exe 2>/dev/null)" ] || 5.146 + echo -n " disabled title=\"$exe not found: install $pkg\"" 5.147 + [ "$key" == "pnm" ] && 5.148 + echo -n " title=\"not supported by most browsers\"" 5.149 + echo ">$key" 5.150 + ;; 5.151 + *) 5.152 + case "$key" in 5.153 + $(xPOST format)|'*') 5.154 + case "$HTTP_USER_AGENT" in 5.155 5.156 - # Others should work 5.157 - *) header "Content-Type: $type" \ 5.158 - "Content-Disposition: attachment; filename=$name" \ 5.159 + # Tazweb has no download support 5.160 + TazWe*) 5.161 + rm -f /tmp/$name 5.162 + eval "$(getgeometry $(xPOST resolution)) $cmd >/tmp/$name" 2> $tmp.err 5.163 + if [ -s /tmp/$name ]; then 5.164 + info="Stored in /tmp/$name ($(stat -c %s /tmp/$name) bytes)." 5.165 + else 5.166 + error="$(sed 's|$|<br />|' $tmp.err)" 5.167 + [ "$error" ] || error="I/O error" 5.168 + fi 5.169 + rm -f $tmp.* 5.170 + ;; 5.171 5.172 - eval "$(getgeometry $(xPOST resolution)) $cmd" 5.173 - rm -f $tmp.* 5.174 - exit ;; 5.175 - esac ;; 5.176 - esac ;; 5.177 - esac 5.178 + # Others should work 5.179 + *) 5.180 + header "Content-Type: $type" \ 5.181 + "Content-Disposition: attachment; filename=$name" \ 5.182 + 5.183 + eval "$(getgeometry $(xPOST resolution)) $cmd" 5.184 + rm -f $tmp.* 5.185 + exit 5.186 + ;; 5.187 + esac 5.188 + ;; 5.189 + esac 5.190 + ;; 5.191 + esac 5.192 done <<EOT 5.193 png tazsane.png image/png convert imagemagick > $tmp.pnm; convert $tmp.pnm png:- 5.194 jpeg tazsane.jpg image/jpeg convert imagemagick > $tmp.pnm; convert $tmp.pnm jpg:- 5.195 @@ -155,23 +174,26 @@ 5.196 error="" 5.197 5.198 case " $(POST) " in 5.199 -*\ reset\ *) 5.200 - unset device tmpreview 5.201 - preview="reset" ;; 5.202 -*\ preview\ *) 5.203 - [ "$tmpreview" ] || tmpreview=$(mktemp -u -t tazsane.XXXXXX).png 5.204 - tmp=$(mktemp -u -t tazsane.XXXXXX) 5.205 - eval "$(getgeometry)" > $tmp.pnm 2> $tmp.err 5.206 - if [ -s "$tmp.pnm" ]; then 5.207 - convert $tmp.pnm $tmpreview > /dev/null 2>&1 || 5.208 - cp $tmp.pnm $tmpreview 5.209 - else 5.210 - error="$(sed 's|$|<br />|' $tmp.err)" 5.211 - rm -f $tmpreview 5.212 - fi 5.213 - rm -f $tmp.pnm $tmp.err ;; 5.214 -*\ scan\ *) 5.215 - imgformat download ;; 5.216 + *\ reset\ *) 5.217 + unset device tmpreview 5.218 + preview="reset" 5.219 + ;; 5.220 + *\ preview\ *) 5.221 + [ "$tmpreview" ] || tmpreview=$(mktemp -u -t tazsane.XXXXXX).png 5.222 + tmp=$(mktemp -u -t tazsane.XXXXXX) 5.223 + eval "$(getgeometry)" > $tmp.pnm 2> $tmp.err 5.224 + if [ -s "$tmp.pnm" ]; then 5.225 + convert $tmp.pnm $tmpreview > /dev/null 2>&1 || 5.226 + cp $tmp.pnm $tmpreview 5.227 + else 5.228 + error="$(sed 's|$|<br />|' $tmp.err)" 5.229 + rm -f $tmpreview 5.230 + fi 5.231 + rm -f $tmp.pnm $tmp.err 5.232 + ;; 5.233 + *\ scan\ *) 5.234 + imgformat download 5.235 + ;; 5.236 esac 5.237 5.238 header 5.239 @@ -179,62 +201,59 @@ 5.240 [ -n "$error" ] && msg warn "$error" 5.241 [ -n "$info" ] && msg tip "$info" 5.242 if [ -z "$device" ]; then 5.243 - all="$(scanimage -f '%d,%v %m|'|cat - sane-fake.log|sed 's/|/\n/g')" 5.244 + all="$(\ 5.245 + scanimage -f '%d,%v %m|' \ 5.246 + | cat - sane-fake.log fake-sane/sane-fake.log \ 5.247 + | sed 's/|/\n/g')" 5.248 case "$(echo "$all" | wc -l)" in 5.249 - 1) if [ -z "$all" ]; then 5.250 - msg warn "$(_ "No scanner found")" 5.251 - msg tip "$(_ "You can test this GUI with ")\ 5.252 + 1) 5.253 + if [ -z "$all" ]; then 5.254 + msg warn "$(_ "No scanner found")" 5.255 + msg tip "$(_ "You can test this GUI with ")\ 5.256 <a href=\"/user/pkgs.cgi?info=fake-sane\">fake-sane</a>" 5.257 - xhtml_footer 5.258 - exit 0 5.259 - fi 5.260 - device="${all%|}" ;; 5.261 - *) 5.262 - suggested="" 5.263 - while read exe pkg msg; do 5.264 - [ "$(which $exe 2> /dev/null)" ] && continue 5.265 - suggested="$suggested 5.266 + xhtml_footer 5.267 + exit 0 5.268 + fi 5.269 + device="${all%|}" 5.270 + ;; 5.271 + *) 5.272 + suggested="" 5.273 + while read exe pkg msg; do 5.274 + [ "$(which $exe 2> /dev/null)" ] && continue 5.275 + suggested="$suggested 5.276 <li><a href=\"/user/pkgs.cgi?info=$pkg\">$pkg</a> $msg</li>" 5.277 - done <<EOT 5.278 + done <<EOT 5.279 convert imagemagick $(_ "to preview images and support more image formats") 5.280 gocr gocr $(_ "a basic optical character recognition") 5.281 tesseract tesseract-ocr $(_ "a better optical character recognition") 5.282 EOT 5.283 - [ "$suggested" ] && 5.284 - msg tip "$(_ "You may need to install:") <ol>$suggested</ol>" 5.285 - cat <<EOT 5.286 + [ "$suggested" ] && 5.287 + msg tip "$(_ "You may need to install:") <ol>$suggested</ol>" 5.288 + cat <<EOT 5.289 <section> 5.290 <header> 5.291 <form name="scanner" method="post"> 5.292 Scanner 5.293 <select name="device" size=1> 5.294 EOT 5.295 - echo "$all" | awk -F, '{ if (NF > 0) print "<option value=\"" $0 "\">" 1+i++ " - " $2 }' 5.296 - cat <<EOT 5.297 + echo "$all" \ 5.298 + | awk -F, '{ if (NF > 0) print "<option value=\"" $0 "\">" 1+i++ " - " $2 }' 5.299 + cat <<EOT 5.300 </select> 5.301 <button data-icon="start">$(_ "Continue")</button> 5.302 </form> 5.303 </header> 5.304 </section> 5.305 EOT 5.306 - xhtml_footer 5.307 - exit 0 ;; 5.308 + xhtml_footer 5.309 + exit 0 5.310 + ;; 5.311 esac 5.312 fi 5.313 5.314 cat <<EOT 5.315 <section> 5.316 -<form name="parameters" method="post"> 5.317 -<script language="JavaScript" type="text/javascript"> 5.318 -<!-- 5.319 -function new_width() { 5.320 - document.parameters.action = "?width="+(document.width-30) 5.321 -} 5.322 - 5.323 -window.onresize = new_width 5.324 -new_width() 5.325 ---> 5.326 -</script> 5.327 +<form name="parameters" method="post" style="width:100%"> 5.328 5.329 <header> 5.330 $(echo $device | sed 's/.*,//') 5.331 @@ -245,7 +264,7 @@ 5.332 </div> 5.333 </header> 5.334 5.335 -<table class="wide"> 5.336 +<table style="width:100%"> 5.337 <tr> 5.338 <td> 5.339 <fieldset><legend>$(_ 'Format')</legend> 5.340 @@ -258,7 +277,7 @@ 5.341 5.342 if [ "$(xPOST params)" ]; then 5.343 params="$(xPOST params | uudecode)" 5.344 -else 5.345 +else 5.346 params="$({ 5.347 cat "$(echo $device | sed 's/,.*//').log" 2> /dev/null || 5.348 scanimage --help -d "$(echo $device | sed 's/,.*//')" 5.349 @@ -297,7 +316,7 @@ 5.350 ')" 5.351 fi 5.352 output="$(n=$(echo "$params" | wc -l); echo "$params" | \ 5.353 -while read name def min max ; do 5.354 +while read name def min max; do 5.355 name="${name##*-}" 5.356 def="${def//=/ }" 5.357 if [ "$min" == "enum" ]; then 5.358 @@ -327,43 +346,52 @@ 5.359 f="$(_ "$name") <input name=\"$name\" value=\"$def\"" 5.360 u="" 5.361 case "$name" in 5.362 - x|y|l|t) cat <<EOT 5.363 + x|y|l|t) 5.364 + cat <<EOT 5.365 :${name}_max=$max 5.366 <input type="hidden" name="${name}_min" value="$min"> 5.367 <input type="hidden" name="${name}_max" value="$max"> 5.368 EOT 5.369 - while read name2 n2 id val; do 5.370 - [ "$name" == "$name2" ] || continue 5.371 - [ "$(xPOST geometry_$name)" ] && 5.372 - val="$(xPOST geometry_$name)" 5.373 - f="<fieldset><legend>$(_ "$n2")</legend><input name=\"geometry_$name\" id=\"$id\" value=\"$val\"" 5.374 - u=" mm" 5.375 - break 5.376 - done <<EOT 5.377 + while read name2 n2 id val; do 5.378 + [ "$name" == "$name2" ] || continue 5.379 + [ "$(xPOST geometry_$name)" ] && 5.380 + val="$(xPOST geometry_$name)" 5.381 + f="<fieldset><legend>$(_ "$n2")</legend><input name=\"geometry_$name\" id=\"$id\" value=\"$val\"" 5.382 + u=" mm" 5.383 + break 5.384 + done <<EOT 5.385 l X-Offset x 0 5.386 t Y-Offset y 0 5.387 x Width width $max 5.388 y Height height $max 5.389 EOT 5.390 + ;; 5.391 esac 5.392 [ "$name" == "resolution" ] && f="$f onchange=showGeometry()" 5.393 echo "<td>$f type=\"text\" title=\"$min .. $max\" size=4 maxlength=4>$u" 5.394 res_min=$min 5.395 res_max=$max 5.396 fi 5.397 + 5.398 case "$name" in 5.399 - resolution) cat <<EOT 5.400 + resolution) 5.401 + cat <<EOT 5.402 <input type="hidden" name="res_min" value="$res_min"> 5.403 <input type="hidden" name="res_max" value="$res_max"> 5.404 dpi 5.405 EOT 5.406 + ;; 5.407 esac 5.408 + 5.409 echo "</filedset></td>" 5.410 + 5.411 n=$(($n - 2)) 5.412 case "$n" in 5.413 - 1|2) echo "</tr><tr>" 5.414 + 1|2) echo "</tr><tr>";; 5.415 esac 5.416 + 5.417 done)" 5.418 + 5.419 echo "$output" | sed '/^:/d' 5.420 5.421 org_x=$(xPOST geometry_x); [ "$org_x" ] || org_x=$(echo "$output" | sed '/^:x_max=/!d;s/.*=//')