Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Comment: | One list_box and calendar nav as per website (WIP!)
* Mainly due to the bug in the MinGW version of Shoes, which only |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
9bb433e5de4a63ac26f14ff63f775bb0 |
User & Date: | i5ivem@gmail.com 2010-04-22 15:52:51 |
2010-04-23
| ||
13:50 | Fix layout again Leaf check-in: 87dd659f52 user: i5ivem@gmail.com tags: trunk, v0.0.1 | |
2010-04-22
| ||
15:52 |
One list_box and calendar nav as per website (WIP!)
* Mainly due to the bug in the MinGW version of Shoes, which only | |
2010-04-15
| ||
15:59 |
Fix rendering of mailpane when new calendar
* Removed commented out old code | |
Changes to shoefiti.rb.
1 2 3 4 5 6 | require 'rubygems' require 'date' require 'json' Shoes.app :title => "Shoefiti - Librelist Browser", :height => 700, :scroll => false do | > | | > | > > | | > > > | > | > | | | > > | > | > | < < | | > > > > > > > | | > | < < | | > | > > | | | | > > > | > | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | require 'rubygems' require 'date' require 'json' Shoes.app :title => "Shoefiti - Librelist Browser", :height => 700, :scroll => false do URL = "http://librelist.com/archives/" #Try doing single list box owing to list_box troubles on shoes MinGW #More closely mimics the web interface @stack_list = stack :margin => 10 do @list_list = list_box do |list| @list = list.text download(URL+@list) do |resp| @year = eval(resp.response.body)[1][-1].to_i debug(@year) download(URL+@list+@year.to_s) do |resp| @month = eval(resp.response.body)[1][-1].to_i debug(@month) download(URL+@list+@year.to_s+"/"+(0 if @month < 10).to_s+@month.to_s) do |resp| @days = eval(resp.response.body)[1] debug(@days) @when.replace(@month.to_s, " ", @year.to_s) drawcalendar(@list, @year, @month, @days) end end end end end def changemonth(direction) if direction == :backward if @month == 1 #tempting to do "12/".next but no corresponding previous @year -= 1 @month = 12 else @month -= 1 end end if direction == :forward if @month == 12 @year += 1 @month = 1 else @month += 1 end end debug(@year) debug(@month) download(URL+@list+@year.to_s+"/"+(0 if @month < 10).to_s+@month.to_s) do |resp| @days = eval(resp.response.body)[1] debug(@days) #@stack_cal.show #@stack_cal_nav.show @when.replace(@month.to_s, " ", @year.to_s) drawcalendar(@list, @year, @month, @days) end end #Need to be careful not to get months that don't exist (think ok back in time, within reason??) def init download(URL) do |resp| @list_list.items = eval(resp.response.body)[1] @stack_list.show end end #Need to clear and redraw like mailpane def drawcalendar(list, year, month, maildays) debug("Where's the calendar?") off=Date.new(year, month, 01).wday-1 #Offset, can't remember why I need the -1 here, but I do. mdays=(Date.new(year, 12, 31) << (12-month)).day #Days in the month rows=((mdays+off+1).to_f/7.0).ceil #Number of rows in calendar, plus 1 to compensate for -1 above. Have confused myself days = %w{Su Mo Tu We Th Fr Sa} @messagelist.clear @stack_cal.clear{ days.each do |column| i = days.index(column) row = 0 stack :left => i*40+250, :top => -30 do para column until row == rows do calday = i-off+7*row if (1..mdays) === calday #Only want to draw if greater than zero and less than max days if calday.to_s.length == 1 caldaystr = "0"+calday.to_s #need "0" in front of single digits else |
︙ | ︙ | |||
89 90 91 92 93 94 95 | link(day){getmails(list, year, month, day)} end def getmails(list, year, month, day) #need to fix months and days here, ie 0 on front. if month.to_s.length == 1 | | | 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | link(day){getmails(list, year, month, day)} end def getmails(list, year, month, day) #need to fix months and days here, ie 0 on front. if month.to_s.length == 1 month = "0"+month.to_s #Mr. Consistent. Done differently from the urls! else month = month.to_s end if day.to_s.length == 1 day = "0"+day.to_s else day = day.to_s |
︙ | ︙ | |||
129 130 131 132 133 134 135 | end end end} end end | < < < | < | | > > > > > > > > | > > > < > > > | 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | end end end} end end #Actual app stuff @listurl = "" @stack_cal_nav = stack do button "<" do changemonth(:backward) end @when = para "When" button ">" do changemonth(:forward) end end @stack_cal = stack do para "Calendar" end init @messagelist = stack :height => 425, :scroll => true #@stack_cal.hide #@stack_cal_nav.hide end |