Mercurial > hgrepos > hgweb.cgi > 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 wrap: on
line diff
--- a/examples/common/default/default.css Tue Dec 22 15:03:38 2015 +0859 +++ b/examples/common/default/default.css Tue Dec 22 15:26:43 2015 +0859 @@ -39,8 +39,8 @@ input[type="radio"][value="replace"]:checked + input.replace[type="file"] { visibility: visible; } -label.admin {text-decoration: underline;} -label.admin:after {content: "(ADMIN)";} +label.admin span {border-bottom: 1px solid blue;} +label.admin:after {content: "(ADMIN)"; color: red; text-decoration: none;} /* keep/edit/rm action selector */ input.action ~ input:not(.action), input.action ~ textarea {
--- a/s4-funcs.sh Tue Dec 22 15:03:38 2015 +0859 +++ b/s4-funcs.sh Tue Dec 22 15:26:43 2015 +0859 @@ -1701,7 +1701,8 @@ c="group by b.name having b.name in (select user from grp_mem where gname=$getgname)" cm="?commission+$rowid" thumbxy=50x50 listmember "" "$c" \ - |sed -e "s|\(<br>\),not=\(.*\)|\1<a href=\"$cm+\2\">管理者委託</a>|" + |sed -e "s|\(<br>\),not=\(.*\)|\1|" # 間違って押しやすい + ## |sed -e "s|\(<br>\),not=\(.*\)|\1<a href=\"$cm+\2\">管理者委託</a>|" } grpaction() { # $1=group-rowid err GRP_ACTION:IN @@ -1759,7 +1760,11 @@ cat<<EOF EOF - elif [ -n "$text" ]; then # if NOT removal mode + elif [ x"$rm" = x"send" ]; then # if sendmsg mode + if [ -z "$text" ]; then # if msg is empty + echo "なにかメッセージを..." | html p + return 0 + fi smail "`email4groupbyuid "$grp" $usel` $user" \ "`gecos $user` さんからのメッセージ" <<EOF $url @@ -1779,6 +1784,8 @@ EOF err SendDone: `echo $sql` fi + elif [ x"$rm" = x"commission" ]; then + grp_reg_adm $grid $usel fi fi # New entry @@ -1789,17 +1796,31 @@ a left join (select gname,user,val from grp_mem_s where key='email') b using(gname,user)) j using(name) order by u.name;" - sql="select a.rowid||','||coalesce(val,a.name) as name from + sql="select /* Ahh, ugly SQL, I wanna fix... */ + case + when (select user from grp_adm where + gname=(select gname from grp where rowid=$grid) + and user=a.name) is not null + then 'k' + else '' + end || a.rowid|| + ','||coalesce(val,a.name) as name from (select rowid,name from user where name in (select user from grp_mem where gname=(select gname from grp where rowid=$grid))) a left join user_s on a.name=user_s.name and key='gecos' - order by name;" + order by coalesce(val,a.name);" err grpaction: `echo $sql` b1='<label> <input type="checkbox" name="usel" value="' - b2='"> ' b3='</label>' + ba='<label class="admin"><input type="checkbox" name="usel" value="' + b2='"> <span>' b3='</span></label>' tf=$tmpd/title.$$ echo "グループ[$grp]参加メンバーに対する操作" > $tf + cmmsg="<div class=\"fold\"> +`cgi_radio rm commission id=\"cmadmin\"` <label + for=\"cmadmin\">下でチェックした人にグループ管理者委任</label> +<div><p>このグループでの全権を付与します。信頼できる人に託してください。 +</p></div></div>" excmsg="<div class=\"fold\"> `cgi_radio rm yes ` 下でチェックした人のグループ登録解除 <div> @@ -1809,7 +1830,8 @@ </div> </div>" cgi_form grpaction<<EOF \ - | sed -e "s|^\(<TR><TD>\)\([0-9]*\),\([^<]*\)|\1$b1\2$b2\3$b3|" \ + | sed -e "s|^\(<TR><TD>\)k\([0-9]*\),\([^<]*\)|\1$ba\2$b2\3$b3|" \ + -e "s|^\(<TR><TD>\)\([0-9]*\),\([^<]*\)|\1$b1\2$b2\3$b3|" \ | m4 -D_TITLE_="spaste(\`$tf')" \ -D_SUBTITLE_="チェック後操作ボタン" \ -D_FORM_="syscmd(cat)" -D_DUMPTABLE_="" \ @@ -1821,7 +1843,7 @@ `cgi_textarea text "" cols=40` </div> </div> -${isowner:+$excmsg} +${isowner:+$cmmsg$excmsg} <h4>$grp 参加者一覧</h4> <table> `sq $db -html "$sql"` @@ -2020,7 +2042,8 @@ fi } grp_reg_adm() { - # $1=grp-rowid $2=user-rowid + # $1=grp-rowid $2...=user-rowid + grid=$1 grp=`getgroupbyid "$1"` if [ -z "$grp" ]; then echo "無効なグループIDです" | html p; return @@ -2028,25 +2051,28 @@ if ! isgrpowner $user "$grp"; then echo "$grp グループの管理者しかこの操作はできません。" | html p; return fi - newadm=`query "select name from user where rowid=$2;"` - if [ -z "$newadm" ]; then - echo "指定ユーザIDがおかしいようです。" | html p; return - fi -err GRP_reg_adm: "replace into grp_adm values(`sqlquote $grp`, '$newadm');" -err ismember $newadm $grp - if ismember $newadm $grp; then - # OK, go ahead - getgname="(select gname from grp where rowid=$1)" - query "replace into grp_adm values($getgname, '$newadm');" - # confirm insertion - sql="select * from grp_adm where gname=$getgname and user='$newadm'" - if [ -n "`query \"$sql;\"`" ]; then - echo "追加完了" | html p - else - echo "追加失敗($1 $2)" | html p + shift + for urid; do + newadm=`query "select name from user where rowid=$urid;"` + if [ -z "$newadm" ]; then + echo "指定ユーザIDがおかしいようです。" | html p; return fi - fi - showgroup $1 + err GRP_reg_adm: "replace into grp_adm values(`sqlquote $grp`, '$newadm');" + err ismember $newadm $grp + if ismember $newadm $grp; then + # OK, go ahead + getgname="(select gname from grp where rowid=$grid)" + query "replace into grp_adm values($getgname, '$newadm');" + # confirm insertion + sql="select * from grp_adm where gname=$getgname and user='$newadm'" + if [ -n "`query \"$sql;\"`" ]; then + echo "追加完了: $newadm" | html p + else + echo "追加失敗($1 $urid)" | html p + fi + fi + showgroup $grid + done } dumptable() { # $1=mode $2=Table $3=column-list-of-*_s(defaults to *) $4=conditions(if any)