radiant-concurrent_draft-extension 1.0.1 → 1.0.2

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/README.textile CHANGED
@@ -1,50 +1,61 @@
1
- h2. Concurrent Draft
1
+ h1. Concurrent Draft
2
2
 
3
3
  The *ConcurrentDraft* extension enables draft versions of pages, snippets and layouts, which can be scheduled for promotion to Production. Every such artifact (page, snippet or layout) can have a concurrent draft version, which will be displayed in development mode, and a promoted live version, which will be displayed in production mode.
4
4
 
5
5
  Created by: Andrew vonderLuft and Sean Cribbs, August 2008, in Portland Oregon
6
6
 
7
- h3. Version History
7
+ h2. Version History
8
8
 
9
- * 1.0.0 - Compatible with Blade UI - 0.9 and above
9
+ * 1.0.x - Compatible with Blade UI - 0.9 and above
10
10
  * 0.8.0 - Compatible with Radiant 0.8.0 and above
11
11
  * 0.7.1 - Compatible with Radiant 0.7.1
12
12
 
13
- h3. Requirements
13
+ h2. Requirements
14
14
 
15
- * Radiant 0.7 or greater
15
+ * Radiant 0.9 or greater
16
+ * Radiant 0.7.x - 0.8.x use appropriate tag
16
17
 
17
- h3. Installation
18
+ h2. Installation
18
19
 
19
- h4. With the Radiant Extensions registry:
20
+ h3. From the Radiant Extension Registry
20
21
 
21
- * From your Radiant root run:
22
+ # From your RAILS_ROOT run:
23
+ <pre>script/extension install concurrent_draft</pre>
24
+ # Restart your app
25
+ NOTE: In some earlier versions of Radiant, the migrations may not run, and the assets may not be copied and you may therefore need to run:
26
+ <pre>rake radiant:extensions:concurrent_draft:migrate
27
+ rake radiant:extensions:concurrent_draft:update</pre>
22
28
 
23
- <pre>script/extension install concurrent_draft
29
+ h3. From Github
30
+
31
+ # From your RAILS_ROOT run:
32
+ <pre>cd vendor/extensions
33
+ git clone git://github.com/avonderluft/radiant-concurrent_draft-extension.git ./concurrent_draft
34
+ cd ../../
24
35
  rake radiant:extensions:concurrent_draft:migrate
25
- rake radiant:extensions:concurrent_draft:update
36
+ rake radiant:extensions:concurrent_draft:update
26
37
  </pre>
38
+ # Restart your app
27
39
 
28
- * Restart your radiant app, and you should be good to go.
29
-
30
- h4. Using the gem
31
-
32
- * Install the gem
40
+ h3. Using the gem
33
41
 
42
+ # Install the gem
34
43
  <pre>gem install radiant-concurrent_draft-extension</pre>
35
-
36
- * Update your Radiant config: add to environment.rb with other gem.configs
37
-
44
+ # Update your Radiant config: add to environment.rb with other gem.configs
38
45
  <pre>config.gem 'radiant-concurrent_draft-extension', :lib => false</pre>
46
+ # Run database migrations
47
+ <pre>rake db:migrate:extensions</pre>
48
+ # Copy assets
49
+ <pre>rake radiant:extensions:update_all</pre>
50
+ # Restart your app
39
51
 
40
-
41
- h3. Caveats
52
+ h2. Caveats
42
53
 
43
54
  Scheduled times are dependent on the ActiveRecord time setting. If you want to use local time, add this to your environment.rb:
44
55
 
45
56
  <pre>config.active_record.default_timezone = :local</pre>
46
57
 
47
- h3. Acknowledgments
58
+ h2. Acknowledgments
48
59
 
49
60
  * Andrew conceived of the ideas for this extension and its initial design, and did model changes, migrations, and initial code for pages.
50
61
  * Sean collaborated on its expansion and refactoring to include snippets and layouts, and produced most of the final code, including all of the UI.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.0.2
@@ -33,7 +33,7 @@
33
33
  - content_for :popups do
34
34
  - if @controller.authorized_user?
35
35
  .popup#schedule-draft-popup{:style => 'display:none'}
36
- %h3.title
36
+ .popup_title
37
37
  = image('clock')
38
38
  = t('schedule_promotion')
39
39
  - form_for @controller.model, :url => {:action => 'schedule_draft_promotion'}, :html => {:method => :post, 'data-onsubmit_status' => "Scheduling promotion of #{resource}"} do |f|
@@ -61,7 +61,7 @@
61
61
  width: 300px
62
62
  background: #7E7E7E
63
63
  table.index
64
- margin: 0
64
+ margin: -2px 0 0 0
65
65
  border: none
66
66
  tr, td.label, td.actions
67
67
  border: none
File without changes
@@ -4,7 +4,7 @@ require_dependency 'application_controller'
4
4
  class ConcurrentDraftExtension < Radiant::Extension
5
5
  version "#{File.read(File.expand_path(File.dirname(__FILE__)) + '/VERSION')}"
6
6
  description "Enables default draft versions of pages, snippets and layouts, which can be scheduled for promotion to Production"
7
- url "https://github.com/avonderluft/radiant-concurrent_draft-extension/tree/master"
7
+ url "https://github.com/avonderluft/radiant-concurrent_draft-extension"
8
8
 
9
9
  def activate
10
10
  [Page, Snippet, Layout, PagePart].each do |klass|
@@ -21,10 +21,10 @@ class ConcurrentDraftExtension < Radiant::Extension
21
21
  SiteController.send :include, ConcurrentDraft::SiteControllerExtensions
22
22
  %w{page snippet layout}.each do |view|
23
23
  admin.send(view).edit.add :main, "admin/draft_controls", :before => "edit_header"
24
- admin.send(view).edit.form_bottom.delete 'edit_buttons'
25
- admin.send(view).edit.add :form_bottom, 'admin/edit_buttons'
24
+ # admin.send(view).edit.form_bottom.delete 'edit_buttons'
25
+ # admin.send(view).edit.add :form_bottom, 'admin/edit_buttons'
26
26
  end
27
- admin.page.edit.add :extended_metadata, 'published_meta'
27
+ # admin.page.edit.add :extended_metadata, 'published_meta'
28
28
  Time::DATE_FORMATS[:long_civilian] = lambda {|time| time.strftime("%B %d, %Y %I:%M%p").gsub(/(\s+)0(\d+)/, '\1\2') }
29
29
  end
30
30
  end
@@ -22,18 +22,18 @@ module ConcurrentDraft::HelperExtensions
22
22
  end
23
23
  end
24
24
 
25
- def save_model_button(_model)
26
- label = _model.new_record? ? "Create" : "Save"
27
- submit_tag "#{label} and Exit", :class => 'button'
28
- end
29
-
30
- def save_model_and_continue_editing_button(_model)
31
- label = _model.new_record? ? "Create" : "Save"
32
- submit_tag label, :name => 'continue', :class => 'button'
33
- end
34
-
35
- def save_model_and_promote_button(_model)
36
- label = _model.new_record? ? "Create" : "Save"
37
- submit_tag "#{label} and Promote Now", :name => 'promote', :class => 'button'
38
- end
25
+ # def save_model_button(_model)
26
+ # label = _model.new_record? ? "Create" : "Save"
27
+ # submit_tag "#{label} and Exit", :class => 'button'
28
+ # end
29
+ #
30
+ # def save_model_and_continue_editing_button(_model)
31
+ # label = _model.new_record? ? "Create" : "Save"
32
+ # submit_tag label, :name => 'continue', :class => 'button'
33
+ # end
34
+ #
35
+ # def save_model_and_promote_button(_model)
36
+ # label = _model.new_record? ? "Create" : "Save"
37
+ # submit_tag "#{label} and Promote Now", :name => 'promote', :class => 'button'
38
+ # end
39
39
  end
File without changes
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{radiant-concurrent_draft-extension}
8
- s.version = "1.0.1"
8
+ s.version = "1.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andrew vonderLuft", "Sean Cribbs"]
12
- s.date = %q{2011-03-28}
12
+ s.date = %q{2011-04-04}
13
13
  s.description = %q{Enables draft versions of pages, snippets and layouts, which can be scheduled for promotion.}
14
14
  s.email = %q{avonderluft@avlux.net}
15
15
  s.extra_rdoc_files = [
@@ -42,7 +42,7 @@ Gem::Specification.new do |s|
42
42
  "lib/concurrent_draft/site_controller_extensions.rb",
43
43
  "lib/concurrent_draft/tags.rb",
44
44
  "lib/tasks/concurrent_draft_extension_tasks.rake",
45
- "pkg/radiant-concurrent_draft-extension-1.0.0.gem",
45
+ "pkg/radiant-concurrent_draft-extension-1.0.1.gem",
46
46
  "public/images/admin/cancel.png",
47
47
  "public/images/admin/clock.png",
48
48
  "public/images/admin/page_delete.png",
@@ -60,9 +60,6 @@ Gem::Specification.new do |s|
60
60
  "spec/models/tags_spec.rb",
61
61
  "spec/spec.opts",
62
62
  "spec/spec_helper.rb",
63
- "test/helpers/caching_test_helper.rb",
64
- "test/helpers/page_part_test_helper.rb",
65
- "test/helpers/page_test_helper.rb",
66
63
  "vendor/plugins/12_hour_time/CHANGELOG",
67
64
  "vendor/plugins/12_hour_time/README",
68
65
  "vendor/plugins/12_hour_time/Rakefile",
@@ -73,7 +70,7 @@ Gem::Specification.new do |s|
73
70
  ]
74
71
  s.homepage = %q{https://github.com/avonderluft/radiant-concurrent_draft-extension}
75
72
  s.require_paths = ["lib"]
76
- s.rubygems_version = %q{1.5.2}
73
+ s.rubygems_version = %q{1.6.2}
77
74
  s.summary = %q{Concurrent Draft Extension for Radiant CMS}
78
75
  s.test_files = [
79
76
  "spec/controllers/admin_controller_extensions_spec.rb",
@@ -82,10 +79,7 @@ Gem::Specification.new do |s|
82
79
  "spec/models/model_extensions_spec.rb",
83
80
  "spec/models/page_extensions_spec.rb",
84
81
  "spec/models/tags_spec.rb",
85
- "spec/spec_helper.rb",
86
- "test/helpers/caching_test_helper.rb",
87
- "test/helpers/page_part_test_helper.rb",
88
- "test/helpers/page_test_helper.rb"
82
+ "spec/spec_helper.rb"
89
83
  ]
90
84
 
91
85
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radiant-concurrent_draft-extension
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 1
10
- version: 1.0.1
9
+ - 2
10
+ version: 1.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andrew vonderLuft
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-03-28 00:00:00 -07:00
19
+ date: 2011-04-04 00:00:00 -07:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -70,7 +70,7 @@ files:
70
70
  - lib/concurrent_draft/site_controller_extensions.rb
71
71
  - lib/concurrent_draft/tags.rb
72
72
  - lib/tasks/concurrent_draft_extension_tasks.rake
73
- - pkg/radiant-concurrent_draft-extension-1.0.0.gem
73
+ - pkg/radiant-concurrent_draft-extension-1.0.1.gem
74
74
  - public/images/admin/cancel.png
75
75
  - public/images/admin/clock.png
76
76
  - public/images/admin/page_delete.png
@@ -88,9 +88,6 @@ files:
88
88
  - spec/models/tags_spec.rb
89
89
  - spec/spec.opts
90
90
  - spec/spec_helper.rb
91
- - test/helpers/caching_test_helper.rb
92
- - test/helpers/page_part_test_helper.rb
93
- - test/helpers/page_test_helper.rb
94
91
  - vendor/plugins/12_hour_time/CHANGELOG
95
92
  - vendor/plugins/12_hour_time/README
96
93
  - vendor/plugins/12_hour_time/Rakefile
@@ -128,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
125
  requirements: []
129
126
 
130
127
  rubyforge_project:
131
- rubygems_version: 1.5.2
128
+ rubygems_version: 1.6.2
132
129
  signing_key:
133
130
  specification_version: 3
134
131
  summary: Concurrent Draft Extension for Radiant CMS
@@ -140,6 +137,3 @@ test_files:
140
137
  - spec/models/page_extensions_spec.rb
141
138
  - spec/models/tags_spec.rb
142
139
  - spec/spec_helper.rb
143
- - test/helpers/caching_test_helper.rb
144
- - test/helpers/page_part_test_helper.rb
145
- - test/helpers/page_test_helper.rb
@@ -1,42 +0,0 @@
1
- class FakeResponseCache
2
- attr_accessor :expired_path, :expired_paths
3
-
4
- def initialize
5
- @expired_paths = []
6
- @cached_responses = {}
7
- end
8
-
9
- def clear
10
- @cached_responses.clear
11
- @cleared = true
12
- end
13
-
14
- def cache_response(path, response)
15
- @cached_responses[path] = response
16
- response
17
- end
18
-
19
- def update_response(path, response)
20
- if r = @cached_response[path]
21
- response.headers.merge!(r.headers)
22
- response.body = r.body
23
- end
24
- response
25
- end
26
-
27
- def expire_response(path)
28
- @expired_paths << path
29
- @expired_path = path
30
- end
31
-
32
- def response_cached?(path)
33
- @cached_responses.keys.include?(path)
34
- end
35
-
36
- def cleared?
37
- !!@cleared
38
- end
39
- end
40
-
41
- module CachingTestHelper
42
- end
@@ -1,49 +0,0 @@
1
- module PagePartTestHelper
2
- VALID_PAGE_PART_PARAMS = {
3
- :name => 'custom',
4
- :content => 'Some simple content.',
5
- :page_id => '1'
6
- }
7
-
8
- def part_params(options = {})
9
- params = VALID_PAGE_PART_PARAMS.dup
10
- params.delete(:page_id)
11
- params.merge!(:name => @part_name) if @part_name
12
- params.merge!(options)
13
- params
14
- end
15
-
16
- def destroy_test_part(title = @part_name)
17
- while part = get_test_part(title) do
18
- part.destroy
19
- end
20
- end
21
-
22
- def get_test_part(name = @part_name)
23
- PagePart.find_by_name(name)
24
- end
25
-
26
- def create_test_part(name = @part_name)
27
- params = part_params
28
- params.merge!(:name => name)
29
- part = PagePart.new(params)
30
- if part.save
31
- part
32
- else
33
- raise "part <#{part.inspect}> could not be saved"
34
- end
35
- end
36
-
37
- # must be included after PageTestHelper to work
38
- def create_test_page(options = {})
39
- no_part = options.delete(:no_part)
40
- page = super(options)
41
- unless no_part
42
- part = PagePart.new part_params(:name => 'body', :content => 'test')
43
- page.parts << part
44
- page.save
45
- part.save
46
- end
47
- page
48
- end
49
- end
@@ -1,77 +0,0 @@
1
- class NoCachePage < Page
2
- description 'Turns caching off for testing.'
3
-
4
- def cache?
5
- false
6
- end
7
- end
8
-
9
- class CustomFileNotFoundPage < FileNotFoundPage
10
- end
11
-
12
- class TestPage < Page
13
- description 'this is just a test page'
14
-
15
- tag 'test1' do
16
- 'Hello world!'
17
- end
18
-
19
- tag 'test2' do
20
- 'Another test.'
21
- end
22
-
23
- def headers
24
- {
25
- 'cool' => 'beans',
26
- 'request' => @request.inspect[20..30],
27
- 'response' => @response.inspect[20..31]
28
- }
29
- end
30
-
31
- end
32
-
33
- class VirtualPage < Page
34
- def virtual?
35
- true
36
- end
37
- end
38
-
39
- module PageTestHelper
40
-
41
- VALID_PAGE_PARAMS = {
42
- :title => 'New Page',
43
- :slug => 'page',
44
- :breadcrumb => 'New Page',
45
- :status_id => '1',
46
- :parent_id => nil
47
- }
48
-
49
- def page_params(options = {})
50
- params = VALID_PAGE_PARAMS.dup
51
- params.merge!(:title => @page_title) if @page_title
52
- params.merge!(:status_id => '5')
53
- params.merge!(options)
54
- end
55
-
56
- def destroy_test_page(title = @page_title)
57
- while page = get_test_page(title) do
58
- page.destroy
59
- end
60
- end
61
-
62
- def get_test_page(title = @page_title)
63
- Page.find_by_title(title)
64
- end
65
-
66
- def create_test_page(options = {})
67
- options[:title] ||= @page_title
68
- klass = options.delete(:class_name) || Page
69
- klass = Kernel.eval(klass) if klass.kind_of? String
70
- page = klass.new page_params(options)
71
- if page.save
72
- page
73
- else
74
- raise "page <#{page.inspect}> could not be saved"
75
- end
76
- end
77
- end