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