zen 0.2.3 → 0.2.4
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.md +12 -2
- data/MANIFEST +17 -10
- data/ROADMAP.md +8 -4
- data/bin/zen +2 -3
- data/lib/zen.rb +20 -14
- data/lib/zen/bin/{zen_binary.rb → base.rb} +0 -0
- data/lib/zen/controller/main_controller.rb +7 -4
- data/lib/zen/{base/database.rb → database.rb} +3 -2
- data/lib/zen/error/language_error.rb +10 -0
- data/lib/zen/error/package_error.rb +10 -0
- data/lib/zen/error/plugin_error.rb +10 -0
- data/lib/zen/error/theme_error.rb +10 -0
- data/lib/zen/helper/acl.rb +11 -4
- data/lib/zen/{base/language.rb → language.rb} +11 -3
- data/lib/zen/layout/admin.xhtml +21 -12
- data/lib/zen/layout/login.xhtml +17 -11
- data/lib/zen/liquid/general.rb +1 -27
- data/lib/zen/{base/logger.rb → logger.rb} +0 -0
- data/lib/zen/{base/package.rb → package.rb} +65 -55
- data/lib/zen/package/all.rb +5 -0
- data/lib/zen/package/categories/lib/categories.rb +7 -8
- data/lib/zen/package/comments/lib/comments.rb +7 -8
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +1 -1
- data/lib/zen/package/comments/lib/comments/liquid/comments.rb +3 -1
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +7 -8
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +14 -0
- data/lib/zen/package/custom_fields/migrations/1295255665_create_schema.rb +1 -1
- data/lib/zen/package/menus/lib/menus.rb +5 -6
- data/lib/zen/package/sections/lib/sections.rb +4 -5
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +2 -2
- data/lib/zen/package/sections/lib/sections/liquid/section_entries.rb +9 -2
- data/lib/zen/package/settings/lib/settings.rb +7 -8
- data/lib/zen/package/users/lib/users.rb +7 -8
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +5 -5
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +4 -4
- data/lib/zen/plugin.rb +172 -0
- data/lib/zen/plugin/markup.rb +30 -0
- data/lib/zen/public/admin/css/layout.css +17 -0
- data/lib/zen/strict_struct.rb +36 -0
- data/lib/zen/task/db.rb +14 -4
- data/lib/zen/task/package.rb +13 -8
- data/lib/zen/task/theme.rb +88 -0
- data/lib/zen/theme.rb +129 -0
- data/lib/zen/{base/version.rb → version.rb} +1 -1
- data/proto/app/config/config.rb +19 -6
- data/proto/app/config/database.rb +58 -2
- data/proto/app/config/middlewares.rb +69 -4
- data/proto/app/config/requires.rb +9 -2
- data/proto/app/{logs → log}/.gitkeep +0 -0
- data/proto/package/lib/package.rb +3 -13
- data/proto/package/lib/package/controller/controllers.rb +5 -9
- data/proto/package/lib/package/language/en/languages.yml +4 -0
- metadata +66 -26
- data/proto/package/LICENSE +0 -0
- data/proto/package/README.textile +0 -0
- data/proto/package/lib/package/language/en/languages.rb +0 -3
data/CHANGELOG.md
CHANGED
@@ -1,13 +1,23 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## 0.2 - March
|
3
|
+
## 0.2.4 - March 27th, 2011
|
4
|
+
|
5
|
+
* Fix an issue that would prevent migrations from being executed in the correct order.
|
6
|
+
* Fixed a small translation bug in the section entries translation file.
|
7
|
+
* Restyled the footer in the admin panel.
|
8
|
+
* Removed the requirement of having to specify the type of package/extension.
|
9
|
+
* Navigation items will now be hidden according to the user's permissions.
|
10
|
+
* Split packages into packages, themes and plugins. This makes it much easier to extend
|
11
|
+
small features such as the markup generator and the comment validation system
|
12
|
+
|
13
|
+
## 0.2 - March 20th, 2011
|
4
14
|
|
5
15
|
* Added a package for managing navigation items.
|
6
16
|
* Introduced a new language system using YAML files instead of Ruby files.
|
7
17
|
* Added a datepicker for date fields.
|
8
18
|
* Improved several existing Liquid tags.
|
9
19
|
* Form data is no longer lost in case of an error.
|
10
|
-
* Converted all markup from Textile to Markdown
|
20
|
+
* Converted all markup from Textile to Markdown.
|
11
21
|
* Replaced Bacon by RSpec 2 and Webrat.
|
12
22
|
* Replaced Rake by Thor.
|
13
23
|
* Cleaned up a lot of code.
|
data/MANIFEST
CHANGED
@@ -4,28 +4,30 @@ README.md
|
|
4
4
|
ROADMAP.md
|
5
5
|
Thorfile
|
6
6
|
bin/zen
|
7
|
-
lib/zen/base
|
8
|
-
lib/zen/base/language.rb
|
9
|
-
lib/zen/base/logger.rb
|
10
|
-
lib/zen/base/package.rb
|
11
|
-
lib/zen/base/version.rb
|
12
|
-
lib/zen/bin/zen_binary.rb
|
7
|
+
lib/zen/bin/base.rb
|
13
8
|
lib/zen/controller/admin_controller.rb
|
14
9
|
lib/zen/controller/base_controller.rb
|
15
10
|
lib/zen/controller/frontend_controller.rb
|
16
11
|
lib/zen/controller/main_controller.rb
|
12
|
+
lib/zen/database.rb
|
13
|
+
lib/zen/error/language_error.rb
|
14
|
+
lib/zen/error/package_error.rb
|
15
|
+
lib/zen/error/plugin_error.rb
|
16
|
+
lib/zen/error/theme_error.rb
|
17
17
|
lib/zen/helper/acl.rb
|
18
18
|
lib/zen/helper/asset.rb
|
19
19
|
lib/zen/helper/breadcrumb.rb
|
20
20
|
lib/zen/helper/common.rb
|
21
21
|
lib/zen/language/en/zen_general.yml
|
22
22
|
lib/zen/language/en/zen_models.yml
|
23
|
+
lib/zen/language.rb
|
23
24
|
lib/zen/layout/admin.xhtml
|
24
25
|
lib/zen/layout/login.xhtml
|
25
26
|
lib/zen/liquid/controller_behavior.rb
|
26
27
|
lib/zen/liquid/general.rb
|
27
28
|
lib/zen/liquid/redirect.rb
|
28
29
|
lib/zen/liquid/strip.rb
|
30
|
+
lib/zen/logger.rb
|
29
31
|
lib/zen/model/methods.rb
|
30
32
|
lib/zen/model/settings.rb
|
31
33
|
lib/zen/package/all.rb
|
@@ -152,6 +154,9 @@ lib/zen/package/users/lib/users/view/admin/users/new.xhtml
|
|
152
154
|
lib/zen/package/users/lib/users.rb
|
153
155
|
lib/zen/package/users/migrations/.gitkeep
|
154
156
|
lib/zen/package/users/migrations/1295281013_create_schema.rb
|
157
|
+
lib/zen/package.rb
|
158
|
+
lib/zen/plugin/markup.rb
|
159
|
+
lib/zen/plugin.rb
|
155
160
|
lib/zen/public/admin/css/boilerplate.css
|
156
161
|
lib/zen/public/admin/css/buttons.css
|
157
162
|
lib/zen/public/admin/css/datepicker.css
|
@@ -201,11 +206,15 @@ lib/zen/public/admin/js/zen/init.js
|
|
201
206
|
lib/zen/public/admin/js/zen/modal.js
|
202
207
|
lib/zen/public/admin/js/zen/notification.js
|
203
208
|
lib/zen/public/admin/js/zen/tabs.js
|
209
|
+
lib/zen/strict_struct.rb
|
204
210
|
lib/zen/task/build.rb
|
205
211
|
lib/zen/task/clean.rb
|
206
212
|
lib/zen/task/db.rb
|
207
213
|
lib/zen/task/package.rb
|
208
214
|
lib/zen/task/proto.rb
|
215
|
+
lib/zen/task/theme.rb
|
216
|
+
lib/zen/theme.rb
|
217
|
+
lib/zen/version.rb
|
209
218
|
lib/zen.rb
|
210
219
|
license.txt
|
211
220
|
proto/app/Thorfile
|
@@ -215,16 +224,14 @@ proto/app/config/database.rb
|
|
215
224
|
proto/app/config/middlewares.rb
|
216
225
|
proto/app/config/requires.rb
|
217
226
|
proto/app/config.ru
|
218
|
-
proto/app/
|
227
|
+
proto/app/log/.gitkeep
|
219
228
|
proto/app/public/.gitkeep
|
220
229
|
proto/app/start.rb
|
221
230
|
proto/app/vendor/.gitkeep
|
222
231
|
proto/app/vendor/themes/.gitkeep
|
223
232
|
proto/migration.rb
|
224
|
-
proto/package/LICENSE
|
225
|
-
proto/package/README.textile
|
226
233
|
proto/package/lib/package/controller/controllers.rb
|
227
|
-
proto/package/lib/package/language/en/languages.
|
234
|
+
proto/package/lib/package/language/en/languages.yml
|
228
235
|
proto/package/lib/package/model/model.rb
|
229
236
|
proto/package/lib/package/view/admin/package/edit.xhtml
|
230
237
|
proto/package/lib/package/view/admin/package/form.xhtml
|
data/ROADMAP.md
CHANGED
@@ -9,14 +9,18 @@ to be unverified/undecided and might not be added/completed at all.
|
|
9
9
|
|
10
10
|
### 0.3 - June 2011
|
11
11
|
|
12
|
-
* Most parts of the core covered by specs. (!)
|
13
|
-
* A working (although probably rough) plugin system to extend the inner parts of Zen.
|
14
|
-
An example of a plugin would be something that allows the use of Akismet for comments
|
15
|
-
rather than Defensio.
|
16
12
|
* Website completely up and running. (!)
|
17
13
|
* Translation system for the Javascript used in the backend
|
18
14
|
* Documentation/Userguide online
|
19
15
|
|
16
|
+
### 0.2.4 - March 2011
|
17
|
+
|
18
|
+
* Liquid tags work when caching is enabled.
|
19
|
+
* Compatibility with 1.9 and 1.9.1. (?)
|
20
|
+
* A working (although probably rough) plugin system to extend the inner parts of Zen.
|
21
|
+
An example of a plugin would be something that allows the use of Akismet for comments
|
22
|
+
rather than Defensio.
|
23
|
+
|
20
24
|
### 0.2 - March 2011
|
21
25
|
|
22
26
|
* General code improvements.
|
data/bin/zen
CHANGED
data/lib/zen.rb
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
#
|
5
5
|
# @author Yorick Peterse
|
6
6
|
# @since 0.1
|
7
|
+
# @attr_reader [Array] languages An array containing all the currently loaded language
|
8
|
+
# files stored as hashes.
|
7
9
|
#
|
8
10
|
module Zen
|
9
11
|
require 'sequel'
|
@@ -12,29 +14,37 @@ module Zen
|
|
12
14
|
require 'liquid'
|
13
15
|
require 'json'
|
14
16
|
require 'defensio'
|
15
|
-
require 'thor'
|
16
17
|
require 'sequel_sluggable'
|
17
18
|
require 'yaml'
|
18
|
-
require __DIR__('zen/
|
19
|
+
require __DIR__('zen/version')
|
19
20
|
|
20
21
|
include Innate::Optioned
|
22
|
+
|
23
|
+
class << self
|
24
|
+
attr_reader :languages
|
25
|
+
end
|
21
26
|
|
22
27
|
# Update several paths so we can load helpers/layouts from the Zen gem
|
23
28
|
Innate::HelpersHelper.options.paths.push(__DIR__('zen'))
|
24
29
|
Ramaze.options.roots.push(__DIR__('zen'))
|
25
30
|
|
26
31
|
options.dsl do
|
27
|
-
|
28
|
-
o 'The
|
29
|
-
o 'The
|
30
|
-
o 'The base directory of Zen.', :root, ''
|
32
|
+
o 'The character encoding to use when dealing with data', :encoding, 'utf8'
|
33
|
+
o 'The date format to use for log files and such.', :date_format, '%d-%m-%Y'
|
34
|
+
o 'The base directory of Zen.', :root, ''
|
31
35
|
end
|
32
36
|
|
33
37
|
# Load all classes/modules provided by Zen itself.
|
34
|
-
require __DIR__ 'zen/
|
35
|
-
require __DIR__ 'zen/
|
36
|
-
require __DIR__ 'zen/
|
37
|
-
require __DIR__ 'zen/
|
38
|
+
require __DIR__ 'zen/strict_struct'
|
39
|
+
require __DIR__ 'zen/logger'
|
40
|
+
require __DIR__ 'zen/database'
|
41
|
+
require __DIR__ 'zen/package'
|
42
|
+
require __DIR__ 'zen/language'
|
43
|
+
require __DIR__ 'zen/plugin'
|
44
|
+
require __DIR__ 'zen/theme'
|
45
|
+
|
46
|
+
# Load all required plugins
|
47
|
+
require __DIR__ 'zen/plugin/markup'
|
38
48
|
|
39
49
|
# Load all the base controllers
|
40
50
|
require __DIR__ 'zen/controller/base_controller'
|
@@ -48,10 +58,6 @@ module Zen
|
|
48
58
|
require __DIR__ 'zen/liquid/redirect'
|
49
59
|
require __DIR__ 'zen/liquid/strip'
|
50
60
|
|
51
|
-
class << self
|
52
|
-
attr_reader :languages
|
53
|
-
end
|
54
|
-
|
55
61
|
# Update the language paths
|
56
62
|
Zen::Language.options.paths.push(__DIR__('zen'))
|
57
63
|
|
File without changes
|
@@ -43,7 +43,7 @@ module Zen
|
|
43
43
|
respond(lang('zen_general.errors.no_theme'))
|
44
44
|
end
|
45
45
|
|
46
|
-
theme = ::Zen::
|
46
|
+
theme = ::Zen::Theme[@settings[:theme]]
|
47
47
|
group = @uri[0]
|
48
48
|
template = @uri[1]
|
49
49
|
|
@@ -57,13 +57,16 @@ module Zen
|
|
57
57
|
end
|
58
58
|
|
59
59
|
# Create the group, template and partial paths
|
60
|
-
theme_path = theme.
|
60
|
+
theme_path = theme.template_dir
|
61
61
|
group_path = theme_path + "/#{group}"
|
62
62
|
template_path = theme_path + "/#{group}/#{template}.liquid"
|
63
63
|
|
64
64
|
# Register our partial path
|
65
|
-
|
66
|
-
|
65
|
+
if theme.respond_to?(:partial_dir) and !theme.partial_dir.nil?
|
66
|
+
::Liquid::Template.file_system = ::Liquid::LocalFileSystem.new(
|
67
|
+
theme.partial_dir
|
68
|
+
)
|
69
|
+
end
|
67
70
|
|
68
71
|
# Is the website down?
|
69
72
|
if @settings[:website_enabled] == '0'
|
@@ -43,6 +43,7 @@ module Zen
|
|
43
43
|
#
|
44
44
|
# @author Yorick Peterse
|
45
45
|
# @since 0.1
|
46
|
+
# @attr_reader [Object] handle The Sequel database handle to use for all models.
|
46
47
|
#
|
47
48
|
module Database
|
48
49
|
include Innate::Optioned
|
@@ -98,9 +99,9 @@ module Zen
|
|
98
99
|
# @author Yorick Peterse
|
99
100
|
# @since 0.1
|
100
101
|
# @param [Symbol] mode The development mode for which the database settings should be used.
|
101
|
-
# @
|
102
|
+
# @yield [config] Object containing all the options to set for the current mode.
|
102
103
|
#
|
103
|
-
def self.mode
|
104
|
+
def self.mode(mode)
|
104
105
|
mode = mode.to_sym
|
105
106
|
|
106
107
|
if mode == Ramaze.options.mode
|
data/lib/zen/helper/acl.rb
CHANGED
@@ -84,12 +84,18 @@ module Ramaze
|
|
84
84
|
# should have ALL specified permissios. Setting this to false causes
|
85
85
|
# this method to return true if any of the permissions are set for the
|
86
86
|
# current user.
|
87
|
+
# @param [String] identifier A custom identifier to use for validating the user's
|
88
|
+
# permissions instead of using a class trait.
|
87
89
|
# @return [Boolean]
|
88
90
|
#
|
89
|
-
def user_authorized?(reqs, require_all = true)
|
90
|
-
identifier
|
91
|
-
|
92
|
-
|
91
|
+
def user_authorized?(reqs, require_all = true, identifier = nil)
|
92
|
+
# Retrieve the identifier from the class trait if we didn't already have one
|
93
|
+
if identifier.nil?
|
94
|
+
identifier = ancestral_trait.values_at(:extension_identifier)
|
95
|
+
identifier = identifier[0]
|
96
|
+
end
|
97
|
+
|
98
|
+
# Still don't have an identifier?
|
93
99
|
if identifier.nil?
|
94
100
|
raise "You need to specify an extension identifier"
|
95
101
|
end
|
@@ -122,6 +128,7 @@ module Ramaze
|
|
122
128
|
|
123
129
|
return true
|
124
130
|
end
|
131
|
+
|
125
132
|
end
|
126
133
|
end
|
127
134
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require __DIR__('error/language_error')
|
2
|
+
|
1
3
|
#:nodoc:
|
2
4
|
module Zen
|
3
5
|
##
|
@@ -107,7 +109,7 @@ module Zen
|
|
107
109
|
end
|
108
110
|
end
|
109
111
|
|
110
|
-
raise "No language file could be found for \"#{lang_name}\""
|
112
|
+
raise(Zen::LanguageError, "No language file could be found for \"#{lang_name}\"")
|
111
113
|
end
|
112
114
|
|
113
115
|
##
|
@@ -140,14 +142,20 @@ module Zen
|
|
140
142
|
translations = ::Zen::Language.translations
|
141
143
|
|
142
144
|
if !translations or !translations.key?(lang)
|
143
|
-
raise
|
145
|
+
raise(
|
146
|
+
Zen::LanguageError,
|
147
|
+
"No translation files have been added for the language code \"#{lang}\""
|
148
|
+
)
|
144
149
|
end
|
145
150
|
|
146
151
|
if translations[lang][key]
|
147
152
|
return translations[lang][key]
|
148
153
|
end
|
149
154
|
|
150
|
-
raise
|
155
|
+
raise(
|
156
|
+
Zen::LanguageError,
|
157
|
+
"The specified language item \"#{key}\" does not exist"
|
158
|
+
)
|
151
159
|
end
|
152
160
|
|
153
161
|
private
|
data/lib/zen/layout/admin.xhtml
CHANGED
@@ -17,7 +17,10 @@
|
|
17
17
|
doesn't have the required permissions for the extension that created it.
|
18
18
|
-->
|
19
19
|
<nav id="main_nav" class="grid_12">
|
20
|
-
#{
|
20
|
+
#{
|
21
|
+
perms = extension_permissions
|
22
|
+
Zen::Package.build_menu("left", perms[0], perms[1])
|
23
|
+
}
|
21
24
|
|
22
25
|
<ul class="right clearfix">
|
23
26
|
<li>
|
@@ -53,17 +56,23 @@
|
|
53
56
|
<footer id="main_footer" class="container">
|
54
57
|
<div class="grid_12">
|
55
58
|
<p>#{lang('zen_general.labels.zen_version') % Zen::Version}</p>
|
56
|
-
<
|
57
|
-
<
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
59
|
+
<ul class="clearfix">
|
60
|
+
<li>
|
61
|
+
<a href="http://zen-cms.com/">
|
62
|
+
#{lang('zen_general.labels.zen_website')}
|
63
|
+
</a>
|
64
|
+
</li>
|
65
|
+
<li>
|
66
|
+
<a href="http://zen-cms.com/documentation">
|
67
|
+
#{lang('zen_general.labels.zen_docs')}
|
68
|
+
</a>
|
69
|
+
</li>
|
70
|
+
<li>
|
71
|
+
<a href="https://github.com/zen-cms/">
|
72
|
+
#{lang('zen_general.labels.zen_github')}
|
73
|
+
</a>
|
74
|
+
</li>
|
75
|
+
</ul>
|
67
76
|
</div>
|
68
77
|
</footer>
|
69
78
|
|
data/lib/zen/layout/login.xhtml
CHANGED
@@ -23,17 +23,23 @@
|
|
23
23
|
<footer id="main_footer" class="container">
|
24
24
|
<div class="grid_12">
|
25
25
|
<p>#{lang('zen_general.labels.zen_version') % Zen::Version}</p>
|
26
|
-
<
|
27
|
-
<
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
26
|
+
<ul class="clearfix">
|
27
|
+
<li>
|
28
|
+
<a href="http://zen-cms.com/">
|
29
|
+
#{lang('zen_general.labels.zen_website')}
|
30
|
+
</a>
|
31
|
+
</li>
|
32
|
+
<li>
|
33
|
+
<a href="http://zen-cms.com/documentation">
|
34
|
+
#{lang('zen_general.labels.zen_docs')}
|
35
|
+
</a>
|
36
|
+
</li>
|
37
|
+
<li>
|
38
|
+
<a href="https://github.com/zen-cms/">
|
39
|
+
#{lang('zen_general.labels.zen_github')}
|
40
|
+
</a>
|
41
|
+
</li>
|
42
|
+
</ul>
|
37
43
|
</div>
|
38
44
|
</footer>
|
39
45
|
|