s4
changeset 153:f7b4f7e5df2a
Commission of grp_adm pulled back into grpaction()
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Tue, 22 Dec 2015 15:26:43 +0859 |
parents | 2263ec4f10fc |
children | 75598f2d3118 |
files | examples/common/default/default.css s4-funcs.sh |
diffstat | 2 files changed, 54 insertions(+), 28 deletions(-) [+] |
line diff
1.1 --- a/examples/common/default/default.css Tue Dec 22 15:03:38 2015 +0859 1.2 +++ b/examples/common/default/default.css Tue Dec 22 15:26:43 2015 +0859 1.3 @@ -39,8 +39,8 @@ 1.4 input[type="radio"][value="replace"]:checked + input.replace[type="file"] { 1.5 visibility: visible; 1.6 } 1.7 -label.admin {text-decoration: underline;} 1.8 -label.admin:after {content: "(ADMIN)";} 1.9 +label.admin span {border-bottom: 1px solid blue;} 1.10 +label.admin:after {content: "(ADMIN)"; color: red; text-decoration: none;} 1.11 1.12 /* keep/edit/rm action selector */ 1.13 input.action ~ input:not(.action), input.action ~ textarea {
2.1 --- a/s4-funcs.sh Tue Dec 22 15:03:38 2015 +0859 2.2 +++ b/s4-funcs.sh Tue Dec 22 15:26:43 2015 +0859 2.3 @@ -1701,7 +1701,8 @@ 2.4 c="group by b.name having b.name in (select user from grp_mem where gname=$getgname)" 2.5 cm="?commission+$rowid" 2.6 thumbxy=50x50 listmember "" "$c" \ 2.7 - |sed -e "s|\(<br>\),not=\(.*\)|\1<a href=\"$cm+\2\">管理者委託</a>|" 2.8 + |sed -e "s|\(<br>\),not=\(.*\)|\1|" # 間違って押しやすい 2.9 + ## |sed -e "s|\(<br>\),not=\(.*\)|\1<a href=\"$cm+\2\">管理者委託</a>|" 2.10 } 2.11 grpaction() { # $1=group-rowid 2.12 err GRP_ACTION:IN 2.13 @@ -1759,7 +1760,11 @@ 2.14 cat<<EOF 2.15 2.16 EOF 2.17 - elif [ -n "$text" ]; then # if NOT removal mode 2.18 + elif [ x"$rm" = x"send" ]; then # if sendmsg mode 2.19 + if [ -z "$text" ]; then # if msg is empty 2.20 + echo "なにかメッセージを..." | html p 2.21 + return 0 2.22 + fi 2.23 smail "`email4groupbyuid "$grp" $usel` $user" \ 2.24 "`gecos $user` さんからのメッセージ" <<EOF 2.25 $url 2.26 @@ -1779,6 +1784,8 @@ 2.27 EOF 2.28 err SendDone: `echo $sql` 2.29 fi 2.30 + elif [ x"$rm" = x"commission" ]; then 2.31 + grp_reg_adm $grid $usel 2.32 fi 2.33 fi 2.34 # New entry 2.35 @@ -1789,17 +1796,31 @@ 2.36 a left join (select gname,user,val from grp_mem_s where key='email') 2.37 b using(gname,user)) 2.38 j using(name) order by u.name;" 2.39 - sql="select a.rowid||','||coalesce(val,a.name) as name from 2.40 + sql="select /* Ahh, ugly SQL, I wanna fix... */ 2.41 + case 2.42 + when (select user from grp_adm where 2.43 + gname=(select gname from grp where rowid=$grid) 2.44 + and user=a.name) is not null 2.45 + then 'k' 2.46 + else '' 2.47 + end || a.rowid|| 2.48 + ','||coalesce(val,a.name) as name from 2.49 (select rowid,name from user where name in 2.50 (select user from grp_mem where 2.51 gname=(select gname from grp where rowid=$grid))) 2.52 a left join user_s on a.name=user_s.name and key='gecos' 2.53 - order by name;" 2.54 + order by coalesce(val,a.name);" 2.55 err grpaction: `echo $sql` 2.56 b1='<label> <input type="checkbox" name="usel" value="' 2.57 - b2='"> ' b3='</label>' 2.58 + ba='<label class="admin"><input type="checkbox" name="usel" value="' 2.59 + b2='"> <span>' b3='</span></label>' 2.60 tf=$tmpd/title.$$ 2.61 echo "グループ[$grp]参加メンバーに対する操作" > $tf 2.62 + cmmsg="<div class=\"fold\"> 2.63 +`cgi_radio rm commission id=\"cmadmin\"` <label 2.64 + for=\"cmadmin\">下でチェックした人にグループ管理者委任</label> 2.65 +<div><p>このグループでの全権を付与します。信頼できる人に託してください。 2.66 +</p></div></div>" 2.67 excmsg="<div class=\"fold\"> 2.68 `cgi_radio rm yes ` 下でチェックした人のグループ登録解除 2.69 <div> 2.70 @@ -1809,7 +1830,8 @@ 2.71 </div> 2.72 </div>" 2.73 cgi_form grpaction<<EOF \ 2.74 - | sed -e "s|^\(<TR><TD>\)\([0-9]*\),\([^<]*\)|\1$b1\2$b2\3$b3|" \ 2.75 + | sed -e "s|^\(<TR><TD>\)k\([0-9]*\),\([^<]*\)|\1$ba\2$b2\3$b3|" \ 2.76 + -e "s|^\(<TR><TD>\)\([0-9]*\),\([^<]*\)|\1$b1\2$b2\3$b3|" \ 2.77 | m4 -D_TITLE_="spaste(\`$tf')" \ 2.78 -D_SUBTITLE_="チェック後操作ボタン" \ 2.79 -D_FORM_="syscmd(cat)" -D_DUMPTABLE_="" \ 2.80 @@ -1821,7 +1843,7 @@ 2.81 `cgi_textarea text "" cols=40` 2.82 </div> 2.83 </div> 2.84 -${isowner:+$excmsg} 2.85 +${isowner:+$cmmsg$excmsg} 2.86 <h4>$grp 参加者一覧</h4> 2.87 <table> 2.88 `sq $db -html "$sql"` 2.89 @@ -2020,7 +2042,8 @@ 2.90 fi 2.91 } 2.92 grp_reg_adm() { 2.93 - # $1=grp-rowid $2=user-rowid 2.94 + # $1=grp-rowid $2...=user-rowid 2.95 + grid=$1 2.96 grp=`getgroupbyid "$1"` 2.97 if [ -z "$grp" ]; then 2.98 echo "無効なグループIDです" | html p; return 2.99 @@ -2028,25 +2051,28 @@ 2.100 if ! isgrpowner $user "$grp"; then 2.101 echo "$grp グループの管理者しかこの操作はできません。" | html p; return 2.102 fi 2.103 - newadm=`query "select name from user where rowid=$2;"` 2.104 - if [ -z "$newadm" ]; then 2.105 - echo "指定ユーザIDがおかしいようです。" | html p; return 2.106 - fi 2.107 -err GRP_reg_adm: "replace into grp_adm values(`sqlquote $grp`, '$newadm');" 2.108 -err ismember $newadm $grp 2.109 - if ismember $newadm $grp; then 2.110 - # OK, go ahead 2.111 - getgname="(select gname from grp where rowid=$1)" 2.112 - query "replace into grp_adm values($getgname, '$newadm');" 2.113 - # confirm insertion 2.114 - sql="select * from grp_adm where gname=$getgname and user='$newadm'" 2.115 - if [ -n "`query \"$sql;\"`" ]; then 2.116 - echo "追加完了" | html p 2.117 - else 2.118 - echo "追加失敗($1 $2)" | html p 2.119 + shift 2.120 + for urid; do 2.121 + newadm=`query "select name from user where rowid=$urid;"` 2.122 + if [ -z "$newadm" ]; then 2.123 + echo "指定ユーザIDがおかしいようです。" | html p; return 2.124 fi 2.125 - fi 2.126 - showgroup $1 2.127 + err GRP_reg_adm: "replace into grp_adm values(`sqlquote $grp`, '$newadm');" 2.128 + err ismember $newadm $grp 2.129 + if ismember $newadm $grp; then 2.130 + # OK, go ahead 2.131 + getgname="(select gname from grp where rowid=$grid)" 2.132 + query "replace into grp_adm values($getgname, '$newadm');" 2.133 + # confirm insertion 2.134 + sql="select * from grp_adm where gname=$getgname and user='$newadm'" 2.135 + if [ -n "`query \"$sql;\"`" ]; then 2.136 + echo "追加完了: $newadm" | html p 2.137 + else 2.138 + echo "追加失敗($1 $urid)" | html p 2.139 + fi 2.140 + fi 2.141 + showgroup $grid 2.142 + done 2.143 } 2.144 dumptable() { 2.145 # $1=mode $2=Table $3=column-list-of-*_s(defaults to *) $4=conditions(if any)