radiant 1.0.0.rc3 → 1.0.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of radiant might be problematic. Click here for more details.
- data/.gitignore +1 -1
- data/CHANGELOG.md +172 -4
- data/CONTRIBUTORS.md +13 -0
- data/Gemfile +6 -4
- data/Gemfile.lock +3 -3
- data/INSTALL.md +2 -2
- data/README.md +1 -1
- data/Rakefile +2 -1
- data/app/controllers/admin/pages_controller.rb +2 -0
- data/app/helpers/admin/node_helper.rb +5 -42
- data/app/helpers/admin/resource_helper.rb +2 -0
- data/app/models/file_not_found_page.rb +1 -1
- data/app/models/menu_renderer.rb +133 -0
- data/app/models/page.rb +10 -10
- data/app/models/radiant/config.rb +2 -1
- data/app/models/standard_tags.rb +15 -3
- data/app/views/admin/pages/_node.html.haml +3 -3
- data/bin/ci/before_script +13 -0
- data/bin/radiant +0 -2
- data/config.ru +2 -0
- data/config/boot.rb +0 -1
- data/config/cucumber.yml +1 -1
- data/config/environment.rb +2 -0
- data/config/initializers/radiant_config.rb +1 -1
- data/config/initializers/rails_patch.rb +2 -0
- data/config/locales/en.yml +4 -1
- data/config/preinitializer.rb +1 -1
- data/db/migrate/20110902203823_add_allowed_children_cache_to_pages.rb +13 -0
- data/db/migrate/20111016150725_extend_page_part_content_limit.rb +15 -0
- data/db/radiant_dev.db.default +0 -0
- data/db/radiant_dev.db.high_five +0 -0
- data/db/schema.rb +8 -7
- data/features/admin/pages_management.feature +5 -15
- data/features/step_definitions/admin/pages_management_steps.rb +17 -0
- data/lib/generators/extension/templates/tasks.rake +0 -8
- data/lib/generators/instance/instance_generator.rb +2 -3
- data/lib/generators/instance/templates/instance_gemfile +22 -22
- data/lib/generators/language_extension/language_extension_generator.rb +22 -0
- data/lib/generators/language_extension/templates/available_tags.yml +1 -1
- data/lib/generators/language_extension/templates/extension.rb +9 -5
- data/lib/generators/language_extension/templates/gemspec.rb +24 -0
- data/lib/generators/language_extension/templates/lang.yml +1 -1
- data/lib/generators/language_extension/templates/lib.rb +8 -0
- data/lib/plugins/string_extensions/lib/string_extensions.rb +3 -1
- data/lib/radiant.rb +1 -1
- data/lib/radiant/admin_ui/region_partials.rb +5 -0
- data/lib/radiant/cache.rb +2 -1
- data/lib/radiant/extension/script.rb +3 -3
- data/lib/radiant/extension_loader.rb +4 -2
- data/lib/radiant/extension_path.rb +10 -2
- data/lib/radiant/initializer.rb +10 -14
- data/lib/radiant/resource_responses.rb +6 -0
- data/lib/radiant/setup.rb +5 -2
- data/lib/radiant/taggable.rb +7 -1
- data/lib/tasks/cucumber.rake +6 -0
- data/lib/tasks/database.rake +9 -5
- data/lib/tasks/extensions.rake +2 -17
- data/lib/tasks/framework.rake +52 -31
- data/public/javascripts/admin/assets.js +296 -0
- data/public/javascripts/application.js +2 -0
- data/public/javascripts/controls.js +963 -0
- data/public/javascripts/dragdrop.js +973 -0
- data/public/javascripts/effects.js +1128 -0
- data/public/javascripts/prototype.js +4320 -0
- data/public/stylesheets/admin/main.css +1 -1
- data/public/stylesheets/sass/admin/assets.sass +209 -0
- data/radiant.gemspec +33 -34
- data/spec/ci/database.mysql.yml +7 -0
- data/spec/ci/database.postgresql.yml +7 -0
- data/spec/ci/database.sqlite.yml +6 -0
- data/spec/controllers/site_controller_spec.rb +2 -2
- data/spec/datasets/config_dataset.rb +3 -2
- data/spec/datasets/home_page_dataset.rb +1 -1
- data/spec/datasets/layouts_dataset.rb +1 -1
- data/spec/datasets/snippets_dataset.rb +1 -1
- data/spec/generators/instance_generator_spec.rb +5 -11
- data/spec/helpers/admin/node_helper_spec.rb +1 -50
- data/spec/helpers/admin/regions_helper_spec.rb +1 -1
- data/spec/lib/radiant/admin_ui/region_partials_spec.rb +1 -1
- data/spec/lib/radiant/initializer_spec.rb +2 -7
- data/spec/lib/radiant/resource_responses_spec.rb +1 -1
- data/spec/lib/radiant/taggable_spec.rb +1 -1
- data/spec/lib/task_support_spec.rb +1 -0
- data/spec/models/menu_renderer_spec.rb +297 -0
- data/spec/models/page_spec.rb +21 -8
- data/spec/models/standard_tags_spec.rb +6 -2
- data/test/fixtures/extensions/basic/app/helpers/basic_extension_helper.rb +2 -0
- data/testthegemgeneration/CHANGELOG.md +721 -0
- data/testthegemgeneration/CONTRIBUTORS.md +257 -0
- data/testthegemgeneration/Gemfile +57 -0
- data/testthegemgeneration/Gemfile.lock +107 -0
- data/testthegemgeneration/INSTALL.md +42 -0
- data/testthegemgeneration/LICENSE.md +21 -0
- data/testthegemgeneration/README.md +84 -0
- data/testthegemgeneration/Rakefile +3 -0
- data/testthegemgeneration/config.ru +2 -0
- data/testthegemgeneration/config/boot.rb +122 -0
- data/testthegemgeneration/config/cucumber.yml +7 -0
- data/testthegemgeneration/config/database.yml +16 -0
- data/testthegemgeneration/config/environment.rb +81 -0
- data/testthegemgeneration/config/environments/cucumber.rb +22 -0
- data/testthegemgeneration/config/environments/development.rb +17 -0
- data/testthegemgeneration/config/environments/production.rb +24 -0
- data/testthegemgeneration/config/environments/test.rb +32 -0
- data/testthegemgeneration/config/initializers/radiant_config.rb +16 -0
- data/testthegemgeneration/config/preinitializer.rb +19 -0
- data/testthegemgeneration/config/routes.rb +1 -0
- data/testthegemgeneration/db/development.sqlite3.db +0 -0
- data/testthegemgeneration/db/schema.rb +142 -0
- data/testthegemgeneration/log/development.log +1055 -0
- data/testthegemgeneration/public/404.html +8 -0
- data/testthegemgeneration/public/500.html +8 -0
- data/testthegemgeneration/public/dispatch.cgi +10 -0
- data/testthegemgeneration/public/dispatch.fcgi +24 -0
- data/testthegemgeneration/public/dispatch.rb +10 -0
- data/testthegemgeneration/public/favicon.ico +0 -0
- data/testthegemgeneration/public/flash/ZeroClipboard.swf +0 -0
- data/testthegemgeneration/public/images/admin/add_tab.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/add.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/archive_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/audio_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/audio_thumbnail.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/c_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/copy.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/css_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/database_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/delete.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/document_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/document_thumbnail.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/flash_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/flash_thumbnail.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/font_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/gzip_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/html_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/image_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/image_thumbnail.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/java_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/page_edit.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/perl_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/php_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/presentation_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/python_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/reorder_assets.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/ruby_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/script_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/spreadsheet_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/tar_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/unknown_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/unknown_thumbnail.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/video_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/video_thumbnail.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/xml_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/assets/zip_icon.png +0 -0
- data/testthegemgeneration/public/images/admin/avatar_32x32.png +0 -0
- data/testthegemgeneration/public/images/admin/avatar_64x64.png +0 -0
- data/testthegemgeneration/public/images/admin/avatar_96x96.png +0 -0
- data/testthegemgeneration/public/images/admin/brown_bottom_line.gif +0 -0
- data/testthegemgeneration/public/images/admin/calendar_down.gif +0 -0
- data/testthegemgeneration/public/images/admin/collapse.png +0 -0
- data/testthegemgeneration/public/images/admin/draft_page.png +0 -0
- data/testthegemgeneration/public/images/admin/expand.png +0 -0
- data/testthegemgeneration/public/images/admin/image.png +0 -0
- data/testthegemgeneration/public/images/admin/javascript.png +0 -0
- data/testthegemgeneration/public/images/admin/layout.png +0 -0
- data/testthegemgeneration/public/images/admin/metadata_toggle.png +0 -0
- data/testthegemgeneration/public/images/admin/minus.png +0 -0
- data/testthegemgeneration/public/images/admin/minus_disabled.png +0 -0
- data/testthegemgeneration/public/images/admin/minus_grey.png +0 -0
- data/testthegemgeneration/public/images/admin/navigation_secondary_separator.gif +0 -0
- data/testthegemgeneration/public/images/admin/page.png +0 -0
- data/testthegemgeneration/public/images/admin/plus.png +0 -0
- data/testthegemgeneration/public/images/admin/plus_disabled.png +0 -0
- data/testthegemgeneration/public/images/admin/plus_grey.png +0 -0
- data/testthegemgeneration/public/images/admin/popup_border_background.png +0 -0
- data/testthegemgeneration/public/images/admin/popup_border_bottom_left.png +0 -0
- data/testthegemgeneration/public/images/admin/popup_border_bottom_right.png +0 -0
- data/testthegemgeneration/public/images/admin/popup_border_top_left.png +0 -0
- data/testthegemgeneration/public/images/admin/popup_border_top_right.png +0 -0
- data/testthegemgeneration/public/images/admin/search.png +0 -0
- data/testthegemgeneration/public/images/admin/single_form_shadow.png +0 -0
- data/testthegemgeneration/public/images/admin/snippet.png +0 -0
- data/testthegemgeneration/public/images/admin/spinner.gif +0 -0
- data/testthegemgeneration/public/images/admin/status_background.png +0 -0
- data/testthegemgeneration/public/images/admin/status_bottom_left.png +0 -0
- data/testthegemgeneration/public/images/admin/status_bottom_right.png +0 -0
- data/testthegemgeneration/public/images/admin/status_spinner.gif +0 -0
- data/testthegemgeneration/public/images/admin/status_top_left.png +0 -0
- data/testthegemgeneration/public/images/admin/status_top_right.png +0 -0
- data/testthegemgeneration/public/images/admin/stylesheet.png +0 -0
- data/testthegemgeneration/public/images/admin/tab_close.png +0 -0
- data/testthegemgeneration/public/images/admin/upload.png +0 -0
- data/testthegemgeneration/public/images/admin/virtual_page.png +0 -0
- data/testthegemgeneration/public/images/radiant/radiant-badge-color.png +0 -0
- data/testthegemgeneration/public/images/roasters/banner.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/closelabel.gif +0 -0
- data/testthegemgeneration/public/images/roasters/comment.png +0 -0
- data/testthegemgeneration/public/images/roasters/gallery1.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/gallery2.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/gallery3.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/gallery4.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/gift.gif +0 -0
- data/testthegemgeneration/public/images/roasters/green.gif +0 -0
- data/testthegemgeneration/public/images/roasters/nav-background.gif +0 -0
- data/testthegemgeneration/public/images/roasters/nav-divider.gif +0 -0
- data/testthegemgeneration/public/images/roasters/nextlabel.gif +0 -0
- data/testthegemgeneration/public/images/roasters/open.gif +0 -0
- data/testthegemgeneration/public/images/roasters/preview-1.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/preview.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/prevlabel.gif +0 -0
- data/testthegemgeneration/public/images/roasters/prize.gif +0 -0
- data/testthegemgeneration/public/images/roasters/recycle.gif +0 -0
- data/testthegemgeneration/public/images/roasters/rss.gif +0 -0
- data/testthegemgeneration/public/images/roasters/thumb-grinder.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/thumb-grower.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/thumb-roaster.jpg +0 -0
- data/testthegemgeneration/public/images/roasters/truck.gif +0 -0
- data/testthegemgeneration/public/javascripts/admin/application.js +94 -0
- data/testthegemgeneration/public/javascripts/admin/assets.js +296 -0
- data/testthegemgeneration/public/javascripts/admin/codearea.js +165 -0
- data/testthegemgeneration/public/javascripts/admin/controls.js +965 -0
- data/testthegemgeneration/public/javascripts/admin/cookie.js +80 -0
- data/testthegemgeneration/public/javascripts/admin/dateinput.js +402 -0
- data/testthegemgeneration/public/javascripts/admin/dragdrop.js +974 -0
- data/testthegemgeneration/public/javascripts/admin/dropdown.js +216 -0
- data/testthegemgeneration/public/javascripts/admin/effects.js +1122 -0
- data/testthegemgeneration/public/javascripts/admin/lowpro.js +340 -0
- data/testthegemgeneration/public/javascripts/admin/overrides.js +1 -0
- data/testthegemgeneration/public/javascripts/admin/page_preview.js +41 -0
- data/testthegemgeneration/public/javascripts/admin/pagefield.js +54 -0
- data/testthegemgeneration/public/javascripts/admin/pagestatus.js +17 -0
- data/testthegemgeneration/public/javascripts/admin/popup.js +339 -0
- data/testthegemgeneration/public/javascripts/admin/prototype.js +4874 -0
- data/testthegemgeneration/public/javascripts/admin/ruledtable.js +13 -0
- data/testthegemgeneration/public/javascripts/admin/shortcuts.js +27 -0
- data/testthegemgeneration/public/javascripts/admin/sitemap.js +149 -0
- data/testthegemgeneration/public/javascripts/admin/status.js +233 -0
- data/testthegemgeneration/public/javascripts/admin/tabcontrol.js +123 -0
- data/testthegemgeneration/public/javascripts/admin/toggle.js +430 -0
- data/testthegemgeneration/public/javascripts/admin/utility.js +53 -0
- data/testthegemgeneration/public/javascripts/admin/validationerror.js +18 -0
- data/testthegemgeneration/public/javascripts/application.js +2 -0
- data/testthegemgeneration/public/javascripts/controls.js +963 -0
- data/testthegemgeneration/public/javascripts/dragdrop.js +973 -0
- data/testthegemgeneration/public/javascripts/effects.js +1128 -0
- data/testthegemgeneration/public/javascripts/prototype.js +4320 -0
- data/testthegemgeneration/public/loading-iframe.html +11 -0
- data/testthegemgeneration/public/robots.txt +1 -0
- data/testthegemgeneration/public/stylesheets/admin/assets.css +1 -0
- data/testthegemgeneration/public/stylesheets/admin/main.css +1 -0
- data/testthegemgeneration/public/stylesheets/admin/overrides.css +0 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/_base.sass +17 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/assets.sass +209 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/main.sass +27 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/modules/_boxes.sass +6 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/modules/_links.sass +18 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/overrides.sass +2 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_actions.sass +96 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_avatars.sass +10 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_content.sass +58 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_dateinput.sass +62 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_deprecated.sass +55 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_dropdown.sass +28 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_footer.sass +12 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_forms.sass +322 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_header.sass +114 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_index.sass +147 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_layout.sass +10 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_messages.sass +10 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_popup.sass +213 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_tabcontrol.sass +72 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_toolbar.sass +31 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_typography.sass +60 -0
- data/testthegemgeneration/public/stylesheets/sass/admin/partials/_validations.sass +19 -0
- data/testthegemgeneration/script/about +4 -0
- data/testthegemgeneration/script/autospec +5 -0
- data/testthegemgeneration/script/breakpointer +3 -0
- data/testthegemgeneration/script/console +3 -0
- data/testthegemgeneration/script/cucumber +10 -0
- data/testthegemgeneration/script/dbconsole +3 -0
- data/testthegemgeneration/script/extension +5 -0
- data/testthegemgeneration/script/generate +6 -0
- data/testthegemgeneration/script/performance/benchmarker +3 -0
- data/testthegemgeneration/script/performance/profiler +3 -0
- data/testthegemgeneration/script/performance/request +3 -0
- data/testthegemgeneration/script/process/inspector +3 -0
- data/testthegemgeneration/script/process/reaper +3 -0
- data/testthegemgeneration/script/process/spawner +3 -0
- data/testthegemgeneration/script/process/spinner +3 -0
- data/testthegemgeneration/script/runner +3 -0
- data/testthegemgeneration/script/server +3 -0
- data/testthegemgeneration/script/spec +5 -0
- data/testthegemgeneration/script/spec_server +116 -0
- data/testthegemgeneration/script/version +5 -0
- data/testthegemgeneration/tmp/radiant_config_cache.txt +0 -0
- metadata +845 -133
- data/public/stylesheets/admin/base.css +0 -1
data/app/models/page.rb
CHANGED
@@ -7,7 +7,7 @@ class Page < ActiveRecord::Base
|
|
7
7
|
end
|
8
8
|
|
9
9
|
# Callbacks
|
10
|
-
before_save :update_virtual, :update_status
|
10
|
+
before_save :update_virtual, :update_status, :set_allowed_children_cache
|
11
11
|
|
12
12
|
# Associations
|
13
13
|
acts_as_tree :order => 'virtual DESC, title ASC'
|
@@ -38,8 +38,6 @@ class Page < ActiveRecord::Base
|
|
38
38
|
|
39
39
|
annotate :description
|
40
40
|
attr_accessor :request, :response, :pagination_parameters
|
41
|
-
class_inheritable_accessor :in_menu
|
42
|
-
self.in_menu = true
|
43
41
|
class_inheritable_accessor :default_child
|
44
42
|
self.default_child = self
|
45
43
|
|
@@ -201,7 +199,6 @@ class Page < ActiveRecord::Base
|
|
201
199
|
true
|
202
200
|
end
|
203
201
|
|
204
|
-
|
205
202
|
def to_xml(options={}, &block)
|
206
203
|
super(options.reverse_merge(:include => :parts), &block)
|
207
204
|
end
|
@@ -210,17 +207,21 @@ class Page < ActiveRecord::Base
|
|
210
207
|
self.class.default_child
|
211
208
|
end
|
212
209
|
|
213
|
-
def
|
214
|
-
[default_child, *Page.descendants.sort_by(&:name)].
|
210
|
+
def allowed_children_lookup
|
211
|
+
[default_child, *Page.descendants.sort_by(&:name)].uniq
|
215
212
|
end
|
216
213
|
|
214
|
+
def set_allowed_children_cache
|
215
|
+
self.allowed_children_cache = allowed_children_lookup.collect(&:name).join(',')
|
216
|
+
end
|
217
217
|
|
218
218
|
class << self
|
219
|
-
|
220
|
-
|
219
|
+
|
220
|
+
def root
|
221
|
+
find_by_parent_id(nil)
|
222
|
+
end
|
221
223
|
|
222
224
|
def find_by_path(path, live = true)
|
223
|
-
root = find_by_parent_id(nil)
|
224
225
|
raise MissingRootPageError unless root
|
225
226
|
root.find_by_path(path, live)
|
226
227
|
end
|
@@ -323,7 +324,6 @@ class Page < ActiveRecord::Base
|
|
323
324
|
def attributes_protected_by_default
|
324
325
|
super - [self.class.inheritance_column]
|
325
326
|
end
|
326
|
-
|
327
327
|
|
328
328
|
def update_virtual
|
329
329
|
unless self.class == Page.descendant_class(class_name)
|
@@ -100,6 +100,7 @@ module Radiant
|
|
100
100
|
Radiant::Config.ensure_cache_file
|
101
101
|
Rails.cache.write('Radiant::Config',Radiant::Config.to_hash)
|
102
102
|
Rails.cache.write('Radiant.cache_mtime', File.mtime(cache_file))
|
103
|
+
Rails.cache.silence!
|
103
104
|
end
|
104
105
|
|
105
106
|
def cache_file_exists?
|
@@ -237,7 +238,7 @@ Config definition error: '#{key}' is defined twice:
|
|
237
238
|
if newvalue != self[:value]
|
238
239
|
raise ConfigError, "#{self.key} cannot be changed" unless settable? || self[:value].blank?
|
239
240
|
if boolean?
|
240
|
-
self[:value] = (newvalue == "
|
241
|
+
self[:value] = (newvalue == "1" || newvalue == "true") ? "true" : "false"
|
241
242
|
else
|
242
243
|
self[:value] = newvalue
|
243
244
|
end
|
data/app/models/standard_tags.rb
CHANGED
@@ -364,7 +364,7 @@ module StandardTags
|
|
364
364
|
tag.locals.page = aggregate_page
|
365
365
|
aggregates << tag.expand
|
366
366
|
end
|
367
|
-
aggregates
|
367
|
+
aggregates.flatten.join('')
|
368
368
|
end
|
369
369
|
|
370
370
|
tag "aggregate:each:children" do |tag|
|
@@ -382,7 +382,7 @@ module StandardTags
|
|
382
382
|
tag.locals.page = item
|
383
383
|
result << tag.expand
|
384
384
|
end
|
385
|
-
result
|
385
|
+
result.flatten.join('')
|
386
386
|
end
|
387
387
|
|
388
388
|
tag "aggregate:children" do |tag|
|
@@ -1198,6 +1198,18 @@ module StandardTags
|
|
1198
1198
|
else field
|
1199
1199
|
end
|
1200
1200
|
end
|
1201
|
+
|
1202
|
+
tag 'site' do |tag|
|
1203
|
+
tag.expand
|
1204
|
+
end
|
1205
|
+
%w(title domain dev_domain).each do |attr|
|
1206
|
+
desc %{
|
1207
|
+
Returns Radiant::Config['site.#{attr}'] as configured under the Settings tab.
|
1208
|
+
}
|
1209
|
+
tag "site:#{attr}" do |tag|
|
1210
|
+
Radiant::Config["site.#{attr}"]
|
1211
|
+
end
|
1212
|
+
end
|
1201
1213
|
|
1202
1214
|
private
|
1203
1215
|
def render_children_with_pagination(tag, opts={})
|
@@ -1223,7 +1235,7 @@ module StandardTags
|
|
1223
1235
|
tag.locals.paginated_list = displayed_children
|
1224
1236
|
result << tag.render('pagination', tag.attr.dup)
|
1225
1237
|
end
|
1226
|
-
result
|
1238
|
+
result.flatten.join('')
|
1227
1239
|
end
|
1228
1240
|
|
1229
1241
|
def children_find_options(tag)
|
@@ -17,10 +17,10 @@
|
|
17
17
|
- node.actions_column do
|
18
18
|
- unless simple
|
19
19
|
%td.actions
|
20
|
-
=
|
21
|
-
=
|
22
|
-
= child_menu_for(page)
|
20
|
+
= page.add_child_option
|
21
|
+
= page.remove_option
|
23
22
|
|
24
23
|
- if expanded
|
25
24
|
- page.children.each do |child|
|
25
|
+
- child.becomes(child.class_name.constantize) if child.class_name.present?
|
26
26
|
= render_node child, :level => level + 1, :simple => simple
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
case $DB in
|
4
|
+
"mysql" )
|
5
|
+
mysql -e 'create database radiant_test;'
|
6
|
+
cp spec/ci/database.mysql.yml config/database.yml;;
|
7
|
+
"postgres" )
|
8
|
+
psql -c 'create database radiant_test;' -U postgres
|
9
|
+
cp spec/ci/database.postgresql.yml config/database.yml;;
|
10
|
+
esac
|
11
|
+
|
12
|
+
bundle exec rake db:migrate
|
13
|
+
bundle exec rake db:migrate:extensions
|
data/bin/radiant
CHANGED
data/config.ru
ADDED
data/config/boot.rb
CHANGED
data/config/cucumber.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
|
3
3
|
rerun_opts = rerun.to_s.strip.empty? ? "--format progress features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
|
4
|
-
std_opts = "#{rerun_opts} --format rerun --out rerun.txt --strict --tags ~@wip"
|
4
|
+
std_opts = "#{rerun_opts} --format rerun --out rerun.txt --strict --require features --tags ~@wip"
|
5
5
|
%>
|
6
6
|
default: <%= std_opts %>
|
7
7
|
wip: --tags @wip:3 --wip features
|
data/config/environment.rb
CHANGED
@@ -9,6 +9,8 @@ require File.join(File.dirname(__FILE__), 'boot')
|
|
9
9
|
|
10
10
|
require 'radius'
|
11
11
|
|
12
|
+
YAML::ENGINE.yamler = 'syck' if RUBY_VERSION =~ /1.9/
|
13
|
+
|
12
14
|
Radiant::Initializer.run do |config|
|
13
15
|
# Skip frameworks you're not going to use (only works if using vendor/rails).
|
14
16
|
# To use Rails without a database, you must remove the Active Record framework
|
@@ -4,7 +4,7 @@ Radiant.config do |config|
|
|
4
4
|
config.define 'local.timezone', :allow_change => true, :select_from => lambda { ActiveSupport::TimeZone::MAPPING.keys.sort }
|
5
5
|
config.define 'defaults.locale', :select_from => lambda { Radiant::AvailableLocales.locales }, :allow_blank => true
|
6
6
|
config.define 'defaults.page.parts', :default => "Body,Extended"
|
7
|
-
config.define 'defaults.page.status', :select_from => lambda { Status.selectable_values }, :allow_blank =>
|
7
|
+
config.define 'defaults.page.status', :select_from => lambda { Status.selectable_values }, :allow_blank => false, :default => "Draft"
|
8
8
|
config.define 'defaults.page.filter', :select_from => lambda { TextFilter.descendants.map { |s| s.filter_name }.sort }, :allow_blank => true
|
9
9
|
config.define 'defaults.page.fields'
|
10
10
|
config.define 'defaults.snippet.filter', :select_from => lambda { TextFilter.descendants.map { |s| s.filter_name }.sort }, :allow_blank => true
|
data/config/locales/en.yml
CHANGED
@@ -75,7 +75,10 @@ en:
|
|
75
75
|
only_day: "%e"
|
76
76
|
short: "%e %b"
|
77
77
|
month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
|
78
|
-
order:
|
78
|
+
order:
|
79
|
+
- :year
|
80
|
+
- :month
|
81
|
+
- :day
|
79
82
|
delete_layout: 'Delete Layout'
|
80
83
|
delete_pages: 'Delete %{pages}'
|
81
84
|
delete_snippet: 'Delete Snippet'
|
data/config/preinitializer.rb
CHANGED
@@ -13,7 +13,7 @@ end
|
|
13
13
|
begin
|
14
14
|
# Set up load paths for all bundled gems
|
15
15
|
ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__)
|
16
|
-
Bundler.setup
|
16
|
+
Bundler.setup
|
17
17
|
rescue Bundler::GemNotFound => e
|
18
18
|
raise RuntimeError, "Bundler couldn't find some gems: #{e}. Did you run `bundle install`?"
|
19
19
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class AddAllowedChildrenCacheToPages < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
add_column :pages, :allowed_children_cache, :string, :default => ''
|
4
|
+
Page.reset_column_information
|
5
|
+
Page.find_each do |page|
|
6
|
+
page.save # update the allowed_children_cache
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.down
|
11
|
+
remove_column :pages, :allowed_children_cache
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class ExtendPagePartContentLimit < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
if ActiveRecord::Base.connection.adapter_name =~ /m[sy]sql/i
|
4
|
+
# Make sure text longer than 64kB is not cropped in MySQL and MSSQL
|
5
|
+
# See https://github.com/radiant/radiant-sheets-extension/issues/10
|
6
|
+
change_column :page_parts, :content, :text, :limit => 1048575
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.down
|
11
|
+
if ActiveRecord::Base.connection.adapter_name =~ /m[sy]sql/i
|
12
|
+
change_column :page_parts, :content, :text
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
Binary file
|
Binary file
|
data/db/schema.rb
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
# It's strongly recommended to check this file into your version control system.
|
11
11
|
|
12
|
-
ActiveRecord::Schema.define(:version =>
|
12
|
+
ActiveRecord::Schema.define(:version => 20110902203823) do
|
13
13
|
|
14
14
|
create_table "assets", :force => true do |t|
|
15
15
|
t.string "caption"
|
@@ -76,10 +76,10 @@ ActiveRecord::Schema.define(:version => 20100810151922) do
|
|
76
76
|
|
77
77
|
create_table "pages", :force => true do |t|
|
78
78
|
t.string "title"
|
79
|
-
t.string "slug",
|
80
|
-
t.string "breadcrumb",
|
81
|
-
t.string "class_name",
|
82
|
-
t.integer "status_id",
|
79
|
+
t.string "slug", :limit => 100
|
80
|
+
t.string "breadcrumb", :limit => 160
|
81
|
+
t.string "class_name", :limit => 25
|
82
|
+
t.integer "status_id", :default => 1, :null => false
|
83
83
|
t.integer "parent_id"
|
84
84
|
t.integer "layout_id"
|
85
85
|
t.datetime "created_at"
|
@@ -87,8 +87,9 @@ ActiveRecord::Schema.define(:version => 20100810151922) do
|
|
87
87
|
t.datetime "published_at"
|
88
88
|
t.integer "created_by_id"
|
89
89
|
t.integer "updated_by_id"
|
90
|
-
t.boolean "virtual",
|
91
|
-
t.integer "lock_version",
|
90
|
+
t.boolean "virtual", :default => false, :null => false
|
91
|
+
t.integer "lock_version", :default => 0
|
92
|
+
t.string "allowed_children_cache", :default => ""
|
92
93
|
end
|
93
94
|
|
94
95
|
add_index "pages", ["class_name"], :name => "altered_pages_class_name"
|
@@ -17,27 +17,17 @@ Feature: Managing pages
|
|
17
17
|
|
18
18
|
Scenario: Creating a homepage
|
19
19
|
Given I am logged in as "existing"
|
20
|
-
|
21
|
-
|
22
|
-
And I follow "New Homepage"
|
23
|
-
Then I should see "New Page"
|
24
|
-
And there should be a "body" part
|
25
|
-
And there should be an "extended" part
|
26
|
-
When I fill in "Page Title" with "My site"
|
27
|
-
And I fill in "Slug" with "/"
|
28
|
-
And I fill in "Breadcrumb" with "My site"
|
29
|
-
And I fill in the "body" content with "Under Construction"
|
30
|
-
And I fill in the "extended" content with "foobar"
|
31
|
-
And I select "Published" from "Status"
|
32
|
-
And I press "Create page"
|
20
|
+
And there are no pages
|
21
|
+
And I create a homepage
|
33
22
|
Then I should be on the sitemap
|
34
23
|
And I should see "My site"
|
35
24
|
When I go to the homepage
|
36
25
|
Then I should see "Under Construction"
|
37
26
|
|
38
27
|
Scenario: Creating child pages
|
39
|
-
Given
|
40
|
-
And
|
28
|
+
Given there are no pages
|
29
|
+
And I am logged in as "existing"
|
30
|
+
And I create a homepage
|
41
31
|
When I go to the "pages" admin page
|
42
32
|
And I follow "Add Child"
|
43
33
|
And I follow "Normal Page"
|
@@ -26,3 +26,20 @@ When /^I edit the "([^\"]*)" page$/ do |name|
|
|
26
26
|
page = pages(name.to_sym)
|
27
27
|
visit "/admin/pages/#{page.id}/edit"
|
28
28
|
end
|
29
|
+
|
30
|
+
Given /^I create a homepage$/ do
|
31
|
+
steps %Q{
|
32
|
+
When I go to the "pages" admin page
|
33
|
+
And I follow "New Homepage"
|
34
|
+
Then I should see "New Page"
|
35
|
+
And there should be a "body" part
|
36
|
+
And there should be an "extended" part
|
37
|
+
When I fill in "Page Title" with "My site"
|
38
|
+
And I fill in "Slug" with "/"
|
39
|
+
And I fill in "Breadcrumb" with "My site"
|
40
|
+
And I fill in the "body" content with "Under Construction"
|
41
|
+
And I fill in the "extended" content with "foobar"
|
42
|
+
And I select "Published" from "Status"
|
43
|
+
And I press "Create page"
|
44
|
+
}
|
45
|
+
end
|
@@ -24,14 +24,6 @@ namespace :radiant do
|
|
24
24
|
mkdir_p RAILS_ROOT + directory, :verbose => false
|
25
25
|
cp file, RAILS_ROOT + path, :verbose => false
|
26
26
|
end
|
27
|
-
unless <%= class_name %>.root.starts_with? RAILS_ROOT # don't need to copy vendored tasks
|
28
|
-
puts "Copying rake tasks from <%= class_name %>"
|
29
|
-
local_tasks_path = File.join(RAILS_ROOT, %w(lib tasks))
|
30
|
-
mkdir_p local_tasks_path, :verbose => false
|
31
|
-
Dir[File.join <%= class_name %>.root, %w(lib tasks *.rake)].each do |file|
|
32
|
-
cp file, local_tasks_path, :verbose => false
|
33
|
-
end
|
34
|
-
end
|
35
27
|
end
|
36
28
|
|
37
29
|
desc "Syncs all available translations for this ext to the English ext master"
|
@@ -46,8 +46,9 @@ class InstanceGenerator < Rails::Generator::Base
|
|
46
46
|
schema_file = %w{db/schema.rb}
|
47
47
|
scripts = Dir["#{root}/script/**/*"].reject { |f| f =~ /(destroy|generate|plugin)$/ }
|
48
48
|
public_files = ["public/.htaccess"] + Dir["#{root}/public/**/*"]
|
49
|
+
test_files = ["config/cucumber.yml"]
|
49
50
|
|
50
|
-
files = base_dirs + text_files + environments + bundler_compatibility_files + schema_file + scripts + public_files
|
51
|
+
files = base_dirs + text_files + environments + bundler_compatibility_files + schema_file + scripts + public_files + test_files
|
51
52
|
files.map! { |f| f = $1 if f =~ %r{^#{root}/(.+)$}; f }
|
52
53
|
files.sort!
|
53
54
|
|
@@ -75,9 +76,7 @@ class InstanceGenerator < Rails::Generator::Base
|
|
75
76
|
|
76
77
|
# Instance Gemfile
|
77
78
|
m.template "instance_gemfile", "Gemfile", :assigns => {
|
78
|
-
:radiant_path => RADIANT_ROOT,
|
79
79
|
:radiant_version => Radiant::Version.to_s,
|
80
|
-
:sqlite_version => Gem.loaded_specs['sqlite3'].version.to_s,
|
81
80
|
:db => options[:db]
|
82
81
|
}
|
83
82
|
|
@@ -3,13 +3,13 @@ source :rubygems
|
|
3
3
|
# If you make any changes in this file, please run `bundle install`.
|
4
4
|
# If new versions of your installed gems are available, run `bundle update`
|
5
5
|
|
6
|
-
gem "radiant",
|
6
|
+
gem "radiant", "~> <%= radiant_version %>"
|
7
7
|
|
8
8
|
# alternatively, in development
|
9
|
-
# gem
|
9
|
+
# gem "radiant", :path => "/path/to/radiant/root"
|
10
10
|
|
11
11
|
# SQLite is the default database connection but only suitable for local use
|
12
|
-
<%= '# ' unless db == 'sqlite3' %>gem "sqlite3", "~>
|
12
|
+
<%= '# ' unless db == 'sqlite3' %>gem "sqlite3", "~> 1.3.4"
|
13
13
|
|
14
14
|
# To use MySQL
|
15
15
|
<%= '# ' unless db == 'mysql' %>gem "mysql", "~> 2.8.1"
|
@@ -21,37 +21,37 @@ gem "radiant", '~> <%= radiant_version %>'
|
|
21
21
|
<%= '# ' unless db == 'db2' %>gem "db2", "~> 2.6.2"
|
22
22
|
|
23
23
|
# SQL Server
|
24
|
-
<%= '#' unless db == 'sqlserver' %>gem
|
25
|
-
<%= '#' unless db == 'sqlserver' %>gem "activerecord-sqlserver-adapter", "~> 3.1.0"
|
24
|
+
<%= '# ' unless db == 'sqlserver' %>gem "tiny_tds"
|
25
|
+
<%= '# ' unless db == 'sqlserver' %>gem "activerecord-sqlserver-adapter", "~> 3.1.0"
|
26
26
|
|
27
27
|
# Language packs
|
28
|
-
# gem
|
29
|
-
# gem
|
30
|
-
# gem
|
31
|
-
# gem
|
32
|
-
# gem
|
33
|
-
# gem
|
28
|
+
# gem "radiant-dutch_language_pack-extension", "~> 1.0.0"
|
29
|
+
# gem "radiant-french_language_pack-extension", "~> 1.0.0"
|
30
|
+
# gem "radiant-german_language_pack-extension", "~> 1.0.0"
|
31
|
+
# gem "radiant-italian_language_pack-extension", "~> 1.0.0"
|
32
|
+
# gem "radiant-japanese_language_pack-extension", "~> 1.0.0"
|
33
|
+
# gem "radiant-russian_language_pack-extension", "~> 1.0.0"
|
34
34
|
|
35
35
|
# A standard gem extension
|
36
|
-
# gem
|
36
|
+
# gem "radiant-example-extension", :version => "~> 1.0.0"
|
37
37
|
|
38
38
|
# Your own forked extension
|
39
|
-
# gem
|
39
|
+
# gem "radiant-modified-extension", :git => "git://github.com/your/fork.git"
|
40
40
|
|
41
41
|
# A local extension in development
|
42
|
-
# gem
|
42
|
+
# gem "radiant-new-extension", :path => "/path/to/extension/root"
|
43
43
|
|
44
44
|
# Gems you would like to have in your development environment
|
45
45
|
# group :development do
|
46
|
-
# gem
|
46
|
+
# gem "wirble"
|
47
47
|
# end
|
48
48
|
|
49
49
|
# If you're running tests or specs
|
50
50
|
# group :test do
|
51
|
-
# gem "cucumber-rails",
|
52
|
-
# gem "database_cleaner",
|
53
|
-
# gem "webrat",
|
54
|
-
# gem "rspec-rails",
|
55
|
-
# gem "sqlite3",
|
56
|
-
# gem "ZenTest",
|
57
|
-
# end
|
51
|
+
# gem "cucumber-rails", "~> 0.3.2"
|
52
|
+
# gem "database_cleaner", "~> 0.6.5"
|
53
|
+
# gem "webrat", "~> 0.7.3"
|
54
|
+
# gem "rspec-rails", "~> 1.3.3"
|
55
|
+
# gem "sqlite3", "~> 1.3.4"
|
56
|
+
# gem "ZenTest", "4.6.0"
|
57
|
+
# end
|