uzuuzu-cms 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/uzuuzu-cms/controller/admin/index.rb +18 -0
- data/lib/uzuuzu-cms/controller/blog/index.rb +18 -0
- data/lib/uzuuzu-cms/controller/ec/index.rb +18 -0
- data/lib/uzuuzu-cms/controller/initialize.rb +79 -20
- data/lib/uzuuzu-cms/controller/openid.rb +22 -33
- data/lib/uzuuzu-cms/controller/view/initialize/step1.rhtml +2 -2
- data/lib/uzuuzu-cms/controller/view/initialize/step2.rhtml +23 -0
- data/lib/uzuuzu-cms/controller/view/initialize/step3.rhtml +24 -0
- data/lib/uzuuzu-cms/controller/wiki/index.rb +18 -0
- data/lib/uzuuzu-cms/model/blog.rb +4 -4
- data/lib/uzuuzu-cms/model/contents.rb +4 -4
- data/lib/uzuuzu-cms/model/file.rb +1 -1
- data/lib/uzuuzu-cms/model/image.rb +1 -1
- data/lib/uzuuzu-cms/model/info.rb +48 -12
- data/lib/uzuuzu-cms/model/layout.rb +3 -3
- data/lib/uzuuzu-cms/model/movie.rb +1 -1
- data/lib/uzuuzu-cms/model/page.rb +82 -30
- data/lib/uzuuzu-cms/model/page_body.rb +11 -2
- data/lib/uzuuzu-cms/model/wiki.rb +5 -5
- data/lib/uzuuzu-cms/wrapper/controller.rb +16 -0
- data/lib/uzuuzu-cms/wrapper/environments.rb +15 -0
- data/lib/uzuuzu-cms/wrapper/lang/en.yaml +23 -0
- data/lib/uzuuzu-cms/wrapper/lang/ja.yaml +33 -0
- data/lib/uzuuzu-cms/wrapper/model.rb +24 -0
- data/lib/uzuuzu-cms.rb +3 -2
- data/template/fixture/uzu_uzu/contents.yaml +31 -0
- data/template/fixture/uzu_uzu/contents_page_body.yaml +13 -0
- data/template/fixture/uzu_uzu/css.yaml +11 -0
- data/template/fixture/uzu_uzu/css_info.yaml +5 -0
- data/template/fixture/uzu_uzu/info.yaml +13 -0
- data/template/fixture/uzu_uzu/info_javascript.yaml +5 -0
- data/template/fixture/uzu_uzu/javascript.yaml +5 -0
- data/template/fixture/uzu_uzu/layout.yaml +278 -0
- data/template/fixture/uzu_uzu/page.yaml +5 -0
- data/template/fixture/uzu_uzu/page_body.yaml +7 -0
- data/uzuuzu-cms.gemspec +21 -6
- metadata +22 -7
- data/lib/uzuuzu-cms/controller/admin.rb +0 -16
- data/lib/uzuuzu-cms/controller.rb +0 -16
- data/lib/uzuuzu-cms/fixture/layout.yaml +0 -110
- data/lib/uzuuzu-cms/model.rb +0 -24
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.1
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
module UzuUzu
|
4
|
+
module Controller
|
5
|
+
module Admin
|
6
|
+
class Index
|
7
|
+
|
8
|
+
def before
|
9
|
+
redirect(rf(Initialize)) unless info.initialize?
|
10
|
+
end
|
11
|
+
|
12
|
+
def index
|
13
|
+
''
|
14
|
+
end
|
15
|
+
end # Index
|
16
|
+
end # Admin
|
17
|
+
end # Controller
|
18
|
+
end # UzuUzu
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
module UzuUzu
|
4
|
+
module Controller
|
5
|
+
module Blog
|
6
|
+
class Index
|
7
|
+
|
8
|
+
def before
|
9
|
+
redirect(rf(Initialize)) unless info.initialize?
|
10
|
+
end
|
11
|
+
|
12
|
+
def index
|
13
|
+
''
|
14
|
+
end
|
15
|
+
end # Index
|
16
|
+
end # Blog
|
17
|
+
end # Controller
|
18
|
+
end # UzuUzu
|
@@ -4,49 +4,108 @@ module UzuUzu
|
|
4
4
|
module Controller
|
5
5
|
class Initialize
|
6
6
|
def index
|
7
|
-
|
8
|
-
|
7
|
+
if Info.first.nil?
|
8
|
+
# fixture load
|
9
|
+
logger.debug 'fixture load start'
|
10
|
+
Dir.glob('./fixture/**/*.*').each do |path|
|
11
|
+
logger.debug "fixture file : #{path}"
|
12
|
+
paths = path.split('/')
|
13
|
+
model_name = ::File.basename(paths.pop, '.*')
|
14
|
+
while !paths.blank? && paths[-1] != 'fixture'
|
15
|
+
model_name = "#{paths.pop.camel_case}::#{model_name.camel_case}"
|
16
|
+
end
|
17
|
+
begin
|
18
|
+
logger.debug "fixture model name : #{model_name}"
|
19
|
+
model = eval("::#{model_name}")
|
20
|
+
::UzuUzu::DataStore::Fixture.import_file(model, path, true)
|
21
|
+
rescue NameError => e
|
22
|
+
logger.error(e.to_s)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
logger.debug 'fixture load end'
|
9
26
|
end
|
10
|
-
if
|
11
|
-
|
27
|
+
if info.initialize?
|
28
|
+
redirect rf(UzuUzu::Controller::Index)
|
12
29
|
end
|
13
|
-
|
30
|
+
self.send("step#{info.step}")
|
31
|
+
case(info.step)
|
14
32
|
when 1
|
15
|
-
respond(render_file(__DIR__('view/initialize/step1.rhtml')
|
16
|
-
:layout => __DIR__('view/layout.rhtml')))
|
33
|
+
respond(info.render(self, render_file(__DIR__('view/initialize/step1.rhtml'))))
|
17
34
|
when 2
|
18
|
-
respond(render_file(__DIR__('view/initialize/step2.rhtml')
|
19
|
-
:layout => __DIR__('view/layout.rhtml')))
|
35
|
+
respond(info.render(self, render_file(__DIR__('view/initialize/step2.rhtml'))))
|
20
36
|
when 3
|
21
|
-
respond(render_file(__DIR__('view/initialize/step3.rhtml')
|
22
|
-
:layout => __DIR__('view/layout.rhtml')))
|
37
|
+
respond(info.render(self, render_file(__DIR__('view/initialize/step3.rhtml'))))
|
23
38
|
when 4
|
24
|
-
redirect rf(Index)
|
39
|
+
redirect rf(UzuUzu::Controller::Index)
|
25
40
|
end
|
26
41
|
end
|
27
42
|
|
28
43
|
private
|
29
44
|
|
30
|
-
def
|
45
|
+
def step1
|
31
46
|
unless session[:openid_identity].nil?
|
32
47
|
UzuUzu.transaction do |tr|
|
33
48
|
tr.begin
|
34
|
-
|
35
|
-
|
36
|
-
@info.step = 2
|
37
|
-
@info.admin = @user
|
38
|
-
@info.save if @user.save
|
49
|
+
info.step = 2
|
50
|
+
info.save
|
39
51
|
tr.commit
|
40
52
|
end
|
41
53
|
end
|
42
54
|
end
|
43
55
|
|
44
56
|
def step2
|
45
|
-
|
57
|
+
if session[:openid_identity].nil?
|
58
|
+
UzuUzu.transaction do |tr|
|
59
|
+
tr.begin
|
60
|
+
info.step = 1
|
61
|
+
info.save
|
62
|
+
tr.commit
|
63
|
+
end
|
64
|
+
return
|
65
|
+
end
|
66
|
+
if request.post?
|
67
|
+
if request.params['name'].blank?
|
68
|
+
@error = fix_localize(:user_name_empty)
|
69
|
+
return
|
70
|
+
end
|
71
|
+
UzuUzu.transaction do |tr|
|
72
|
+
tr.begin
|
73
|
+
user = UzuUzu::User.new
|
74
|
+
user.user_id = session[:openid_identity]
|
75
|
+
user.domain = session[:openid_domain]
|
76
|
+
user.name = request.params['name']
|
77
|
+
user.email = request.params['email']
|
78
|
+
user.web = request.params['web']
|
79
|
+
info.step = 3
|
80
|
+
info.admin = user
|
81
|
+
if info.save
|
82
|
+
tr.commit
|
83
|
+
else
|
84
|
+
tr.roolback
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
46
88
|
end
|
47
89
|
|
48
90
|
def step3
|
49
|
-
|
91
|
+
if session[:openid_identity].nil?
|
92
|
+
UzuUzu.transaction do |tr|
|
93
|
+
tr.begin
|
94
|
+
info.step = 1
|
95
|
+
info.save
|
96
|
+
tr.commit
|
97
|
+
end
|
98
|
+
return
|
99
|
+
end
|
100
|
+
if request.post?
|
101
|
+
UzuUzu.transaction do |tr|
|
102
|
+
tr.begin
|
103
|
+
info.step = 4
|
104
|
+
info.title = request.params['title']
|
105
|
+
info.save
|
106
|
+
tr.commit
|
107
|
+
end
|
108
|
+
end
|
50
109
|
end
|
51
110
|
end # Initialize
|
52
111
|
end # Controller
|
@@ -8,35 +8,34 @@ require 'openid/store/memcache'
|
|
8
8
|
|
9
9
|
module UzuUzu
|
10
10
|
module Controller
|
11
|
+
#
|
12
|
+
#
|
13
|
+
#
|
11
14
|
class Openid
|
12
|
-
|
15
|
+
#
|
16
|
+
#
|
17
|
+
#
|
13
18
|
def index
|
14
|
-
|
15
|
-
p request.domain
|
16
|
-
if session[:openid] and session[:openid][:identity]
|
19
|
+
if session[:openid_identity]
|
17
20
|
referer = session[:referer]
|
18
21
|
session.delete(:referer)
|
19
|
-
login_remote_user
|
20
22
|
redirect referer || rf(Index)
|
21
23
|
end
|
22
24
|
session[:referer] = request.referrer
|
23
|
-
|
24
|
-
|
25
|
-
else
|
26
|
-
respond(info.render(render_file(__DIR__('view/openid/index.rhtml')),
|
27
|
-
:layout => __DIR__('view/layout.rhtml')))
|
28
|
-
end
|
25
|
+
respond(info.render(render_file(__DIR__('view/openid/index.rhtml'))))
|
29
26
|
end
|
30
27
|
|
31
28
|
def logout
|
32
|
-
session.delete(:
|
29
|
+
session.delete(:openid_identity)
|
30
|
+
session.delete(:openid_sreg)
|
31
|
+
session.delete(:openid_domain)
|
33
32
|
end
|
34
33
|
|
35
34
|
def openid_begin
|
36
|
-
url = request['url']
|
35
|
+
url = request.params['url']
|
37
36
|
redirect_referrer if url.to_s.empty?
|
38
|
-
session[:
|
39
|
-
session[:
|
37
|
+
session[:openid_domain] = url
|
38
|
+
session[:openid_entry] = request.referrer
|
40
39
|
|
41
40
|
openid_request = openid_consumer.begin(url)
|
42
41
|
|
@@ -52,9 +51,8 @@ module UzuUzu
|
|
52
51
|
openid_request.add_extension(sregreq)
|
53
52
|
openid_request.return_to_args['did_pape'] = 'y'
|
54
53
|
|
55
|
-
root =
|
56
|
-
|
57
|
-
return_to = request.domain(r(:openid_complete))
|
54
|
+
root = root_uri
|
55
|
+
return_to = "#{root_uri}#{r(:openid_complete)}"
|
58
56
|
immediate = false
|
59
57
|
|
60
58
|
if openid_request.send_redirect?(root, return_to, immediate)
|
@@ -64,10 +62,8 @@ module UzuUzu
|
|
64
62
|
else
|
65
63
|
# what the hell is @form_text ?
|
66
64
|
end
|
67
|
-
|
68
65
|
rescue OpenID::OpenIDError => ex
|
69
|
-
|
70
|
-
redirect r
|
66
|
+
server_error
|
71
67
|
end
|
72
68
|
|
73
69
|
def openid_complete
|
@@ -77,24 +73,17 @@ module UzuUzu
|
|
77
73
|
when OpenID::Consumer::FAILURE
|
78
74
|
when OpenID::Consumer::SUCCESS
|
79
75
|
# Backwards compatibility
|
80
|
-
session[:
|
81
|
-
session[:
|
76
|
+
session[:openid_identity] = openid_response.identity_url
|
77
|
+
session[:openid_sreg] = OpenID::SReg::Response.from_success_response(openid_response)
|
82
78
|
end
|
83
|
-
|
79
|
+
openid_entry = session[:openid_entry]
|
80
|
+
session.delete(:openid_entry)
|
81
|
+
redirect openid_entry
|
84
82
|
end
|
85
83
|
|
86
84
|
|
87
85
|
private
|
88
86
|
|
89
|
-
#logined
|
90
|
-
def login_remote_user
|
91
|
-
remote_user = User.first(:user_id => session[:openid][:identity])
|
92
|
-
if remote_user.nil?
|
93
|
-
#remote_user = User.new(:user_id => session[:openid_identity])
|
94
|
-
#remote_user.save!
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
87
|
# use memcache
|
99
88
|
def openid_consumer
|
100
89
|
memcache = OpenID::Store::Memcache.new(UzuUzu.memcache)
|
@@ -1 +1,24 @@
|
|
1
1
|
|
2
|
+
<div id="step2">
|
3
|
+
<p>
|
4
|
+
<%= fix_localize(:step2) %>
|
5
|
+
</p>
|
6
|
+
<form method="post">
|
7
|
+
<p class='error_detail'><%= @error %></p>
|
8
|
+
<p>
|
9
|
+
<%= fix_localize(:user_entry_name) %>:
|
10
|
+
<input type="text" name="name" />
|
11
|
+
</p>
|
12
|
+
<p>
|
13
|
+
<%= fix_localize(:user_entry_email) %>:
|
14
|
+
<input type="text" name="email" />
|
15
|
+
</p>
|
16
|
+
<p>
|
17
|
+
<%= fix_localize(:user_entry_web) %>:
|
18
|
+
<input type="text" name="web" />
|
19
|
+
</p>
|
20
|
+
<p>
|
21
|
+
<input type="submit" value="<%= fix_localize(:entry) %>"/>
|
22
|
+
</p>
|
23
|
+
</form>
|
24
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
<div id="step3">
|
3
|
+
<p>
|
4
|
+
<%= fix_localize(:step3) %>
|
5
|
+
</p>
|
6
|
+
<form method="post">
|
7
|
+
<p class='error_detail'><%= @error %></p>
|
8
|
+
<p>
|
9
|
+
<%= fix_localize(:info_title) %>:
|
10
|
+
<input type="text" name="title" />
|
11
|
+
</p>
|
12
|
+
<p>
|
13
|
+
<%= fix_localize(:user_entry_email) %>:
|
14
|
+
<input type="text" name="email" />
|
15
|
+
</p>
|
16
|
+
<p>
|
17
|
+
<%= fix_localize(:user_entry_web) %>:
|
18
|
+
<input type="text" name="web" />
|
19
|
+
</p>
|
20
|
+
<p>
|
21
|
+
<input type="submit" value="<%= fix_localize(:entry) %>"/>
|
22
|
+
</p>
|
23
|
+
</form>
|
24
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
module UzuUzu
|
4
|
+
module Controller
|
5
|
+
module Wiki
|
6
|
+
class Index
|
7
|
+
|
8
|
+
def before
|
9
|
+
redirect(rf(Initialize)) unless info.initialize?
|
10
|
+
end
|
11
|
+
|
12
|
+
def index
|
13
|
+
''
|
14
|
+
end
|
15
|
+
end # Index
|
16
|
+
end # Wiki
|
17
|
+
end # Controller
|
18
|
+
end # UzuUzu
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require 'uzuuzu/
|
3
|
-
require 'uzuuzu/
|
4
|
-
require 'uzuuzu/
|
5
|
-
require 'uzuuzu/
|
2
|
+
require 'uzuuzu-cms/model/user'
|
3
|
+
require 'uzuuzu-cms/model/blog_category'
|
4
|
+
require 'uzuuzu-cms/model/blog_comment'
|
5
|
+
require 'uzuuzu-cms/model/blog_entry'
|
6
6
|
|
7
7
|
module UzuUzu
|
8
8
|
class User
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require 'uzuuzu/
|
3
|
-
require 'uzuuzu/
|
2
|
+
require 'uzuuzu-cms/model/css'
|
3
|
+
require 'uzuuzu-cms/model/javascript'
|
4
4
|
|
5
5
|
module UzuUzu
|
6
6
|
class Css
|
@@ -28,8 +28,8 @@ module UzuUzu
|
|
28
28
|
has n, :csses, :through => Resource
|
29
29
|
has n, :javascripts, :through => Resource
|
30
30
|
|
31
|
-
def render
|
32
|
-
UzuUzu.render_engine(
|
31
|
+
def render(instance=nil, options={}, locals={})
|
32
|
+
UzuUzu.render_engine(instance, self.body, self.format, options, locals)
|
33
33
|
end
|
34
34
|
end # Contents
|
35
35
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
require 'uzuuzu/
|
3
|
-
require 'uzuuzu/
|
4
|
-
require 'uzuuzu/
|
5
|
-
require 'uzuuzu/
|
6
|
-
require 'uzuuzu/
|
7
|
-
require 'uzuuzu/
|
2
|
+
require 'uzuuzu-cms/model/user'
|
3
|
+
require 'uzuuzu-cms/model/css'
|
4
|
+
require 'uzuuzu-cms/model/javascript'
|
5
|
+
require 'uzuuzu-cms/model/layout'
|
6
|
+
require 'uzuuzu-cms/model/page_body'
|
7
|
+
require 'uzuuzu-cms/model/page'
|
8
8
|
|
9
9
|
module UzuUzu
|
10
10
|
class User
|
@@ -49,7 +49,7 @@ module UzuUzu
|
|
49
49
|
:default => false
|
50
50
|
|
51
51
|
belongs_to :top_page, 'UzuUzu::Page', :required => false
|
52
|
-
belongs_to :layout
|
52
|
+
belongs_to :layout
|
53
53
|
belongs_to :admin, 'UzuUzu::User', :required => false
|
54
54
|
belongs_to :header, 'UzuUzu::PageBody'
|
55
55
|
belongs_to :footer, 'UzuUzu::PageBody'
|
@@ -59,7 +59,7 @@ module UzuUzu
|
|
59
59
|
|
60
60
|
has n, :csses, 'UzuUzu::Css', :through => Resource
|
61
61
|
has n, :javascripts, 'UzuUzu::Javascript', :through => Resource
|
62
|
-
|
62
|
+
|
63
63
|
def self.uniq
|
64
64
|
ret = nil
|
65
65
|
UzuUzu.transaction do |tr|
|
@@ -68,6 +68,7 @@ module UzuUzu
|
|
68
68
|
if ary.empty?
|
69
69
|
ret = self.new
|
70
70
|
ret.title = "UzuUzu"
|
71
|
+
ret.layout = ::UzuUzu::Layout.first
|
71
72
|
ret.header = ::UzuUzu::PageBody.new
|
72
73
|
ret.footer = ::UzuUzu::PageBody.new
|
73
74
|
ret.navigator = ::UzuUzu::PageBody.new
|
@@ -100,21 +101,56 @@ module UzuUzu
|
|
100
101
|
info.initialize?
|
101
102
|
end
|
102
103
|
|
103
|
-
def render(
|
104
|
+
def render(instance=nil, contents=nil, options={})
|
104
105
|
locals = {
|
105
106
|
:@header => self.header.render(instance, options),
|
106
107
|
:@footer => self.footer.render(instance, options),
|
107
108
|
:@left => self.left.render(instance, options),
|
108
109
|
:@right => self.right.render(instance, options),
|
109
|
-
:@css => self.csses,
|
110
|
-
:@js => self.javascripts
|
110
|
+
:@css => self.csses.to_a.map{|css|css.url},
|
111
|
+
:@js => self.javascripts.to_a.map{|js|js.url}
|
111
112
|
}
|
112
113
|
locals[:@navigator] = self.navigator.render(instance, options) if self.use_navigator
|
113
114
|
locals[:@contents] = contents
|
114
115
|
locals[:@contents] ||= yield if block_given?
|
115
116
|
locals[:@contents] ||= ""
|
116
|
-
UzuUzu.render_engine(instance, self.layout.body, self.layout.
|
117
|
+
UzuUzu.render_engine(instance, self.layout.body, self.layout.format, options, locals)
|
117
118
|
end # render
|
119
|
+
|
120
|
+
def header
|
121
|
+
page_body_property(super, :header)
|
122
|
+
end # header
|
123
|
+
|
124
|
+
def footer
|
125
|
+
page_body_property(super, :footer)
|
126
|
+
end # footer
|
127
|
+
|
128
|
+
def left
|
129
|
+
page_body_property(super, :left)
|
130
|
+
end # left
|
131
|
+
|
132
|
+
def right
|
133
|
+
page_body_property(super, :right)
|
134
|
+
end # right
|
135
|
+
|
136
|
+
def navigator
|
137
|
+
page_body_property(super, :navigator)
|
138
|
+
end # navigator
|
139
|
+
|
140
|
+
private
|
141
|
+
def page_body_property(value, property_name)
|
142
|
+
if value.nil?
|
143
|
+
UzuUzu.transaction do |tr|
|
144
|
+
tr.commit do
|
145
|
+
value = ::UzuUzu::PageBody.new
|
146
|
+
self.send("#{property_name}=", value)
|
147
|
+
self.save
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
value
|
152
|
+
end
|
153
|
+
|
118
154
|
end #Info
|
119
155
|
|
120
156
|
if auto_upgrade?
|
@@ -6,10 +6,10 @@ module UzuUzu
|
|
6
6
|
|
7
7
|
property :id, Serial
|
8
8
|
property :name, String,
|
9
|
-
:length => 255
|
10
|
-
property :format, String,
|
11
9
|
:required => true,
|
12
|
-
:length =>
|
10
|
+
:length => 255
|
11
|
+
property :format, Enum[:none, :erb, :markdown],
|
12
|
+
:required => true
|
13
13
|
property :body, Text,
|
14
14
|
:required => true
|
15
15
|
end #Page
|