uzuuzu-cms 0.0.0 → 0.0.1

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.
Files changed (42) hide show
  1. data/VERSION +1 -1
  2. data/lib/uzuuzu-cms/controller/admin/index.rb +18 -0
  3. data/lib/uzuuzu-cms/controller/blog/index.rb +18 -0
  4. data/lib/uzuuzu-cms/controller/ec/index.rb +18 -0
  5. data/lib/uzuuzu-cms/controller/initialize.rb +79 -20
  6. data/lib/uzuuzu-cms/controller/openid.rb +22 -33
  7. data/lib/uzuuzu-cms/controller/view/initialize/step1.rhtml +2 -2
  8. data/lib/uzuuzu-cms/controller/view/initialize/step2.rhtml +23 -0
  9. data/lib/uzuuzu-cms/controller/view/initialize/step3.rhtml +24 -0
  10. data/lib/uzuuzu-cms/controller/wiki/index.rb +18 -0
  11. data/lib/uzuuzu-cms/model/blog.rb +4 -4
  12. data/lib/uzuuzu-cms/model/contents.rb +4 -4
  13. data/lib/uzuuzu-cms/model/file.rb +1 -1
  14. data/lib/uzuuzu-cms/model/image.rb +1 -1
  15. data/lib/uzuuzu-cms/model/info.rb +48 -12
  16. data/lib/uzuuzu-cms/model/layout.rb +3 -3
  17. data/lib/uzuuzu-cms/model/movie.rb +1 -1
  18. data/lib/uzuuzu-cms/model/page.rb +82 -30
  19. data/lib/uzuuzu-cms/model/page_body.rb +11 -2
  20. data/lib/uzuuzu-cms/model/wiki.rb +5 -5
  21. data/lib/uzuuzu-cms/wrapper/controller.rb +16 -0
  22. data/lib/uzuuzu-cms/wrapper/environments.rb +15 -0
  23. data/lib/uzuuzu-cms/wrapper/lang/en.yaml +23 -0
  24. data/lib/uzuuzu-cms/wrapper/lang/ja.yaml +33 -0
  25. data/lib/uzuuzu-cms/wrapper/model.rb +24 -0
  26. data/lib/uzuuzu-cms.rb +3 -2
  27. data/template/fixture/uzu_uzu/contents.yaml +31 -0
  28. data/template/fixture/uzu_uzu/contents_page_body.yaml +13 -0
  29. data/template/fixture/uzu_uzu/css.yaml +11 -0
  30. data/template/fixture/uzu_uzu/css_info.yaml +5 -0
  31. data/template/fixture/uzu_uzu/info.yaml +13 -0
  32. data/template/fixture/uzu_uzu/info_javascript.yaml +5 -0
  33. data/template/fixture/uzu_uzu/javascript.yaml +5 -0
  34. data/template/fixture/uzu_uzu/layout.yaml +278 -0
  35. data/template/fixture/uzu_uzu/page.yaml +5 -0
  36. data/template/fixture/uzu_uzu/page_body.yaml +7 -0
  37. data/uzuuzu-cms.gemspec +21 -6
  38. metadata +22 -7
  39. data/lib/uzuuzu-cms/controller/admin.rb +0 -16
  40. data/lib/uzuuzu-cms/controller.rb +0 -16
  41. data/lib/uzuuzu-cms/fixture/layout.yaml +0 -110
  42. data/lib/uzuuzu-cms/model.rb +0 -24
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.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
@@ -0,0 +1,18 @@
1
+ # coding: utf-8
2
+
3
+ module UzuUzu
4
+ module Controller
5
+ module Ec
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 # Ec
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
- UzuUzu.repository do
8
- @info = Info.uniq
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 request.post? and @info.step < 4
11
- self.send("step#{@info.step}", [])
27
+ if info.initialize?
28
+ redirect rf(UzuUzu::Controller::Index)
12
29
  end
13
- case(@info.step)
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 setp1
45
+ def step1
31
46
  unless session[:openid_identity].nil?
32
47
  UzuUzu.transaction do |tr|
33
48
  tr.begin
34
- @user = UzuUzu::User.new
35
- @user.user_id = session[:openid_identity]
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
- if info.initialize?
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(:openid)
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[:openid] ||= {}
39
- session[:openid][:entry] = request.referrer
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 = request.domain
56
- p request.domain
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
- flash[:error] = "Discovery failed for #{url}: #{ex}"
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[:openid][:identity] = openid_response.identity_url
81
- session[:openid][:sreg] = OpenID::SReg::Response.from_success_response(openid_response)
76
+ session[:openid_identity] = openid_response.identity_url
77
+ session[:openid_sreg] = OpenID::SReg::Response.from_success_response(openid_response)
82
78
  end
83
- redirect session[:openid][:entry]
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,7 +1,7 @@
1
1
 
2
- <div id="openid_index">
2
+ <div id="step1">
3
3
  <p>
4
- <%= fix_localize(:openid_message) %>
4
+ <%= fix_localize(:step1) %>
5
5
  </p>
6
6
  <form method="post" action="<%= rf(UzuUzu::Controller::Openid, :openid_begin) %>">
7
7
  <p>
@@ -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/adapter/datamapper/model/user'
3
- require 'uzuuzu/adapter/datamapper/model/blog_category'
4
- require 'uzuuzu/adapter/datamapper/model/blog_comment'
5
- require 'uzuuzu/adapter/datamapper/model/blog_entry'
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/adapter/datamapper/model/css'
3
- require 'uzuuzu/adapter/datamapper/model/javascript'
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(nil, self.body, self.format, options, locals)
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,5 +1,5 @@
1
1
  # coding: utf-8
2
- require 'uzuuzu/adapter/datamapper/model/user'
2
+ require 'uzuuzu-cms/model/user'
3
3
 
4
4
  module UzuUzu
5
5
  class User
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
- require 'uzuuzu/adapter/datamapper/model/user'
2
+ require 'uzuuzu-cms/model/user'
3
3
 
4
4
  module UzuUzu
5
5
  class User
@@ -1,10 +1,10 @@
1
1
  # coding: utf-8
2
- require 'uzuuzu/adapter/datamapper/model/user'
3
- require 'uzuuzu/adapter/datamapper/model/css'
4
- require 'uzuuzu/adapter/datamapper/model/javascript'
5
- require 'uzuuzu/adapter/datamapper/model/layout'
6
- require 'uzuuzu/adapter/datamapper/model/page_body'
7
- require 'uzuuzu/adapter/datamapper/model/page'
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, :required => false
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(contents=nil, instance=nil, options={})
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.engine, options, locals)
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
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
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
- require 'uzuuzu/adapter/datamapper/model/user'
2
+ require 'uzuuzu-cms/model/user'
3
3
 
4
4
  module UzuUzu
5
5
  class Movie