alchemy_domains 0.0.9 → 0.1.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/app/controllers/alchemy/alchemy_base_controller_extension.rb +53 -53
- data/app/controllers/alchemy/pages_controller_extension.rb +32 -32
- data/app/controllers/alchemy_domains/admin/domains_controller.rb +41 -41
- data/app/controllers/alchemy_domains/admin/localizations_controller.rb +13 -13
- data/app/helpers/base_helper_extension.rb +6 -6
- data/app/helpers/pages_helper_extension.rb +63 -63
- data/app/models/alchemy_domains/domain.rb +45 -45
- data/app/models/alchemy_domains/localization.rb +20 -20
- data/app/models/language_extension.rb +5 -5
- data/app/models/page_extension.rb +6 -6
- data/app/views/alchemy_domains/admin/domains/_domain.html.erb +29 -29
- data/app/views/alchemy_domains/admin/domains/_form.html.erb +34 -34
- data/app/views/alchemy_domains/admin/domains/index.html.erb +22 -22
- data/app/views/alchemy_domains/admin/localizations/_localization.html.erb +19 -19
- data/config/routes.rb +4 -5
- data/lib/alchemy_domains/engine.rb +18 -18
- data/lib/alchemy_domains/version.rb +1 -1
- metadata +21 -11
@@ -2,65 +2,65 @@
|
|
2
2
|
# Extending Alchemy::BaseController
|
3
3
|
|
4
4
|
module Alchemy
|
5
|
-
|
5
|
+
BaseController.class_eval do
|
6
6
|
|
7
|
-
|
7
|
+
prepend_before_filter :set_domain
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
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
|
-
|
14
|
+
private
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
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
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
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
|
-
|
65
|
+
end
|
66
66
|
end
|
@@ -1,40 +1,40 @@
|
|
1
1
|
module Alchemy
|
2
2
|
|
3
|
-
|
3
|
+
PagesController.class_eval do
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
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
|
-
|
26
|
+
protected
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
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
|
-
|
38
|
+
end
|
39
39
|
|
40
40
|
end
|
@@ -1,48 +1,48 @@
|
|
1
1
|
module AlchemyDomains
|
2
|
-
|
3
|
-
|
2
|
+
module Admin
|
3
|
+
class DomainsController < Alchemy::Admin::ResourcesController
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
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
|
-
|
47
|
-
|
46
|
+
end
|
47
|
+
end
|
48
48
|
end
|
@@ -1,17 +1,17 @@
|
|
1
1
|
module AlchemyDomains
|
2
|
-
|
3
|
-
|
2
|
+
module Admin
|
3
|
+
class LocalizationsController < Alchemy::Admin::ResourcesController
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
16
|
-
|
15
|
+
end
|
16
|
+
end
|
17
17
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Alchemy
|
2
|
-
|
2
|
+
BaseHelper.class_eval do
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
def multi_language?
|
5
|
+
Alchemy::Language.current_domain(session[:domain_id]).published.count > 1
|
6
|
+
end
|
7
7
|
|
8
|
-
|
9
|
-
end
|
8
|
+
end
|
9
|
+
end
|
@@ -2,69 +2,69 @@
|
|
2
2
|
# Extending Alchemy::PagesHelper
|
3
3
|
|
4
4
|
module Alchemy
|
5
|
-
|
5
|
+
PagesHelper.class_eval do
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
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
|
-
|
69
|
+
end
|
70
70
|
end
|
@@ -1,47 +1,47 @@
|
|
1
1
|
module AlchemyDomains
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
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
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
8
|
-
|
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
|
-
|
10
|
+
scope :domain_languages
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
16
|
+
private
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
def set_to_default_for_domain
|
19
|
+
self.default_for_domain = true
|
20
|
+
end
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
28
|
+
end
|
29
29
|
end
|
@@ -2,10 +2,10 @@
|
|
2
2
|
# Extending Alchemy::Language
|
3
3
|
|
4
4
|
module Alchemy
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
-
|
10
|
-
|
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
|
-
|
6
|
-
|
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
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
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
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
-
|
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
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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,25 +1,25 @@
|
|
1
1
|
module AlchemyDomains
|
2
|
-
|
2
|
+
class Engine < Rails::Engine
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
engine_name "alchemy_domains"
|
5
|
+
isolate_namespace AlchemyDomains
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
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
|
-
|
24
|
+
end
|
25
25
|
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
|
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-
|
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:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.
|
21
|
+
version: 2.2.rc14
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
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:
|
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:
|
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:
|
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:
|
106
|
+
hash: 3500953196302817140
|
97
107
|
requirements: []
|
98
108
|
rubyforge_project:
|
99
|
-
rubygems_version: 1.8.
|
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.
|