tazbug diff web/bugs.cgi @ rev 136
Tiny edits
author | Paul Issott <paul@slitaz.org> |
---|---|
date | Tue Feb 21 21:41:29 2017 +0000 (2017-02-21) |
parents | c2e788b5405d |
children | f07cd117feed |
line diff
1.1 --- a/web/bugs.cgi Tue Feb 21 17:29:18 2017 +0100 1.2 +++ b/web/bugs.cgi Tue Feb 21 21:41:29 2017 +0000 1.3 @@ -216,39 +216,61 @@ 1.4 EOT 1.5 } 1.6 1.7 +# Set open/closed bug path: set_bugpath ID 1.8 +set_bugpath() { 1.9 + if [ -d "$bugdir/closed/$1" ]; then 1.10 + bugpath="$bugdir/closed/$1" 1.11 + else 1.12 + bugpath="$bugdir/open/$1" 1.13 + fi 1.14 +} 1.15 +set_bugdir() { 1.16 + if [ -d "$bugdir/closed/$1" ]; then 1.17 + bugdir="$bugdir/closed" 1.18 + else 1.19 + bugdir="$bugdir/open" 1.20 + fi 1.21 +} 1.22 + 1.23 +# Nice ls output for open and closed bugs 1.24 +ls_bugs() { 1.25 + ls $bugdir/open 1.26 + ls $bugdir/closed 1.27 +} 1.28 + 1.29 # Usage: list_bug ID 1.30 list_bug() { 1.31 id="$1" 1.32 - . ${bugdir}/${id}/bug.conf 1.33 + set_bugpath ${id} 1.34 + . ${bugpath}/bug.conf 1.35 [ -f "${PEOPLE}/${CREATOR}/account.conf" ] && \ 1.36 . ${PEOPLE}/${CREATOR}/account.conf 1.37 cat << EOT 1.38 <a href="?user=$USER">$(get_gravatar "$MAIL" 24)</a> \ 1.39 -ID: $id <a href="?id=$id">$BUG</a> <span class="date">- $DATE</span> 1.40 +ID $id: <a href="?id=$id">$BUG</a> <span class="date">- $DATE</span> 1.41 EOT 1.42 - unset CREATOR USER MAIL 1.43 + unset CREATOR USER MAIL bugpath 1.44 } 1.45 1.46 -# Usage: list_bugs STATUS 1.47 +# Usage: list_bugs [open|closed] 1.48 list_bugs() { 1.49 status="$1" 1.50 - echo "<h3>$(eval_gettext '$status Bugs')</h3>" 1.51 + echo "<h3>$(gettext 'Bugs:') $status</h3>" 1.52 echo "<pre>" 1.53 for pr in critical standard 1.54 do 1.55 - for bug in $(fgrep -H "$1" $bugdir/*/bug.conf | cut -d ":" -f 1) 1.56 + for id in $(ls $bugdir/$status) 1.57 do 1.58 - . $bug 1.59 - id=$(basename $(dirname $bug)) 1.60 + . $bugdir/$status/$id/bug.conf 1.61 if [ "$PRIORITY" == "$pr" ]; then 1.62 [ -f "${PEOPLE}/${CREATOR}/account.conf" ] && \ 1.63 . ${PEOPLE}/${CREATOR}/account.conf 1.64 cat << EOT 1.65 <a href="?user=$USER">$(get_gravatar "$MAIL" 24)</a> \ 1.66 -ID: $id <a href="?id=$id">$BUG</a> <span class="date">- $DATE</span> 1.67 +ID $id: <a href="?id=$id">$BUG</a> <span class="date">- $DATE</span> 1.68 EOT 1.69 fi 1.70 - unset CREATOR USER MAIL 1.71 + unset CREATOR USER MAIL BUG 1.72 done 1.73 done 1.74 } 1.75 @@ -279,6 +301,7 @@ 1.76 1.77 # Bug page 1.78 bug_page() { 1.79 + . $bugdir/$id/bug.conf 1.80 if [ -f "$PEOPLE/$CREATOR/account.conf" ]; then 1.81 . $PEOPLE/$CREATOR/account.conf 1.82 else 1.83 @@ -379,8 +402,8 @@ 1.84 1.85 # Create a new Bug. ID is set by counting dirs in bug/ + 1 1.86 new_bug() { 1.87 - count=$(ls $bugdir | sort -g | tail -n 1) 1.88 - count=$(($count +1)) 1.89 + count=$(ls_bugs | sort -g | tail -n 1) 1.90 + id=$(($count +1)) 1.91 date=$(date "+%Y-%m-%d %H:%M") 1.92 # Sanity check, JS may be disabled. 1.93 [ ! "$(GET bug)" ] && echo "Missing bug title" && exit 1 1.94 @@ -388,9 +411,9 @@ 1.95 if check_auth; then 1.96 USER="$user" 1.97 fi 1.98 - mkdir -p $bugdir/$count 1.99 + mkdir -p $bugdir/open/$id 1.100 # bug.conf 1.101 - sed "s/$(echo -en '\r') /\n/g" > $bugdir/$count/bug.conf << EOT 1.102 + sed "s/$(echo -en '\r') /\n/g" > $bugdir/open/$id/bug.conf << EOT 1.103 # SliTaz Bug configuration 1.104 1.105 BUG="$(GETfiltered bug)" 1.106 @@ -401,11 +424,11 @@ 1.107 PKGS="$(GETfiltered pkgs)" 1.108 EOT 1.109 # desc.txt 1.110 - sed "s/$(echo -en '\r') /\n/g" > $bugdir/$count/desc.tmp << EOT 1.111 + sed "s/$(echo -en '\r') /\n/g" > $bugdir/open/$id/desc.tmp << EOT 1.112 $(GETfiltered desc) 1.113 EOT 1.114 - fold -s -w 80 $bugdir/$count/desc.tmp > $bugdir/$count/desc.txt 1.115 - rm -f $bugdir/$count/*.tmp 1.116 + fold -s -w 80 $bugdir/open/$id/desc.tmp > $bugdir/open/$id/desc.txt 1.117 + rm -f $bugdir/open/$id/*.tmp 1.118 } 1.119 1.120 # New bug page for the web interface 1.121 @@ -504,6 +527,7 @@ 1.122 1.123 save_bug() { 1.124 id="$(GET id)" 1.125 + set_bugdir ${id} 1.126 # bug.conf 1.127 sed "s/$(echo -en '\r') /\n/g" > $bugdir/$id/bug.conf << EOT 1.128 # SliTaz Bug configuration 1.129 @@ -525,12 +549,14 @@ 1.130 1.131 # Close a fixed bug 1.132 close_bug() { 1.133 - sed -i s'/OPEN/CLOSED/' $bugdir/$id/bug.conf 1.134 + sed -i s'/OPEN/CLOSED/' $bugdir/open/$id/bug.conf 1.135 + mv $bugdir/open/$id $bugdir/closed/$id 1.136 } 1.137 1.138 # Re open an old bug 1.139 open_bug() { 1.140 - sed -i s'/CLOSED/OPEN/' $bugdir/$id/bug.conf 1.141 + sed -i s'/CLOSED/OPEN/' $bugdir/closed/$id/bug.conf 1.142 + mv $bugdir/closed/$id $bugdir/open/$id 1.143 } 1.144 1.145 # Get and display Gravatar image: get_gravatar email size 1.146 @@ -658,7 +684,7 @@ 1.147 header 1.148 html_header 1.149 user_box 1.150 - list_bugs CLOSED 1.151 + list_bugs "closed" 1.152 echo "</pre>" 1.153 html_footer ;; 1.154 *\ login\ *) 1.155 @@ -706,18 +732,19 @@ 1.156 fi 1.157 html_footer ;; 1.158 *\ addbug\ *) 1.159 - # Save a new bug from web interface. 1.160 + # Save a new bug 1.161 header 1.162 html_header 1.163 if check_auth; then 1.164 new_bug 1.165 - js_redirection_to "$script?id=$count" 1.166 + js_redirection_to "$script?id=$id" 1.167 fi ;; 1.168 *\ editbug\ *) 1.169 # Edit existing bug 1.170 - id="$(GET editbug)" 1.171 header 1.172 html_header 1.173 + id="$(GET editbug)" 1.174 + set_bugdir ${id} 1.175 user_box 1.176 edit_bug 1.177 html_footer ;; 1.178 @@ -734,11 +761,11 @@ 1.179 id="$(GET id)" 1.180 [ "$(GET close)" ] && close_bug 1.181 [ "$(GET open)" ] && open_bug 1.182 + set_bugdir ${id} 1.183 [ "$(GET msg)" ] && new_msg 1.184 [ "$(GET delmsg)" ] && rm -f $bugdir/$id/msg.$(GET delmsg) 1.185 msgs=$(fgrep MSG= $bugdir/$id/msg.* | wc -l) 1.186 user_box 1.187 - . $bugdir/$id/bug.conf 1.188 bug_page 1.189 html_footer ;; 1.190 *\ signup\ *) 1.191 @@ -790,10 +817,10 @@ 1.192 html_footer ;; 1.193 *) 1.194 # Default page. 1.195 - bugs=$(ls -1 $bugdir | wc -l) 1.196 - close=$(fgrep "CLOSED" $bugdir/*/bug.conf | wc -l) 1.197 - fixme=$(fgrep "OPEN" $bugdir/*/bug.conf | wc -l) 1.198 - msgs=$(find $bugdir -name msg.* ! -size 0 | wc -l) 1.199 + bugs=$(ls_bugs | wc -l) 1.200 + close=$(ls $bugdir/closed | wc -l) 1.201 + fixme=$(ls $bugdir/open | wc -l) 1.202 + msgs=$(find $bugdir -name msg.* | wc -l) 1.203 pct=0 1.204 [ $bugs -gt 0 ] && pct=$(( ($close * 100) / $bugs )) 1.205 header 1.206 @@ -837,20 +864,22 @@ 1.207 EOT 1.208 # List last 4 bugs 1.209 echo "<pre>" 1.210 - for lb in $(ls ${bugdir} | sort -r -n | head -n 4) 1.211 + for lb in $(ls_bugs | sort -n -r | head -n 4) 1.212 do 1.213 list_bug ${lb} 1.214 done 1.215 echo "</pre>" 1.216 + 1.217 # List last 4 messages 1.218 echo "<h3>$(gettext "Latest Messages")</h3>" 1.219 echo "<pre>" 1.220 - for msg in $(ls -t ${bugdir}/*/msg.* | head -n 4) 1.221 + 1.222 + for msg in $(ls -r $bugdir/*/*/msg.* | head -n 4) 1.223 do 1.224 list_msg ${msg} 1.225 done 1.226 echo "</pre>" 1.227 - list_bugs OPEN 1.228 + list_bugs open 1.229 echo "</pre>" 1.230 html_footer ;; 1.231 esac