Wiki2Go 1.16.1 → 1.17.0
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/lib/Web2Go/CGIRequest.rb +40 -8
- data/lib/Web2Go/MockRequest.rb +11 -2
- data/lib/Web2Go/WebrickRequest.rb +4 -0
- data/lib/Wiki2Go/DotGraphics.rb +1 -1
- data/lib/Wiki2Go/Install/config/chonqed_blacklist.txt +1537 -13
- data/lib/Wiki2Go/Install/config/mime.types.conf +49 -0
- data/lib/Wiki2Go/Install/config/passwords +1 -1
- data/lib/Wiki2Go/Install/make_repository.rb +3 -2
- data/lib/Wiki2Go/Install/make_site.rb +222 -19
- data/lib/Wiki2Go/Install/site/error.html +52 -52
- data/lib/Wiki2Go/Install/templates/admin_pages/commit_site.txt +5 -1
- data/lib/Wiki2Go/Install/templates/admin_pages/edit.txt +8 -2
- data/lib/Wiki2Go/Install/templates/admin_pages/editfiles.txt +52 -7
- data/lib/Wiki2Go/Install/templates/admin_pages/greylist.txt +6 -3
- data/lib/Wiki2Go/Install/templates/admin_pages/passwords.txt +5 -2
- data/lib/Wiki2Go/Install/templates/admin_pages/regenerate.txt +4 -1
- data/lib/Wiki2Go/Install/templates/admin_pages/removespam.txt +4 -1
- data/lib/Wiki2Go/Install/templates/admin_pages/show_log.txt +5 -1
- data/lib/Wiki2Go/Install/templates/admin_pages/update_blacklist.txt +4 -1
- data/lib/Wiki2Go/Install/templates/admin_pages/update_conflicts.txt +4 -1
- data/lib/Wiki2Go/Install/templates/admin_pages/update_site.txt +5 -1
- data/lib/Wiki2Go/Install/templates/full_footer.htm +2 -2
- data/lib/Wiki2Go/Install/templates/simple_footer.htm +1 -1
- data/lib/Wiki2Go/LineFormatter.rb +41 -31
- data/lib/Wiki2Go/Web.rb +1 -22
- data/lib/Wiki2Go/Wiki2GoServlet.rb +11 -4
- data/test/TestFormatter.rb +11 -11
- data/test/TestLineFormatter.rb +37 -37
- data/test/TestRepositoryMaker.rb +1 -1
- data/test/TestWeb.rb +3 -4
- data/test/TestWeb2Go.rb +5 -6
- data/test/TestWiki2GoServlet.rb +95 -74
- data/test/testdata/expected_edit.html +10 -10
- data/test/testdata/expected_out.html +22 -22
- data/test/testdata/expected_put.html +10 -10
- data/test/testdata/expected_save.html +11 -11
- data/test/testdata/expected_savehtml.html +11 -11
- data/test/testdata/expected_search.html +8 -8
- data/test/testdata/expected_upload.html +11 -11
- data/test/testdata/expected_view.html +22 -22
- metadata +3 -2
@@ -1,33 +1,78 @@
|
|
1
1
|
<%
|
2
|
+
require 'Wiki2Go/WikiFormatter'
|
3
|
+
|
4
|
+
@formatter = Wiki2Go::Formatter.new(@web,@config.storage,@config,true,@config.editable?(@web))
|
5
|
+
|
6
|
+
def show_directory(dirname,label)
|
7
|
+
"<a href=\"#{ @formatter.make_verb_url('admin','editfiles')}?dir=#{CGI::escape(dirname)}\">>#{label}</a>"
|
8
|
+
end
|
2
9
|
|
3
|
-
def
|
4
|
-
"<a href=\"#{
|
10
|
+
def up_directory(dirname)
|
11
|
+
"<a href=\"#{ @formatter.make_verb_url('admin','editfiles')}?dir=#{CGI::escape(dirname)}\">..</a>"
|
12
|
+
end
|
13
|
+
|
14
|
+
def edit_file(filename,label)
|
15
|
+
"<a href=\"#{ @formatter.make_verb_url('admin','edit')}?file=#{CGI::escape(filename)}\">#{label}</a>"
|
5
16
|
end
|
6
17
|
%>
|
7
18
|
|
8
19
|
<%
|
9
20
|
all_files = []
|
10
21
|
|
11
|
-
|
12
|
-
|
22
|
+
dir = @request.parameter('dir','')
|
23
|
+
|
24
|
+
Dir.chdir(File.join(@config.root_directory,dir))
|
13
25
|
|
14
|
-
|
15
|
-
|
26
|
+
if dir.length > 0 then
|
27
|
+
up = File.expand_path(File.join('..'))
|
28
|
+
up = up[@config.root_directory.length,up.length-@config.root_directory.length]
|
29
|
+
else
|
30
|
+
up = nil
|
31
|
+
end
|
32
|
+
|
33
|
+
files = Dir.glob('*')
|
34
|
+
|
35
|
+
all_files = files.reject do |name|
|
36
|
+
File.directory?(name) ||
|
16
37
|
name =~ /\.png$/ || name =~ /\.jpg$/ || name =~ /\.gif$/ || name =~ /\.pdf$/ || name =~ /\.xls$/
|
17
38
|
end
|
39
|
+
all_files = all_files.sort
|
40
|
+
|
41
|
+
directories = files.reject do |name|
|
42
|
+
name =~ /CVS/ || !File.directory?(name)
|
43
|
+
end
|
18
44
|
|
45
|
+
directories = directories.sort
|
46
|
+
|
19
47
|
odd = false
|
20
48
|
%>
|
21
49
|
|
22
50
|
<h3>Site files</h3>
|
23
51
|
|
52
|
+
<h4><%= dir %></h4>
|
53
|
+
<table class="topiclist">
|
54
|
+
<%
|
55
|
+
if !up.nil? then
|
56
|
+
%>
|
57
|
+
<tr class="odd"><td><%= up_directory(up) %></td></tr>
|
58
|
+
<%
|
59
|
+
end
|
60
|
+
%>
|
61
|
+
<% directories.each do |directory|
|
62
|
+
style = (odd ? "odd" : "even")
|
63
|
+
odd = !odd
|
64
|
+
%>
|
65
|
+
<tr class="<%= style%>"><td><%= show_directory(File.join(dir,directory),directory) %></td></tr>
|
66
|
+
<% end %>
|
67
|
+
</table>
|
68
|
+
|
24
69
|
<% if all_files.length > 0 then %>
|
25
70
|
<table class="topiclist">
|
26
71
|
<% all_files.each do |file|
|
27
72
|
style = (odd ? "odd" : "even")
|
28
73
|
odd = !odd
|
29
74
|
%>
|
30
|
-
<tr class="<%= style%>"><td><%= edit_file(file) %></td></tr>
|
75
|
+
<tr class="<%= style%>"><td><%= edit_file(File.join(dir,file),file) %></td></tr>
|
31
76
|
<% end %>
|
32
77
|
</table>
|
33
78
|
<% end %>
|
@@ -1,5 +1,8 @@
|
|
1
1
|
<%
|
2
|
-
require 'Wiki2Go/SpamFilter'
|
2
|
+
require 'Wiki2Go/SpamFilter'
|
3
|
+
require 'Wiki2Go/WikiFormatter'
|
4
|
+
|
5
|
+
formatter = Wiki2Go::Formatter.new(@web,@config.storage,@config,true,@config.editable?(@web))
|
3
6
|
|
4
7
|
spamfilter = Wiki2Go::SpamFilter.new(@config)
|
5
8
|
|
@@ -36,14 +39,14 @@ supects = spamfilter.greylist_suspects
|
|
36
39
|
<td><%= name%></td>
|
37
40
|
<td><a href="<%= clean_url %>" target="_blank"><%= clean_url %></a></td>
|
38
41
|
<td>
|
39
|
-
<form action="<%=
|
42
|
+
<form action="<%= formatter.make_verb_url('admin','greylist')%>" method="GET">
|
40
43
|
<input type="submit" name="accept" value="Accept">
|
41
44
|
<input type="hidden" name="author" value="<%= name %>">
|
42
45
|
<input type="hidden" name="url" value="<%= clean_url %>">
|
43
46
|
</form>
|
44
47
|
</td>
|
45
48
|
<td>
|
46
|
-
<form action="<%=
|
49
|
+
<form action="<%= formatter.make_verb_url('admin','greylist')%>" method="GET">
|
47
50
|
<input type="hidden" name="author" value="<%= name %>">
|
48
51
|
<input type="hidden" name="url" value="<%= clean_url %>">
|
49
52
|
<input type="submit" name="blacklist" value="Blacklist">
|
@@ -1,4 +1,7 @@
|
|
1
1
|
<%
|
2
|
+
require 'Wiki2Go/WikiFormatter'
|
3
|
+
|
4
|
+
formatter = Wiki2Go::Formatter.new(@web,@config.storage,@config,true,@config.editable?(@web))
|
2
5
|
|
3
6
|
passwords = File.join(@config.root_directory,'config','passwords')
|
4
7
|
exists = File.exists?(passwords)
|
@@ -50,7 +53,7 @@ end
|
|
50
53
|
%>
|
51
54
|
<tr class="<%= style%>"><td><%= name%></td><td><%= pwd %></td>
|
52
55
|
<td>
|
53
|
-
<form action="<%=
|
56
|
+
<form action="<%= formatter.make_verb_url('admin','passwords')%>" method="GET">
|
54
57
|
<input type="submit" name="remove" value="Delete">
|
55
58
|
<input type="hidden" name="user" value="<%= name %>">
|
56
59
|
</form>
|
@@ -58,7 +61,7 @@ end
|
|
58
61
|
</tr>
|
59
62
|
<% end %>
|
60
63
|
</table>
|
61
|
-
<form action="<%=
|
64
|
+
<form action="<%= formatter.make_verb_url('admin','passwords')%>" method="GET">
|
62
65
|
<table>
|
63
66
|
<tr><td>Name</td><td><input name="user" value="<%= user %>"></td></tr>
|
64
67
|
<tr><td>Password</td><td><input name="password" value="<%= user_pwd %>"></td></tr>
|
@@ -1,5 +1,8 @@
|
|
1
1
|
<%
|
2
2
|
require 'Wiki2Go/Wiki2Go'
|
3
|
+
require 'Wiki2Go/WikiFormatter'
|
4
|
+
|
5
|
+
formatter = Wiki2Go::Formatter.new(@web,@config.storage,@config,true,@config.editable?(@web))
|
3
6
|
|
4
7
|
output = ''
|
5
8
|
subwiki = @request.params['wiki']
|
@@ -20,7 +23,7 @@
|
|
20
23
|
%>
|
21
24
|
<ul>
|
22
25
|
<% subwikis.each do |subwiki| %>
|
23
|
-
<li><a href="<%=
|
26
|
+
<li><a href="<%= formatter.make_verb_url('admin','regenerate') %>?wiki=<%= subwiki %>">Generate static HTML for '<%= (subwiki.empty? ? '<whole site>' : subwiki) %>'</a>
|
24
27
|
<% end %>
|
25
28
|
</ul>
|
26
29
|
<hr>
|
@@ -1,4 +1,7 @@
|
|
1
1
|
<%
|
2
|
+
require 'Wiki2Go/WikiFormatter'
|
3
|
+
|
4
|
+
formatter = Wiki2Go::Formatter.new(@web,@config.storage,@config,true,@config.editable?(@web))
|
2
5
|
|
3
6
|
username = ''
|
4
7
|
bad_user = @request.params['bad_user']
|
@@ -11,7 +14,7 @@ end
|
|
11
14
|
<% if username.length > 0 then %>
|
12
15
|
Remove spam added by <%= username %>
|
13
16
|
<% end %>
|
14
|
-
<form action="<%=
|
17
|
+
<form action="<%= formatter.make_verb_url('admin','removespam')%>" method="GET">
|
15
18
|
<table>
|
16
19
|
<tr><td>Name</td><td><input name="bad_user" value="<%= username%>"></td></tr>
|
17
20
|
<tr><td colspan=2><input type="submit" name="Erase" value="Erase"></td></tr>
|
@@ -1,4 +1,8 @@
|
|
1
1
|
<%
|
2
|
+
require 'Wiki2Go/WikiFormatter'
|
3
|
+
|
4
|
+
formatter = Wiki2Go::Formatter.new(@web,@config.storage,@config,true,@config.editable?(@web))
|
5
|
+
|
2
6
|
output = ''
|
3
7
|
|
4
8
|
doit = @request.parameter('show',nil)
|
@@ -12,7 +16,7 @@
|
|
12
16
|
%>
|
13
17
|
|
14
18
|
<h3>View log</h3>
|
15
|
-
<form action="<%=
|
19
|
+
<form action="<%= formatter.make_verb_url('admin','show_log')%>" method="get">
|
16
20
|
<button type="submit" name="show" value="show">
|
17
21
|
Show logfile
|
18
22
|
</button>
|
@@ -1,6 +1,9 @@
|
|
1
1
|
<%
|
2
2
|
require 'Wiki2Go/SpamFilter'
|
3
3
|
require 'cgi'
|
4
|
+
require 'Wiki2Go/WikiFormatter'
|
5
|
+
|
6
|
+
formatter = Wiki2Go::Formatter.new(@web,@config.storage,@config,true,@config.editable?(@web))
|
4
7
|
|
5
8
|
output = ''
|
6
9
|
doit = @request.parameter('update',nil)
|
@@ -11,7 +14,7 @@
|
|
11
14
|
end
|
12
15
|
%>
|
13
16
|
<h3>Download the blacklist from http://blacklist.chongqed.org/index.html</h3>
|
14
|
-
<form action="<%=
|
17
|
+
<form action="<%= formatter.make_verb_url('admin','update_blacklist')%>" method="get">
|
15
18
|
<input type="submit" name="update" value="Download">
|
16
19
|
</form>
|
17
20
|
<%= CGI::escapeHTML(output).gsub(/\n/,'<br>') %>
|
@@ -1,7 +1,10 @@
|
|
1
1
|
<%
|
2
|
+
require 'Wiki2Go/WikiFormatter'
|
3
|
+
|
4
|
+
formatter = Wiki2Go::Formatter.new(@web,@config.storage,@config,true,@config.editable?(@web))
|
2
5
|
|
3
6
|
def edit_file(filename)
|
4
|
-
"<a href=\"#{
|
7
|
+
"<a href=\"#{ formatter.make_verb_url('admin','edit')}?file=#{CGI::escape(filename)}\">#{filename}</a>"
|
5
8
|
end
|
6
9
|
|
7
10
|
def contains_conflict_marker(name)
|
@@ -1,4 +1,8 @@
|
|
1
1
|
<%
|
2
|
+
require 'Wiki2Go/WikiFormatter'
|
3
|
+
|
4
|
+
formatter = Wiki2Go::Formatter.new(@web,@config.storage,@config,true,@config.editable?(@web))
|
5
|
+
|
2
6
|
output = ''
|
3
7
|
|
4
8
|
doit = @request.parameter('update',nil)
|
@@ -18,7 +22,7 @@
|
|
18
22
|
%>
|
19
23
|
|
20
24
|
<h3>Update Site</h3>
|
21
|
-
<form action="<%=
|
25
|
+
<form action="<%= formatter.make_verb_url('admin','update_site')%>" method="get">
|
22
26
|
<button type="submit" name="update" value="update">
|
23
27
|
Update the site from repository
|
24
28
|
</button>
|
@@ -23,12 +23,12 @@
|
|
23
23
|
</TR>
|
24
24
|
<TR>
|
25
25
|
<td>Changed on <%= current.page.lastmodified.strftime("%d/%m/%Y") %> by <%= current.page.alias%>
|
26
|
-
<a href="<%= current.format.resource_url('rss.xml')%>"><img src="html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
|
26
|
+
<a href="<%= current.format.resource_url('rss.xml')%>"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
|
27
27
|
</td>
|
28
28
|
<TD align="right">
|
29
29
|
Contact the site administrator: <%= current.format.encodeMailTo(current.config.site_admin) %>
|
30
30
|
<a target="_blank" href="http://validator.w3.org/check?uri=<%= current.format.absolute_url %>">
|
31
|
-
<img border="0" src="html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
|
31
|
+
<img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
|
32
32
|
</TD>
|
33
33
|
</TR>
|
34
34
|
</TABLE>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
</TD>
|
9
9
|
</TR>
|
10
10
|
<TR>
|
11
|
-
<td><a href="<%= current.format.resource_url('rss.xml')%>"><img src="html/rssLogo.png" width="36" height="14" border="0" alt="Keep informed"></a></td>
|
11
|
+
<td><a href="<%= current.format.resource_url('rss.xml')%>"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep informed"></a></td>
|
12
12
|
<TD align="right">
|
13
13
|
Contact the site administrator: <%= current.format.encodeMailTo(current.config.site_admin) %>
|
14
14
|
</TD>
|
@@ -41,16 +41,37 @@ module Wiki2Go
|
|
41
41
|
|
42
42
|
def formatting_done
|
43
43
|
emit_bullets
|
44
|
-
|
44
|
+
result =@pre_line
|
45
|
+
@pre_line = ''
|
46
|
+
result
|
47
|
+
end
|
48
|
+
|
49
|
+
# Return the path to the script verb, with the right extension and parameters
|
50
|
+
# * verb = name of the verb (view, edit,...)
|
51
|
+
# * parameters = further parameters: web.name, web.current_page, ...
|
52
|
+
def make_verb_url(verb,*parameters)
|
53
|
+
make_url(@web.script_prefix,verb + @web.script_extension,*parameters)
|
45
54
|
end
|
46
55
|
|
56
|
+
# Return the path to the given resource. Nil and empty parameters are ignored
|
57
|
+
# The generated url is relative to the root of the site
|
58
|
+
def make_url(*parameters)
|
59
|
+
result = @web.subsite.empty? ? '' : ('/' + @web.subsite)
|
60
|
+
parameters.each do |name|
|
61
|
+
if !name.nil? and !name.empty? then
|
62
|
+
result += '/'
|
63
|
+
result += name
|
64
|
+
end
|
65
|
+
end
|
66
|
+
result.squeeze('/')
|
67
|
+
end
|
47
68
|
|
48
69
|
def absolute_url
|
49
|
-
|
70
|
+
absolute_url_of_topic(@web.current_page)
|
50
71
|
end
|
51
72
|
|
52
73
|
def absolute_url_of_topic(topic)
|
53
|
-
return @web.base_url + view_page_url(@web.name,topic)
|
74
|
+
return @web.base_url.chop + view_page_url(@web.name,topic)
|
54
75
|
end
|
55
76
|
|
56
77
|
def edit_link(subwiki,page,name)
|
@@ -63,7 +84,7 @@ module Wiki2Go
|
|
63
84
|
|
64
85
|
def edit_this_link(subwiki,page,name)
|
65
86
|
if @editable then
|
66
|
-
return "<a href=\"#{
|
87
|
+
return "<a href=\"#{make_verb_url('edit',subwiki,page)}\">#{name}</a>"
|
67
88
|
else
|
68
89
|
return ""
|
69
90
|
end
|
@@ -71,22 +92,22 @@ module Wiki2Go
|
|
71
92
|
|
72
93
|
def save_this_link(subwiki,page)
|
73
94
|
if @editable then
|
74
|
-
return
|
95
|
+
return make_verb_url('save',subwiki,page)
|
75
96
|
else
|
76
97
|
return page
|
77
98
|
end
|
78
99
|
end
|
79
100
|
|
80
101
|
def verb_url(verb)
|
81
|
-
return
|
102
|
+
return make_verb_url(verb,@web.name,@web.current_page)
|
82
103
|
end
|
83
104
|
|
84
105
|
def removespam_url(user)
|
85
|
-
return
|
106
|
+
return make_verb_url('removespam',@web.name,'') + '?user=' + user
|
86
107
|
end
|
87
108
|
|
88
109
|
def version_url(page)
|
89
|
-
return
|
110
|
+
return make_verb_url('versions',@web.name,page)
|
90
111
|
end
|
91
112
|
|
92
113
|
def save_url
|
@@ -102,14 +123,14 @@ module Wiki2Go
|
|
102
123
|
end
|
103
124
|
|
104
125
|
def search_url
|
105
|
-
return
|
126
|
+
return make_verb_url('search',@web.name)
|
106
127
|
end
|
107
128
|
|
108
129
|
def changes_url
|
109
130
|
if @generate_html then
|
110
|
-
return
|
131
|
+
return make_url(@web.name,'recent_changes.html')
|
111
132
|
else
|
112
|
-
return
|
133
|
+
return make_verb_url('changes',@web.name)
|
113
134
|
end
|
114
135
|
end
|
115
136
|
|
@@ -119,15 +140,15 @@ module Wiki2Go
|
|
119
140
|
|
120
141
|
def view_page_url(subwiki,page)
|
121
142
|
if @generate_html then
|
122
|
-
return
|
143
|
+
return make_url(subwiki,page + ".html")
|
123
144
|
else
|
124
|
-
return
|
145
|
+
return make_verb_url('view',subwiki,page)
|
125
146
|
end
|
126
147
|
end
|
127
148
|
|
128
149
|
def view_url(subwiki,page)
|
129
150
|
if @absolute_urls then
|
130
|
-
return
|
151
|
+
return @web.base_url.chop + view_page_url(subwiki,page)
|
131
152
|
else
|
132
153
|
return view_page_url(subwiki,page)
|
133
154
|
end
|
@@ -145,7 +166,7 @@ module Wiki2Go
|
|
145
166
|
|
146
167
|
def perform_link(subwiki,page,name)
|
147
168
|
if @storage.exists?(File.join(subwiki,page)) then
|
148
|
-
url =
|
169
|
+
url = make_verb_url('view',subwiki,page)
|
149
170
|
if subwiki == @web.name then
|
150
171
|
return "<a href=\"#{url}\">#{name}</a>"
|
151
172
|
else
|
@@ -161,7 +182,7 @@ module Wiki2Go
|
|
161
182
|
end
|
162
183
|
|
163
184
|
def view_version_url(subwiki,page)
|
164
|
-
return
|
185
|
+
return make_verb_url('view',subwiki,page)
|
165
186
|
end
|
166
187
|
|
167
188
|
def query_string(parameters)
|
@@ -174,13 +195,13 @@ module Wiki2Go
|
|
174
195
|
end
|
175
196
|
|
176
197
|
def admin_link(page,name)
|
177
|
-
return "<a href=\"#{
|
198
|
+
return "<a href=\"#{make_verb_url('admin',page)}\">#{name}</a>"
|
178
199
|
end
|
179
200
|
|
180
201
|
|
181
202
|
def redirect_url(url)
|
182
203
|
if @config.redirect_url?(@web,url) then
|
183
|
-
redirected_url =
|
204
|
+
redirected_url = make_verb_url('redirect',@web.name) + "?url=" + CGI::escape(url)
|
184
205
|
return redirected_url
|
185
206
|
else
|
186
207
|
return url
|
@@ -200,9 +221,9 @@ module Wiki2Go
|
|
200
221
|
|
201
222
|
def resource_url(name)
|
202
223
|
if @absolute_urls then
|
203
|
-
|
224
|
+
@web.base_url.chop + make_url('html',@web.name,name)
|
204
225
|
else
|
205
|
-
|
226
|
+
make_url('html',@web.name,name)
|
206
227
|
end
|
207
228
|
end
|
208
229
|
|
@@ -484,17 +505,6 @@ module Wiki2Go
|
|
484
505
|
end
|
485
506
|
end
|
486
507
|
|
487
|
-
def join(*dirs)
|
488
|
-
result = ""
|
489
|
-
dirs.each do |name|
|
490
|
-
if !name.nil? and name.length > 0 then
|
491
|
-
result += '/' unless result.length == 0
|
492
|
-
result += name
|
493
|
-
end
|
494
|
-
end
|
495
|
-
return result.squeeze('/')
|
496
|
-
end
|
497
|
-
|
498
508
|
def url?(name)
|
499
509
|
name =~ /(http|ftp|gopher|news|https)\:(\w|\/|\.|_|-|\?|\=|&|;|\~|#|,)+/
|
500
510
|
end
|
data/lib/Wiki2Go/Web.rb
CHANGED
@@ -81,9 +81,6 @@ module Wiki2Go
|
|
81
81
|
else
|
82
82
|
url = "http://#{@server}:#{@port}/"
|
83
83
|
end
|
84
|
-
if !@subsite.empty? then
|
85
|
-
url += @subsite + '/'
|
86
|
-
end
|
87
84
|
url
|
88
85
|
end
|
89
86
|
|
@@ -113,7 +110,7 @@ module Wiki2Go
|
|
113
110
|
def Web.from_request(request,config)
|
114
111
|
server = request.host
|
115
112
|
port = request.port
|
116
|
-
before,verb = Web.parse_scriptpath(request.
|
113
|
+
before,verb = Web.parse_scriptpath(request.script_name,config)
|
117
114
|
web,page = Web.parse_path(request.path,config.multi_wiki)
|
118
115
|
web = Web.new(server,port,config.subsite,before,verb,web,page,request)
|
119
116
|
return web
|
@@ -124,24 +121,6 @@ module Wiki2Go
|
|
124
121
|
return ($1.nil? ? "" : $1)
|
125
122
|
end
|
126
123
|
|
127
|
-
def read_env(env)
|
128
|
-
@secure = env.has_key?("AUTH_TYPE")
|
129
|
-
|
130
|
-
user = env['REMOTE_USER']
|
131
|
-
if user.nil? or user.empty? then
|
132
|
-
user = env['REMOTE_ADDR']
|
133
|
-
begin
|
134
|
-
# addr = Resolv.getname(user)
|
135
|
-
if !addr.nil? and !addr.empty? then
|
136
|
-
user = addr
|
137
|
-
end
|
138
|
-
rescue
|
139
|
-
end
|
140
|
-
end
|
141
|
-
@user = user
|
142
|
-
end
|
143
|
-
|
144
|
-
|
145
124
|
private
|
146
125
|
|
147
126
|
def Web.parse_url(path,verb,config)
|
@@ -42,11 +42,10 @@ module Wiki2Go
|
|
42
42
|
|
43
43
|
def perform_save(req,res,wikiweb)
|
44
44
|
|
45
|
-
content = req.parameter('text')
|
45
|
+
content = req.parameter('text','')
|
46
46
|
name = req.parameter('title',wikiweb.current_page)
|
47
47
|
author = req.parameter('author')
|
48
48
|
remember_me = req.parameter('remember_me')
|
49
|
-
# @config.log("Author = #{author}, remember = #{remember_me}")
|
50
49
|
|
51
50
|
if !author.nil? && author.length > 0 then # !wikiweb.secure &&
|
52
51
|
wikiweb.alias = author
|
@@ -138,7 +137,6 @@ module Wiki2Go
|
|
138
137
|
wiki = Wiki2Go::Wiki.new(@config)
|
139
138
|
|
140
139
|
res.content_type = "text/html"
|
141
|
-
@config.log("Generate static in servlet for #{wikiweb.inspect}")
|
142
140
|
res.body = wiki.generate_html(wikiweb)
|
143
141
|
true
|
144
142
|
end
|
@@ -148,7 +146,16 @@ module Wiki2Go
|
|
148
146
|
uploaded_file = req.uploaded_file('FILE')
|
149
147
|
wiki = Wiki2Go::Wiki.new(@config)
|
150
148
|
|
151
|
-
|
149
|
+
filename = uploaded_file.filename
|
150
|
+
if filename =~ /\\/ then
|
151
|
+
filename = filename.split('\\').pop
|
152
|
+
end
|
153
|
+
|
154
|
+
if filename =~ /\// then
|
155
|
+
filename = filename.split('/').pop
|
156
|
+
end
|
157
|
+
|
158
|
+
redirect_to = wiki.upload(wikiweb,filename,uploaded_file.content)
|
152
159
|
res.redirect_to = redirect_to
|
153
160
|
res.content_type = "text/html"
|
154
161
|
res.body = "Redirect to #{redirect_to}"
|
data/test/TestFormatter.rb
CHANGED
@@ -64,10 +64,10 @@ END_OF_INPUT
|
|
64
64
|
formatter.config.allow_dynamic_pages
|
65
65
|
|
66
66
|
formatted = formatter.format_page("{%DynamicPage%}")
|
67
|
-
assert_equal("<a href=\"view/Xpday/DynamicPage.rbl\">DynamicPage</a>",formatted)
|
67
|
+
assert_equal("<a href=\"/view/Xpday/DynamicPage.rbl\">DynamicPage</a>",formatted)
|
68
68
|
|
69
69
|
formatted = formatter.format_page("{%Click here...@DynamicPage%}")
|
70
|
-
assert_equal("<a href=\"view/Xpday/DynamicPage.rbl\">Click here...</a>",formatted)
|
70
|
+
assert_equal("<a href=\"/view/Xpday/DynamicPage.rbl\">Click here...</a>",formatted)
|
71
71
|
end
|
72
72
|
|
73
73
|
|
@@ -82,7 +82,7 @@ END_OF_INPUT
|
|
82
82
|
assert_equal("<pre>\r\n a SomeLink AnotherLink Nolink \r\n</PRE>",formatted)
|
83
83
|
|
84
84
|
formatted = formatter.format_page(" a SomeLink AnotherLink Nolink ")
|
85
|
-
assert_equal(" a <a href=\"view/Xpday/SomeLink\">SomeLink</a> <a href=\"view/Xpday/AnotherLink\">AnotherLink</a> Nolink ",formatted)
|
85
|
+
assert_equal(" a <a href=\"/view/Xpday/SomeLink\">SomeLink</a> <a href=\"/view/Xpday/AnotherLink\">AnotherLink</a> Nolink ",formatted)
|
86
86
|
|
87
87
|
end
|
88
88
|
|
@@ -133,14 +133,14 @@ END_OF_EXPECTED
|
|
133
133
|
def test_view_link
|
134
134
|
formatter = makeFormatter
|
135
135
|
formatted = formatter.view_link("Xpday", "aPage", "aLabel")
|
136
|
-
assert_equal('<a href="view/Xpday/aPage">aLabel</a>',formatted)
|
136
|
+
assert_equal('<a href="/view/Xpday/aPage">aLabel</a>',formatted)
|
137
137
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def test_view_link_with_parameters
|
141
141
|
formatter = makeFormatter
|
142
142
|
formatted = formatter.view_version_link("Xpday", "aPage", "aLabel", { 'version' => '2' , 'user' => 'firstuser', 'firstparam' => 'value' })
|
143
|
-
assert_equal('<a href="view/Xpday/aPage?firstparam=value&user=firstuser&version=2">aLabel</a>',formatted)
|
143
|
+
assert_equal('<a href="/view/Xpday/aPage?firstparam=value&user=firstuser&version=2">aLabel</a>',formatted)
|
144
144
|
|
145
145
|
end
|
146
146
|
|
@@ -168,13 +168,13 @@ END_OF_EXPECTED
|
|
168
168
|
def test_combine_links_and_formatting
|
169
169
|
formatter = makeFormatter
|
170
170
|
formatted = formatter.format_page("*{link@http://wiki2go.nayima.be}*")
|
171
|
-
assert_equal('<STRONG><a href="redirect/Xpday?url=http%3A%2F%2Fwiki2go.nayima.be" rel="nofollow" target="_blank">link</a></STRONG>',formatted)
|
171
|
+
assert_equal('<STRONG><a href="/redirect/Xpday?url=http%3A%2F%2Fwiki2go.nayima.be" rel="nofollow" target="_blank">link</a></STRONG>',formatted)
|
172
172
|
|
173
173
|
formatted = formatter.format_page('*<a href="http://wiki2go.nayima.be">link</a>*')
|
174
|
-
assert_equal('<STRONG><a href="redirect/Xpday?url=http%3A%2F%2Fwiki2go.nayima.be" rel="nofollow" target="_blank">link</a></STRONG>',formatted)
|
174
|
+
assert_equal('<STRONG><a href="/redirect/Xpday?url=http%3A%2F%2Fwiki2go.nayima.be" rel="nofollow" target="_blank">link</a></STRONG>',formatted)
|
175
175
|
|
176
176
|
formatted = formatter.format_page(" * *{link@http://wiki2go.nayima.be}*")
|
177
|
-
assert_equal('<ul><li> <STRONG><a href="redirect/Xpday?url=http%3A%2F%2Fwiki2go.nayima.be" rel="nofollow" target="_blank">link</a></STRONG></ul>',formatted)
|
177
|
+
assert_equal('<ul><li> <STRONG><a href="/redirect/Xpday?url=http%3A%2F%2Fwiki2go.nayima.be" rel="nofollow" target="_blank">link</a></STRONG></ul>',formatted)
|
178
178
|
end
|
179
179
|
|
180
180
|
|
@@ -192,8 +192,8 @@ END_OF_INPUT
|
|
192
192
|
expected = <<END_OF_EXPECTED
|
193
193
|
<table class="wikitable" >
|
194
194
|
<tr><td> <STRONG>When</STRONG> </td><td> <STRONG>Where</STRONG> </td><td> <STRONG>What</STRONG> </td><td> <STRONG>Who</STRONG> </td></tr>
|
195
|
-
<tr><td> 23/02/2005 </td><td> <a href="redirect/Xpday?url=http%3A%2F%2Fwww.engels.nl%2F" rel="nofollow" target="_blank">Engels, Rotterdam</a> </td><td> Check out location </td><td> </td></tr>
|
196
|
-
<tr><td> 13/05/2005 </td><td> <a href="view/Xpday/MastBosch">MastBosch</a>, Breda </td><td> Agile Systems annual meeting + XP Day re-kickstart </td><td> </td></tr>
|
195
|
+
<tr><td> 23/02/2005 </td><td> <a href="/redirect/Xpday?url=http%3A%2F%2Fwww.engels.nl%2F" rel="nofollow" target="_blank">Engels, Rotterdam</a> </td><td> Check out location </td><td> </td></tr>
|
196
|
+
<tr><td> 13/05/2005 </td><td> <a href="/view/Xpday/MastBosch">MastBosch</a>, Breda </td><td> Agile Systems annual meeting + XP Day re-kickstart </td><td> </td></tr>
|
197
197
|
<tr><td> 17/05/2005 21:00 </td><td> Skype </td><td> Standup </td><td> Marc, Rob, Nynke, Vera, Pascal </td></tr>
|
198
198
|
<tr><td> <STRONG>28/06/2005</STRONG> 21:00 </td><td> Skype </td><td> Standup </td><td> </td></tr>
|
199
199
|
</table>
|
@@ -257,7 +257,7 @@ END_OF_CONTENT
|
|
257
257
|
|
258
258
|
def tag_test_expected
|
259
259
|
return <<-END_OF_CONTENT
|
260
|
-
This is a test of a long tag <a href="redirect/Xpday?url=http%3A%2F%2Fwww.microsoft.com\" rel=\"nofollow\" target=\"_blank\">
|
260
|
+
This is a test of a long tag <a href="/redirect/Xpday?url=http%3A%2F%2Fwww.microsoft.com\" rel=\"nofollow\" target=\"_blank\">
|
261
261
|
That should not be changed
|
262
262
|
END_OF_CONTENT
|
263
263
|
|