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)

yatex.org