s4
changeset 645:21522dcada92
Experimental implement of group tag selection
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Thu, 07 May 2020 20:47:08 +0900 |
parents | 50b3ceca8bf7 |
children | d9bce34a863b |
files | s4-funcs.sh |
diffstat | 1 files changed, 46 insertions(+), 8 deletions(-) [+] |
line diff
1.1 --- a/s4-funcs.sh Tue May 05 20:08:09 2020 +0900 1.2 +++ b/s4-funcs.sh Thu May 07 20:47:08 2020 +0900 1.3 @@ -2208,9 +2208,24 @@ 1.4 convert -geometry $thumbxy $imgdir/$deficon $dir/$deficon 1.5 fi 1.6 if [ -n "$2" ]; then 1.7 - cond="where nick like '%$2%' or b.name like '%$2%'" 1.8 + cond1="(nick like '%$2%' or b.name like '%$2%')" 1.9 kwd=$2 1.10 fi 1.11 + tag=`getpar tag` tag2=`getpar tag2` 1.12 + if [ x"$tag" = x"NULL" ]; then 1.13 + tag="" tag2="" 1.14 + fi 1.15 + if [ -n "$tag$tag2" ]; then 1.16 + tag=${tag:-$tag2} 1.17 + qtag=`sqlquote "$tag"` 1.18 + cond2="tag=$qtag" 1.19 + fi 1.20 + if [ -n "$cond1$cond2$3" ]; then 1.21 + cond="$cond1${cond2:+ AND $cond2}${3:+ AND ($3)}" 1.22 + cond=${cond# AND } 1.23 + cond=${cond% AND } 1.24 + cond=${cond:+WHERE $cond} 1.25 + fi 1.26 1.27 # XX: これ複雑すぎるかな。もっとシンプルにしたい。$3条件も。2015-07-08 1.28 # grpは呼出し元の動的スコープ変数でよくないな... 1.29 @@ -2258,7 +2273,7 @@ 1.30 max(case key when 'wtime' then val end) as wtime, 1.31 max(case key when 'login' then val end) as login 1.32 from ${tbl}_s group by $nm) 1.33 - b on a.$nm=b.name $cond $3 1.34 + b on a.$nm=b.name $cond /* $3 */ 1.35 order by b.wtime desc, b.login desc, 1.36 b.mtime desc, b.tag desc, a.rowid asc" 1.37 # Give precedence to newer maintained groups (2016-09-24) 1.38 @@ -2268,25 +2283,48 @@ 1.39 echo "${entity} 一覧" | html h2 1.40 echo '<div class="listentry">' # List-entry div 1.41 # Show owner/member filter button 1.42 - [ x"$tbl" = x"grp" ] && cat<<-EOF 1.43 + METHOD=GET 1.44 + hiddens="$hiddens 1.45 + `cgi_hidden kwd \"$kwd\"` 1.46 + `cgi_hidden stage \"$stage\"`" 1.47 + if [ x"$tbl" = x"grp" ]; then 1.48 + args=`grep "^種別:" $formdir/grp.def | cut -d: -f5` 1.49 + fh="<select name=\"tag\">$nl" 1.50 + fh="$fh<option value=\"NULL\"${tag:+ selected}>グループ種別...</option>" 1.51 + for l in $args; do 1.52 + val=${l#*=} tname=${l%=*} 1.53 + if [ x"$val" = x"$tag" ]; then 1.54 + s=" selected" 1.55 + selectedtags="(種別[${tname}]のみ)" 1.56 + else 1.57 + s="" 1.58 + fi 1.59 + form=$nl$form"<option value=\"$val\"$s>$tname</option>" 1.60 + done 1.61 + form="$fh$form</select><input type=\"submit\" value=\"で絞る\">" 1.62 + cat<<-EOF 1.63 + <form action="$myname" method="$METHOD"> 1.64 + </form> 1.65 `cgi_checkbox onlymem no 'id="ismembtn"'`<label 1.66 for="ismembtn">参加中以外隠す</label> 1.67 `cgi_checkbox onlyadm no 'id="isadmbtn"'`<label 1.68 for="isadmbtn">管理者参加以外隠す</label> 1.69 EOF 1.70 - METHOD=GET 1.71 + # limit=3 1.72 + hiddens=$hiddens" "`cgi_hidden tag2 "$tag"` 1.73 + fi 1.74 if [ $total -gt $limit ]; then 1.75 - echo '<div class="right">' 1.76 + echo '<div>' 1.77 METHOD=GET cgi_form $stage <<EOF 1.78 +$form 1.79 <label>次の語を含む${entity}で検索: 1.80 `cgi_text kwd "$kwd"`</label> 1.81 $hiddens 1.82 EOF 1.83 echo '</div>' 1.84 + else 1.85 + echo $selectedtags | html p 1.86 fi 1.87 - hiddens="$hiddens 1.88 - `cgi_hidden kwd \"$kwd\"` 1.89 - `cgi_hidden stage \"$stage\"`" 1.90 cat<<EOF 1.91 <form action="$myname" method="$METHOD"> 1.92 <p>${total}件中の<input class="hidesub" type="text" name="start"