junebug-wiki 0.0.30 → 0.0.31
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 +4 -0
- data/lib/junebug/controllers.rb +23 -0
- data/lib/junebug/models.rb +2 -0
- data/lib/junebug/version.rb +1 -1
- data/lib/junebug/views.rb +47 -2
- metadata +2 -2
data/History.txt
CHANGED
data/lib/junebug/controllers.rb
CHANGED
@@ -133,6 +133,29 @@ module Junebug::Controllers
|
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
|
+
class Users < R '/all/users'
|
137
|
+
def get
|
138
|
+
@page_title = "Users"
|
139
|
+
#@users = User.find(:all, :order => 'username')
|
140
|
+
@users = User.find_by_sql("SELECT users.id, username, role, count(*) AS count FROM junebug_users AS users, junebug_page_versions AS versions WHERE users.id=versions.user_id GROUP BY users.id ORDER BY count DESC")
|
141
|
+
render :users
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
class Userinfo < R '/userinfo/(\w+)'
|
146
|
+
def get username
|
147
|
+
@page_title = "User info"
|
148
|
+
@user = User.find_by_username(username)
|
149
|
+
@versions = Page::Version.find(:all, :conditions => ["user_id = ?", @user.id], :order=>'updated_at desc')
|
150
|
+
@groups = Hash.new {|hash,key| hash[key] = []}
|
151
|
+
@versions.each { |p|
|
152
|
+
@groups[p.updated_at.strftime('%Y-%m-%d')].push(p)
|
153
|
+
}
|
154
|
+
render :userinfo
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
|
136
159
|
class Recent < R '/all/recent'
|
137
160
|
def get
|
138
161
|
@page_title = "Recent Changes"
|
data/lib/junebug/models.rb
CHANGED
@@ -13,6 +13,7 @@ module Junebug::Models
|
|
13
13
|
validates_format_of :password, :with => /^([\w]*)$/
|
14
14
|
validates_length_of :password, :within=>5..30
|
15
15
|
has_many :pages
|
16
|
+
has_many :page_versions, :class_name => 'Junebug::Models::Page::Version'
|
16
17
|
|
17
18
|
def username=(text)
|
18
19
|
write_attribute(:username, (text ? text.strip.downcase : text) )
|
@@ -53,6 +54,7 @@ module Junebug::Models
|
|
53
54
|
|
54
55
|
class Page::Version < Base
|
55
56
|
belongs_to :user, :class_name=>"Junebug::Models::User", :foreign_key=>'user_id' # Hack to prevent camping error on initial load
|
57
|
+
belongs_to :page, :class_name=>"Junebug::Models::Page", :foreign_key=>'page_id' # Hack to prevent camping error on initial load
|
56
58
|
end
|
57
59
|
|
58
60
|
class CreateJunebug < V 1.0
|
data/lib/junebug/version.rb
CHANGED
data/lib/junebug/views.rb
CHANGED
@@ -106,7 +106,7 @@ module Junebug::Views
|
|
106
106
|
li {
|
107
107
|
a "version #{page.version}", :href => R(Show, @page.title_url, page.version)
|
108
108
|
text " (#{diff_link(@page, page)}) " if page.version > 1
|
109
|
-
text' -
|
109
|
+
text' - edited '
|
110
110
|
text last_updated(page)
|
111
111
|
text ' ago by '
|
112
112
|
strong page.user.username
|
@@ -164,7 +164,48 @@ module Junebug::Views
|
|
164
164
|
end
|
165
165
|
_footer { '' }
|
166
166
|
end
|
167
|
-
|
167
|
+
|
168
|
+
def users
|
169
|
+
_header :static
|
170
|
+
_body do
|
171
|
+
h1 "Users"
|
172
|
+
ul {
|
173
|
+
@users.each { |u|
|
174
|
+
li {
|
175
|
+
a u.username, :href => R(Userinfo, u.username)
|
176
|
+
text " - #{u.count} edits"
|
177
|
+
}
|
178
|
+
}
|
179
|
+
}
|
180
|
+
end
|
181
|
+
_footer { '' }
|
182
|
+
end
|
183
|
+
|
184
|
+
def userinfo
|
185
|
+
_header :static
|
186
|
+
_body do
|
187
|
+
h1 "Edit history: #{@user.username}"
|
188
|
+
|
189
|
+
@groups.keys.sort.reverse.each { |key|
|
190
|
+
@versions = @groups[key]
|
191
|
+
h2 key
|
192
|
+
ul {
|
193
|
+
@versions.each { |pv|
|
194
|
+
li{
|
195
|
+
a pv.page.title, :href => R(Show, pv.page.title_url)
|
196
|
+
text ", v#{pv.version}"
|
197
|
+
text " (#{diff_link(pv.page, pv)}) " if pv.version > 1
|
198
|
+
# text' - edited '
|
199
|
+
# text last_updated(pv)
|
200
|
+
# text ' ago'
|
201
|
+
}
|
202
|
+
}
|
203
|
+
}
|
204
|
+
}
|
205
|
+
end
|
206
|
+
_footer { '' }
|
207
|
+
end
|
208
|
+
|
168
209
|
def list
|
169
210
|
_header :static
|
170
211
|
_body do
|
@@ -292,6 +333,10 @@ module Junebug::Views
|
|
292
333
|
text ' | '
|
293
334
|
a 'Pages', :href => R(List)
|
294
335
|
text ' | '
|
336
|
+
a 'Users', :href => R(Users)
|
337
|
+
text ' | '
|
338
|
+
a 'Admin', :href => R(Orphans)
|
339
|
+
text ' | '
|
295
340
|
a 'Help', :href => R(Show, "Junebug_help")
|
296
341
|
end
|
297
342
|
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: junebug-wiki
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2007-04-
|
6
|
+
version: 0.0.31
|
7
|
+
date: 2007-04-22 00:00:00 -07:00
|
8
8
|
summary: Junebug is a minimalist ruby wiki running on Camping.
|
9
9
|
require_paths:
|
10
10
|
- lib
|