bcms_content_rotator 1.2.0 → 1.3.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/README.markdown CHANGED
@@ -27,11 +27,11 @@ Follow the standard bcms module installation found here: http://guides.browsercm
27
27
  $ rake db:migrate
28
28
  $ rake db:seed:bcms_content_rotator
29
29
 
30
- Since this module relies on jquery, manually the javascript_include_tag to your page templates for any page that the slide show will appear on, like so:
30
+ Next, add the content rotator javascript to your templates. The asset pipeline will automatically pull in the necessary dependencies like jquery.
31
31
 
32
32
  <head>
33
33
  ...
34
- <%= javascript_include_tag 'jquery', :bcms_content_rotator %>
34
+ <%= javascript_include_tag :bcms_content_rotator %>
35
35
  <%= yield :html_head %>
36
36
  </head>
37
37
 
@@ -0,0 +1,4 @@
1
+ // Load the content rotator and dependancies.
2
+ //
3
+ //= require 'jquery'
4
+ //= require_tree .
@@ -1,18 +1,20 @@
1
-
1
+ var startslides;
2
2
  $(function() {
3
3
  var autorotate = $('#slides').data('autorotate'),
4
4
  rotateInterval = $('#slides').data('rotate-interval') * 1000;
5
5
 
6
6
  var slides = $('#slides div.slide'),
7
7
  currentItem = 0,
8
+ numItems = $('#slides ul#controls li a').length,
8
9
  runSlideShow = function() {
9
10
  var item = $('#slides ul#controls li a:eq('+currentItem+')');
10
- if (item.length) {
11
- item.trigger('click', ['timer']);
11
+ if (currentItem < numItems) {
12
12
  currentItem++;
13
- } else {
14
- currentItem = 0;
13
+ if (currentItem == numItems) {
14
+ currentItem = 0;
15
+ }
15
16
  }
17
+ item.trigger('custom', ['timer']);
16
18
  },
17
19
 
18
20
  selectSlide = function(e) {
@@ -30,10 +32,15 @@ $(function() {
30
32
  slides.hide();
31
33
  slides.filter(':first').show();
32
34
  $('#slides #controls li').filter(':first').addClass('on');
33
- $('#slides ul#controls li a').bind('click', {}, selectSlide).
35
+ $('#slides ul#controls li a').bind('custom', {}, selectSlide).
34
36
  each(function(i) { this.slideIndex=i; });
37
+ $('#slides ul#controls li a').click(function() {
38
+ $(this).trigger('custom');
39
+ clearInterval(startslides);
40
+ return false;
41
+ });
35
42
 
36
43
  if (autorotate) {
37
- setInterval(runSlideShow, (rotateInterval < 1000 ? 1000 : rotateInterval));
44
+ startslides = setInterval(runSlideShow, (rotateInterval < 1000 ? 1000 : rotateInterval));
38
45
  }
39
46
  });
@@ -0,0 +1,13 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,4 @@
1
+ module BcmsContentRotator
2
+ class SlidesController < Cms::ContentBlockController
3
+ end
4
+ end
@@ -0,0 +1,32 @@
1
+ module BcmsContentRotator
2
+ class Slide < ActiveRecord::Base
3
+ acts_as_content_block
4
+
5
+ has_attachment :file
6
+
7
+ def set_attachment_file_path
8
+ if !attachment_file.blank?
9
+ attachment.file_path = "/slides/attachment/#{Time.now.to_s(:year_month_day)}/#{name.to_slug}.#{attachment_file.original_filename.split('.').last.to_s.downcase}"
10
+ end
11
+ end
12
+
13
+ def set_attachment_section
14
+ if !attachment_file.blank?
15
+ attachment.section = Section.first(:conditions => {:name => 'Slide'})
16
+ end
17
+ end
18
+
19
+ def image_url
20
+ file.url
21
+ end
22
+
23
+ # The title of the link users click on the change slides.
24
+ def nav_title_or_name
25
+ navigation_title.blank? ? name : navigation_title
26
+ end
27
+
28
+ def has_link?
29
+ !link_url.blank?
30
+ end
31
+ end
32
+ end
@@ -1,4 +1,4 @@
1
- class ContentRotatorPortlet < Portlet
1
+ class ContentRotatorPortlet < Cms::Portlet
2
2
 
3
3
  # Mark this as 'true' to allow the portlet's template to be editable via the CMS admin UI.
4
4
  enable_template_editor true
@@ -12,7 +12,7 @@ class ContentRotatorPortlet < Portlet
12
12
  @slide_ids << s_id.to_i if (s_id && !s_id.empty?)
13
13
  end
14
14
 
15
- unsorted_slides = Slide.find(@slide_ids)
15
+ unsorted_slides = BcmsContentRotator::Slide.find(@slide_ids)
16
16
 
17
17
  # Sort slides into explicit order based on slide_ids
18
18
  @slides = []
@@ -1,6 +1,6 @@
1
1
  <%= f.cms_text_field :name, :instructions=>"(Required) Title for this slide." %>
2
- <%= f.cms_file_field :attachment_file, :label => "Image", :instructions => "(Required) Upload an image for the background of this slide." %>
3
- <%= f.cms_text_field :alt_text, :instructions => "(Optional) Alt tag for each image. Displayed as tool tip when user mouse over." %>
2
+ <%= f.cms_file_field :file, :label => "Image", :instructions => "(Required) Upload an image for the background of this slide." %>
3
+ <%= f.cms_text_field :alt_text, :instructions => "(Optional) Alt tag for each image. Displayed as tool tip when the user mouses over the slide." %>
4
4
  <%= f.cms_text_field :link_url, :label=>"Link URL", :instructions=>"(Optional) Set a URL (i.e. http://...) to make the slide clickable. (If blank, images won't be be links.)" %>
5
5
  <%= f.cms_text_field :navigation_title, :label=>"Nav Title", :instructions=>"(Optional) Title that users will click on to select a slide (If blank, 'name' will be used.)" %>
6
6
  <%= f.cms_text_editor :description %>
@@ -1,5 +1,5 @@
1
1
  <p><b>Name:</b> <%= h @content_block.name %></p>
2
- <p><b>Image:</b> <%= image_tag @content_block.attachment.file_path %></p>
2
+ <p><b>Image:</b> <%= image_tag attachment_path_for(@content_block.file) %></p>
3
3
  <p><b>Alt Text:</b> <%= h @content_block.alt_text %></p>
4
4
  <p><b>Description:</b> <%= @content_block.description.html_safe %></p>
5
5
  <p><b>Link Url:</b> <%= @content_block.link_url %>
@@ -1,5 +1,5 @@
1
1
  <%
2
- @slides = Slide.all
2
+ @slides = BcmsContentRotator::Slide.all
3
3
  @slide_map = @slides.map{|c| [c.name, c.id.to_s]}
4
4
  %>
5
5
  <%= f.cms_text_field :name %>
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ BcmsContentRotator::Engine.routes.draw do
2
+ content_blocks :slides
3
+ end
@@ -1,4 +1,4 @@
1
- ContentType.create!(:name => "Slide", :group_name => "Content Rotator")
2
- unless Section.with_path('/slides').exists?
3
- Section.create!(:name => "Slide", :parent => Section.system_section.first, :path => '/slides', :allow_groups=>:all)
1
+ Cms::ContentType.create!(:name => "BcmsContentRotator::Slide", :group_name => "Content Rotator")
2
+ unless Cms::Section.with_path('/slides').exists?
3
+ Cms::Section.create!(:name => "Slide", :parent => Cms::Section.system.first, :path => '/slides', :allow_groups=>:all)
4
4
  end
@@ -0,0 +1,9 @@
1
+ require 'cms/upgrades/v3_5_0'
2
+
3
+ class V130 < ActiveRecord::Migration
4
+
5
+ def change
6
+ v3_5_0_apply_namespace_to_block("BcmsContentRotator", "Slide")
7
+ end
8
+
9
+ end
@@ -1,2 +1,4 @@
1
- require 'bcms_content_rotator/engine'
2
- require 'bcms_content_rotator/routes'
1
+ require "bcms_content_rotator/engine"
2
+
3
+ module BcmsContentRotator
4
+ end
@@ -2,6 +2,7 @@ require 'browsercms'
2
2
 
3
3
  module BcmsContentRotator
4
4
  class Engine < Rails::Engine
5
+ isolate_namespace BcmsContentRotator
5
6
  include Cms::Module
6
7
 
7
8
  config.action_view.javascript_expansions[:bcms_content_rotator] = %w(/bcms/content_rotator/content_rotator.js)
@@ -1,3 +1,3 @@
1
1
  module BcmsContentRotator
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
@@ -3,9 +3,10 @@ require 'cms/module_installation'
3
3
  class BcmsContentRotator::InstallGenerator < Cms::ModuleInstallation
4
4
  add_migrations_directory_to_source_root __FILE__
5
5
 
6
- # Add migrations to be copied, by uncommenting the following file and editing as needed.
7
- copy_migration_file '20101111030324_bcms_content_rotator120.rb'
8
-
6
+ def copy_migrations
7
+ rake 'bcms_content_rotator:install:migrations'
8
+ end
9
+
9
10
  def add_seed_data_to_project
10
11
  copy_file "../bcms_content_rotator.seeds.rb", "db/bcms_content_rotator.seeds.rb"
11
12
  append_to_file "db/seeds.rb", "load File.expand_path('../bcms_content_rotator.seeds.rb', __FILE__)"
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :bcms_content_rotator do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class BcmsContentRotatorTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, BcmsContentRotator
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ require File.join(File.dirname(__FILE__), '/../../test_helper')
2
+
3
+ class Cms::SlidesControllerTest < ActionController::TestCase
4
+
5
+ test "Add_test_here" do
6
+
7
+ end
8
+
9
+
10
+
11
+ end
@@ -0,0 +1,15 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
+ end
@@ -0,0 +1,20 @@
1
+ require File.join(File.dirname(__FILE__), '/../../test_helper')
2
+
3
+ module BcmsContentRotator
4
+ class SlideTest < ActiveSupport::TestCase
5
+
6
+ test "should be able to create new block" do
7
+ assert Slide.create!
8
+ end
9
+
10
+ test "a Slide with a link_url should have a link" do
11
+ assert_equal true, Slide.new(:link_url=>"anything").has_link?
12
+ end
13
+
14
+ test "a Slide with no link_url shouldn't have a link" do
15
+ assert_equal false, Slide.new.has_link?
16
+ end
17
+
18
+
19
+ end
20
+ end
@@ -0,0 +1,9 @@
1
+ require File.join(File.dirname(__FILE__), '/../../test_helper')
2
+
3
+ class ContentRotatorTest < ActiveSupport::TestCase
4
+
5
+ test "Should be able to create new instance of a portlet" do
6
+ assert ContentRotatorPortlet.create!(:name => "New Portlet")
7
+ end
8
+
9
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bcms_content_rotator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,19 +9,30 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-16 00:00:00.000000000Z
12
+ date: 2012-05-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: browsercms
16
- requirement: &70298296728480 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - <
20
20
  - !ruby/object:Gem::Version
21
- version: 3.3.0
21
+ version: 3.6.0
22
+ - - ! '>='
23
+ - !ruby/object:Gem::Version
24
+ version: 3.5.0.rc3
22
25
  type: :runtime
23
26
  prerelease: false
24
- version_requirements: *70298296728480
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: 3.6.0
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: 3.5.0.rc3
25
36
  description:
26
37
  email: github@browsermedia.com
27
38
  executables: []
@@ -29,30 +40,38 @@ extensions: []
29
40
  extra_rdoc_files:
30
41
  - README.markdown
31
42
  files:
32
- - app/controllers/cms/slides_controller.rb
33
- - app/models/slide.rb
43
+ - app/assets/javascripts/bcms_content_rotator.js
44
+ - app/assets/javascripts/content_rotator.js
45
+ - app/assets/stylesheets/bcms_content_rotator/application.css
46
+ - app/controllers/bcms_content_rotator/slides_controller.rb
47
+ - app/models/bcms_content_rotator/slide.rb
34
48
  - app/portlets/content_rotator_portlet.rb
35
49
  - app/portlets/helpers/content_rotator_portlet_helper.rb
36
- - app/views/cms/slides/_form.html.erb
37
- - app/views/cms/slides/render.html.erb
38
- - app/views/layouts/templates/default.html.erb
50
+ - app/views/bcms_content_rotator/slides/_form.html.erb
51
+ - app/views/bcms_content_rotator/slides/render.html.erb
39
52
  - app/views/portlets/content_rotator/_form.html.erb
40
53
  - app/views/portlets/content_rotator/render.html.erb
41
- - db/migrate/20101111030324_bcms_content_rotator120.rb
54
+ - config/routes.rb
42
55
  - db/bcms_content_rotator.seeds.rb
43
- - public/bcms/content_rotator/content_rotator.js
56
+ - db/migrate/20101111030324_bcms_content_rotator120.rb
57
+ - db/migrate/20120522173257_v130.rb
44
58
  - lib/bcms_content_rotator/engine.rb
45
- - lib/bcms_content_rotator/routes.rb
46
59
  - lib/bcms_content_rotator/version.rb
47
60
  - lib/bcms_content_rotator.rb
48
61
  - lib/generators/bcms_content_rotator/install/install_generator.rb
49
62
  - lib/generators/bcms_content_rotator/install/USAGE
63
+ - lib/tasks/bcms_content_rotator_tasks.rake
50
64
  - lib/tasks/install.rake
65
+ - Gemfile
66
+ - LICENSE.txt
51
67
  - COPYRIGHT.txt
52
68
  - GPL.txt
53
- - LICENSE.txt
54
- - Gemfile
55
69
  - README.markdown
70
+ - test/bcms_content_rotator_test.rb
71
+ - test/functional/cms/slides_controller_test.rb
72
+ - test/test_helper.rb
73
+ - test/unit/models/slide_test.rb
74
+ - test/unit/portlets/content_rotator_portlet_test.rb
56
75
  homepage: https://github.com/browsermedia/bcms_content_rotator
57
76
  licenses: []
58
77
  post_install_message:
@@ -67,7 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
67
86
  version: '0'
68
87
  segments:
69
88
  - 0
70
- hash: -3829606389742193028
89
+ hash: -3426288886057068608
71
90
  required_rubygems_version: !ruby/object:Gem::Requirement
72
91
  none: false
73
92
  requirements:
@@ -76,12 +95,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
95
  version: '0'
77
96
  segments:
78
97
  - 0
79
- hash: -3829606389742193028
98
+ hash: -3426288886057068608
80
99
  requirements: []
81
100
  rubyforge_project: bcms_content_rotator
82
- rubygems_version: 1.8.10
101
+ rubygems_version: 1.8.24
83
102
  signing_key:
84
103
  specification_version: 3
85
104
  summary: A BrowserCMS module for creating a Slideshow/Homepage rotator designed to
86
105
  showcase site content using jQuery.
87
- test_files: []
106
+ test_files:
107
+ - test/bcms_content_rotator_test.rb
108
+ - test/functional/cms/slides_controller_test.rb
109
+ - test/test_helper.rb
110
+ - test/unit/models/slide_test.rb
111
+ - test/unit/portlets/content_rotator_portlet_test.rb
@@ -1,2 +0,0 @@
1
- class Cms::SlidesController < Cms::ContentBlockController
2
- end
data/app/models/slide.rb DELETED
@@ -1,28 +0,0 @@
1
- class Slide < ActiveRecord::Base
2
- acts_as_content_block :belongs_to_attachment => true
3
-
4
- def set_attachment_file_path
5
- if !attachment_file.blank?
6
- attachment.file_path = "/slides/attachment/#{Time.now.to_s(:year_month_day)}/#{name.to_slug}.#{attachment_file.original_filename.split('.').last.to_s.downcase}"
7
- end
8
- end
9
-
10
- def set_attachment_section
11
- if !attachment_file.blank?
12
- attachment.section = Section.first(:conditions => {:name => 'Slide'})
13
- end
14
- end
15
-
16
- def image_url
17
- attachment.file_path
18
- end
19
-
20
- # The title of the link users click on the change slides.
21
- def nav_title_or_name
22
- navigation_title.blank? ? name : navigation_title
23
- end
24
-
25
- def has_link?
26
- !link_url.blank?
27
- end
28
- end
@@ -1,18 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
5
- <%= javascript_include_tag 'jquery', :bcms_content_rotator %>
6
- <title><%= page_title %></title>
7
- <%= yield :html_head %>
8
- </head>
9
- <body style="margin: 0; padding: 0; text-align: center;">
10
- <%= cms_toolbar %>
11
- <div id="wrapper" style="width: 700px; margin: 0 auto; text-align: left; padding: 30px">
12
- Breadcrumbs: <%= render_breadcrumbs %>
13
- Main Menu: <%= render_menu %>
14
- <h1><%= page_title %></h1>
15
- <%= container :main %>
16
- </div>
17
- </body>
18
- </html>
@@ -1,7 +0,0 @@
1
- module Cms::Routes
2
- def routes_for_bcms_content_rotator
3
- namespace(:cms) do
4
- content_blocks :slides
5
- end
6
- end
7
- end