rich_cms 2.1.7 → 3.0.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/{CHANGELOG → CHANGELOG.rdoc} +24 -0
- data/README.textile +49 -33
- data/Rakefile +92 -10
- data/VERSION +1 -1
- data/app/controllers/rich/cms_controller.rb +10 -39
- data/app/controllers/rich/cms_sessions_controller.rb +31 -0
- data/app/views/rich/cms/dock/_menu.html.erb +10 -8
- data/app/views/rich/cms/dock/_panel.html.erb +1 -1
- data/app/views/rich/cms/dock/panel/edit/_rails2.html.erb +5 -3
- data/app/views/rich/cms/dock/panel/edit/_rails3.html.erb +4 -2
- data/app/views/rich/cms/dock/panel/login/_rails2.html.erb +18 -12
- data/app/views/rich/cms/dock/panel/login/_rails3.html.erb +18 -12
- data/app/views/rich_cms.html.erb +1 -1
- data/assets/jzip/jquery/cleditor.js +1132 -1132
- data/assets/jzip/jquery/extensions/browser_detect.js +1 -2
- data/assets/jzip/native/extensions.js +41 -0
- data/assets/jzip/rich/cms/editor.js +41 -7
- data/assets/jzip/rich_cms.jz +2 -1
- data/assets/sass/rich_cms/_panel.sass +11 -1
- data/config/routes.rb +12 -11
- data/lib/generators/rich/cms_admin/cms_admin_generator.rb +82 -0
- data/lib/generators/rich/{authlogic_user/templates → cms_admin/templates/authlogic}/migration.rb +0 -0
- data/lib/generators/rich/{authlogic_user/templates → cms_admin/templates/authlogic}/model.rb +0 -0
- data/lib/generators/rich/{authlogic_user/templates → cms_admin/templates/authlogic}/session.rb +0 -0
- data/lib/rich/cms/actionpack/action_controller/base.rb +3 -44
- data/lib/rich/cms/actionpack/action_view/base.rb +32 -10
- data/lib/rich/cms/actionpack.rb +1 -2
- data/lib/rich/cms/auth.rb +110 -0
- data/lib/rich/cms/content/group.rb +1 -2
- data/lib/rich/cms/content/item.rb +2 -3
- data/lib/rich/cms/core/string/html_safe.rb +1 -2
- data/lib/rich/cms/core/string.rb +1 -2
- data/lib/rich/cms/engine.rb +23 -51
- data/lib/rich/cms/rails/engine.rb +1 -2
- data/lib/rich/cms/version.rb +11 -0
- data/lib/rich_cms.rb +2 -2
- data/rails_generators/rich_cms_admin/lib/devise/route_devise.rb +32 -0
- data/rails_generators/rich_cms_admin/rich_cms_admin_generator.rb +113 -0
- data/rails_generators/{rich_authlogic_user/templates → rich_cms_admin/templates/authlogic}/migration.rb +0 -0
- data/rails_generators/{rich_authlogic_user/templates → rich_cms_admin/templates/authlogic}/model.rb +0 -0
- data/rails_generators/{rich_authlogic_user/templates → rich_cms_admin/templates/authlogic}/session.rb +0 -0
- data/rails_generators/{rich_authlogic_user → rich_cms_admin}/templates/config.rb +0 -0
- data/rails_generators/rich_cms_admin/templates/devise/README +23 -0
- data/rails_generators/rich_cms_admin/templates/devise/devise.rb +105 -0
- data/rails_generators/rich_cms_admin/templates/devise/en.yml +35 -0
- data/rails_generators/rich_cms_admin/templates/devise/migration.rb +23 -0
- data/rails_generators/rich_cms_admin/templates/devise/model.rb +9 -0
- data/rails_generators/rich_cms_content/rich_cms_content_generator.rb +18 -12
- data/rich_cms.gemspec +295 -105
- data/test/integrator.rb +89 -0
- data/test/rails-2/dummy/.bundle/config +2 -0
- data/test/rails-2/dummy/Gemfile +15 -0
- data/test/rails-2/dummy/Gemfile.lock +97 -0
- data/test/rails-2/dummy/Rakefile +10 -0
- data/test/rails-2/dummy/app/controllers/application_controller.rb +10 -0
- data/test/rails-2/dummy/app/helpers/application_helper.rb +3 -0
- data/test/rails-2/dummy/config/boot.rb +124 -0
- data/test/rails-2/dummy/config/database.yml +23 -0
- data/test/rails-2/dummy/config/environment.rb +41 -0
- data/test/rails-2/dummy/config/environments/development.rb +17 -0
- data/test/rails-2/dummy/config/environments/production.rb +28 -0
- data/test/rails-2/dummy/config/environments/test.rb +28 -0
- data/test/rails-2/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/rails-2/dummy/config/initializers/cookie_verification_secret.rb +7 -0
- data/test/rails-2/dummy/config/initializers/devise.rb +105 -0
- data/test/rails-2/dummy/config/initializers/enrichments.rb +5 -0
- data/test/rails-2/dummy/config/initializers/inflections.rb +10 -0
- data/test/rails-2/dummy/config/initializers/mime_types.rb +5 -0
- data/test/rails-2/dummy/config/initializers/new_rails_defaults.rb +21 -0
- data/test/rails-2/dummy/config/initializers/session_store.rb +15 -0
- data/test/rails-2/dummy/config/locales/en.yml +5 -0
- data/test/rails-2/dummy/config/preinitializer.rb +20 -0
- data/test/rails-2/dummy/config/routes.rb +44 -0
- data/test/rails-2/dummy/db/schema.rb +49 -0
- data/test/rails-2/dummy/db/seeds.rb +10 -0
- data/test/rails-2/dummy/public/404.html +30 -0
- data/test/rails-2/dummy/public/422.html +30 -0
- data/test/rails-2/dummy/public/500.html +30 -0
- data/test/rails-2/dummy/public/favicon.ico +0 -0
- data/test/rails-2/dummy/public/images/rails.png +0 -0
- data/test/rails-2/dummy/public/images/rich/cms/cleditor/buttons.gif +0 -0
- data/test/rails-2/dummy/public/images/rich/cms/cleditor/toolbar.gif +0 -0
- data/test/rails-2/dummy/public/javascripts/jquery/core.js +158 -0
- data/test/rails-2/dummy/public/javascripts/jquery/ui/rich_cms/core.js +1207 -0
- data/test/rails-2/dummy/public/javascripts/jquery/ui/rich_cms/draggable.js +798 -0
- data/test/rails-2/dummy/public/javascripts/jquery/ui/rich_cms/mouse.js +950 -0
- data/test/rails-2/dummy/public/javascripts/jquery/ui/rich_cms/widget.js +1188 -0
- data/test/rails-2/dummy/public/javascripts/rich_cms.js +1746 -0
- data/test/rails-2/dummy/public/robots.txt +5 -0
- data/test/rails-2/dummy/script/about +4 -0
- data/test/rails-2/dummy/script/console +3 -0
- data/test/rails-2/dummy/script/dbconsole +3 -0
- data/test/rails-2/dummy/script/destroy +3 -0
- data/test/rails-2/dummy/script/generate +3 -0
- data/test/rails-2/dummy/script/performance/benchmarker +3 -0
- data/test/rails-2/dummy/script/performance/profiler +3 -0
- data/test/rails-2/dummy/script/plugin +3 -0
- data/test/rails-2/dummy/script/runner +3 -0
- data/test/rails-2/dummy/script/server +3 -0
- data/test/rails-2/dummy/test/fixtures/authlogic_users.yml +6 -0
- data/test/rails-2/dummy/test/fixtures/devise_users.yml +5 -0
- data/test/rails-2/pending.rb +88 -0
- data/test/rails-2/test_helper.rb +13 -0
- data/test/rails-3/dummy/.bundle/config +2 -0
- data/test/rails-3/dummy/Gemfile +15 -0
- data/test/rails-3/dummy/Gemfile.lock +139 -0
- data/test/rails-3/dummy/Rakefile +7 -0
- data/test/rails-3/dummy/app/controllers/application_controller.rb +3 -0
- data/test/rails-3/dummy/app/helpers/application_helper.rb +2 -0
- data/test/rails-3/dummy/config/application.rb +42 -0
- data/test/rails-3/dummy/config/boot.rb +13 -0
- data/test/rails-3/dummy/config/database.yml +23 -0
- data/test/rails-3/dummy/config/environment.rb +5 -0
- data/test/rails-3/dummy/config/environments/development.rb +26 -0
- data/test/rails-3/dummy/config/environments/production.rb +49 -0
- data/test/rails-3/dummy/config/environments/test.rb +35 -0
- data/test/rails-3/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/rails-3/dummy/config/initializers/devise.rb +142 -0
- data/test/rails-3/dummy/config/initializers/enrichments.rb +5 -0
- data/test/rails-3/dummy/config/initializers/inflections.rb +10 -0
- data/test/rails-3/dummy/config/initializers/mime_types.rb +5 -0
- data/test/rails-3/dummy/config/initializers/secret_token.rb +7 -0
- data/test/rails-3/dummy/config/initializers/session_store.rb +8 -0
- data/test/rails-3/dummy/config/locales/en.yml +5 -0
- data/test/rails-3/dummy/config/routes.rb +59 -0
- data/test/rails-3/dummy/config.ru +4 -0
- data/test/rails-3/dummy/db/schema.rb +49 -0
- data/test/rails-3/dummy/db/seeds.rb +10 -0
- data/test/rails-3/dummy/public/404.html +26 -0
- data/test/rails-3/dummy/public/422.html +26 -0
- data/test/rails-3/dummy/public/500.html +26 -0
- data/test/rails-3/dummy/public/favicon.ico +0 -0
- data/test/rails-3/dummy/public/images/rich/cms/cleditor/buttons.gif +0 -0
- data/test/rails-3/dummy/public/images/rich/cms/cleditor/toolbar.gif +0 -0
- data/test/rails-3/dummy/public/javascripts/jquery/core.js +158 -0
- data/test/rails-3/dummy/public/javascripts/jquery/ui/rich_cms/core.js +1207 -0
- data/test/rails-3/dummy/public/javascripts/jquery/ui/rich_cms/draggable.js +798 -0
- data/test/rails-3/dummy/public/javascripts/jquery/ui/rich_cms/mouse.js +950 -0
- data/test/rails-3/dummy/public/javascripts/jquery/ui/rich_cms/widget.js +1188 -0
- data/test/rails-3/dummy/public/javascripts/rich_cms.js +1746 -0
- data/test/rails-3/dummy/script/rails +6 -0
- data/test/rails-3/dummy/test/fixtures/authlogic_users.yml +6 -0
- data/test/rails-3/dummy/test/fixtures/devise_users.yml +5 -0
- data/test/rails-3/test_helper.rb +17 -0
- data/test/shared/dummy/db/schema.rb +49 -0
- data/test/shared/dummy/db/seeds.rb +10 -0
- data/test/shared/dummy/fixtures/authlogic_users.yml +6 -0
- data/test/shared/dummy/models/authlogic_user.rb +8 -0
- data/test/shared/dummy/models/authlogic_user_session.rb +10 -0
- data/test/shared/dummy/models/cms_content.rb +2 -0
- data/test/shared/dummy/models/devise_user.rb +3 -0
- data/test/shared/dummy/stylesheets/app.css +100 -0
- data/test/shared/dummy/stylesheets/rich_cms.css +159 -0
- data/test/shared/dummy/views/application/index.html.erb +13 -0
- data/test/shared/dummy/views/layouts/application.html.erb +12 -0
- data/test/shared/support/action_controller/integration.rb +55 -0
- data/test/shared/support/action_controller/test_case.rb +28 -0
- data/test/shared/support/capybara/setup.rb +14 -0
- data/test/shared/support/test_helper.rb +1 -0
- data/test/shared/tests/actionpack/action_controller/base_test.rb +14 -0
- data/test/shared/tests/actionpack/action_view/base_test.rb +19 -0
- data/test/shared/tests/activesupport/active_support/dependencies_test.rb +15 -0
- data/test/shared/tests/app/integration/authenticated/authlogic.rb +88 -0
- data/test/shared/tests/app/integration/authenticated/devise_test.rb +89 -0
- data/test/shared/tests/app/integration/non_authenticated.rb +63 -0
- data/test/shared/tests/app/routing_test.rb +31 -0
- data/test/shared/tests/auth_test.rb +11 -0
- data/test/shared/tests/content/group.rb +10 -0
- data/test/shared/tests/content/item.rb +10 -0
- data/test/shared/tests/core/string/html_safe.rb +15 -0
- data/test/shared/tests/dummy_app.rb +228 -0
- data/test/shared/tests/engine_test.rb +19 -0
- data/test/shared/tests/rails/engine_test.rb +13 -0
- data/test/shared/tests/readme_test.rb +13 -0
- metadata +231 -63
- data/.gitignore +0 -2
- data/lib/generators/rich/authlogic_user/authlogic_user_generator.rb +0 -64
- data/rails_generators/rich_authlogic_user/rich_authlogic_user_generator.rb +0 -64
- data/test/test_helper.rb +0 -6
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
= Rich-CMS CHANGELOG
|
|
2
2
|
|
|
3
|
+
== Version 3.0.0 (February 7, 2011)
|
|
4
|
+
|
|
5
|
+
* Refactored the authentication code. Being able to run Rich-CMS with:
|
|
6
|
+
- no authentication
|
|
7
|
+
- Devise 1.0.9 (for Rails 2)
|
|
8
|
+
- Devise 1.1.5 (for Rails 3)
|
|
9
|
+
- Authlogic 2.1.6
|
|
10
|
+
* Altered configurating the authentication setup
|
|
11
|
+
* Altered the login/logout Rich-CMS routes
|
|
12
|
+
* Altered the admin generator (this was rich:autlogic_user at first, but it is rich:cms_admin from now on)
|
|
13
|
+
* Updated gem dependencies (not using Formtastic and Authlogic anymore)
|
|
14
|
+
* Improved the test suite. Being able to test Rich-CMS with:
|
|
15
|
+
- Rails 2 without authentication
|
|
16
|
+
- Rails 2 with Devise 1.0.9
|
|
17
|
+
- Rails 2 with Authlogic 2.1.6
|
|
18
|
+
- Rails 3 without authentication
|
|
19
|
+
- Rails 3 with Devise 1.1.5
|
|
20
|
+
- Rails 3 with Authlogic 2.1.6
|
|
21
|
+
- All tests include testing the Rails generators and migrating the test database (woot!)
|
|
22
|
+
- Added very handy rake tasks for testing
|
|
23
|
+
- Outputting extra info during integration tests
|
|
24
|
+
* Altered file encoding of cleditor.js which removes the weird characters within rich_cms.js
|
|
25
|
+
* Implemented Array.indexOf for our IE friends. Thanks Mark Mulder (@bitterzoet) for contributing
|
|
26
|
+
|
|
3
27
|
== Version 2.1.7 (November 24, 2010)
|
|
4
28
|
|
|
5
29
|
* Fixed loading the correct config/routes.rb when using a Rails 2 application with another gem / plugin also containing config/routes.rb
|
data/README.textile
CHANGED
|
@@ -20,7 +20,7 @@ Add Rich-CMS in @Gemfile@ as a gem dependency:
|
|
|
20
20
|
Run the following in your console to install with Bundler:
|
|
21
21
|
|
|
22
22
|
<pre>
|
|
23
|
-
|
|
23
|
+
bundle install
|
|
24
24
|
</pre>
|
|
25
25
|
|
|
26
26
|
h3. Using Rich-CMS as gem in Rails 2
|
|
@@ -37,53 +37,59 @@ Run the following in your console:
|
|
|
37
37
|
sudo rake gems:install
|
|
38
38
|
</pre>
|
|
39
39
|
|
|
40
|
-
h3. Using Rich-CMS as plugin in Rails 3
|
|
41
|
-
|
|
42
|
-
<pre>
|
|
43
|
-
rails plugin install git://github.com/archan937/rich_cms.git
|
|
44
|
-
</pre>
|
|
45
|
-
|
|
46
|
-
h3. Using Rich-CMS as plugin in Rails 2
|
|
47
|
-
|
|
48
|
-
<pre>
|
|
49
|
-
script/plugin install git://github.com/archan937/rich_cms.git
|
|
50
|
-
</pre>
|
|
51
|
-
|
|
52
40
|
h2. Use the provided Rails generators
|
|
53
41
|
|
|
54
|
-
Rich-CMS requires
|
|
42
|
+
Rich-CMS requires one entity:
|
|
55
43
|
|
|
56
|
-
* An @Authlogic@ authenticated user model
|
|
57
44
|
* An @ActiveRecord@ model used for CMS content storage
|
|
58
45
|
|
|
59
|
-
|
|
46
|
+
For (optional) authentication, Rich-CMS requires one of the following:
|
|
47
|
+
|
|
48
|
+
* A @Devise@ authenticated admin model
|
|
49
|
+
* A @Authlogic@ authenticated admin model
|
|
60
50
|
|
|
61
|
-
|
|
51
|
+
Fortunately, Rich-CMS is provided with two Rails generators with which you can generate those entities.
|
|
52
|
+
|
|
53
|
+
h3. CMS admin
|
|
62
54
|
|
|
63
55
|
h4. In Rails 3
|
|
64
56
|
|
|
65
57
|
Run the following in your console:
|
|
66
58
|
|
|
67
59
|
<pre>
|
|
68
|
-
rails g rich:
|
|
60
|
+
rails g rich:cms_admin -m
|
|
69
61
|
</pre>
|
|
70
62
|
|
|
71
|
-
*Note*: At default, it will create
|
|
63
|
+
*Note*: At default, it will create a ("Devise":http://github.com/plataformatec/devise powered) @User@ model, the @CreateUsers@ migration and it will configure your routes.
|
|
64
|
+
|
|
65
|
+
You can alter the class name as follows:
|
|
72
66
|
|
|
73
67
|
<pre>
|
|
74
|
-
rails g rich:
|
|
68
|
+
rails g rich:cms_admin CodeHeroes::User -m
|
|
75
69
|
</pre>
|
|
76
70
|
|
|
77
71
|
*Note*: Both generators have the @-m@ or @--migrate@ option which runs @rake db:migrate@ after creating the files.
|
|
78
72
|
|
|
73
|
+
*Using Authlogic*
|
|
74
|
+
|
|
75
|
+
You can use Authlogic by specifying the @-a@ or @--authlogic@ option:
|
|
76
|
+
|
|
77
|
+
<pre>
|
|
78
|
+
rails g rich:cms_admin CodeHeroes::User -a -m
|
|
79
|
+
</pre>
|
|
80
|
+
|
|
81
|
+
*Note*: As mentioned earlier, Devise is the default authentication logic. Having that said, you can explicitly specify Devise with the @-d@ or @--devise@ option.
|
|
82
|
+
|
|
79
83
|
h4. In Rails 2
|
|
80
84
|
|
|
81
85
|
Run the following in your console:
|
|
82
86
|
|
|
83
87
|
<pre>
|
|
84
|
-
script/generate
|
|
88
|
+
script/generate rich_cms_admin -m
|
|
85
89
|
</pre>
|
|
86
90
|
|
|
91
|
+
*Attention*: The @Devise@ Rails generator code is (practically) a copy of the "Devise 1.0.9 generator code":https://github.com/plataformatec/devise/tree/v1.0.9/generators/devise. For there are problems calling the original Devise generators in Rails 2. See also this "Stackoverflow issue":http://stackoverflow.com/questions/3366508/couldnt-find-devise-install-generator-rails-2-3-8-devise-1-0-8.
|
|
92
|
+
|
|
87
93
|
h3. CMS content
|
|
88
94
|
|
|
89
95
|
h4. In Rails 3
|
|
@@ -114,13 +120,22 @@ h2. Create required entities manually
|
|
|
114
120
|
|
|
115
121
|
h3. Specify the authentication mechanism
|
|
116
122
|
|
|
117
|
-
|
|
123
|
+
Rich-CMS can be used without an authentication mechanism (which is the default by the way), you just have to open "/cms" in your browser and you are ready to go. But it is common to have authentication and Rich-CMS support "Devise":http://github.com/plataformatec/devise and "Authlogic":http://github.com/binarylogic/authlogic.
|
|
124
|
+
|
|
125
|
+
Provide the authentication logic as a symbol (e.g. @:devise@) and the authenticated class like this:
|
|
118
126
|
|
|
119
127
|
<pre>
|
|
120
|
-
Rich::Cms::
|
|
128
|
+
Rich::Cms::Auth.setup do |config|
|
|
129
|
+
config.logic = :devise
|
|
130
|
+
config.klass = "User"
|
|
131
|
+
end
|
|
121
132
|
</pre>
|
|
122
133
|
|
|
123
|
-
|
|
134
|
+
The following specifications are optional as Rich-Cms uses defaults:
|
|
135
|
+
|
|
136
|
+
* @:inputs@ (default: @[:email, :password]@) - The attributes used for the login panel of Rich-CMS
|
|
137
|
+
* @:identifier@ (default: based on @inputs@) - The method used for displaying the identity of the current Rich-CMS admin (this is the first entry of @inputs@, so usually @:email@)
|
|
138
|
+
* @:current_admin_method@ (default: based on @klass@) - The controller method used to retrieve the current Rich-CMS admin (e.g. @current_user@ when configured @User@ as authenticated class)
|
|
124
139
|
|
|
125
140
|
h3. Register CMS content
|
|
126
141
|
|
|
@@ -157,25 +172,25 @@ Add the following line at the beginning of the @<body>@ tag:
|
|
|
157
172
|
|
|
158
173
|
h3. Use the Rich-CMS helper method
|
|
159
174
|
|
|
160
|
-
Rich-CMS requires a rendered DOM element provided with meta data of the content instance. Fortunately, you can call a method
|
|
175
|
+
Rich-CMS requires a rendered DOM element provided with meta data of the content instance. Fortunately, you can call a helper method to render Rich-CMS content tags. Just specify the identifier of the content type and the key of the CMS content instance in question:
|
|
161
176
|
|
|
162
177
|
<pre>
|
|
163
178
|
>> key = "test_content"
|
|
164
179
|
=> "test_content"
|
|
165
|
-
>>
|
|
180
|
+
>> rich_cms_tag(".cms_content", key)
|
|
166
181
|
=> "<div class='cms_content' data-key='test_content' data-value='Hello world!'>Hello world!</div>"
|
|
167
182
|
</pre>
|
|
168
183
|
|
|
169
184
|
When using a combined key for content identification, just call it as follows:
|
|
170
185
|
|
|
171
186
|
<pre>
|
|
172
|
-
>>
|
|
187
|
+
>> rich_cms_tag(".cms_content", {:key => key, :locale => I18n.locale})
|
|
173
188
|
=> "<div class='cms_content' data-key='test_content' data-locale='nl' data-value='Hallo wereld!'>Hallo wereld!</div>"
|
|
174
189
|
</pre>
|
|
175
190
|
|
|
176
191
|
*Note*: In this case, the content was registered with @Rich::Cms::Engine.register(".cms_content", {:class_name => "Cms::StaticContent", :key => [:key, :locale]})@
|
|
177
192
|
|
|
178
|
-
|
|
193
|
+
The helper method is provided with the following options:
|
|
179
194
|
|
|
180
195
|
* @:as@ (default: auto-determine @:string@ or @:text@) - Specify the input type shown in the edit form (@:string@ for an input text, @:text@ for a textarea and @:html@ for a WYSIWYG HTML editor).
|
|
181
196
|
* @:tag@ (default: auto-determine @:div@ or @:span@) - The HTML tag used for content items.
|
|
@@ -231,11 +246,11 @@ This Rails gem / plugin depends on:
|
|
|
231
246
|
jQuery<br>
|
|
232
247
|
"http://jquery.com":http://jquery.com
|
|
233
248
|
|
|
234
|
-
|
|
235
|
-
"http://github.com/
|
|
249
|
+
Devise (optional)<br>
|
|
250
|
+
"http://github.com/plataformatec/devise":http://github.com/plataformatec/devise
|
|
236
251
|
|
|
237
|
-
|
|
238
|
-
"http://github.com/
|
|
252
|
+
AuthLogic (optional)<br>
|
|
253
|
+
"http://github.com/binarylogic/authlogic":http://github.com/binarylogic/authlogic
|
|
239
254
|
|
|
240
255
|
SASS<br>
|
|
241
256
|
"http://sass-lang.com":http://sass-lang.com
|
|
@@ -262,9 +277,10 @@ Stephan Kaag - "@stephankaag":http://twitter.com/stephankaag - "http://hollandon
|
|
|
262
277
|
|
|
263
278
|
h2. ToDo's
|
|
264
279
|
|
|
280
|
+
* Support alternative ORM's and key/value stores (with "Toystore":https://github.com/newtoy/toystore and "Moneta":https://github.com/wycats/moneta probably)
|
|
281
|
+
* Check out compatibility with Devise 1.2.0
|
|
265
282
|
* Provide better conventions for content rendering
|
|
266
283
|
* Provide tools to use Textile, MarkDown, image files upload and models (e.g. products)
|
|
267
|
-
* Provide compatibility with other authentication mechanisms other than AuthLogic
|
|
268
284
|
* Add cache feature which uses the standard Rails cache (rich_cms_tag ".cms_content", "test_content", :cache => true)
|
|
269
285
|
|
|
270
286
|
h2. Enrichments
|
data/Rakefile
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require "rake"
|
|
2
2
|
require "rake/testtask"
|
|
3
3
|
require "rake/rdoctask"
|
|
4
|
+
require "test/integrator"
|
|
4
5
|
|
|
5
6
|
begin
|
|
6
7
|
require "jeweler"
|
|
@@ -12,10 +13,8 @@ begin
|
|
|
12
13
|
gemspec.homepage = "http://codehero.es/rails_gems_plugins/rich_cms"
|
|
13
14
|
gemspec.author = "Paul Engel"
|
|
14
15
|
|
|
15
|
-
gemspec.add_dependency "
|
|
16
|
-
gemspec.add_dependency "
|
|
17
|
-
gemspec.add_dependency "haml" , ">= 3"
|
|
18
|
-
gemspec.add_dependency "jzip" , ">= 1.0.11"
|
|
16
|
+
gemspec.add_dependency "haml", "~> 3.0.25"
|
|
17
|
+
gemspec.add_dependency "jzip", "~> 1.0.11"
|
|
19
18
|
end
|
|
20
19
|
Jeweler::GemcutterTasks.new
|
|
21
20
|
rescue LoadError
|
|
@@ -25,12 +24,94 @@ end
|
|
|
25
24
|
desc "Default: run unit tests."
|
|
26
25
|
task :default => :test
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
Rake::
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
task :test do
|
|
28
|
+
Rake::Task["test:all"].execute
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
task :restore do
|
|
32
|
+
Rake::Task["restore:all"].execute
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
task :stash do
|
|
36
|
+
Rake::Task["stash:all"].execute
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
namespace :test do
|
|
40
|
+
desc "Test the rich_cms plugin in Rails 2 and 3."
|
|
41
|
+
task :all do
|
|
42
|
+
system "rake test:rails-2"
|
|
43
|
+
system "rake test:rails-3"
|
|
44
|
+
end
|
|
45
|
+
desc "Test the rich_cms plugin in Rails 2."
|
|
46
|
+
Rake::TestTask.new(:"rails-2") do |t|
|
|
47
|
+
t.libs << "lib"
|
|
48
|
+
t.libs << "test"
|
|
49
|
+
t.pattern = "test/rails-2/{,/*/**}/*_test.rb"
|
|
50
|
+
t.verbose = true
|
|
51
|
+
end
|
|
52
|
+
desc "Test the rich_cms plugin in Rails 3."
|
|
53
|
+
Rake::TestTask.new(:"rails-3") do |t|
|
|
54
|
+
t.libs << "lib"
|
|
55
|
+
t.libs << "test"
|
|
56
|
+
t.pattern = "test/rails-3/{,/*/**}/*_test.rb"
|
|
57
|
+
t.verbose = true
|
|
58
|
+
end
|
|
59
|
+
desc "Run all integration tests (non-authenticated, with Devise, with Authlogic) in Rails 2 and 3."
|
|
60
|
+
task :integration do
|
|
61
|
+
Integrator.run do |test|
|
|
62
|
+
test.all
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
namespace :integration do
|
|
66
|
+
desc "Run all integration tests (non-authenticated, with Devise, with Authlogic) in Rails 2."
|
|
67
|
+
task :"rails-2" do
|
|
68
|
+
Integrator.run do |test|
|
|
69
|
+
test.rails 2
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
desc "Run all integration tests (non-authenticated, with Devise, with Authlogic) in Rails 3."
|
|
73
|
+
task :"rails-3" do
|
|
74
|
+
Integrator.run do |test|
|
|
75
|
+
test.rails 2
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
namespace :restore do
|
|
82
|
+
desc "Restore the Rails 2 and 3 dummy apps."
|
|
83
|
+
task :all do
|
|
84
|
+
system "rake restore:rails-2"
|
|
85
|
+
system "rake restore:rails-3"
|
|
86
|
+
end
|
|
87
|
+
desc "Restore the Rails 2 dummy app."
|
|
88
|
+
task :"rails-2" do
|
|
89
|
+
require "test/rails-2/rich_cms/dummy_app.rb"
|
|
90
|
+
DummyApp.restore_all
|
|
91
|
+
end
|
|
92
|
+
desc "Restore the Rails 3 dummy app."
|
|
93
|
+
task :"rails-3" do
|
|
94
|
+
require "test/rails-3/rich_cms/dummy_app.rb"
|
|
95
|
+
DummyApp.restore_all
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
namespace :stash do
|
|
100
|
+
desc "Stash the Rails 2 and 3 dummy apps."
|
|
101
|
+
task :all do
|
|
102
|
+
system "rake stash:rails-2"
|
|
103
|
+
system "rake stash:rails-3"
|
|
104
|
+
end
|
|
105
|
+
desc "Stash the Rails 2 dummy app."
|
|
106
|
+
task :"rails-2" do
|
|
107
|
+
require "test/rails-2/rich_cms/dummy_app.rb"
|
|
108
|
+
DummyApp.stash_all
|
|
109
|
+
end
|
|
110
|
+
desc "Stash the Rails 3 dummy app."
|
|
111
|
+
task :"rails-3" do
|
|
112
|
+
require "test/rails-3/rich_cms/dummy_app.rb"
|
|
113
|
+
DummyApp.stash_all
|
|
114
|
+
end
|
|
34
115
|
end
|
|
35
116
|
|
|
36
117
|
desc "Generate documentation for the rich_cms plugin."
|
|
@@ -42,3 +123,4 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
|
|
|
42
123
|
rdoc.rdoc_files.include "MIT-LICENSE"
|
|
43
124
|
rdoc.rdoc_files.include "lib/**/*.rb"
|
|
44
125
|
end
|
|
126
|
+
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.0.0
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
2
1
|
module Rich
|
|
3
2
|
class CmsController < ::ApplicationController
|
|
4
|
-
|
|
5
|
-
before_filter :require_current_rich_cms_admin, :except => [:display, :position, :login]
|
|
3
|
+
before_filter :require_login, :except => [:display, :position]
|
|
6
4
|
|
|
7
5
|
def display
|
|
8
6
|
(session[:rich_cms] ||= {})[:display] = params[:display]
|
|
@@ -14,52 +12,25 @@ module Rich
|
|
|
14
12
|
render :nothing => true
|
|
15
13
|
end
|
|
16
14
|
|
|
17
|
-
def
|
|
18
|
-
|
|
19
|
-
when :authlogic
|
|
20
|
-
@current_rich_cms_admin_session = rich_cms_authenticated_class.new params[key = rich_cms_authenticated_class.name.underscore.gsub("/", "_")]
|
|
21
|
-
authenticated = @current_rich_cms_admin_session.save
|
|
22
|
-
|
|
23
|
-
after_rich_cms_login authenticated, key
|
|
24
|
-
end
|
|
15
|
+
def update
|
|
16
|
+
render :json => Cms::Content::Item.new(params[:content_item]).save
|
|
25
17
|
end
|
|
26
18
|
|
|
27
|
-
|
|
28
|
-
case rich_cms_auth.logic
|
|
29
|
-
when :authlogic
|
|
30
|
-
(@current_rich_cms_admin_session ||= rich_cms_authenticated_class.find).destroy
|
|
31
|
-
end
|
|
32
|
-
session[:rich_cms] = nil
|
|
33
|
-
|
|
34
|
-
after_rich_cms_logout
|
|
35
|
-
end
|
|
19
|
+
private
|
|
36
20
|
|
|
37
|
-
|
|
38
|
-
|
|
21
|
+
def require_login
|
|
22
|
+
if Rich::Cms::Auth.login_required?
|
|
39
23
|
if request.xhr?
|
|
40
24
|
render :update do |page|
|
|
41
|
-
|
|
42
|
-
page.reload
|
|
43
|
-
else
|
|
44
|
-
page["##{key}_#{rich_cms_authentication_inputs.first}"].focus
|
|
45
|
-
end
|
|
25
|
+
page.reload
|
|
46
26
|
end
|
|
47
27
|
else
|
|
48
28
|
redirect_to request.referrer
|
|
49
29
|
end
|
|
30
|
+
return false
|
|
50
31
|
end
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
unless ::ApplicationController.instance_methods.include?("after_rich_cms_logout")
|
|
54
|
-
def after_rich_cms_logout
|
|
55
|
-
redirect_to request.referrer
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def update
|
|
60
|
-
render :json => Cms::Content::Item.new(params[:content_item]).save
|
|
32
|
+
true
|
|
61
33
|
end
|
|
62
34
|
|
|
63
35
|
end
|
|
64
|
-
|
|
65
|
-
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module Rich
|
|
2
|
+
class CmsSessionsController < ::ApplicationController
|
|
3
|
+
|
|
4
|
+
def login
|
|
5
|
+
Rich::Cms::Auth.login
|
|
6
|
+
if request.xhr?
|
|
7
|
+
render :update do |page|
|
|
8
|
+
if Rich::Cms::Auth.admin
|
|
9
|
+
page.reload
|
|
10
|
+
else
|
|
11
|
+
page["##{Rich::Cms::Auth.klass_symbol}_#{Rich::Cms::Auth.inputs.first}"].focus
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
else
|
|
15
|
+
redirect_to request.referrer
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def logout
|
|
20
|
+
Rich::Cms::Auth.logout
|
|
21
|
+
if request.xhr?
|
|
22
|
+
render :update do |page|
|
|
23
|
+
page.reload
|
|
24
|
+
end
|
|
25
|
+
else
|
|
26
|
+
redirect_to request.referrer
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
<ul id="rich_cms_menu">
|
|
2
|
-
<%
|
|
2
|
+
<% if rich_cms_login_required? %>
|
|
3
3
|
<li>
|
|
4
4
|
Rich-CMS
|
|
5
5
|
</li>
|
|
6
6
|
<li class="last">
|
|
7
|
-
<%=
|
|
7
|
+
<%= link_to "Login", "#", :class => "login" %>
|
|
8
8
|
</li>
|
|
9
9
|
<% else %>
|
|
10
10
|
<li>
|
|
11
|
-
<%=
|
|
11
|
+
<%= current_rich_cms_admin_label %>
|
|
12
12
|
</li>
|
|
13
13
|
<li>
|
|
14
|
-
<%=
|
|
14
|
+
<%= link_to "Mark content", "#", :class => "mark" %>
|
|
15
15
|
</li>
|
|
16
|
-
<li>
|
|
16
|
+
<li class="<%= "last" unless Rich::Cms::Auth.enabled? %>">
|
|
17
17
|
<%= link_to "Hide" , rich_cms_hide_path %>
|
|
18
18
|
</li>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
<% if Rich::Cms::Auth.enabled? %>
|
|
20
|
+
<li class="last">
|
|
21
|
+
<%= link_to "Logout", rich_cms_logout_path %>
|
|
22
|
+
</li>
|
|
23
|
+
<% end %>
|
|
22
24
|
<% end %>
|
|
23
25
|
</ul>
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<div class="edit">
|
|
2
|
-
<%
|
|
2
|
+
<% form_tag rich_cms_update_path, :name => "rich_cms_content", :class => "ajaxify" do %>
|
|
3
3
|
<fieldset class="inputs">
|
|
4
|
-
<
|
|
4
|
+
<div class="keys">
|
|
5
|
+
<label>Editing: </label>
|
|
6
|
+
</div>
|
|
5
7
|
</fieldset>
|
|
6
8
|
<fieldset class="buttons">
|
|
7
|
-
<%= submit_tag "Save" %> <%=
|
|
9
|
+
<%= submit_tag "Save" %> <%= link_to "Close", "#", :class => "close" %>
|
|
8
10
|
</fieldset>
|
|
9
11
|
<% end %>
|
|
10
12
|
</div>
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<div class="edit">
|
|
2
2
|
<%= form_tag rich_cms_update_path, :name => "rich_cms_content", :class => "ajaxify" do %>
|
|
3
3
|
<fieldset class="inputs">
|
|
4
|
-
<
|
|
4
|
+
<div class="keys">
|
|
5
|
+
<label>Editing: </label>
|
|
6
|
+
</div>
|
|
5
7
|
</fieldset>
|
|
6
8
|
<fieldset class="buttons">
|
|
7
|
-
<%= submit_tag "Save" %> <%=
|
|
9
|
+
<%= submit_tag "Save" %> <%= link_to "Close", "#", :class => "close" %>
|
|
8
10
|
</fieldset>
|
|
9
11
|
<% end %>
|
|
10
12
|
</div>
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
<div class="login">
|
|
2
|
-
<%
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
<% form_for rich_cms_admin_class.new, :url => rich_cms_login_path, :html => {:class => "ajaxify"} do |form| %>
|
|
3
|
+
<fieldset class="inputs">
|
|
4
|
+
<ol>
|
|
5
|
+
<% rich_cms_admin_inputs.each do |input| %>
|
|
6
|
+
<li class="<%= input.to_s =~ /password/ ? "password" : "string" %> required">
|
|
7
|
+
<%= form.label input, "#{input.to_s.humanize} <abbr title='required'>*</abbr>" %>
|
|
8
|
+
<%= form.send :"#{input.to_s =~ /password/ ? "password" : "text"}_field", input, :html => {:size => ""} %>
|
|
9
|
+
</li>
|
|
10
|
+
<% end %>
|
|
11
|
+
</ol>
|
|
12
|
+
</fieldset>
|
|
13
|
+
<fieldset class="buttons">
|
|
14
|
+
<ol>
|
|
15
|
+
<li>
|
|
16
|
+
<%= submit_tag "Login" %>
|
|
17
|
+
</li>
|
|
18
|
+
</ol>
|
|
19
|
+
</fieldset>
|
|
14
20
|
<% end %>
|
|
15
21
|
</div>
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
<div class="login">
|
|
2
|
-
<%=
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
<%= form_for rich_cms_admin_class.new, :url => rich_cms_login_path, :html => {:class => "ajaxify"} do |form| %>
|
|
3
|
+
<fieldset class="inputs">
|
|
4
|
+
<ol>
|
|
5
|
+
<% rich_cms_admin_inputs.each do |input| %>
|
|
6
|
+
<li class="<%= input.to_s =~ /password/ ? "password" : "string" %> required">
|
|
7
|
+
<%= form.label input, "#{input.to_s.humanize} <abbr title='required'>*</abbr>".html_safe %>
|
|
8
|
+
<%= form.send :"#{input.to_s =~ /password/ ? "password" : "text"}_field", input, :html => {:size => ""} %>
|
|
9
|
+
</li>
|
|
10
|
+
<% end %>
|
|
11
|
+
</ol>
|
|
12
|
+
</fieldset>
|
|
13
|
+
<fieldset class="buttons">
|
|
14
|
+
<ol>
|
|
15
|
+
<li>
|
|
16
|
+
<%= submit_tag "Login" %>
|
|
17
|
+
</li>
|
|
18
|
+
</ol>
|
|
19
|
+
</fieldset>
|
|
14
20
|
<% end %>
|
|
15
21
|
</div>
|
data/app/views/rich_cms.html.erb
CHANGED