# HG changeset patch
# User HIROSE Yuuji
# Date 1437832858 -32400
# Node ID 916d81b9c4fc875545c95353bf3fbcfed238ab57
# Parent ccd0c67362157d6605c8673c124c826afdf3da98
Selection from group member
diff -r ccd0c6736215 -r 916d81b9c4fc s4-blog.sh
--- a/s4-blog.sh Thu Jul 23 11:35:05 2015 +0900
+++ b/s4-blog.sh Sat Jul 25 23:00:58 2015 +0900
@@ -139,11 +139,11 @@
number=0
hrefhome0="&3
- #case $ct in
- # [Ii]mage*) anch="$fn" ;;
- # *) anch=$fn ;;
- # esac
- # Should not contain newlines for sed argument
- # echo -n "$anch"
iconhref $td/$fn "$hrfb+$ri" "$fn" "$fn"
done)
imgs=`echo "$imgs"|tr -d '\n'` # kill newlines for sed
diff -r ccd0c6736215 -r 916d81b9c4fc s4-cgi.sh
--- a/s4-cgi.sh Thu Jul 23 11:35:05 2015 +0900
+++ b/s4-cgi.sh Sat Jul 25 23:00:58 2015 +0900
@@ -114,3 +114,9 @@
# $1=name $2=val(filename)
cgi_multi $1 "$2" cgi_file "$3"
}
+
+html() {
+ echo "<$*>"
+ cat
+ echo "$1>"
+}
diff -r ccd0c6736215 -r 916d81b9c4fc s4-funcs.sh
--- a/s4-funcs.sh Thu Jul 23 11:35:05 2015 +0900
+++ b/s4-funcs.sh Sat Jul 25 23:00:58 2015 +0900
@@ -535,9 +535,11 @@
###vcount=`sq $db "select count(val) from $cond"`
# Reset val to store filenames if type is string
val=`query "select val from $cond and type like 'file:%' order by rowid;"`
+err gvb1-sql: "select count(val) from $cond;"
vcount=`query "select count(val) from $cond;"`
echo $vcount > $td/$c.count
i=0
+err gvbid: i=$i vcount=$vcount
while [ $i -lt $vcount ]; do
slice="order by rowid limit 1 offset $i"
i=$((i+1))
@@ -1020,7 +1022,7 @@
esac
}
email4group() {
- # Get for-$1=group email address(es) for $2=user
+ # Get for-$1=group email address(es) for $2...=users
qgrp=`sqlquote "$1"`; shift
users=`for i; do sqlquote "$i"; done`
users=`echo $users|tr ' ' ','`
@@ -1031,6 +1033,20 @@
err `echo $sql`
query "$sql"
}
+email4groupbyuid() {
+ # Get for-$1=group email address(es) for $2...=user-ids
+ qgrp=`sqlquote "$1"`; shift
+err em4gbid-IN: "\$1=$1 qgrp=$qgrp"
+ uids=`echo "$@"`
+ uids=`echo $uids|tr ' ' ','`
+ sql="select coalesce(s.val, g.user) from grp_mem g
+ left join grp_mem_s s on g.gname=s.gname and g.user=s.user
+ and s.key='email'
+ where g.gname=$qgrp and g.user in
+ (select name from user where rowid in ($uids));"
+ err email4gByid `echo $sql`
+ query "$sql"
+}
collectemail() (
# Collect email addresses for group $1
for e; do
@@ -1374,7 +1390,8 @@
iamowner=$rowid
fi
if ismember "$user" "$grp"; then
- echo "${iamowner:+ / }グループの新規話題作成
"
+ echo "${iamowner:+ / }グループの新規話題作成"
+ echo "/ メンバーを個別選択しての操作"
# div.fold input[type="checkbox"]:checked ~ div {display: block;}
cat<
@@ -1434,6 +1451,115 @@
thumbxy=50x50 listmember "" "$c" \
|sed -e "s|\( \),not=\(.*\)|\1管理者委託|"
}
+grpaction() { # $1=group-rowid
+ # $grid=Group-id $grp=gname (got in s4.cgi)
+ usel=`getpar usel`
+ if [ -n "$usel" ]; then
+ uids=$(echo `echo $usel`|tr ' ' ',')
+ #err grpaction-1: grp=$grp, `echo $sql`
+ text=`getpar text`
+
+ rm=`getpar rm` cfm=`getpar confirm`
+err rm=$rm cfm=$cfm
+ if [ x"$rm" = x"yes" ]; then
+ if isgrpowner "$user" "$grp"; then
+ if [ x"$rm$cfm" = x"yesyes" ]; then
+ # Eliminate
+ cond="where gname=(select gname from grp where rowid=$grid) and user in (select name from user where rowid in ($uids))"
+ for tbl in grp_mem grp_mem_s grp_mem_m; do
+ sql="delete from $tbl $cond;"
+ # echo "sql=$sql"
+ query "$sql"
+ err rmGRPuser "$sql"
+ done
+ num=`query "select count(*) from user where rowid in ($uids);"`
+ #err num=$num
+ if [ 0$num -gt 0 ]; then
+ sql="select coalesce(b.val,a.name) from user a left join \
+ user_s b on a.name=b.name and key='gecos' where a.rowid in ($uids);"
+ # err `echo "$sql"`
+ html pre<確認のチェックがないのでやめておきます。"
+ return
+ fi
+ else # not Group Owner
+ echo "
"
+ sql="select coalesce(b.val, a.name) from
+ (select name from user where rowid in ($uids)) a
+ left join user_s b on a.name=b.name and b.key='gecos';"
+ query $sql
+ err SendDone: `echo $sql`
+ echo "(送信者である `gecos $user` さんも含まれます)
"
+ fi
+ fi
+ fi
+ # New entry
+ sql="select u.rowid||','||j.* from user u
+ join (select a.user as name,coalesce(b.val,a.user)
+ from (select gname,user from grp_mem
+ where gname=(select gname from grp where rowid=$1))
+ 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
+ (select rowid,name from user where name in
+ (select user from grp_mem where
+ gname=(select gname from grp where rowid=1)))
+ a left join user_s on a.name=user_s.name and key='gecos'
+ order by name;"
+ err grpaction: `echo $sql`
+ b1=''
+ cgi_form grpaction<