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)