shoefiti

Check-in [87dd659f52]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix layout again
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | v0.0.1
Files: files | file ages | folders
SHA3-256: 87dd659f52a3754416218f985e19c480bd13a273fea82f43f9fdb6bc8e7cfeeb
User & Date: i5ivem@gmail.com 2010-04-23 13:50:32
Context
2011-08-03
13:11
First tentative steps towards porting to Green Shoes

I.e. doesnt currently work. Launches a brief window
but crashes from view instantly.
Lots of things don't work and will need changing:

* Seems like widths/heights need to be changed from
percentages to decimal
* Threading doesn't seem to work. At least not mine
* Definite issues using clear{...}
* Can't use debug(), just use "puts" instead Leaf check-in: 390ac16b92 user: i5ivem@gmail.com tags: origin/green, trunk

2010-04-29
16:13
WIP! Start using Class for emails, drawing/layout broken

* Have started developing a class for the emails
* Although it still works-ish the layout is a bit broken again
such as the message list now resulting in the whole window scrolling
also message list is not being drawn properly
* Likely due to the class cuasing shoes objects to be out of scope, etc
Need to read and understand Shoes rules. check-in: c732c2af6c user: i5ivem@gmail.com tags: master, trunk

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
allows one list_box, I've moved to having one list_box for list
selection. The most recent year and month are fetched and the
calendar drawn for that.
* Use forward and back buttons, as per the Librelist website to
move the calendar forward and back.
* Work in progress! check-in: 9bb433e5de user: i5ivem@gmail.com tags: trunk

Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to shoefiti.rb.

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
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






<

<
<
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







1
2
3
4
5
6

7



8




















9
10
11
12
13
14
15
require 'rubygems'
require 'date'
require 'json'

Shoes.app :title => "Shoefiti - Librelist Browser", :height => 700, :scroll => false do
	





	#Need to be careful not to get months that don't exist (think ok back in time, within reason??)




















	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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
			#@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







<
<
<
<







31
32
33
34
35
36
37




38
39
40
41
42
43
44
			#@stack_cal.show
			#@stack_cal_nav.show
			@when.replace(@month.to_s, " ", @year.to_s)
			drawcalendar(@list, @year, @month, @days)
		end
	end
	




		
	def init
		download(URL) do |resp|
			@list_list.items = eval(resp.response.body)[1]
			@stack_list.show
		end
	end
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
		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







|







52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
		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, :top => 10 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
151
152
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
	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







|

|
>
|
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
<
|
|
|
|
|
>
|
|
|
|
|
<
<
|
|
|
|

|
<


123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
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
						end
					}
				end
			end
			end}
		end
	end
	
	
	#Actual app stuff
	URL = "http://librelist.com/archives/"

	#Try doing single list box owing to list_box troubles on shoes MinGW
	#More closely mimics the web interface
	flow :width => "100%" do
		stack :width => "40%" do 
			@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
			@listurl = ""

			@stack_cal_nav = stack :margin => 10 do
				button "<" do
					changemonth(:backward)
				end
				@when = para " "
				@when.style :margin => 10
				button ">" do
					changemonth(:forward)
				end
			end
		end


		@stack_cal = stack :width => "60%" do
			para " "
		end
	end
	@messagelist = stack :height => 425, :scroll => true 
	init 	


end