Mercurial > hgrepos > hgweb.cgi > after5
comparison after5.rb @ 55:9a82edb295ca draft
Adjust umask. Max width of email entry, enlarged.
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Thu, 21 Jun 2012 22:09:24 +0900 |
parents | 0b104c49457a |
children | ba64f43f07f7 |
comparison
equal
deleted
inserted
replaced
54:bcb4a41a43b5 | 55:9a82edb295ca |
---|---|
2 # -*- coding: euc-jp -*- | 2 # -*- coding: euc-jp -*- |
3 # | 3 # |
4 # Associative Scheduling Table - after5 | 4 # Associative Scheduling Table - after5 |
5 # (C)2003, 2004, 2006, 2008, 2012 by HIROSE Yuuji [yuuji<at>gentei.org] | 5 # (C)2003, 2004, 2006, 2008, 2012 by HIROSE Yuuji [yuuji<at>gentei.org] |
6 # $Id: after5.rb,v 1.19 2012/04/01 11:52:25 yuuji Exp yuuji $ | 6 # $Id: after5.rb,v 1.19 2012/04/01 11:52:25 yuuji Exp yuuji $ |
7 # Last modified Mon Jun 18 11:03:46 2012 on firestorm | 7 # Last modified Thu Jun 21 21:42:34 2012 on firestorm |
8 # See http://www.gentei.org/~yuuji/software/after5/ | 8 # See http://www.gentei.org/~yuuji/software/after5/ |
9 # このスクリプトはEUCで保存してください。 | 9 # このスクリプトはEUCで保存してください。 |
10 $hgid = <<_HGID_.split[1..-2].join(" ") | 10 $hgid = <<_HGID_.split[1..-2].join(" ") |
11 $HGid$ | 11 $HGid$ |
12 _HGID_ | 12 _HGID_ |
277 | 277 |
278 end | 278 end |
279 def mkusermap() | 279 def mkusermap() |
280 map = {} | 280 map = {} |
281 unless test(?d, @usermapdir) | 281 unless test(?d, @usermapdir) |
282 mkdir_p(@usermapdir) | 282 mkdir_p(@usermapdir, 0750) |
283 end | 283 end |
284 Dir.foreach(@usermapdir){|u| | 284 Dir.foreach(@usermapdir){|u| |
285 next if /^\./ =~ u | 285 next if /^\./ =~ u |
286 newu = '' | 286 newu = '' |
287 u.split('').each{|c| # for security wrapping | 287 u.split('').each{|c| # for security wrapping |
1668 m.close | 1668 m.close |
1669 else | 1669 else |
1670 # exec(@attr['mail'], "-s", subject, to) | 1670 # exec(@attr['mail'], "-s", subject, to) |
1671 recipient = rcptto || to.split(/,\s*|\s+/) | 1671 recipient = rcptto || to.split(/,\s*|\s+/) |
1672 #p recipient | 1672 #p recipient |
1673 File.umask(077) | |
1673 if spoolto && spoolto.is_a?(String) && | 1674 if spoolto && spoolto.is_a?(String) && |
1674 proc { | 1675 proc { |
1675 require 'fileutils' | 1676 require 'fileutils' |
1676 begin | 1677 begin |
1677 test(?d, spoolto) or FileUtils.mkdir_p(spoolto) | 1678 test(?d, spoolto) or FileUtils.mkdir_p(spoolto, 0700) |
1678 test(?w, spoolto) | 1679 test(?w, spoolto) |
1679 rescue | 1680 rescue |
1680 nil | 1681 nil |
1681 end}.call && | 1682 end}.call && |
1682 (tee=open("|-", "w")) # popen should be done in if-condition | 1683 (tee=open("|-", "w")) # popen should be done in if-condition |
1764 "<hr>" + \ | 1765 "<hr>" + \ |
1765 @H.element("code") { | 1766 @H.element("code") { |
1766 "This " + \ | 1767 "This " + \ |
1767 @H.a(@after5url, "After5") + \ | 1768 @H.a(@after5url, "After5") + \ |
1768 " board is maintained by " + \ | 1769 " board is maintained by " + \ |
1769 @opt['maintainer'].sub('@', "@") + "." | 1770 @opt['maintainer'].gsub(".", "<span>.</span>"). |
1771 sub('@', "@") + \ | |
1772 '<span style="display: none;">.cut.here</span>' + \ | |
1773 "." | |
1770 } | 1774 } |
1771 end | 1775 end |
1772 def footer() | 1776 def footer() |
1773 footer1+footer2 | 1777 footer1+footer2 |
1774 end | 1778 end |
2859 } | 2863 } |
2860 } + \ | 2864 } + \ |
2861 @H.elementln("tr"){ | 2865 @H.elementln("tr"){ |
2862 @H.element("td", tdclass) {msg('mailaddress', 'multipleok')} + \ | 2866 @H.element("td", tdclass) {msg('mailaddress', 'multipleok')} + \ |
2863 @H.element("td") { | 2867 @H.element("td") { |
2864 @H.text("newmail", mailaddress(user), @opt['size'], 80) | 2868 @H.text("newmail", mailaddress(user), @opt['size'], 180) |
2865 } | 2869 } |
2866 } + \ | 2870 } + \ |
2867 @H.elementln("tr"){ | 2871 @H.elementln("tr"){ |
2868 @H.element("td", tdclass) {msg('weburl')} + \ | 2872 @H.element("td", tdclass) {msg('weburl')} + \ |
2869 @H.element("td") { | 2873 @H.element("td") { |
2996 @O.print @H.p(msg('joinmyself')+ | 3000 @O.print @H.p(msg('joinmyself')+ |
2997 @H.a(@myname+"?-newgroup", msg('newgroup'))) | 3001 @H.a(@myname+"?-newgroup", msg('newgroup'))) |
2998 @O.print @H.p(msg('usermodwarn')) | 3002 @O.print @H.p(msg('usermodwarn')) |
2999 @O.print \ | 3003 @O.print \ |
3000 @H.elementln("form", {'action'=>@myname+"?-groupmod", 'method'=>'POST'}){ | 3004 @H.elementln("form", {'action'=>@myname+"?-groupmod", 'method'=>'POST'}){ |
3001 @H.elementln("table", {'border'=>'1', 'vertical-align'=>'top'}){ | 3005 @H.elementln("table", {'class'=>'border'}){ |
3002 grmap.sort.collect{|g, ghash| | 3006 grmap.sort.collect{|g, ghash| |
3003 memberp = @sc.ismember(user, g) | 3007 memberp = @sc.ismember(user, g) |
3004 @H.elementln("tr"){ | 3008 @H.elementln("tr"){ |
3005 @H.element("td", @sc.isadmin(user, g) ? admclass : nil){ | 3009 @H.element("td", @sc.isadmin(user, g) ? admclass : nil){ |
3006 g | 3010 g |
3030 memlist.delete(user) | 3034 memlist.delete(user) |
3031 memlist.unshift(user) | 3035 memlist.unshift(user) |
3032 end | 3036 end |
3033 memlist.collect{|u| | 3037 memlist.collect{|u| |
3034 @sc.nickname(u) + \ | 3038 @sc.nickname(u) + \ |
3035 ((u == user) ? ("("+@H.text("mail4-#{g}", memberp, 30, 80)+")") : "") | 3039 ((u == user) ? ("("+@H.text("mail4-#{g}", memberp, 30, 180)+")") : "") |
3036 }.join(", ") | 3040 }.join(", ") |
3037 } | 3041 } |
3038 } + \ | 3042 } + \ |
3039 @H.element("td"){ | 3043 @H.element("td"){ |
3040 @H.a(@myname+"?-listdraft+#{g}", msg('sendall')) | 3044 @H.a(@myname+"?-listdraft+#{g}", msg('sendall')) |
3156 actionmethod={'action'=>@myname+"?-newgroupsub", 'method'=>'POST'} | 3160 actionmethod={'action'=>@myname+"?-newgroupsub", 'method'=>'POST'} |
3157 end | 3161 end |
3158 | 3162 |
3159 userlist = ([user] + users()).uniq.sort | 3163 userlist = ([user] + users()).uniq.sort |
3160 myselfclass = {'class'=>'admin'} | 3164 myselfclass = {'class'=>'admin'} |
3165 yesclass = {'class' => 'yes'} | |
3161 colspan2 = {'colspan'=>'2'} | 3166 colspan2 = {'colspan'=>'2'} |
3162 colspan3 = {'colspan'=>'3'} | 3167 colspan3 = {'colspan'=>'3'} |
3163 warnclass = {'class'=>'warn'} | 3168 warnclass = {'class'=>'warn'} |
3164 warnp = nil | 3169 warnp = nil |
3165 | 3170 |
3202 end | 3207 end |
3203 else | 3208 else |
3204 memberp = adminp = (u == user) | 3209 memberp = adminp = (u == user) |
3205 end | 3210 end |
3206 @H.elementln("tr", (u==user ? myselfclass : nil)){ | 3211 @H.elementln("tr", (u==user ? myselfclass : nil)){ |
3207 @H.element("td"){ | 3212 @H.element("td", memberp && yesclass){ |
3208 @H.radio('mem-'+u, 'yes', 'YES / ', memberp) + \ | 3213 yes = memberp ? 'YES' : 'yes' |
3209 @H.radio('mem-'+u, 'no', 'NO', !memberp) | 3214 @H.radio('mem-'+u, 'yes', yes+' / ', memberp) + \ |
3215 @H.radio('mem-'+u, 'no', 'no', !memberp) | |
3210 } + \ | 3216 } + \ |
3211 @H.element("td"){ | 3217 @H.element("td"){ |
3212 @H.radio('adm-'+u, 'yes', 'Admin / ', adminp) + \ | 3218 @H.radio('adm-'+u, 'yes', 'Admin / ', adminp) + \ |
3213 @H.radio('adm-'+u, 'no', 'NO', !adminp) | 3219 @H.radio('adm-'+u, 'no', 'no', !adminp) |
3214 } + \ | 3220 } + \ |
3215 @H.element("td"){ | 3221 @H.element("td"){ |
3216 @H.element("abbr", "title"=>mailaddress(u)) { | 3222 @H.element("abbr", "title"=>mailaddress(u)) { |
3217 @sc.nickname(u) | 3223 @sc.nickname(u) |
3218 } + \ | 3224 } + \ |