junebug-wiki 0.0.31 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +5 -0
- data/RELEASE_NOTES.txt +7 -0
- data/deploy/public/style/base.css +7 -0
- data/lib/junebug/controllers.rb +37 -25
- data/lib/junebug/version.rb +1 -1
- data/lib/junebug/views.rb +7 -1
- data/test/test_wiki.rb +104 -41
- metadata +12 -8
data/History.txt
CHANGED
data/RELEASE_NOTES.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
= 0.0.32 2007-08-18
|
2
|
+
|
3
|
+
This release includes some css changes, so don't forget to rake update:everything
|
4
|
+
|
5
|
+
Read the updating page at http://www.junebugwiki.com/JunebugUpdating
|
6
|
+
|
7
|
+
|
1
8
|
= 0.0.28 2007-01-20
|
2
9
|
|
3
10
|
Existing users be sure to read the updating page at http://www.junebugwiki.com/JunebugUpdating
|
data/lib/junebug/controllers.rb
CHANGED
@@ -15,10 +15,14 @@ module Junebug::Controllers
|
|
15
15
|
|
16
16
|
class Show < R slug, slug('/(\d+)')
|
17
17
|
def get page_name, version = nil
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
@page = Page.find_by_title(page_name.gsub(/_/,' '))
|
19
|
+
if @page.nil?
|
20
|
+
logged_in? ? redirect(Edit, page_name, 1) : redirect("/login?return_to=#{CGI::escape(@env['REQUEST_URI'])}")
|
21
|
+
else
|
22
|
+
@page_title = @page.title
|
23
|
+
@version = (version.nil? or version == @page.version.to_s) ? @page : @page.versions.find_by_version(version)
|
24
|
+
render :show
|
25
|
+
end
|
22
26
|
end
|
23
27
|
end
|
24
28
|
|
@@ -29,13 +33,11 @@ module Junebug::Controllers
|
|
29
33
|
page_name_spc = page_name.gsub(/_/,' ')
|
30
34
|
@page = Page.find_by_title(page_name_spc)
|
31
35
|
if @page.nil?
|
32
|
-
|
33
|
-
@page = Page.new(:title=>page_name_spc, :body=>'') unless @page
|
36
|
+
@page = Page.new(:title=>page_name_spc, :body=>'')
|
34
37
|
else
|
35
38
|
# check for version request
|
36
39
|
@page = @page.versions.find_by_version(version) unless version.nil? or version == @page.version.to_s
|
37
40
|
end
|
38
|
-
@page_title = "Editing: #{page_name_spc}"
|
39
41
|
render :edit
|
40
42
|
end
|
41
43
|
|
@@ -43,27 +45,37 @@ module Junebug::Controllers
|
|
43
45
|
def post page_name
|
44
46
|
redirect("/login?return_to=#{CGI::escape(@env['REQUEST_URI'])}") and return unless logged_in?
|
45
47
|
page_name_spc = page_name.gsub(/_/,' ')
|
46
|
-
|
47
|
-
|
48
|
+
@page = Page.find_by_title(page_name_spc)
|
49
|
+
if input.submit == 'cancel'
|
50
|
+
@page ? redirect(Show, page_name) : redirect(Junebug.startpage)
|
51
|
+
else
|
52
|
+
attrs = { :body => input.post_body }
|
48
53
|
attrs[:readonly] = input.post_readonly if is_admin?
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
@page
|
54
|
+
if input.submit == 'minor edit'
|
55
|
+
current_version = @page.find_version(@page.version)
|
56
|
+
current_version.update_attributes(attrs)
|
57
|
+
@page.without_revision { @page.update_attributes(attrs) }
|
58
|
+
redirect Show, page_name_spc.gsub(/ /,'_') # don't allow pagename changes as minor edits
|
53
59
|
else
|
54
|
-
|
60
|
+
attrs[:title] = input.post_title
|
61
|
+
if input.submit == 'preview'
|
62
|
+
@show_preview = true
|
63
|
+
if @page
|
64
|
+
@page.attributes = attrs
|
65
|
+
else
|
66
|
+
@page = Page.new(attrs)
|
67
|
+
end
|
68
|
+
render :edit
|
69
|
+
elsif input.submit == 'save'
|
70
|
+
attrs[:user_id] = @state.user.id # don't set this until save
|
71
|
+
if @page
|
72
|
+
@page.update_attributes(attrs)
|
73
|
+
else
|
74
|
+
@page = Page.create(attrs)
|
75
|
+
end
|
76
|
+
redirect Show, input.post_title.gsub(/ /,'_')
|
77
|
+
end
|
55
78
|
end
|
56
|
-
redirect Show, input.post_title.gsub(/ /,'_')
|
57
|
-
elsif input.submit == 'minor edit'
|
58
|
-
attrs = { :body => input.post_body }
|
59
|
-
attrs[:readonly] = input.post_readonly if is_admin?
|
60
|
-
page = Page.find_by_title(page_name_spc)
|
61
|
-
current_version = page.find_version(page.version)
|
62
|
-
current_version.update_attributes(attrs)
|
63
|
-
page.without_revision { page.update_attributes(attrs) }
|
64
|
-
redirect Show, input.post_title.gsub(/ /,'_')
|
65
|
-
else # cancel
|
66
|
-
redirect Show, page_name
|
67
79
|
end
|
68
80
|
end
|
69
81
|
end
|
data/lib/junebug/version.rb
CHANGED
data/lib/junebug/views.rb
CHANGED
@@ -60,7 +60,12 @@ module Junebug::Views
|
|
60
60
|
def edit
|
61
61
|
_header :show
|
62
62
|
_body do
|
63
|
-
|
63
|
+
if @show_preview
|
64
|
+
div.preview {
|
65
|
+
h1 "#{@page.title}"
|
66
|
+
_markup @page.body
|
67
|
+
}
|
68
|
+
end
|
64
69
|
div.formbox {
|
65
70
|
form :method => 'post', :action => R(Edit, @page.title_url) do
|
66
71
|
p {
|
@@ -81,6 +86,7 @@ module Junebug::Views
|
|
81
86
|
input :type => 'submit', :name=>'submit', :value=>'minor edit', :class=>'button', :style=>'float: right;', :accesskey => 'm'
|
82
87
|
end
|
83
88
|
input :type => 'submit', :name=>'submit', :value=>'save', :class=>'button', :style=>'float: right;', :accesskey => 's'
|
89
|
+
input :type => 'submit', :name=>'submit', :value=>'preview', :class=>'button', :style=>'float: right;', :accesskey => 'p'
|
84
90
|
if is_admin?
|
85
91
|
opts = { :type => 'checkbox', :value=>'1', :name => 'post_readonly' }
|
86
92
|
opts[:checked] = 1 if @page.readonly
|
data/test/test_wiki.rb
CHANGED
@@ -35,17 +35,29 @@ class TestJunebug < Camping::FunctionalTest
|
|
35
35
|
assert_match_body /Слово сказано/
|
36
36
|
end
|
37
37
|
|
38
|
-
def
|
38
|
+
def test_login_basic
|
39
|
+
get '/Welcome_to_Junebug/edit'
|
40
|
+
assert_response :redirect
|
41
|
+
assert_redirected_to '/login'
|
42
|
+
|
39
43
|
post '/login', :username => 'admin', :password => 'password'
|
40
44
|
assert_response :redirect
|
41
45
|
assert_redirected_to '/Welcome_to_Junebug'
|
46
|
+
|
47
|
+
get '/Welcome_to_Junebug/edit'
|
48
|
+
assert_response :success
|
42
49
|
|
43
50
|
get '/logout'
|
44
51
|
assert_response :redirect
|
45
52
|
assert_redirected_to '/Welcome_to_Junebug'
|
53
|
+
|
54
|
+
get '/Welcome_to_Junebug/edit'
|
55
|
+
assert_response :redirect
|
56
|
+
assert_redirected_to '/login'
|
46
57
|
end
|
47
58
|
|
48
59
|
def test_required_login
|
60
|
+
# existing pages
|
49
61
|
get '/Welcome_to_Junebug/edit'
|
50
62
|
assert_response :redirect
|
51
63
|
assert_redirected_to '/login'
|
@@ -61,10 +73,27 @@ class TestJunebug < Camping::FunctionalTest
|
|
61
73
|
get '/Welcome_to_Junebug/1/revert'
|
62
74
|
assert_response :redirect
|
63
75
|
assert_redirected_to '/login'
|
76
|
+
|
77
|
+
# page creation
|
78
|
+
get '/NonexistentPage/edit'
|
79
|
+
assert_response :redirect
|
80
|
+
assert_redirected_to '/login'
|
81
|
+
|
82
|
+
get '/NonexistentPage/1/edit'
|
83
|
+
assert_response :redirect
|
84
|
+
assert_redirected_to '/login'
|
85
|
+
|
86
|
+
get '/NonexistentPage/delete'
|
87
|
+
assert_response :redirect
|
88
|
+
assert_redirected_to '/login'
|
89
|
+
|
90
|
+
get '/NonexistentPage/1/revert'
|
91
|
+
assert_response :redirect
|
92
|
+
assert_redirected_to '/login'
|
64
93
|
end
|
65
94
|
|
66
|
-
def
|
67
|
-
get '/
|
95
|
+
def test_page_editing
|
96
|
+
get '/TestPage1'
|
68
97
|
assert_response :redirect
|
69
98
|
assert_redirected_to '/login'
|
70
99
|
|
@@ -72,40 +101,60 @@ class TestJunebug < Camping::FunctionalTest
|
|
72
101
|
assert_response :redirect
|
73
102
|
assert_redirected_to '/Welcome_to_Junebug'
|
74
103
|
|
75
|
-
get '/
|
104
|
+
get '/TestPage1/edit'
|
76
105
|
assert_response :success
|
77
106
|
|
78
|
-
|
79
|
-
|
107
|
+
# create page
|
108
|
+
post "/TestPage1/edit", :post_title=>"TestPage1", :post_body=>"test body", :post_readonly=>"0", :submit=>'save'
|
109
|
+
assert_response :redirect
|
110
|
+
assert_redirected_to "/TestPage1"
|
80
111
|
|
81
|
-
|
82
|
-
|
112
|
+
page = Junebug::Models::Page.find_by_title("TestPage1")
|
113
|
+
|
114
|
+
assert_equal "TestPage1", page.title
|
115
|
+
assert_equal "test body", page.body
|
116
|
+
assert_equal 1, page.user_id
|
117
|
+
assert_equal false, page.readonly
|
118
|
+
assert_equal 1, page.version
|
119
|
+
|
120
|
+
# edit, nochange
|
121
|
+
post "/TestPage1/edit", :post_title=>page.title, :post_body=>page.body, :post_readonly=>page.readonly, :submit=>'save'
|
83
122
|
assert_response :redirect
|
84
|
-
assert_redirected_to "
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
assert_equal
|
89
|
-
assert_equal
|
90
|
-
assert_equal
|
91
|
-
|
92
|
-
|
93
|
-
page = Junebug::Models::Page.find_by_title(pagename)
|
123
|
+
assert_redirected_to "/TestPage1"
|
124
|
+
|
125
|
+
page2 = Junebug::Models::Page.find_by_title("TestPage1")
|
126
|
+
|
127
|
+
assert_equal "TestPage1", page2.title
|
128
|
+
assert_equal "test body", page2.body
|
129
|
+
assert_equal 1, page2.user_id
|
130
|
+
assert_equal false, page2.readonly
|
131
|
+
assert_equal 2, page2.version
|
94
132
|
|
95
133
|
# submit edited title and body
|
96
|
-
post "
|
134
|
+
post "/TestPage1/edit", :post_title=>'TestPage1xx', :post_body=>'test body xx', :post_readonly=>"0", :submit=>'save'
|
135
|
+
assert_response :redirect
|
136
|
+
assert_redirected_to "/TestPage1xx"
|
137
|
+
|
138
|
+
page3 = Junebug::Models::Page.find_by_title('TestPage1xx')
|
139
|
+
|
140
|
+
assert_equal "TestPage1xx", page3.title
|
141
|
+
assert_equal "test body xx", page3.body
|
142
|
+
assert_equal 1, page3.user_id
|
143
|
+
assert_equal false, page3.readonly
|
144
|
+
assert_equal 3, page3.version
|
145
|
+
|
146
|
+
# submit minor edit
|
147
|
+
post "/TestPage1xx/edit", :post_title=>"TestPage1yy", :post_body=>'test body yy', :post_readonly=>"0", :submit=>'minor edit'
|
97
148
|
assert_response :redirect
|
98
|
-
assert_redirected_to "
|
99
|
-
page2 = Junebug::Models::Page.find_by_title(page.title+'2')
|
100
|
-
assert_equal page.title+'2', page2.title
|
101
|
-
assert_equal page.body+'2', page2.body
|
102
|
-
assert_equal page.user_id, page2.user_id
|
103
|
-
assert_equal page.readonly, page2.readonly
|
104
|
-
assert_equal page.version+1, page2.version
|
149
|
+
assert_redirected_to "/TestPage1xx" # not allowed to change the title in minor edit
|
105
150
|
|
106
|
-
|
107
|
-
post "/#{page2.title_url}/edit", :post_title=>page.title, :post_body=>page.body, :post_readonly=>page.readonly, :submit=>'save'
|
151
|
+
page4 = Junebug::Models::Page.find_by_title('TestPage1xx')
|
108
152
|
|
153
|
+
assert_equal "TestPage1xx", page4.title
|
154
|
+
assert_equal "test body yy", page4.body
|
155
|
+
assert_equal 1, page4.user_id
|
156
|
+
assert_equal false, page4.readonly
|
157
|
+
assert_equal 3, page4.version # version doesn't change
|
109
158
|
end
|
110
159
|
|
111
160
|
|
@@ -148,19 +197,19 @@ class TestPage < Camping::UnitTest
|
|
148
197
|
end
|
149
198
|
|
150
199
|
def test_valid_title
|
151
|
-
page = create(:title => '
|
200
|
+
page = create(:title => 'TestPage3')
|
152
201
|
assert page.valid?
|
153
202
|
|
154
|
-
page = create(:title => 'Test
|
203
|
+
page = create(:title => 'Test Page3')
|
155
204
|
assert page.valid?
|
156
205
|
|
157
|
-
page = create(:title => 'Test-
|
206
|
+
page = create(:title => 'Test-Page3')
|
158
207
|
assert page.valid?
|
159
208
|
|
160
|
-
page = create(:title => 'test
|
209
|
+
page = create(:title => 'test page3')
|
161
210
|
assert page.valid?
|
162
211
|
|
163
|
-
page = create(:title => '
|
212
|
+
page = create(:title => 'test3')
|
164
213
|
assert page.valid?
|
165
214
|
|
166
215
|
page = create(:title => 't')
|
@@ -215,25 +264,39 @@ class TestPage < Camping::UnitTest
|
|
215
264
|
end
|
216
265
|
|
217
266
|
def test_spaces
|
218
|
-
page1 = create(:title => '
|
267
|
+
page1 = create(:title => 'TestTitle51')
|
219
268
|
assert page1.valid?
|
220
|
-
assert_equal '
|
269
|
+
assert_equal 'TestTitle51', page1.title
|
221
270
|
|
222
271
|
# test strip
|
223
|
-
page1 = create(:title => '
|
272
|
+
page1 = create(:title => ' TestTitle52 ')
|
224
273
|
assert page1.valid?
|
225
|
-
assert_equal '
|
274
|
+
assert_equal 'TestTitle52', page1.title
|
226
275
|
|
227
|
-
page1 = create(:title => ' Test Title
|
276
|
+
page1 = create(:title => ' Test Title 53 ')
|
228
277
|
assert page1.valid?
|
229
|
-
assert_equal 'Test Title
|
278
|
+
assert_equal 'Test Title 53', page1.title
|
230
279
|
|
231
280
|
# test squeeze
|
232
|
-
page1 = create(:title => ' Test Title
|
281
|
+
page1 = create(:title => ' Test Title 54 ')
|
233
282
|
assert page1.valid?
|
234
|
-
assert_equal 'Test Title
|
283
|
+
assert_equal 'Test Title 54', page1.title
|
235
284
|
end
|
236
285
|
|
286
|
+
def test_basic_update
|
287
|
+
# create test page
|
288
|
+
page = create(:title => "TestUpdate")
|
289
|
+
assert page.valid?
|
290
|
+
assert_equal 1, page.version
|
291
|
+
|
292
|
+
# update body
|
293
|
+
page.body = "New body"
|
294
|
+
page.save
|
295
|
+
assert page.valid?
|
296
|
+
assert_equal "TestUpdate", page.title
|
297
|
+
assert_equal "New body", page.body
|
298
|
+
assert_equal 2, page.version
|
299
|
+
end
|
237
300
|
|
238
301
|
private
|
239
302
|
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.4
|
3
3
|
specification_version: 1
|
4
4
|
name: junebug-wiki
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.0.32
|
7
|
+
date: 2007-08-18 00:00:00 -07:00
|
8
8
|
summary: Junebug is a minimalist ruby wiki running on Camping.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -71,10 +71,14 @@ files:
|
|
71
71
|
- test/test_wiki.rb
|
72
72
|
test_files: []
|
73
73
|
|
74
|
-
rdoc_options:
|
75
|
-
|
76
|
-
|
77
|
-
|
74
|
+
rdoc_options:
|
75
|
+
- --main
|
76
|
+
- README.txt
|
77
|
+
extra_rdoc_files:
|
78
|
+
- History.txt
|
79
|
+
- Manifest.txt
|
80
|
+
- README.txt
|
81
|
+
- RELEASE_NOTES.txt
|
78
82
|
executables:
|
79
83
|
- junebug
|
80
84
|
extensions: []
|
@@ -134,5 +138,5 @@ dependencies:
|
|
134
138
|
requirements:
|
135
139
|
- - ">="
|
136
140
|
- !ruby/object:Gem::Version
|
137
|
-
version: 1.
|
141
|
+
version: 1.3.0
|
138
142
|
version:
|