ecm_sliders 0.0.4.pre → 1.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,16 +10,21 @@ class Ecm::Sliders::Slider < ActiveRecord::Base
10
10
  :inverse_of => :ecm_sliders_slider
11
11
 
12
12
  # attributes
13
- attr_accessible :description,
13
+ attr_accessible :auto_start,
14
+ :description,
14
15
  :ecm_sliders_items_attributes,
15
16
  :ecm_sliders_items_count,
16
17
  :identifier,
18
+ :interval,
17
19
  :locale,
18
20
  :name,
19
21
  :slug
20
22
 
21
23
  accepts_nested_attributes_for :ecm_sliders_items, :allow_destroy => true
22
24
 
25
+ # callbacks
26
+ after_initialize :set_defaults
27
+
23
28
  # friendly id
24
29
  extend FriendlyId
25
30
  friendly_id :name, :use => :slugged
@@ -38,5 +43,20 @@ class Ecm::Sliders::Slider < ActiveRecord::Base
38
43
  )
39
44
  ).order('locale DESC')
40
45
  end
46
+
47
+ # instance methods
48
+
49
+ def interval_in_milliseconds
50
+ (interval * 1000).to_i
51
+ end
52
+
53
+ private
54
+
55
+ def set_defaults
56
+ if new_record?
57
+ self.auto_start = Ecm::Sliders::Configuration.slider_auto_start if auto_start.nil?
58
+ self.interval ||= Ecm::Sliders::Configuration.slider_interval
59
+ end
60
+ end
41
61
  end
42
62
 
@@ -1,5 +1,5 @@
1
1
  <div class="slider">
2
- <div id="slider-<%= slider.to_param %>" class="carousel slide">
2
+ <div id="slider-<%= slider.to_param %>" class="carousel slide" data-interval="<%= slider.interval_in_milliseconds %>">
3
3
  <div class="carousel-inner">
4
4
  <%= render slider.ecm_sliders_items %>
5
5
  </div>
@@ -7,4 +7,12 @@
7
7
  <a class="carousel-control right" href="#slider-<%= slider.to_param %>" data-slide="next">&rsaquo;</a>
8
8
  </div>
9
9
  </div>
10
-
10
+ <% if slider.auto_start %>
11
+ <script>
12
+ $('#slider-<%= slider.to_param %>').carousel(
13
+ {
14
+ interval: <%= slider.interval_in_milliseconds %>
15
+ }
16
+ );
17
+ </script>
18
+ <% end %>
@@ -4,6 +4,8 @@ class CreateEcmSlidersSliders < ActiveRecord::Migration
4
4
  t.string :locale
5
5
  t.string :name
6
6
  t.text :description
7
+ t.boolean :auto_start
8
+ t.decimal :interval, :precision => 8, :scale => 2
7
9
 
8
10
  # friendly id
9
11
  t.string :slug
@@ -11,6 +11,11 @@ ActiveAdmin.register Ecm::Sliders::Slider do
11
11
  f.input :description
12
12
  end
13
13
 
14
+ f.inputs do
15
+ f.input :auto_start
16
+ f.input :interval
17
+ end
18
+
14
19
  f.inputs do
15
20
  f.has_many :ecm_sliders_items do |item|
16
21
  if item.object.persisted?
@@ -34,6 +39,8 @@ ActiveAdmin.register Ecm::Sliders::Slider do
34
39
  column :locale
35
40
  column :description
36
41
  column :ecm_sliders_items_count
42
+ column :auto_start
43
+ column :interval
37
44
  column :created_at
38
45
  column :updated_at
39
46
 
@@ -69,6 +76,8 @@ ActiveAdmin.register Ecm::Sliders::Slider do
69
76
  row :name
70
77
  row :locale
71
78
  row :ecm_sliders_items_count
79
+ row :auto_start
80
+ row :interval
72
81
  row :created_at
73
82
  row :updated_at
74
83
  end
@@ -9,6 +9,12 @@ module Ecm
9
9
  yield self
10
10
  end
11
11
 
12
+ mattr_accessor :slider_auto_start
13
+ @@slider_auto_start = nil
14
+
15
+ mattr_accessor :slider_interval
16
+ @@slider_interval = nil
17
+
12
18
  mattr_accessor :item_image_styles
13
19
  @@item_image_styles = {}
14
20
 
@@ -1,5 +1,5 @@
1
1
  module Ecm
2
2
  module Sliders
3
- VERSION = "0.0.4.pre"
3
+ VERSION = "1.0.0.pre"
4
4
  end
5
5
  end
@@ -1,7 +1,25 @@
1
1
  Ecm::Sliders.configure do |config|
2
- # Item options
2
+ # Slider options #############################################################
3
+
4
+ # Autostart
5
+ #
6
+ # default: config.slider_auto_start = false
7
+ config.slider_auto_start = false
8
+
9
+ # Interval
10
+ #
11
+ # default: config.slider_interval = 5.0
12
+ config.slider_interval = 5.0
13
+
14
+ # Item options ###############################################################
3
15
 
4
16
  # image sizes for slider items
17
+ #
18
+ # default: config.item_image_styles = {
19
+ # :small_thumb => "80x60>",
20
+ # :medium_thumb => "160x120>",
21
+ # :slider => "830x477"
22
+ # }
5
23
  config.item_image_styles = {
6
24
  :small_thumb => "80x60>",
7
25
  :medium_thumb => "160x120>",
@@ -9,9 +27,13 @@ Ecm::Sliders.configure do |config|
9
27
  }
10
28
 
11
29
  # Accepted markup languages for the item body
30
+ #
31
+ # default: config.markup_languages = %w[ markdown rdoc textile ]
12
32
  config.markup_languages = %w[ markdown rdoc textile ]
13
33
 
14
34
  # Default markup language for the item body
35
+ #
36
+ # default: config.default_markup_language = 'textile'
15
37
  config.default_markup_language = 'textile'
16
38
  end
17
39
 
metadata CHANGED
@@ -4,11 +4,11 @@ version: !ruby/object:Gem::Version
4
4
  hash: 961915988
5
5
  prerelease: 6
6
6
  segments:
7
+ - 1
7
8
  - 0
8
9
  - 0
9
- - 4
10
10
  - pre
11
- version: 0.0.4.pre
11
+ version: 1.0.0.pre
12
12
  platform: ruby
13
13
  authors:
14
14
  - Roberto Vasquez Angel
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-11-04 00:00:00 Z
19
+ date: 2012-12-07 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: active_admin-acts_as_list