ecm_sliders 0.0.1.pre → 0.0.2.pre

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  class Ecm::Sliders::SlidersController < ApplicationController
2
2
  def index
3
- @sliders = Ecm::Sliders::Slider.all
3
+ @sliders = Ecm::Sliders::Slider.for_locale(I18n.locale).all
4
4
  end
5
5
  end
6
6
 
@@ -1,6 +1,6 @@
1
1
  module Ecm::SlidersHelper
2
2
  def render_slider(name, options = {})
3
- slider = Ecm::Sliders::Slider.where(:name => name.to_s).first
3
+ slider = Ecm::Sliders::Slider.where(:name => name.to_s).for_locale(I18n.locale).first
4
4
  if slider.nil?
5
5
  return I18n.t('ecm.sliders.slider.warnings.not_found', :name => name)
6
6
  else
@@ -14,6 +14,7 @@ class Ecm::Sliders::Slider < ActiveRecord::Base
14
14
  :ecm_sliders_items_attributes,
15
15
  :ecm_sliders_items_count,
16
16
  :identifier,
17
+ :locale,
17
18
  :name,
18
19
  :slug
19
20
 
@@ -24,7 +25,18 @@ class Ecm::Sliders::Slider < ActiveRecord::Base
24
25
  friendly_id :name, :use => :slugged
25
26
 
26
27
  # validations
28
+ validates :locale, :inclusion => I18n.available_locales.map(&:to_s),
29
+ :if => proc { |slider| slider.locale.present? }
27
30
  validates :name, :presence => true,
28
- :uniqueness => true
31
+ :uniqueness => { :scope => :locale }
32
+
33
+ # class methods
34
+ def self.for_locale(locale)
35
+ where(
36
+ self.arel_table[:locale].eq(locale).or(
37
+ self.arel_table[:locale].eq(nil)
38
+ )
39
+ ).order('locale DESC')
40
+ end
29
41
  end
30
42
 
@@ -1,13 +1,10 @@
1
1
  <div class="slider">
2
-
3
2
  <div id="slider-<%= slider.to_param %>" class="carousel slide">
4
- <!-- Carousel items -->
5
3
  <div class="carousel-inner">
6
4
  <%= render slider.ecm_sliders_items %>
7
5
  </div>
8
- <!-- Carousel nav -->
9
6
  <a class="carousel-control left" href="#slider-<%= slider.to_param %>" data-slide="prev">&lsaquo;</a>
10
7
  <a class="carousel-control right" href="#slider-<%= slider.to_param %>" data-slide="next">&rsaquo;</a>
11
8
  </div>
12
-
13
9
  </div>
10
+
@@ -1,3 +1,6 @@
1
1
  <h1><%= Ecm::Sliders::Slider.model_name.human(:count => :other) %></h1>
2
2
 
3
- <%= render @sliders %>
3
+ <% for slider in @sliders do %>
4
+ <h2><%= slider.name %></h2>
5
+ <%= render slider %>
6
+ <% end %>
@@ -1,6 +1,7 @@
1
1
  class CreateEcmSlidersSliders < ActiveRecord::Migration
2
2
  def change
3
3
  create_table :ecm_sliders_sliders do |t|
4
+ t.string :locale
4
5
  t.string :name
5
6
  t.text :description
6
7
 
@@ -6,6 +6,7 @@ ActiveAdmin.register Ecm::Sliders::Slider do
6
6
 
7
7
  form do |f|
8
8
  f.inputs do
9
+ f.input :locale, :as => :select, :collection => I18n.available_locales.map(&:to_s)
9
10
  f.input :name
10
11
  f.input :description
11
12
  end
@@ -29,6 +30,7 @@ ActiveAdmin.register Ecm::Sliders::Slider do
29
30
  selectable_column
30
31
 
31
32
  column :name
33
+ column :locale
32
34
  column :description
33
35
  column :ecm_sliders_items_count
34
36
  column :created_at
@@ -64,6 +66,7 @@ ActiveAdmin.register Ecm::Sliders::Slider do
64
66
  sidebar Ecm::Sliders::Slider.human_attribute_name(:details), :only => :show do
65
67
  attributes_table_for ecm_sliders_slider do
66
68
  row :name
69
+ row :locale
67
70
  row :ecm_sliders_items_count
68
71
  row :created_at
69
72
  row :updated_at
@@ -1,5 +1,5 @@
1
1
  module Ecm
2
2
  module Sliders
3
- VERSION = "0.0.1.pre"
3
+ VERSION = "0.0.2.pre"
4
4
  end
5
5
  end
@@ -35,6 +35,13 @@ namespace :ecm do
35
35
  Ecm::Sliders::Slider.create! do |s|
36
36
  s.name = "Slider Gallery #{i}"
37
37
  end
38
+
39
+ I18n.available_locales.each do |locale|
40
+ Ecm::Sliders::Slider.create! do |s|
41
+ s.name = "Slider Gallery #{i}"
42
+ s.locale = locale.to_s
43
+ end if (rand(3) == 0)
44
+ end
38
45
  end
39
46
  end
40
47
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecm_sliders
3
3
  version: !ruby/object:Gem::Version
4
- hash: 961915968
4
+ hash: 961915980
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
9
+ - 2
10
10
  - pre
11
- version: 0.0.1.pre
11
+ version: 0.0.2.pre
12
12
  platform: ruby
13
13
  authors:
14
14
  - Roberto Vasquez Angel