alchemy_domains 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,65 +2,65 @@
2
2
  # Extending Alchemy::BaseController
3
3
 
4
4
  module Alchemy
5
- BaseController.class_eval do
5
+ BaseController.class_eval do
6
6
 
7
- prepend_before_filter :set_domain
7
+ prepend_before_filter :set_domain
8
8
 
9
- def multi_language?
10
- # This will check only the current requested domain and ignores other domains.
11
- Language.current_domain(session[:domain_id]).published.count > 1
12
- end
9
+ def multi_language?
10
+ # This will check only the current requested domain and ignores other domains.
11
+ Language.current_domain(session[:domain_id]).published.count > 1
12
+ end
13
13
 
14
- private
14
+ private
15
15
 
16
- def set_domain
17
- @domain = AlchemyDomains::Domain.find_by_hostname(request.host)
18
- if @domain
19
- session[:domain_id] ||= @domain.id
20
- elsif default_domain = AlchemyDomains::Domain.default
21
- redirect_to request.protocol + default_domain.hostname, :status => 301
22
- return false
23
- else
24
- # No Domains found. We need to create the requested.
25
- @domain = AlchemyDomains::Domain.create!(:hostname => request.host)
26
- @domain.localizations.create!(:language => Language.get_default)
27
- session[:domain_id] = @domain.id
28
- end
29
- end
16
+ def set_domain
17
+ @domain = AlchemyDomains::Domain.find_by_hostname(request.host)
18
+ if @domain
19
+ session[:domain_id] ||= @domain.id
20
+ elsif default_domain = AlchemyDomains::Domain.default
21
+ redirect_to request.protocol + default_domain.hostname, :status => 301
22
+ return false
23
+ else
24
+ # No Domains found. We need to create the requested.
25
+ @domain = AlchemyDomains::Domain.create!(:hostname => request.host)
26
+ @domain.localizations.create!(:language => Language.get_default)
27
+ session[:domain_id] = @domain.id
28
+ end
29
+ end
30
30
 
31
- # Sets the language for rendering pages in pages controller
32
- def set_language
33
- if params[:lang].blank? and session[:language_id].blank?
34
- set_language_to_default
35
- elsif !params[:lang].blank?
36
- set_language_from(params[:lang])
37
- ::I18n.locale = params[:lang]
38
- end
39
- end
31
+ # Sets the language for rendering pages in pages controller
32
+ def set_language
33
+ if params[:lang].blank? and session[:language_id].blank?
34
+ set_language_to_default
35
+ elsif !params[:lang].blank?
36
+ set_language_from(params[:lang])
37
+ ::I18n.locale = params[:lang]
38
+ end
39
+ end
40
40
 
41
- # Sets the language from the given params
42
- def set_language_from(language_code_or_id)
43
- if language_code_or_id.is_a?(String) && language_code_or_id.match(/^\d+$/)
44
- language_code_or_id = language_code_or_id.to_i
45
- end
46
- case language_code_or_id.class.name
47
- when "String"
48
- @language = Language.current_domain(session[:domain_id]).find_by_code(language_code_or_id)
49
- when "Fixnum"
50
- @language = Language.find(language_code_or_id)
51
- end
52
- store_language_in_session(@language)
53
- end
41
+ # Sets the language from the given params
42
+ def set_language_from(language_code_or_id)
43
+ if language_code_or_id.is_a?(String) && language_code_or_id.match(/^\d+$/)
44
+ language_code_or_id = language_code_or_id.to_i
45
+ end
46
+ case language_code_or_id.class.name
47
+ when "String"
48
+ @language = Language.current_domain(session[:domain_id]).find_by_code(language_code_or_id)
49
+ when "Fixnum"
50
+ @language = Language.find(language_code_or_id)
51
+ end
52
+ store_language_in_session(@language)
53
+ end
54
54
 
55
- # Sets the language to the domain´s default language
56
- def set_language_to_default
57
- @language = AlchemyDomains::Domain.find(session[:domain_id]).default_language
58
- if @language
59
- store_language_in_session(@language)
60
- else
61
- raise "No Default Language for requested Domain found! Did you run `rake alchemy_domains:add:domain` task?"
62
- end
63
- end
55
+ # Sets the language to the domain´s default language
56
+ def set_language_to_default
57
+ @language = AlchemyDomains::Domain.find(session[:domain_id]).default_language
58
+ if @language
59
+ store_language_in_session(@language)
60
+ else
61
+ raise "No Default Language for requested Domain found! Did you run `rake alchemy_domains:add:domain` task?"
62
+ end
63
+ end
64
64
 
65
- end
65
+ end
66
66
  end
@@ -1,40 +1,40 @@
1
1
  module Alchemy
2
2
 
3
- PagesController.class_eval do
3
+ PagesController.class_eval do
4
4
 
5
- def perform_search
6
- searchresult_page_layouts = PageLayout.get_all_by_attributes({:searchresults => true})
7
- if searchresult_page_layouts.any?
8
- @search_result_page = Page.find_by_page_layout_and_public_and_language_id(searchresult_page_layouts.first["name"], true, session[:language_id])
9
- if !params[:query].blank? && @search_result_page
10
- @search_results = []
11
- %w(Alchemy::EssenceText Alchemy::EssenceRichtext).each do |e|
12
- @search_results += e.constantize.includes(:contents => {:element => :page}).find_with_ferret(
13
- "*#{params[:query]}*",
14
- {:limit => :all},
15
- {:conditions => [
16
- 'alchemy_pages.language_id = ? AND alchemy_pages.public = ? AND alchemy_pages.layoutpage = ? AND alchemy_pages.restricted = ?',
17
- @search_result_page.language_id, true, false, false
18
- ]}
19
- )
20
- end
21
- return @search_results.sort{ |y, x| x.ferret_score <=> y.ferret_score } if @search_results.any?
22
- end
23
- end
24
- end
5
+ def perform_search
6
+ searchresult_page_layouts = PageLayout.get_all_by_attributes({:searchresults => true})
7
+ if searchresult_page_layouts.any?
8
+ @search_result_page = Page.find_by_page_layout_and_public_and_language_id(searchresult_page_layouts.first["name"], true, session[:language_id])
9
+ if !params[:query].blank? && @search_result_page
10
+ @search_results = []
11
+ %w(Alchemy::EssenceText Alchemy::EssenceRichtext).each do |e|
12
+ @search_results += e.constantize.includes(:contents => {:element => :page}).find_with_ferret(
13
+ "*#{params[:query]}*",
14
+ {:limit => :all},
15
+ {:conditions => [
16
+ 'alchemy_pages.language_id = ? AND alchemy_pages.public = ? AND alchemy_pages.layoutpage = ? AND alchemy_pages.restricted = ?',
17
+ @search_result_page.language_id, true, false, false
18
+ ]}
19
+ )
20
+ end
21
+ return @search_results.sort{ |y, x| x.ferret_score <=> y.ferret_score } if @search_results.any?
22
+ end
23
+ end
24
+ end
25
25
 
26
- protected
26
+ protected
27
27
 
28
- # If merged into Alchemy Core, this can be deleted.
29
- def load_page
30
- return @page if @page
31
- if params[:urlname].blank?
32
- @page = Page.language_root_for(Language.get_default.id)
33
- else
34
- @page = Page.contentpages.find_by_urlname_and_language_id(params[:urlname], session[:language_id])
35
- end
36
- end
28
+ # If merged into Alchemy Core, this can be deleted.
29
+ def load_page
30
+ return @page if @page
31
+ if params[:urlname].blank?
32
+ @page = Page.language_root_for(Language.get_default.id)
33
+ else
34
+ @page = Page.contentpages.find_by_urlname_and_language_id(params[:urlname], session[:language_id])
35
+ end
36
+ end
37
37
 
38
- end
38
+ end
39
39
 
40
40
  end
@@ -1,48 +1,48 @@
1
1
  module AlchemyDomains
2
- module Admin
3
- class DomainsController < Alchemy::Admin::ResourcesController
2
+ module Admin
3
+ class DomainsController < Alchemy::Admin::ResourcesController
4
4
 
5
- def new
6
- @domain = Domain.new
7
- @languages = Alchemy::Language.published.all
8
- @languages.map { |l| @domain.localizations.build(:language => l) }
9
- render :layout => !request.xhr?
10
- end
5
+ def new
6
+ @domain = Domain.new
7
+ @languages = Alchemy::Language.published.all
8
+ @languages.map { |l| @domain.localizations.build(:language => l) }
9
+ render :layout => !request.xhr?
10
+ end
11
11
 
12
- def edit
13
- @domain = Domain.find(params[:id])
14
- @languages = Alchemy::Language.published.all
15
- (@languages - @domain.languages).map { |l| @domain.localizations.build(:language => l) }
16
- render :layout => !request.xhr?
17
- end
12
+ def edit
13
+ @domain = Domain.find(params[:id])
14
+ @languages = Alchemy::Language.published.all
15
+ (@languages - @domain.languages).map { |l| @domain.localizations.build(:language => l) }
16
+ render :layout => !request.xhr?
17
+ end
18
18
 
19
- def update
20
- params[:domain][:localizations_attributes].map do |k, v|
21
- if v[:language_id] == "0"
22
- v[:_destroy] = '1'
23
- v.delete(:language_id)
24
- end
25
- end
26
- @domain = Domain.find(params[:id])
27
- @domain.update_attributes(params[:domain])
28
- render_errors_or_redirect(
29
- @domain,
30
- url_for({:action => :index}),
31
- flash_notice_for_resource_action
32
- )
33
- end
19
+ def update
20
+ params[:domain][:localizations_attributes].map do |k, v|
21
+ if v[:language_id] == "0"
22
+ v[:_destroy] = '1'
23
+ v.delete(:language_id)
24
+ end
25
+ end
26
+ @domain = Domain.find(params[:id])
27
+ @domain.update_attributes(params[:domain])
28
+ render_errors_or_redirect(
29
+ @domain,
30
+ url_for({:action => :index}),
31
+ flash_notice_for_resource_action
32
+ )
33
+ end
34
34
 
35
- def create
36
- params[:domain][:localizations_attributes].delete_if { |k, v| v[:language_id] == "0" }
37
- @domain = Domain.new(params[:domain])
38
- @domain.save
39
- render_errors_or_redirect(
40
- @domain,
41
- admin_domains_path,
42
- flash_notice_for_resource_action
43
- )
44
- end
35
+ def create
36
+ params[:domain][:localizations_attributes].delete_if { |k, v| v[:language_id] == "0" }
37
+ @domain = Domain.new(params[:domain])
38
+ @domain.save
39
+ render_errors_or_redirect(
40
+ @domain,
41
+ admin_domains_path,
42
+ flash_notice_for_resource_action
43
+ )
44
+ end
45
45
 
46
- end
47
- end
46
+ end
47
+ end
48
48
  end
@@ -1,17 +1,17 @@
1
1
  module AlchemyDomains
2
- module Admin
3
- class LocalizationsController < Alchemy::Admin::ResourcesController
2
+ module Admin
3
+ class LocalizationsController < Alchemy::Admin::ResourcesController
4
4
 
5
- def update
6
- @localization = Localization.find(params[:id])
7
- @localization.update_attributes(params[:localization])
8
- render_errors_or_redirect(
9
- @localization,
10
- admin_domains_path,
11
- flash_notice_for_resource_action
12
- )
13
- end
5
+ def update
6
+ @localization = Localization.find(params[:id])
7
+ @localization.update_attributes(params[:localization])
8
+ render_errors_or_redirect(
9
+ @localization,
10
+ admin_domains_path,
11
+ flash_notice_for_resource_action
12
+ )
13
+ end
14
14
 
15
- end
16
- end
15
+ end
16
+ end
17
17
  end
@@ -1,9 +1,9 @@
1
1
  module Alchemy
2
- BaseHelper.class_eval do
2
+ BaseHelper.class_eval do
3
3
 
4
- def multi_language?
5
- Alchemy::Language.current_domain(session[:domain_id]).published.count > 1
6
- end
4
+ def multi_language?
5
+ Alchemy::Language.current_domain(session[:domain_id]).published.count > 1
6
+ end
7
7
 
8
- end
9
- end
8
+ end
9
+ end
@@ -2,69 +2,69 @@
2
2
  # Extending Alchemy::PagesHelper
3
3
 
4
4
  module Alchemy
5
- PagesHelper.class_eval do
5
+ PagesHelper.class_eval do
6
6
 
7
- def language_switcher(options={})
8
- default_options = {
9
- :linkname => :name,
10
- :spacer => "",
11
- :link_to_public_child => configuration(:redirect_to_public_child),
12
- :link_to_page_with_layout => nil,
13
- :show_title => true,
14
- :reverse => false,
15
- :as_select_box => false,
16
- :show_flags => false
17
- }
18
- options = default_options.merge(options)
19
- if multi_language?
20
- language_links = []
21
- pages = (options[:link_to_public_child] == true) ? Page.language_roots.current_domain(session[:domain_id]) : Page.public_language_roots.current_domain(session[:domain_id])
22
- return nil if (pages.blank? || pages.length == 1)
23
- pages.each_with_index do |page, i|
24
- if(options[:link_to_page_with_layout] != nil)
25
- page_found_by_layout = Page.current_domain(session[:domain_id]).where(:page_layout => options[:link_to_page_with_layout].to_s, :language_id => page.language_id)
26
- end
27
- page = page_found_by_layout || page
28
- page = (options[:link_to_public_child] ? (page.first_public_child.blank? ? nil : page.first_public_child) : nil) if !page.public?
29
- if !page.blank?
30
- active = session[:language_id] == page.language.id
31
- linkname = page.language.label(options[:linkname])
32
- if options[:as_select_box]
33
- language_links << [linkname, show_page_url(:urlname => page.urlname, :lang => page.language.code)]
34
- else
35
- language_links << link_to(
36
- "#{content_tag(:span, '', :class => "flag") if options[:show_flags]}#{ content_tag(:span, linkname)}".html_safe,
37
- alchemy.show_page_path(:urlname => page.urlname, :lang => page.language.code),
38
- :class => "#{(active ? 'active ' : nil)}#{page.language.code} #{(i == 0) ? 'first' : (i==pages.length-1) ? 'last' : nil}",
39
- :title => options[:show_title] ? Alchemy::I18n.t("alchemy.language_links.#{page.language.code}.title", :default => page.language.name) : nil
40
- )
41
- end
42
- end
43
- # when last iteration and we have just one language_link,
44
- # we dont need to render it.
45
- if (i==pages.length-1) && language_links.length == 1
46
- return nil
47
- end
48
- end
49
- return nil if language_links.empty? || language_links.length == 1
50
- language_links.reverse! if options[:reverse]
51
- if options[:as_select_box]
52
- return select_tag(
53
- 'language',
54
- options_for_select(
55
- language_links,
56
- show_page_url(:urlname => @page.urlname, :lang => @page.language.code)
57
- ),
58
- :onchange => "window.location=this.value"
59
- )
60
- else
61
- raw(language_links.join(options[:spacer]))
62
- end
63
- else
64
- nil
65
- end
66
- end
67
- alias_method :language_switches, :language_switcher
7
+ def language_switcher(options={})
8
+ default_options = {
9
+ :linkname => :name,
10
+ :spacer => "",
11
+ :link_to_public_child => configuration(:redirect_to_public_child),
12
+ :link_to_page_with_layout => nil,
13
+ :show_title => true,
14
+ :reverse => false,
15
+ :as_select_box => false,
16
+ :show_flags => false
17
+ }
18
+ options = default_options.merge(options)
19
+ if multi_language?
20
+ language_links = []
21
+ pages = (options[:link_to_public_child] == true) ? Page.language_roots.current_domain(session[:domain_id]) : Page.public_language_roots.current_domain(session[:domain_id])
22
+ return nil if (pages.blank? || pages.length == 1)
23
+ pages.each_with_index do |page, i|
24
+ if(options[:link_to_page_with_layout] != nil)
25
+ page_found_by_layout = Page.current_domain(session[:domain_id]).where(:page_layout => options[:link_to_page_with_layout].to_s, :language_id => page.language_id)
26
+ end
27
+ page = page_found_by_layout || page
28
+ page = (options[:link_to_public_child] ? (page.first_public_child.blank? ? nil : page.first_public_child) : nil) if !page.public?
29
+ if !page.blank?
30
+ active = session[:language_id] == page.language.id
31
+ linkname = page.language.label(options[:linkname])
32
+ if options[:as_select_box]
33
+ language_links << [linkname, show_page_url(:urlname => page.urlname, :lang => page.language.code)]
34
+ else
35
+ language_links << link_to(
36
+ "#{content_tag(:span, '', :class => "flag") if options[:show_flags]}#{ content_tag(:span, linkname)}".html_safe,
37
+ alchemy.show_page_path(:urlname => page.urlname, :lang => page.language.code),
38
+ :class => "#{(active ? 'active ' : nil)}#{page.language.code} #{(i == 0) ? 'first' : (i==pages.length-1) ? 'last' : nil}",
39
+ :title => options[:show_title] ? Alchemy::I18n.t("alchemy.language_links.#{page.language.code}.title", :default => page.language.name) : nil
40
+ )
41
+ end
42
+ end
43
+ # when last iteration and we have just one language_link,
44
+ # we dont need to render it.
45
+ if (i==pages.length-1) && language_links.length == 1
46
+ return nil
47
+ end
48
+ end
49
+ return nil if language_links.empty? || language_links.length == 1
50
+ language_links.reverse! if options[:reverse]
51
+ if options[:as_select_box]
52
+ return select_tag(
53
+ 'language',
54
+ options_for_select(
55
+ language_links,
56
+ show_page_url(:urlname => @page.urlname, :lang => @page.language.code)
57
+ ),
58
+ :onchange => "window.location=this.value"
59
+ )
60
+ else
61
+ raw(language_links.join(options[:spacer]))
62
+ end
63
+ else
64
+ nil
65
+ end
66
+ end
67
+ alias_method :language_switches, :language_switcher
68
68
 
69
- end
69
+ end
70
70
  end
@@ -1,47 +1,47 @@
1
1
  module AlchemyDomains
2
- class Domain < ActiveRecord::Base
3
- set_table_name :alchemy_domains
4
- has_many :localizations, :dependent => :destroy
5
- has_many :languages, :through => :localizations
6
- accepts_nested_attributes_for :localizations, :allow_destroy => true
7
-
8
- validates_presence_of :hostname
9
- validates_uniqueness_of :hostname
10
- validates_presence_of :default, :message => "Es muss eine Standard Domain geben", :if => proc { |m| m.default_changed? && m.default_was == true }
11
- # locahost is not valid, so we cant validate the format like that.
12
- #validates_format_of :hostname, :with => /^[a-z\d]+([\-\.][a-z\d]+)*\.[a-z]{2,6}/
13
- validates_format_of :hostname, :with => /\A[a-z\d]+([\-\.]?[a-z\d])*\z/
14
-
15
- before_create :set_to_default, :if => proc { |m| Domain.default.blank? && self.default == false }
16
- before_save :remove_old_default, :if => proc { |m| m.default_changed? && m != Domain.default }
17
-
18
- def default_localization
19
- self.localizations.where(:default_for_domain => true).first
20
- end
21
-
22
- def default_language
23
- default_localization.language if default_localization.present?
24
- end
25
-
26
- def default_language_name
27
- default_language.name if default_language.present?
28
- end
29
-
30
- def self.default
31
- Domain.find_by_default(true)
32
- end
33
-
34
- private
35
-
36
- def set_to_default
37
- self.default = true
38
- end
39
-
40
- def remove_old_default
41
- domain = Domain.default
42
- return true if domain.nil?
43
- domain.update_attribute(:default, false)
44
- end
45
-
46
- end
2
+ class Domain < ActiveRecord::Base
3
+ self.table_name = "alchemy_domains"
4
+ has_many :localizations, :dependent => :destroy
5
+ has_many :languages, :through => :localizations
6
+ accepts_nested_attributes_for :localizations, :allow_destroy => true
7
+
8
+ validates_presence_of :hostname
9
+ validates_uniqueness_of :hostname
10
+ validates_presence_of :default, :message => "Es muss eine Standard Domain geben", :if => proc { |m| m.default_changed? && m.default_was == true }
11
+ # locahost is not valid, so we cant validate the format like that.
12
+ #validates_format_of :hostname, :with => /^[a-z\d]+([\-\.][a-z\d]+)*\.[a-z]{2,6}/
13
+ validates_format_of :hostname, :with => /\A[a-z\d]+([\-\.]?[a-z\d])*\z/
14
+
15
+ before_create :set_to_default, :if => proc { |m| Domain.default.blank? && self.default == false }
16
+ before_save :remove_old_default, :if => proc { |m| m.default_changed? && m != Domain.default }
17
+
18
+ def default_localization
19
+ self.localizations.where(:default_for_domain => true).first
20
+ end
21
+
22
+ def default_language
23
+ default_localization.language if default_localization.present?
24
+ end
25
+
26
+ def default_language_name
27
+ default_language.name if default_language.present?
28
+ end
29
+
30
+ def self.default
31
+ Domain.find_by_default(true)
32
+ end
33
+
34
+ private
35
+
36
+ def set_to_default
37
+ self.default = true
38
+ end
39
+
40
+ def remove_old_default
41
+ domain = Domain.default
42
+ return true if domain.nil?
43
+ domain.update_attribute(:default, false)
44
+ end
45
+
46
+ end
47
47
  end
@@ -1,29 +1,29 @@
1
1
  module AlchemyDomains
2
- class Localization < ActiveRecord::Base
3
- set_table_name :alchemy_localizations
4
- belongs_to :domain
5
- belongs_to :language, :class_name => "Alchemy::Language"
2
+ class Localization < ActiveRecord::Base
3
+ self.table_name = "alchemy_localizations"
4
+ belongs_to :domain
5
+ belongs_to :language, :class_name => "Alchemy::Language"
6
6
 
7
- before_create :set_to_default_for_domain, :if => proc { |m| m.domain.default_localization.blank? && self.default_for_domain == false }
8
- before_save :remove_old_default, :if => proc { |m| m.default_for_domain_changed? && m != Localization.default_for_domain(domain_id) }
7
+ before_create :set_to_default_for_domain, :if => proc { |m| m.domain.default_localization.blank? && self.default_for_domain == false }
8
+ before_save :remove_old_default, :if => proc { |m| m.default_for_domain_changed? && m != Localization.default_for_domain(domain_id) }
9
9
 
10
- scope :domain_languages
10
+ scope :domain_languages
11
11
 
12
- def self.default_for_domain(domain_id)
13
- find_by_default_for_domain_and_domain_id(true, domain_id)
14
- end
12
+ def self.default_for_domain(domain_id)
13
+ find_by_default_for_domain_and_domain_id(true, domain_id)
14
+ end
15
15
 
16
- private
16
+ private
17
17
 
18
- def set_to_default_for_domain
19
- self.default_for_domain = true
20
- end
18
+ def set_to_default_for_domain
19
+ self.default_for_domain = true
20
+ end
21
21
 
22
- def remove_old_default
23
- localization = Localization.default_for_domain(domain_id)
24
- return true if localization.nil?
25
- localization.update_attribute(:default_for_domain, false)
26
- end
22
+ def remove_old_default
23
+ localization = Localization.default_for_domain(domain_id)
24
+ return true if localization.nil?
25
+ localization.update_attribute(:default_for_domain, false)
26
+ end
27
27
 
28
- end
28
+ end
29
29
  end
@@ -2,10 +2,10 @@
2
2
  # Extending Alchemy::Language
3
3
 
4
4
  module Alchemy
5
- Language.class_eval do
6
- has_many :localizations, :dependent => :destroy, :class_name => "AlchemyDomains::Localization"
7
- has_many :domains, :through => :localizations, :class_name => "AlchemyDomains::Domain"
5
+ Language.class_eval do
6
+ has_many :localizations, :dependent => :destroy, :class_name => "AlchemyDomains::Localization"
7
+ has_many :domains, :through => :localizations, :class_name => "AlchemyDomains::Domain"
8
8
 
9
- scope :current_domain, lambda{ |domain_id| includes(:localizations).where("alchemy_localizations.domain_id" => domain_id) }
10
- end
9
+ scope :current_domain, lambda{ |domain_id| includes(:localizations).where("alchemy_localizations.domain_id" => domain_id) }
10
+ end
11
11
  end
@@ -2,11 +2,11 @@
2
2
  # Extending Alchemy::Page
3
3
 
4
4
  module Alchemy
5
- Page.class_eval do
6
- scope :current_domain, lambda{ |domain_id| includes(:language => :localizations).where('alchemy_localizations.domain_id' => domain_id) }
5
+ Page.class_eval do
6
+ scope :current_domain, lambda{ |domain_id| includes(:language => :localizations).where('alchemy_localizations.domain_id' => domain_id) }
7
7
 
8
- def self.cache_path(params, request)
9
- "alchemy/#{request.host}/#{params[:lang]}/#{params[:urlname]}".gsub(/\/\//, '/')
10
- end
11
- end
8
+ def self.cache_path(params, request)
9
+ "alchemy/#{request.host}/#{params[:lang]}/#{params[:urlname]}".gsub(/\/\//, '/')
10
+ end
11
+ end
12
12
  end
@@ -1,31 +1,31 @@
1
1
  <tr class="<%= cycle('even', 'odd') %>">
2
- <td><%= domain.hostname -%></td>
3
- <td style="text-align: center"><%= render_icon(true) if domain.default? %></td>
4
- <td></td>
5
- <td></td>
6
- <td class="tools">
7
- <%- permitted_to?(:destroy, :alchemy_domains_admin_domains) do -%>
8
- <%= link_to_confirmation_window(
9
- '',
10
- t("Are you sure?"),
11
- admin_domain_path(domain),
12
- :title => t("Delete"),
13
- :class => "icon destroy"
14
- ) -%>
15
- <%- end -%>
16
- <%- permitted_to?(:edit, :alchemy_domains_admin_domains) do -%>
17
- <%= link_to_overlay_window(
18
- '',
19
- edit_admin_domain_path(domain),
20
- {
21
- :title => t("Edit")
22
- },
23
- {
24
- :class => "icon edit",
25
- :title => t("Edit")
26
- }
27
- ) -%>
28
- <%- end -%>
29
- </td>
2
+ <td><%= domain.hostname -%></td>
3
+ <td style="text-align: center"><%= render_icon(true) if domain.default? %></td>
4
+ <td></td>
5
+ <td></td>
6
+ <td class="tools">
7
+ <%- permitted_to?(:destroy, :alchemy_domains_admin_domains) do -%>
8
+ <%= link_to_confirmation_window(
9
+ '',
10
+ t("Are you sure?"),
11
+ admin_domain_path(domain),
12
+ :title => t("Delete"),
13
+ :class => "icon destroy"
14
+ ) -%>
15
+ <%- end -%>
16
+ <%- permitted_to?(:edit, :alchemy_domains_admin_domains) do -%>
17
+ <%= link_to_overlay_window(
18
+ '',
19
+ edit_admin_domain_path(domain),
20
+ {
21
+ :title => t("Edit")
22
+ },
23
+ {
24
+ :class => "icon edit",
25
+ :title => t("Edit")
26
+ }
27
+ ) -%>
28
+ <%- end -%>
29
+ </td>
30
30
  </tr>
31
- <%= render :partial => 'alchemy_domains/admin/localizations/localization', :collection => domain.localizations %>
31
+ <%= render :partial => 'alchemy_domains/admin/localizations/localization', :collection => domain.localizations %>
@@ -1,36 +1,36 @@
1
1
  <%= form_for [:admin, @domain], :remote => true do |f| %>
2
- <div id="errors" style="display: none"></div>
3
- <table>
4
-
5
- <tr>
6
- <td class="label"><%= f.label :hostname %></td>
7
- <td class="input">
8
- <%= f.text_field :hostname, :class => 'thin_border' -%>
9
- </td>
10
- </tr>
11
- <tr>
12
- <td class="label"><%= f.label :default, t('default') %></td>
13
- <td class="checkbox">
14
- <%= f.check_box(:default) -%>
15
- </td>
16
- </tr>
17
- <tr>
18
- <td class="label"><%= f.label :languages, t('languages') %></td>
19
- <td class="checkbox">
20
- <% @domain.localizations.each_with_index do |localization, i| -%>
21
- <%= f.fields_for :localizations, localization do |l| %>
22
- <div>
23
- <%= l.check_box(:language_id, {:checked => !l.object.new_record?, :id => "domain_localization_#{i}"}, localization.language.id) %>
24
- <label for="domain_localization_<%= i%>"><%= localization.language.name -%></label>
25
- </div>
26
- <% end %>
27
- <% end -%>
28
- </td>
29
- </tr>
30
- <tr>
31
- <td class="submit" colspan="2">
32
- <%= f.button t('save'), :class => 'button' %>
33
- </td>
34
- </tr>
35
- </table>
2
+ <div id="errors" style="display: none"></div>
3
+ <table>
4
+
5
+ <tr>
6
+ <td class="label"><%= f.label :hostname %></td>
7
+ <td class="input">
8
+ <%= f.text_field :hostname, :class => 'thin_border' -%>
9
+ </td>
10
+ </tr>
11
+ <tr>
12
+ <td class="label"><%= f.label :default, t('default') %></td>
13
+ <td class="checkbox">
14
+ <%= f.check_box(:default) -%>
15
+ </td>
16
+ </tr>
17
+ <tr>
18
+ <td class="label"><%= f.label :languages, t('languages') %></td>
19
+ <td class="checkbox">
20
+ <% @domain.localizations.each_with_index do |localization, i| -%>
21
+ <%= f.fields_for :localizations, localization do |l| %>
22
+ <div>
23
+ <%= l.check_box(:language_id, {:checked => !l.object.new_record?, :id => "domain_localization_#{i}"}, localization.language.id) %>
24
+ <label for="domain_localization_<%= i%>"><%= localization.language.name -%></label>
25
+ </div>
26
+ <% end %>
27
+ <% end -%>
28
+ </td>
29
+ </tr>
30
+ <tr>
31
+ <td class="submit" colspan="2">
32
+ <%= f.button t('save'), :class => 'button' %>
33
+ </td>
34
+ </tr>
35
+ </table>
36
36
  <% end %>
@@ -1,33 +1,33 @@
1
1
  <%- label_title = t("Create domain", :default => t('Create')) -%>
2
2
 
3
3
  <%- toolbar(
4
- :buttons => [
5
- {
6
- :icon => 'create',
7
- :label => label_title,
8
- :url => new_admin_domain_path,
9
- :title => label_title,
10
- :overlay_options => {
11
- :title => label_title
12
- },
13
- :if_permitted_to => [:new, :alchemy_domains_admin_domains]
14
- }
15
- ],
16
- :search => true,
17
- :search_url => admin_domains_path
4
+ :buttons => [
5
+ {
6
+ :icon => 'create',
7
+ :label => label_title,
8
+ :url => new_admin_domain_path,
9
+ :title => label_title,
10
+ :overlay_options => {
11
+ :title => label_title
12
+ },
13
+ :if_permitted_to => [:new, :alchemy_domains_admin_domains]
14
+ }
15
+ ],
16
+ :search => true,
17
+ :search_url => admin_domains_path
18
18
  ) -%>
19
19
 
20
20
  <%- if @domains.any? -%>
21
21
  <table class="list" id="domain_list">
22
- <tr>
23
- <th style="width: 180px"><%= ::I18n.t(:hostname, :scope => 'activerecord.attributes.alchemy_domains/domain') %></th>
24
- <th style="width: 150px; text-align: center"><%= t('default_domain') %></th>
25
- <th><%= t('languages') %></th>
26
- <th style="width: 150px; text-align: center"><%= t('default_language') %></th>
27
- <th class="tools"></th>
28
- </tr>
22
+ <tr>
23
+ <th style="width: 180px"><%= ::I18n.t(:hostname, :scope => 'activerecord.attributes.alchemy_domains/domain') %></th>
24
+ <th style="width: 150px; text-align: center"><%= t('default_domain') %></th>
25
+ <th><%= t('languages') %></th>
26
+ <th style="width: 150px; text-align: center"><%= t('default_language') %></th>
27
+ <th class="tools"></th>
28
+ </tr>
29
29
 
30
- <%= render :partial => 'domain', :collection => @domains %>
30
+ <%= render :partial => 'domain', :collection => @domains %>
31
31
 
32
32
  </table>
33
33
 
@@ -1,21 +1,21 @@
1
1
  <tr class="<%= cycle("even", "odd") %>">
2
- <td></td>
3
- <td></td>
4
- <td><%= localization.language.name %></td>
5
- <td style="text-align: center">
6
- <% if localization.default_for_domain? -%>
7
- <%= render_icon(true) %>
8
- <% else -%>
9
- <%= link_to(
10
- t('make default'),
11
- admin_localization_path(
12
- :id => localization.id,
13
- :localization => {:default_for_domain => true}
14
- ),
15
- :method => :put,
16
- :remote => true
17
- ) %>
18
- <% end -%>
19
- </td>
20
- <td></td>
2
+ <td></td>
3
+ <td></td>
4
+ <td><%= localization.language.name %></td>
5
+ <td style="text-align: center">
6
+ <% if localization.default_for_domain? -%>
7
+ <%= render_icon(true) %>
8
+ <% else -%>
9
+ <%= link_to(
10
+ t('make default'),
11
+ admin_localization_path(
12
+ :id => localization.id,
13
+ :localization => {:default_for_domain => true}
14
+ ),
15
+ :method => :put,
16
+ :remote => true
17
+ ) %>
18
+ <% end -%>
19
+ </td>
20
+ <td></td>
21
21
  </tr>
data/config/routes.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  AlchemyDomains::Engine.routes.draw do
2
- namespace :admin do
3
- resources :domains
4
- resources :localizations, :only => [:update]
5
- end
2
+ namespace :admin do
3
+ resources :domains
4
+ resources :localizations, :only => [:update]
5
+ end
6
6
  end
7
-
@@ -1,25 +1,25 @@
1
1
  module AlchemyDomains
2
- class Engine < Rails::Engine
2
+ class Engine < Rails::Engine
3
3
 
4
- engine_name "alchemy_domains"
5
- isolate_namespace AlchemyDomains
4
+ engine_name "alchemy_domains"
5
+ isolate_namespace AlchemyDomains
6
6
 
7
- # Registering module in Alchemy CMS
8
- initializer 'alchemy_domains.register_as_alchemy_module' do
9
- Alchemy::Modules.register_module(YAML.load_file(File.join(File.dirname(__FILE__), '../..', 'config/module_definition.yml')))
10
- end
7
+ # Registering module in Alchemy CMS
8
+ initializer 'alchemy_domains.register_as_alchemy_module' do
9
+ Alchemy::Modules.register_module(YAML.load_file(File.join(File.dirname(__FILE__), '../..', 'config/module_definition.yml')))
10
+ end
11
11
 
12
- # Loading authorization rules and register them to auth engine instance
13
- initializer 'alchemy_domains.add_authorization_rules' do
14
- Alchemy::AuthEngine.get_instance.load(File.join(File.dirname(__FILE__), '../..', 'config/authorization_rules.rb'))
15
- end
12
+ # Loading authorization rules and register them to auth engine instance
13
+ initializer 'alchemy_domains.add_authorization_rules' do
14
+ Alchemy::AuthEngine.get_instance.load(File.join(File.dirname(__FILE__), '../..', 'config/authorization_rules.rb'))
15
+ end
16
16
 
17
- # Loading all alchemy core extensions found in app folder.
18
- config.to_prepare do
19
- Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_extension.rb")) do |e|
20
- Rails.env.production? ? require(e) : load(e)
21
- end
22
- end
17
+ # Loading all alchemy core extensions found in app folder.
18
+ config.to_prepare do
19
+ Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_extension.rb")) do |e|
20
+ Rails.env.production? ? require(e) : load(e)
21
+ end
22
+ end
23
23
 
24
- end
24
+ end
25
25
  end
@@ -1,3 +1,3 @@
1
1
  module AlchemyDomains
2
- VERSION = "0.0.9"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy_domains
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,27 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-07 00:00:00.000000000 Z
12
+ date: 2012-06-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: alchemy_cms
16
- requirement: &70189736373740 !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: 2.1.9
21
+ version: 2.2.rc14
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70189736373740
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.2.rc14
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: sqlite3
27
- requirement: &70189736372560 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,7 +37,12 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70189736372560
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  description: This gem adds domains and associats them with languages. Your website
37
47
  can provide certain languages depending on the requested domain.
38
48
  email:
@@ -84,7 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
84
94
  version: '0'
85
95
  segments:
86
96
  - 0
87
- hash: 3547381595002230735
97
+ hash: 3500953196302817140
88
98
  required_rubygems_version: !ruby/object:Gem::Requirement
89
99
  none: false
90
100
  requirements:
@@ -93,10 +103,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
103
  version: '0'
94
104
  segments:
95
105
  - 0
96
- hash: 3547381595002230735
106
+ hash: 3500953196302817140
97
107
  requirements: []
98
108
  rubyforge_project:
99
- rubygems_version: 1.8.10
109
+ rubygems_version: 1.8.24
100
110
  signing_key:
101
111
  specification_version: 3
102
112
  summary: This gem adds the functionality for managing domains in Alchemy CMS.