s4

changeset 875:380167e9cfcf

Add link to generate csv file for Zoom(TM) pre-assigned rooms
author HIROSE Yuuji <yuuji@gentei.org>
date Wed, 02 Dec 2020 19:10:52 +0859
parents b2b0bb5bb707
children 610c3fb6d52a
files s4-blog.sh s4-funcs.sh scripts/s4-sns.case
diffstat 3 files changed, 43 insertions(+), 4 deletions(-) [+]
line diff
     1.1 --- a/s4-blog.sh	Wed Oct 28 16:01:46 2020 +0900
     1.2 +++ b/s4-blog.sh	Wed Dec 02 19:10:52 2020 +0859
     1.3 @@ -1077,6 +1077,35 @@
     1.4  	    -D_DUMPTABLE_="syscmd(cat)" $layout/form+dump.m4.html
     1.5    echo '</table>'
     1.6  }
     1.7 +getteamcsv() {
     1.8 +  gid=`numericalize "$1"`
     1.9 +  grp=`getgroupbyid "$gid"`
    1.10 +  err gid=$gid grp=$grp
    1.11 +  if ! isgrpowner "$user" "$grp"; then
    1.12 +    contentytpe 'text/plain; charset="utf-8"'; echo
    1.13 +    echo "管理者メンバー以外は利用できません。" | html p; return
    1.14 +  fi
    1.15 +  fn="team-$gid.csv"
    1.16 +  csv="$tmpd/$fn"
    1.17 +  err csv=$csv
    1.18 +  # We can leave csv mode here because this scripts will exit soon
    1.19 +  query <<-EOF
    1.20 +	.mode csv
    1.21 +	.head 1
    1.22 +	.output $csv
    1.23 +	SELECT val "ルーム名を事前割り当て", user "メールアドレス"
    1.24 +	       FROM grp_mem_m
    1.25 +	       WHERE key='team'
    1.26 +	       	 AND gname=(SELECT gname FROM grp WHERE rowid=$gid)
    1.27 +	       ORDER BY val;
    1.28 +	EOF
    1.29 +  contenttype 'text/plain; charset="utf-8"'
    1.30 +  echo "Content-Disposition: filename=\"$fn\""
    1.31 +  echo "Content-Length: " `cat $csv | wc -c`; echo
    1.32 +  #echo "Content-Type: " ${type#file:}; echo
    1.33 +  cat $csv
    1.34 +  exit
    1.35 +}
    1.36  searchart() {
    1.37    _m4 -D_TITLE_="検索結果" $layout/html.m4.html
    1.38    kwd=`getpar kwd|nkf -wZ1`		# Convert Zenkaku-SPC to ASCII-SPC
     2.1 --- a/s4-funcs.sh	Wed Oct 28 16:01:46 2020 +0900
     2.2 +++ b/s4-funcs.sh	Wed Dec 02 19:10:52 2020 +0859
     2.3 @@ -2913,13 +2913,20 @@
     2.4    if ! ismember $user "$grp"; then
     2.5      echo "加入者のみに許可された操作です。" | html p; return
     2.6    fi
     2.7 +  isowner=""
     2.8 +  isgrpowner "$user" "$grp" && isowner="yes"
     2.9 +  err 2=$2 3=$3
    2.10 +  case "$2" in
    2.11 +    get:teamcsv)
    2.12 +      teamcsv "$grid"
    2.13 +      return
    2.14 +      ;;
    2.15 +  esac
    2.16    echo "グループ $grp 個別選択操作"  \
    2.17        | _m4 -D_TITLE_="syscmd(\`cat')" \
    2.18  	    -D_BODYCLASS_="`grp_getbodyclass \"$grp\"`" \
    2.19  	    $layout/html.m4.html
    2.20  
    2.21 -  isowner=""
    2.22 -  isgrpowner "$user" "$grp" && isowner="yes"
    2.23    usel=`getpar usel`
    2.24    if [ -n "$usel" ]; then
    2.25      uids=$(echo `echo $usel`|tr ' ' ',')
    2.26 @@ -3141,6 +3148,9 @@
    2.27    else
    2.28      myhexteams=$(hexteams "$grp" "$user")
    2.29    fi
    2.30 +  if [ -n "$isowner" -a -n "$allhexteams" ]; then
    2.31 +    gettingcsv="<p>Download: <a href=\"?getteamcsv+$grid\">Team.csv</a> (Zoom Breakout Room 事前割り当てに使えます)</p>"
    2.32 +  fi
    2.33    if [ -n "$myhexteams" ]; then
    2.34      rmteammsg="`cgi_radio rm rmteam 'id=\"cmrmteam\"'`<label accesskey=\"s\"
    2.35  title=\"Shortcut: s${nl}Strip a team tag from\"
    2.36 @@ -3204,7 +3214,7 @@
    2.37  ${isowner:+$cmmsg$excmsg}
    2.38  `cgi_radio rm close id="x"`<label for="x" accesskey="x">×</label>
    2.39  </div>
    2.40 -<h4>$htmlgrp 参加者一覧</h4>$fromtonote
    2.41 +<h4>$htmlgrp 参加者一覧</h4>$gettingcsv$fromtonote
    2.42  <table class="td2r thl">
    2.43  `sq $db -header -html "$sql"`
    2.44  </table>
     3.1 --- a/scripts/s4-sns.case	Wed Oct 28 16:01:46 2020 +0900
     3.2 +++ b/scripts/s4-sns.case	Wed Dec 02 19:10:52 2020 +0859
     3.3 @@ -46,7 +46,7 @@
     3.4      echo "Refresh: 0; $newurl"; echo
     3.5      exit 0
     3.6      ;;
     3.7 -  lshandout|lshandoutall|gethandout|gethandoutcsv|gethandoutcsv2|blogseen)
     3.8 +  lshandout|lshandoutall|gethandout|gethandoutcsv|gethandoutcsv2|blogseen|getteamcsv)
     3.9      case "$stage" in
    3.10        lshandout*|blogseen*) contenttype; echo ;;
    3.11      esac