Mercurial > hgrepos > hgweb.cgi > s4
changeset 259:85a001a9c7c5
Make it visible: the group is moderated; the user is a member of the group
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Tue, 19 Jul 2016 13:55:49 +0859 |
parents | a967788f7ad8 |
children | 1b9d45b823b8 |
files | examples/common/default/default.css s4-blog.sh s4-funcs.sh |
diffstat | 3 files changed, 57 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/examples/common/default/default.css Mon Jul 18 23:16:53 2016 +0859 +++ b/examples/common/default/default.css Tue Jul 19 13:55:49 2016 +0859 @@ -1,7 +1,7 @@ /* * Default CSS definitions */ -body {background: #eff;} +body {background: #eff; margin: 2px; padding: 6px;} h2, h3, hr {clear: both;} *.warn {color: red;} div.topmenu { @@ -150,6 +150,9 @@ div.xy120x120 {min-width: 120px; min-height: 140px;} div.xy96x96 {min-width: 96px; min-height: 116px;} div.xy50x50 {min-width: 50px; min-height: 70px;} +div.moderated {background: rgba(255, 215, 0, 0.3);} /* gold */ +body.moderated {background: #fffec4;} /* #faed8a */ +body.ismember, div.ismember {border-top: 4px red solid; margin-top: 0;} div.right, div.search {clear: both; float: right;} *.clear {clear: both;} div.search input[type="text"] {
--- a/s4-blog.sh Mon Jul 18 23:16:53 2016 +0859 +++ b/s4-blog.sh Tue Jul 19 13:55:49 2016 +0859 @@ -583,6 +583,17 @@ WHERE id=(SELECT id FROM blog WHERE rowid=$rowid) AND key='team'; \"|htmlescape`" + qgrp=`sqlquote "$owner"` + sql="SELECT coalesce( + (SELECT val FROM grp_s WHERE gname=$qgrp AND key='regmode'), + 'open') + || + CASE WHEN '$user' + IN (SELECT user FROM grp_mem WHERE gname=$qgrp) + THEN ' ismember' + ELSE '' + END" + memclass=`query "$sql;"` fi if [ -z "$title" ]; then echo "日記番号指定が無効です。" | html p @@ -607,7 +618,8 @@ echo "$title" > $tmpd/title.$$ echo "$subtitle" > $tmpd/subtitle.$$ ${BLOG_SHOW:-blog_showentry} blog $rowid \ - | _m4 -D_TITLE_="spaste(\`$tmpd/title.$$')" -D_BODYCLASS_=general \ + | _m4 -D_TITLE_="spaste(\`$tmpd/title.$$')" \ + -D_BODYCLASS_=general"${memclass:+ $memclass}" \ -D_FORMHEAD_="spaste(\`$tmpd/subtitle.$$')" \ -D_FORM_='' \ -D_DUMPTABLE_="syscmd(cat)" -D_DUMPHEAD_="" \
--- a/s4-funcs.sh Mon Jul 18 23:16:53 2016 +0859 +++ b/s4-funcs.sh Tue Jul 19 13:55:49 2016 +0859 @@ -1383,7 +1383,7 @@ [ -n "$jg" -a -n "$grp" ] && joingrp "$grp" "$user" "$jg" "`getpar email`" fi - echo "グループ $grp"|_m4 -D_TITLE_="syscmd(\`cat')" $layout/html.m4.html + htmlheader=$layout/html.m4.html showgroup "$grid" } listnewblogsql() { # $1=user @@ -1691,7 +1691,20 @@ when '$user' in (select user from grp_mem where gname=a.$nm) then '(Member)' when '$iamowner' = '' then '' - else ',not='||a.rowid end as ownerlink + else ',not='||a.rowid end as ownerlink, + CASE '$entity' + WHEN 'グループ' + THEN coalesce( + (SELECT val FROM grp_s WHERE gname=a.$nm AND key='regmode'), + 'open') + || + CASE WHEN '$user' + IN (SELECT user FROM grp_mem WHERE gname=a.$nm) + THEN ' ismember' + ELSE '' + END + ELSE 'user' + END regmode from $tbl a left join (select $nm as name, max(case key when 'gecos' then val end) as gecos, @@ -1741,13 +1754,14 @@ err ListEntry: `echo "$sql"\;` query "$sql limit $limit ${offset:+offset $offset};" \ - | while IFS='|' read id lnk name gecos tag ownerp; do + | while IFS='|' read id lnk name gecos tag ownerp type; do err name=$name owner=$ownerp lnk=$lnk -err newlnk=$lnk +err newlnk=$lnk regmode=$regmode icondir=$dir/$id files=`getvalbyid $tbl profimg $id $icondir` # Pick up only first icon - echo "<div class=\"iconlist xy$thumbxy\"><p class=\"tag _$tag\">$tag</p>" \ + echo "<div class=\"iconlist xy$thumbxy $type\"> + <p class=\"tag _$tag\">$tag</p>" \ | _m4 $tagconv if [ -n "$files" ]; then icon=`echo "$files"|head -1` @@ -1795,21 +1809,34 @@ grid=$1 fi grp=`getgroupbyid $grid` + qgrp=`sqlquote $grp` err showgroup2: grp=$grp qgrp="[$(sqlquote $grp)]" if isgroup "$grp"; then tf=$tmpd/title.$$ + bodyclass=`query "SELECT val FROM grp_s + WHERE gname=$qgrp AND key='regmode';"` + if ismember "$user" "$grp"; then + ismember="ismember" + qgrp=`sqlquote $grp` + bodyclass="$bodyclass${bodyclass:+ }ismember" + else + ismember="" # bodyclass="group" + fi echo "グループ $grp" > $tf showgroupsub $formdir/grp.def "$grid" | \ _m4 -D_TITLE_="spaste(\`$tf')" \ -D_FORM_="syscmd(\`cat')" \ + -D_BODYCLASS_="$bodyclass" \ -D_DUMPTABLE_="" \ - $layout/form+dump.m4.html + $htmlheader $layout/form+dump.m4.html + # $htmlheader is defined in grp() else # if $grp is removed at par2table listgroup fi } showgroupsub() { # $1=def-file $2=group-rowid + # Using $ismember rowid=$2 grp=`getgroupbyid $2` qgrp=`sqlquote $grp` @@ -1827,7 +1854,7 @@ echo "<p><a href=\"?groupconf+$rowid\">グループ情報の編集</a>" iamowner=$rowid fi - if ismember "$user" "$grp"; then + if [ -n "$ismember" ]; then echo "${iamowner:+ / }<a href=\"?blog+$rowid\">グループの新規話題作成</a>" echo "/ <a href=\"?grpaction+$rowid\">メンバーを個別選択しての操作</a></p>" # div.fold input[type="checkbox"]:checked ~ div {display: block;} @@ -1847,7 +1874,11 @@ fi # 加入ボタン + 加入者リスト err ismember $user $grp - ismember "$user" "$grp" && ismem='checked' || nomem='checked' + if [ -n "$ismember" ]; then + ismem='checked' state="(参加中)" + else + nomem='checked' state="(現在非加入)" + fi # このグループでの加入アドレス eml=`query "select val from grp_mem_s where gname=$qgrp and user='$user' \ and key='email';"` @@ -1857,7 +1888,7 @@ cat <<EOF <div class="fold"> `cgi_checkbox reg yes id="reg"`<label - for="reg">自身の参加状態を操作する</label> + for="reg">自身の加入状態を操作する</label>$state <div> EOF cgi_form grp <<EOF