cortex-reaver 0.0.9 → 0.1.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/bin/cortex_reaver +7 -2
- data/lib/cortex_reaver.rb +51 -71
- data/lib/cortex_reaver/config.rb +23 -7
- data/lib/cortex_reaver/controller/admin.rb +6 -8
- data/lib/cortex_reaver/controller/comment.rb +17 -17
- data/lib/cortex_reaver/controller/config.rb +3 -2
- data/lib/cortex_reaver/controller/controller.rb +22 -0
- data/lib/cortex_reaver/controller/documentation.rb +1 -3
- data/lib/cortex_reaver/controller/journal.rb +13 -12
- data/lib/cortex_reaver/controller/main.rb +36 -29
- data/lib/cortex_reaver/controller/page.rb +15 -11
- data/lib/cortex_reaver/controller/photograph.rb +21 -15
- data/lib/cortex_reaver/controller/project.rb +16 -13
- data/lib/cortex_reaver/controller/tag.rb +16 -14
- data/lib/cortex_reaver/controller/user.rb +11 -13
- data/lib/cortex_reaver/helper/attachments.rb +18 -12
- data/lib/cortex_reaver/helper/auth.rb +2 -2
- data/lib/cortex_reaver/helper/canonical.rb +2 -2
- data/lib/cortex_reaver/helper/crud.rb +78 -38
- data/lib/cortex_reaver/helper/feeds.rb +2 -5
- data/lib/cortex_reaver/helper/form.rb +1 -1
- data/lib/cortex_reaver/helper/navigation.rb +1 -1
- data/lib/cortex_reaver/helper/photographs.rb +12 -3
- data/lib/cortex_reaver/helper/template.rb +37 -0
- data/lib/cortex_reaver/{view/blank_layout.rhtml → layout/blank.rhtml} +1 -1
- data/lib/cortex_reaver/{view/text_layout.rhtml → layout/text.rhtml} +1 -1
- data/lib/cortex_reaver/migrations/013_draft.rb +17 -0
- data/lib/cortex_reaver/model/comment.rb +64 -53
- data/lib/cortex_reaver/model/journal.rb +23 -21
- data/lib/cortex_reaver/model/model.rb +9 -0
- data/lib/cortex_reaver/model/page.rb +24 -42
- data/lib/cortex_reaver/model/photograph.rb +17 -17
- data/lib/cortex_reaver/model/project.rb +21 -18
- data/lib/cortex_reaver/model/tag.rb +12 -8
- data/lib/cortex_reaver/model/user.rb +79 -41
- data/lib/cortex_reaver/public/css/main.css +4 -0
- data/lib/cortex_reaver/snippets/numeric.rb +15 -0
- data/lib/cortex_reaver/snippets/ramaze/cache/memcached.rb +14 -0
- data/lib/cortex_reaver/support/attachments.rb +113 -105
- data/lib/cortex_reaver/support/cached_rendering.rb +65 -62
- data/lib/cortex_reaver/support/canonical.rb +82 -85
- data/lib/cortex_reaver/support/comments.rb +57 -51
- data/lib/cortex_reaver/support/cortex_reaver_validation_helpers.rb +13 -0
- data/lib/cortex_reaver/support/sequenceable.rb +202 -203
- data/lib/cortex_reaver/support/tags.rb +103 -94
- data/lib/cortex_reaver/support/timestamps.rb +27 -21
- data/lib/cortex_reaver/support/viewable.rb +17 -0
- data/lib/cortex_reaver/version.rb +3 -3
- data/lib/cortex_reaver/view/admin/index.rhtml +2 -2
- data/lib/cortex_reaver/view/comments/comment.rhtml +4 -1
- data/lib/cortex_reaver/view/comments/list.rhtml +1 -1
- data/lib/cortex_reaver/view/comments/post_form.rhtml +1 -1
- data/lib/cortex_reaver/view/journals/form.rhtml +3 -1
- data/lib/cortex_reaver/view/journals/journal.rhtml +6 -4
- data/lib/cortex_reaver/view/journals/list.rhtml +2 -2
- data/lib/cortex_reaver/view/journals/show.rhtml +1 -1
- data/lib/cortex_reaver/view/pages/form.rhtml +2 -1
- data/lib/cortex_reaver/view/pages/list.rhtml +2 -2
- data/lib/cortex_reaver/view/pages/show.rhtml +1 -1
- data/lib/cortex_reaver/view/photographs/form.rhtml +7 -3
- data/lib/cortex_reaver/view/photographs/list.rhtml +1 -1
- data/lib/cortex_reaver/view/photographs/show.rhtml +7 -7
- data/lib/cortex_reaver/view/projects/form.rhtml +1 -0
- data/lib/cortex_reaver/view/projects/list.rhtml +3 -3
- data/lib/cortex_reaver/view/projects/show.rhtml +5 -2
- data/lib/cortex_reaver/view/tags/list.rhtml +6 -2
- data/lib/cortex_reaver/view/tags/show.rhtml +10 -5
- data/lib/cortex_reaver/view/users/form.rhtml +1 -1
- data/lib/cortex_reaver/view/users/list.rhtml +5 -2
- data/lib/cortex_reaver/view/users/login.rhtml +1 -1
- data/lib/cortex_reaver/view/users/show.rhtml +5 -1
- metadata +159 -149
- data/lib/cortex_reaver/public/dispatch.fcgi +0 -11
- data/lib/cortex_reaver/snippets/ramaze/dispatcher/file.rb +0 -37
- data/lib/cortex_reaver/support/pagination.rb +0 -38
- data/lib/cortex_reaver/view/error.rhtml +0 -72
- data/lib/cortex_reaver/view/photographs/short.rhtml +0 -3
@@ -0,0 +1,22 @@
|
|
1
|
+
module CortexReaver
|
2
|
+
class Controller < Ramaze::Controller
|
3
|
+
trait :app => :cortex_reaver
|
4
|
+
engine :Erubis
|
5
|
+
layout :text
|
6
|
+
helper :form, :auth, :navigation, :template, :workflow, :error
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
# Require controllers
|
11
|
+
module CortexReaver
|
12
|
+
require File.join(LIB_DIR, 'controller', 'main')
|
13
|
+
require File.join(LIB_DIR, 'controller', 'user')
|
14
|
+
require File.join(LIB_DIR, 'controller', 'page')
|
15
|
+
require File.join(LIB_DIR, 'controller', 'journal')
|
16
|
+
require File.join(LIB_DIR, 'controller', 'photograph')
|
17
|
+
require File.join(LIB_DIR, 'controller', 'project')
|
18
|
+
require File.join(LIB_DIR, 'controller', 'comment')
|
19
|
+
require File.join(LIB_DIR, 'controller', 'tag')
|
20
|
+
require File.join(LIB_DIR, 'controller', 'documentation')
|
21
|
+
require File.join(LIB_DIR, 'controller', 'admin')
|
22
|
+
end
|
@@ -1,19 +1,17 @@
|
|
1
1
|
module CortexReaver
|
2
|
-
class JournalController <
|
2
|
+
class JournalController < Controller
|
3
3
|
MODEL = Journal
|
4
4
|
|
5
5
|
map '/journals'
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
|
7
|
+
layout(:text) do |name, wish|
|
8
|
+
!request.xhr? and name != 'atom'
|
9
|
+
end
|
10
|
+
|
11
|
+
alias_view :edit, :form
|
12
|
+
alias_view :new, :form
|
10
13
|
|
11
14
|
helper :cache,
|
12
|
-
:error,
|
13
|
-
:auth,
|
14
|
-
:form,
|
15
|
-
:workflow,
|
16
|
-
:navigation,
|
17
15
|
:date,
|
18
16
|
:tags,
|
19
17
|
:canonical,
|
@@ -21,19 +19,22 @@ module CortexReaver
|
|
21
19
|
:attachments,
|
22
20
|
:feeds
|
23
21
|
|
24
|
-
|
22
|
+
cache_action(:method => :index, :ttl => 120) do
|
23
|
+
user.id.to_i.to_s + flash.inspect
|
24
|
+
end
|
25
25
|
|
26
26
|
on_second_save do |journal, request|
|
27
27
|
journal.tags = request[:tags]
|
28
28
|
add_attachments(journal, request[:attachments])
|
29
29
|
journal.body = request[:body]
|
30
30
|
|
31
|
-
|
31
|
+
Ramaze::Cache.action.clear
|
32
32
|
end
|
33
33
|
|
34
34
|
on_save do |journal, request|
|
35
35
|
journal.title = request[:title]
|
36
36
|
journal.name = Journal.canonicalize(request[:name], :id => journal.id)
|
37
|
+
journal.draft = request[:draft]
|
37
38
|
end
|
38
39
|
|
39
40
|
on_create do |journal, request|
|
@@ -1,23 +1,22 @@
|
|
1
1
|
require 'builder'
|
2
2
|
|
3
3
|
module CortexReaver
|
4
|
-
class MainController <
|
4
|
+
class MainController < Controller
|
5
5
|
map '/'
|
6
|
-
|
6
|
+
|
7
|
+
layout(:text) do |name, wish|
|
8
|
+
!request.xhr? and name != 'atom'
|
9
|
+
end
|
10
|
+
|
7
11
|
helper :cache,
|
8
|
-
:workflow,
|
9
|
-
:auth,
|
10
|
-
:error,
|
11
|
-
:navigation,
|
12
12
|
:date,
|
13
13
|
:tags,
|
14
|
-
:form,
|
15
14
|
:feeds,
|
16
15
|
:pages
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
# cache_action(:method => :index, :ttl => 120) do
|
18
|
+
# user.id.to_i.to_s + flash.inspect
|
19
|
+
# end
|
21
20
|
|
22
21
|
# the index action is called automatically when no other action is specified
|
23
22
|
def index(*ids)
|
@@ -26,45 +25,48 @@ module CortexReaver
|
|
26
25
|
@title = @page.title
|
27
26
|
|
28
27
|
if user.can_edit? Page.new
|
29
|
-
workflow "Edit this page",
|
28
|
+
workflow "Edit this page", PageController.r(:edit, @page.id)
|
30
29
|
end
|
31
30
|
if user.can_delete? Page.new
|
32
|
-
workflow "Delete this page",
|
31
|
+
workflow "Delete this page", PageController.r(:delete, @page.id)
|
33
32
|
end
|
34
33
|
|
35
|
-
|
34
|
+
PageController.render_view('show')
|
36
35
|
elsif not ids.empty?
|
37
36
|
# Didn't have that page
|
38
37
|
error_404
|
39
38
|
else
|
40
39
|
# Default welcome page
|
41
|
-
@photographs = Photograph.recent
|
42
|
-
@journals = Journal.recent
|
43
|
-
|
44
|
-
if @photographs.
|
40
|
+
@photographs = Photograph.recent.viewable_by(user)
|
41
|
+
@journals = Journal.recent.viewable_by(user)
|
42
|
+
|
43
|
+
if @photographs.count > 0
|
44
|
+
# Show sidebar
|
45
45
|
@sidebar ||= []
|
46
|
-
@sidebar.unshift
|
46
|
+
@sidebar.unshift PhotographController.render_view('sidebar')
|
47
47
|
end
|
48
48
|
|
49
|
+
# Workflows
|
49
50
|
if user.can_create? Journal.new
|
50
|
-
workflow "New Journal",
|
51
|
+
workflow "New Journal", JournalController.r(:new)
|
51
52
|
end
|
52
53
|
if user.can_create? Page.new
|
53
|
-
workflow "New Page",
|
54
|
+
workflow "New Page", PageController.r(:new)
|
54
55
|
end
|
55
56
|
if user.can_create? Photograph.new
|
56
|
-
workflow "New Photograph",
|
57
|
-
end
|
58
|
-
if user.can_create? Project.new
|
59
|
-
workflow "New Project", R(ProjectController, :new)
|
57
|
+
workflow "New Photograph", PhotographController.r(:new)
|
60
58
|
end
|
59
|
+
# if user.can_create? Project.new
|
60
|
+
# workflow "New Project", ProjectController.r(:new)
|
61
|
+
# end
|
61
62
|
|
62
|
-
|
63
|
-
feed '
|
64
|
-
feed '
|
65
|
-
feed '
|
63
|
+
# Feeds
|
64
|
+
feed 'Photographs', PhotographController.r(:atom)
|
65
|
+
feed 'Journals', JournalController.r(:atom)
|
66
|
+
# feed 'Projects', ProjectController.r(:atom)
|
67
|
+
feed 'Comments', CommentController.r(:atom)
|
66
68
|
|
67
|
-
|
69
|
+
JournalController.render_view('list', :journals => @journals)
|
68
70
|
end
|
69
71
|
end
|
70
72
|
|
@@ -73,6 +75,11 @@ module CortexReaver
|
|
73
75
|
error_404
|
74
76
|
end
|
75
77
|
|
78
|
+
def clear
|
79
|
+
Ramaze::Cache.action.clear
|
80
|
+
respond "cache cleared"
|
81
|
+
end
|
82
|
+
|
76
83
|
private
|
77
84
|
|
78
85
|
# the string returned at the end of the function is used as the html body
|
@@ -1,18 +1,17 @@
|
|
1
1
|
module CortexReaver
|
2
|
-
class PageController <
|
2
|
+
class PageController < Controller
|
3
3
|
MODEL = Page
|
4
4
|
|
5
5
|
map '/pages'
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
:navigation,
|
6
|
+
|
7
|
+
layout(:text) do |name, wish|
|
8
|
+
not request.xhr? and name != :atom
|
9
|
+
end
|
10
|
+
|
11
|
+
alias_view :edit, :form
|
12
|
+
alias_view :new, :form
|
13
|
+
|
14
|
+
helper :cache,
|
16
15
|
:date,
|
17
16
|
:tags,
|
18
17
|
:canonical,
|
@@ -20,6 +19,10 @@ module CortexReaver
|
|
20
19
|
:attachments,
|
21
20
|
:pages
|
22
21
|
|
22
|
+
cache_action(:method => :show, :ttl => 120) do
|
23
|
+
user.id.to_i.to_s + flash.inspect
|
24
|
+
end
|
25
|
+
|
23
26
|
on_second_save do |page, request|
|
24
27
|
page.tags = request[:tags]
|
25
28
|
add_attachments(page, request[:attachments])
|
@@ -29,6 +32,7 @@ module CortexReaver
|
|
29
32
|
page.title = request[:title]
|
30
33
|
page.page_id = request[:page_id]
|
31
34
|
page.name = Page.canonicalize request[:name], :id => page.id, :page_id => page.page_id
|
35
|
+
page.draft = request[:draft]
|
32
36
|
page.body = request[:body]
|
33
37
|
end
|
34
38
|
|
@@ -1,23 +1,25 @@
|
|
1
1
|
require 'exifr'
|
2
2
|
require 'RMagick'
|
3
3
|
module CortexReaver
|
4
|
-
class PhotographController <
|
4
|
+
class PhotographController < Controller
|
5
5
|
MODEL = Photograph
|
6
6
|
|
7
7
|
map '/photographs'
|
8
|
-
|
9
|
-
layout
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
|
9
|
+
layout do |name, wish|
|
10
|
+
if ['index', 'edit', 'new', 'page'].include? name
|
11
|
+
:text
|
12
|
+
elsif request.xhr? or name == 'atom'
|
13
|
+
nil
|
14
|
+
else
|
15
|
+
:blank
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
alias_view :edit, :form
|
20
|
+
alias_view :new, :form
|
14
21
|
|
15
22
|
helper :cache,
|
16
|
-
:error,
|
17
|
-
:auth,
|
18
|
-
:form,
|
19
|
-
:workflow,
|
20
|
-
:navigation,
|
21
23
|
:date,
|
22
24
|
:tags,
|
23
25
|
:canonical,
|
@@ -26,11 +28,14 @@ module CortexReaver
|
|
26
28
|
:photographs,
|
27
29
|
:feeds
|
28
30
|
|
29
|
-
|
31
|
+
cache_action(:method => :index, :ttl => 120) do
|
32
|
+
user.id.to_i.to_s + flash.inspect
|
33
|
+
end
|
30
34
|
|
31
35
|
on_save do |photograph, request|
|
32
36
|
photograph.title = request[:title]
|
33
37
|
photograph.name = Photograph.canonicalize request[:name], :id => photograph.id
|
38
|
+
photograph.draft = request[:draft]
|
34
39
|
end
|
35
40
|
|
36
41
|
on_second_save do |photograph, request|
|
@@ -38,7 +43,7 @@ module CortexReaver
|
|
38
43
|
photograph.image = request[:image][:tempfile] if request[:image]
|
39
44
|
photograph.infer_date_from_exif! if request[:infer_date]
|
40
45
|
|
41
|
-
|
46
|
+
Ramaze::Cache.action.clear
|
42
47
|
end
|
43
48
|
|
44
49
|
on_create do |photograph, request|
|
@@ -52,7 +57,8 @@ module CortexReaver
|
|
52
57
|
for_feed do |photograph, x|
|
53
58
|
p photograph
|
54
59
|
x.content(
|
55
|
-
|
60
|
+
#render_view('atom_fragment.rhtml', :photograph => photograph),
|
61
|
+
"a",
|
56
62
|
:type => 'html'
|
57
63
|
)
|
58
64
|
end
|
@@ -1,19 +1,17 @@
|
|
1
1
|
module CortexReaver
|
2
|
-
class ProjectController <
|
2
|
+
class ProjectController < Controller
|
3
3
|
MODEL = Project
|
4
4
|
|
5
5
|
map '/projects'
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
|
7
|
+
layout(:text) do |name, wish|
|
8
|
+
!request.xhr? and name != 'atom'
|
9
|
+
end
|
10
10
|
|
11
|
+
alias_view :edit, :form
|
12
|
+
alias_view :new, :form
|
13
|
+
|
11
14
|
helper :cache,
|
12
|
-
:error,
|
13
|
-
:auth,
|
14
|
-
:form,
|
15
|
-
:workflow,
|
16
|
-
:navigation,
|
17
15
|
:date,
|
18
16
|
:tags,
|
19
17
|
:canonical,
|
@@ -21,18 +19,23 @@ module CortexReaver
|
|
21
19
|
:attachments,
|
22
20
|
:feeds
|
23
21
|
|
24
|
-
|
22
|
+
cache_action(:method => :index, :ttl => 120) do
|
23
|
+
user.id.to_i.to_s + flash.inspect
|
24
|
+
end
|
25
25
|
|
26
26
|
on_second_save do |project, request|
|
27
27
|
project.tags = request[:tags]
|
28
28
|
add_attachments(project, request[:attachments])
|
29
|
+
project.body = request[:body]
|
30
|
+
|
31
|
+
Ramaze::Cache.action.clear
|
29
32
|
end
|
30
33
|
|
31
34
|
on_save do |project, request|
|
32
35
|
project.title = request[:title]
|
33
|
-
project.description = request[:description]
|
34
36
|
project.name = Project.canonicalize request[:name], :id => project.id
|
35
|
-
project.
|
37
|
+
project.description = request[:description]
|
38
|
+
project.draft = request[:draft]
|
36
39
|
end
|
37
40
|
|
38
41
|
on_create do |project, request|
|
@@ -1,24 +1,27 @@
|
|
1
1
|
module CortexReaver
|
2
|
-
class TagController <
|
2
|
+
class TagController < Controller
|
3
3
|
MODEL = Tag
|
4
4
|
|
5
5
|
map '/tags'
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
|
7
|
+
layout(:text) do |name, wish|
|
8
|
+
!request.xhr?
|
9
|
+
end
|
10
10
|
|
11
|
+
alias_view :index, :list
|
12
|
+
alias_view :edit, :form
|
13
|
+
alias_view :new, :form
|
14
|
+
|
11
15
|
helper :cache,
|
12
|
-
:error,
|
13
|
-
:auth,
|
14
|
-
:form,
|
15
|
-
:workflow,
|
16
|
-
:navigation,
|
17
16
|
:canonical,
|
18
17
|
:crud
|
19
18
|
|
20
|
-
|
21
|
-
|
19
|
+
cache_action(:method => :index, :ttl => 120) do
|
20
|
+
user.id.to_i.to_s + flash.inspect
|
21
|
+
end
|
22
|
+
cache_action(:method => :show, :ttl => 120) do
|
23
|
+
user.id.to_i.to_s + flash.inspect
|
24
|
+
end
|
22
25
|
|
23
26
|
on_save do |tag, request|
|
24
27
|
tag.title = request[:title]
|
@@ -27,12 +30,11 @@ module CortexReaver
|
|
27
30
|
|
28
31
|
def index(*ids)
|
29
32
|
if ids.size > 0
|
30
|
-
raw_redirect
|
33
|
+
raw_redirect rs([:show] + ids), :status => 301
|
31
34
|
else
|
32
35
|
# Index
|
33
36
|
@title = "All Tags"
|
34
37
|
@tags = Tag.order(:count).reverse
|
35
|
-
render_template :list
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
@@ -1,19 +1,17 @@
|
|
1
1
|
module CortexReaver
|
2
|
-
class UserController <
|
2
|
+
class UserController < Controller
|
3
3
|
MODEL = User
|
4
4
|
|
5
5
|
map '/users'
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
|
7
|
+
layout(:text) do |name, wish|
|
8
|
+
!request.xhr?
|
9
|
+
end
|
10
|
+
|
11
|
+
alias_view :edit, :form
|
12
|
+
alias_view :new, :form
|
10
13
|
|
11
|
-
helper :
|
12
|
-
:auth,
|
13
|
-
:form,
|
14
|
-
:workflow,
|
15
|
-
:navigation,
|
16
|
-
:date,
|
14
|
+
helper :date,
|
17
15
|
:tags,
|
18
16
|
:canonical,
|
19
17
|
:crud,
|
@@ -56,12 +54,12 @@ module CortexReaver
|
|
56
54
|
redirect uri
|
57
55
|
else
|
58
56
|
# Try the main page.
|
59
|
-
redirect
|
57
|
+
redirect MainController.r
|
60
58
|
end
|
61
59
|
else
|
62
60
|
# Nope, no login.
|
63
61
|
flash[:error] = "Wrong username or password."
|
64
|
-
redirect
|
62
|
+
redirect rs(:login)
|
65
63
|
end
|
66
64
|
end
|
67
65
|
end
|