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.
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