Commit a86857e24ab57dcc320a2210c3eca0814e2521e6

Authored by Karpikau Andrei
1 parent b46f785e

add domain

1 1 PATH
2 2 remote: .
3 3 specs:
4   - kanjai (0.0.155)
  4 + kanjai (0.0.198)
5 5 acts-as-taggable-on (~> 6.5)
6 6 acts_as_list
7 7 acts_as_tree
... ... @@ -970,11 +970,11 @@ GEM
970 970 aws-sigv2 (1.0.1)
971 971 aws-sigv4 (1.1.4)
972 972 aws-eventstream (~> 1.0, >= 1.0.2)
973   - bcrypt (3.1.13)
  973 + bcrypt (3.1.15)
974 974 builder (3.2.4)
975 975 concurrent-ruby (1.1.6)
976 976 crass (1.0.6)
977   - devise (4.7.1)
  977 + devise (4.7.2)
978 978 bcrypt (~> 3.0)
979 979 orm_adapter (~> 0.1)
980 980 railties (>= 4.1.0)
... ...
  1 +module Kanjai
  2 + class Admin::DomainsController < AdminController
  3 +
  4 + def index
  5 + @collection = Domain.order(:title)
  6 + end
  7 +
  8 + def new
  9 + @domain = Domain.new
  10 + end
  11 +
  12 + def create
  13 + @domain = Domain.new(permitted_params[:domain])
  14 +
  15 + if @domain.save
  16 + redirect_to admin_domains_url
  17 + else
  18 + render :action => :new
  19 + end
  20 + end
  21 +
  22 + def edit
  23 + @domain = Domain.find(params[:id])
  24 + end
  25 +
  26 + def update
  27 + @domain = Domain.find(params[:id])
  28 + if @domain.update(permitted_params[:domain])
  29 + redirect_to admin_domains_url
  30 + else
  31 + render action: :edit
  32 + end
  33 +
  34 + end
  35 +
  36 + def destroy
  37 + @domain = Domain.find(params[:id])
  38 + @domain.destroy
  39 +
  40 +
  41 + render :json => {:status => 'ok'}.to_json
  42 +
  43 + end
  44 +
  45 + private
  46 +
  47 + def permitted_params
  48 + params.permit(:domain => [:title])
  49 + end
  50 +
  51 + end
  52 +end
\ No newline at end of file
... ...
... ... @@ -6,16 +6,18 @@ module Kanjai
6 6 end
7 7
8 8 def new
  9 + @domain = Domain.find(params[:domain_id])
9 10 @page_lang = PageLang.new
  11 + @page_lang.domain = @domain
10 12 end
11 13
12 14 def create
  15 + @page_lang = PageLang.new(permitted_params[:page_lang])
  16 +
13 17 if params[:page_lang][:default_use].to_i == 1
14   - PageLang.all.each {|item| item.update_column(:default_use, false) }
  18 + @page_lang.domain.page_langs.all.each {|item| item.update_column(:default_use, false) }
15 19 end
16 20
17   - @page_lang = PageLang.new(permitted_params[:page_lang])
18   -
19 21 if @page_lang.save
20 22 redirect_to admin_page_langs_url
21 23 else
... ... @@ -28,11 +30,11 @@ module Kanjai
28 30 end
29 31
30 32 def update
  33 + @page_lang = PageLang.find(params[:id])
31 34 if params[:page_lang][:default_use].to_i == 1
32   - PageLang.all.each {|item| item.update_column(:default_use, false) }
  35 + @page_lang.domain.page_langs.all.each {|item| item.update_column(:default_use, false) }
33 36 end
34 37
35   - @page_lang = PageLang.find(params[:id])
36 38 if @page_lang.update(permitted_params[:page_lang])
37 39 redirect_to admin_page_langs_url
38 40 else
... ... @@ -53,7 +55,7 @@ module Kanjai
53 55 private
54 56
55 57 def permitted_params
56   - params.permit(:page_lang => [:code, :title, :default_use])
  58 + params.permit(:page_lang => [:code, :title, :default_use, :domain_id])
57 59 end
58 60
59 61 end
... ...
1 1 module Kanjai
2 2 class Admin::PagesController < AdminController
3 3
4   - before_action :get_page_list, :only => [:new, :create]
5   - before_action :get_page_list_without_current, :only => [:edit, :update]
6   -
7 4 def new
8 5 @page = Page.new
  6 + @domain = Domain.find(params[:domain_id])
  7 + @page.domain = @domain
  8 +
  9 + get_page_list(@domain)
  10 +
9 11 end
10 12
11 13 def create
12 14
13 15 @page = Page.new(permitted_params[:page])
14 16
  17 + get_page_list(@page.domain)
  18 +
15 19 if @page.save
16 20
17 21 if @page.default_private_page
... ... @@ -44,6 +48,9 @@ module Kanjai
44 48 @page = Page.find(params[:id])
45 49 @page_data = @page.page_data.find_by_lang(params[:lang])
46 50
  51 + get_page_list_without_current(@page.domain)
  52 +
  53 +
47 54 @step = 'general'
48 55
49 56 if @page_data.nil?
... ... @@ -58,6 +65,9 @@ module Kanjai
58 65 @page = Page.find(params[:id])
59 66 @page_data = @page.page_data.find_by_lang(params[:lang])
60 67 @step = 'general'
  68 +
  69 + get_page_list_without_current(@page.domain)
  70 +
61 71 if @page.update(permitted_params[:page])
62 72
63 73 if @page.default_private_page
... ... @@ -73,7 +83,7 @@ module Kanjai
73 83 end
74 84 end
75 85
76   - redirect_to :action => :index
  86 + redirect_to admin_pages_path(domain_id: @page.domain.id)
77 87 else
78 88 render :action => :edit, lang: params[:lang]
79 89 end
... ... @@ -293,7 +303,7 @@ module Kanjai
293 303 private
294 304
295 305 def permitted_params
296   - params.permit(:page => [:parent_id, :page_template_id, :title, :private_flag, :default_private_page, :root_page, :show_public_only,
  306 + params.permit(:page => [:parent_id, :domain_id, :page_template_id, :title, :private_flag, :default_private_page, :root_page, :show_public_only,
297 307 :page_data_attributes => [:id, :title, :url, :meta_title, :meta_description, :meta_keywords]],
298 308 :page_content => [:type_content, :text_html, :controller_name, :action_name,
299 309 page_content_markers_attributes: [:id, :page_content_id, :marker, :text_value, :attachment_file_name, :form_subject, :form_body, :from_mail, :to_mail, :form_answer_text, :_destroy]
... ... @@ -302,17 +312,17 @@ module Kanjai
302 312 )
303 313 end
304 314
305   - def get_page_list
  315 + def get_page_list(domain)
306 316 @pages = []
307   - Page.walk_tree do |page, level|
  317 + domain.pages.walk_tree do |page, level|
308 318 @pages << {title: page.lang_attributes(PageLang.default, :title), level: level, id: page.id}
309 319 end
310 320 end
311 321
312   - def get_page_list_without_current
  322 + def get_page_list_without_current(domain)
313 323 @pages = []
314 324 object = Page.find(params[:id])
315   - Page.where('id <> ?', object.id).walk_tree do |page, level|
  325 + domain.pages.where('id <> ?', object.id).walk_tree do |page, level|
316 326 @pages << {title: page.lang_attributes(PageLang.default, :title), level: level, id: page.id}
317 327 end
318 328 end
... ...
... ... @@ -37,15 +37,21 @@ module Kanjai
37 37 $original_fullpath = request.original_fullpath
38 38 $original_format = request.format
39 39
  40 + $domain = Domain.where(title: request.domain).first
  41 +
  42 + if $domain.nil?
  43 + render plain: 'Domain Not Exist' and return
  44 + end
  45 +
40 46 #@page_data = PageDatum.where(:url => @url).first
41 47 #$current_locale = PageLang.where(default_use: true).first.code
42   - @page_data = PageDatum.where(:url => @url, lang: I18n.locale).first
  48 + @page_data = PageDatum.joins(page: :domain).where(kanjai_domains: {id: $domain.id}).where(:url => @url, lang: I18n.locale).first
43 49 $current_locale = I18n.locale
44 50 if @page_data.nil?
45 51 mas = @url.split('/')
46 52 if mas.length > 1
47 53 @url = '/' + mas[1] + '/:path'
48   - @page_data = PageDatum.where(:url => @url, lang: I18n.locale).first
  54 + @page_data = PageDatum.joins(page: :domain).where(kanjai_domains: {id: $domain.id}).where(:url => @url, lang: I18n.locale).first
49 55 end
50 56 end
51 57
... ... @@ -54,7 +60,7 @@ module Kanjai
54 60 #$current_locale = @page_data.lang
55 61 else
56 62 if @url == '/'
57   - root_page = Page.where(root_page: true).first
  63 + root_page = Page.joins(:domain).where(kanjai_domains: {id: $domain.id}).where(root_page: true).first
58 64 if root_page
59 65 redirect_to root_page.menu_url($scheme)
60 66 end
... ...
  1 +module Kanjai
  2 + class Domain < ApplicationRecord
  3 + validates :title, presence: true
  4 +
  5 + has_many :pages, dependent: :destroy
  6 + has_many :page_langs, dependent: :destroy
  7 + end
  8 +end
... ...
... ... @@ -9,7 +9,9 @@ module Kanjai
9 9 include ActiveRecord::Acts::Tree
10 10 include ActiveRecord::Acts::List
11 11
12   - acts_as_tree order: 'position'
  12 + belongs_to :domain
  13 +
  14 + acts_as_tree order: 'position', scope: :domain_id
13 15 acts_as_list :scope => :parent_id
14 16
15 17 belongs_to :page_template
... ...
1 1 module Kanjai
2 2 class PageLang < ActiveRecord::Base
3 3
  4 + belongs_to :domain
  5 +
4 6 validates :code, :title, presence: true
5 7
6 8 default_scope { order('code') }
7 9
8 10 def self.default
9   - obj = PageLang.where(:default_use => true).first
  11 + obj = domain.page_langs.where(:default_use => true).first
10 12 if obj.nil?
11 13 return 'en'
12 14 else
... ...
  1 +<div class="card-body">
  2 +
  3 + <div class="form-group">
  4 + <%= f.label :title, Kanjai::Domain.human_attribute_name(:title) + ' *', class: 'col-form-label' %>
  5 + <%= f.text_field :title, class: "form-control #{@domain.errors.include?(:title) ? 'parsley-error' : ''} " %>
  6 + <%= error_messages(@domain, :title) %>
  7 + </div>
  8 +
  9 +
  10 + <div class="card-footer mt-20">
  11 + <div class="clearfix">
  12 + <div class="row">
  13 + <div class="col-md-6">
  14 + <p class="mt-1"><%= t('mandatory_fields') %></p>
  15 + </div>
  16 + <div class="col-md-6 text-right">
  17 + <%= link_to t('actions.cancel'), admin_domains_url, class: 'btn btn-secondary' %>
  18 + <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button>
  19 + </div>
  20 + </div>
  21 + </div>
  22 + </div>
  23 +
  24 +
  25 +</div>
  26 +
... ...
  1 +<div class="content-wrapper">
  2 + <div class="row">
  3 + <div class="col-xl-12">
  4 +
  5 + <%= form_for @domain, url: admin_domain_url(@domain), class: 'form-horizontal', method: 'PUT', novalidate: '', data: {parsley_validate: ''} do |f| %>
  6 + <div class="card card-default">
  7 + <div class="card-header">
  8 + <div class="card-title"><%= t('admin.domains.edit') %></div>
  9 + </div>
  10 + <%= render partial: 'form', locals: {f: f} %>
  11 + </div>
  12 + <% end %>
  13 +
  14 + </div>
  15 + </div>
  16 +</div>
\ No newline at end of file
... ...
  1 +<div class="content-wrapper">
  2 + <div class="row">
  3 + <div class="col-xl-12">
  4 + <!-- START card-->
  5 + <div class="card card-default">
  6 + <div class="card-header">
  7 + <div class="row">
  8 + <div class="col-md-8">
  9 + <%= t('admin.domains.title') %>
  10 + </div>
  11 + <div class="col-md-4 text-right">
  12 + <%= link_to I18n.t('admin.domains.create'), new_admin_domain_url, class: 'btn btn-primary' %>
  13 + </div>
  14 + </div>
  15 + </div>
  16 + <div class="card-body">
  17 + <!-- START table-responsive-->
  18 + <div class="table-responsive">
  19 + <table class="table">
  20 + <thead>
  21 + <tr>
  22 + <th><%= Kanjai::Domain.human_attribute_name(:title) %></th>
  23 + <th width="50px"></th>
  24 + </tr>
  25 + </thead>
  26 + <tbody>
  27 + <% @collection.each do |item| %>
  28 + <tr id='<%= dom_id(item) %>'>
  29 + <td><%= item.title %></td>
  30 + <td>
  31 + <div class="dropdown">
  32 + <button class="btn btn-secondary dropdown-toggle dropdown-toggle-nocaret" type="button" data-toggle="dropdown" aria-expanded="false">
  33 + <span class="dropdown-text"><span class="icon icon-options-vertical"></span></span>
  34 + </button>
  35 + <ul class="dropdown-menu">
  36 + <li class="dropdown-item"><%= link_to t('actions.edit'), edit_admin_domain_url(item), class: 'dropdown-item' %></li>
  37 + <li class="dropdown-item"><%= link_to t('actions.delete'), admin_domain_url(item), :class => 'delete-row-item dropdown-item' %></li>
  38 + </ul>
  39 + </div>
  40 + </td>
  41 + </tr>
  42 + <% end %>
  43 +
  44 + </tbody>
  45 + </table>
  46 + </div><!-- END table-responsive-->
  47 + </div>
  48 + </div><!-- END card-->
  49 + </div>
  50 + </div>
  51 +</div>
\ No newline at end of file
... ...
  1 +<div class="content-wrapper">
  2 + <div class="row">
  3 + <div class="col-xl-12">
  4 +
  5 + <%= form_for @domain, url: admin_domains_url, class: 'form-horizontal', novalidate: '', data: {parsley_validate: ''} do |f| %>
  6 + <div class="card card-default">
  7 + <div class="card-header">
  8 + <div class="card-title"><%= t('admin.domains.create') %></div>
  9 + </div>
  10 + <%= render partial: 'form', locals: {f: f} %>
  11 + </div>
  12 + <% end %>
  13 +
  14 + </div>
  15 + </div>
  16 +</div>
\ No newline at end of file
... ...
  1 +<%= f.hidden_field :domain_id, :class => "form-control" %>
  2 +
1 3 <div class="card-body">
2 4 <div class="form-group">
3 5 <%= f.label :code, Kanjai::PageLang.human_attribute_name(:code) + ' *', class: 'col-form-label' %>
... ...
... ... @@ -2,52 +2,70 @@
2 2 <div class="row">
3 3 <div class="col-xl-12">
4 4 <!-- START card-->
5   - <div class="card card-default">
6   - <div class="card-header">
7   - <div class="row">
8   - <div class="col-md-8">
9   - <%= t('admin.page_langs.title') %>
10   - </div>
11   - <div class="col-md-4 text-right">
12   - <%= link_to I18n.t('admin.page_langs.create'), new_admin_page_lang_url, class: 'btn btn-primary' %>
13   - </div>
14   - </div>
  5 +
  6 + <div id="accordion">
  7 + <% Kanjai::Domain.order(:title).each do |domain| %>
  8 + <div class="card card-default mb-1">
  9 + <div class="card-header" id="domain-headline-<%= domain.id %>">
  10 + <h4 class="mb-0"><a class="text-inherit" data-toggle="collapse" data-target="#domain-<%= domain.id %>" aria-expanded="true" aria-controls="domain-<%= domain.id %>" href=""><%= domain.title %></a></h4>
15 11 </div>
16   - <div class="card-body">
17   - <!-- START table-responsive-->
18   - <div class="table-responsive">
19   - <table class="table">
20   - <thead>
21   - <tr>
22   - <th><%= Kanjai::PageLang.human_attribute_name(:code) %></th>
23   - <th><%= Kanjai::PageLang.human_attribute_name(:title) %></th>
24   - <th width="50px"></th>
25   - </tr>
26   - </thead>
27   - <tbody>
28   - <% @collection.each do |item| %>
29   - <tr id='<%= dom_id(item) %>'>
30   - <td><%= item.code %></td>
31   - <td><%= item.title %></td>
32   - <td>
33   - <div class="dropdown">
34   - <button class="btn btn-secondary dropdown-toggle dropdown-toggle-nocaret" type="button" data-toggle="dropdown" aria-expanded="false">
35   - <span class="dropdown-text"><span class="icon icon-options-vertical"></span></span>
36   - </button>
37   - <ul class="dropdown-menu">
38   - <li class="dropdown-item"><%= link_to t('actions.edit'), edit_admin_page_lang_url(item), class: 'dropdown-item' %></li>
39   - <li class="dropdown-item"><%= link_to t('actions.delete'), admin_page_lang_url(item), :class => 'delete-row-item dropdown-item' %></li>
40   - </ul>
41   - </div>
42   - </td>
43   - </tr>
44   - <% end %>
  12 + <div class="collapse <%= params[:domain_id].to_i == domain.id ? 'show' : '' %>" id="domain-<%= domain.id %>" aria-labelledby="domain-headline-<%= domain.id %>" data-parent="#accordion" style="">
  13 + <div class="card-body border-top">
  14 + <div class="card card-default">
  15 + <div class="card-header">
  16 + <div class="row">
  17 + <div class="col-md-8">
  18 + <%= t('admin.page_langs.title') %>
  19 + </div>
  20 + <div class="col-md-4 text-right">
  21 + <%= link_to I18n.t('admin.page_langs.create'), new_admin_page_lang_url(domain_id: domain.id), class: 'btn btn-primary' %>
  22 + </div>
  23 + </div>
  24 + </div>
  25 + <div class="card-body">
  26 + <!-- START table-responsive-->
  27 + <div class="table-responsive">
  28 + <table class="table">
  29 + <thead>
  30 + <tr>
  31 + <th><%= Kanjai::PageLang.human_attribute_name(:code) %></th>
  32 + <th><%= Kanjai::PageLang.human_attribute_name(:title) %></th>
  33 + <th width="50px"></th>
  34 + </tr>
  35 + </thead>
  36 + <tbody>
  37 + <% domain.page_langs.order(:code).each do |item| %>
  38 + <tr id='<%= dom_id(item) %>'>
  39 + <td><%= item.code %></td>
  40 + <td><%= item.title %></td>
  41 + <td>
  42 + <div class="dropdown">
  43 + <button class="btn btn-secondary dropdown-toggle dropdown-toggle-nocaret" type="button" data-toggle="dropdown" aria-expanded="false">
  44 + <span class="dropdown-text"><span class="icon icon-options-vertical"></span></span>
  45 + </button>
  46 + <ul class="dropdown-menu">
  47 + <li class="dropdown-item"><%= link_to t('actions.edit'), edit_admin_page_lang_url(item), class: 'dropdown-item' %></li>
  48 + <li class="dropdown-item"><%= link_to t('actions.delete'), admin_page_lang_url(item), :class => 'delete-row-item dropdown-item' %></li>
  49 + </ul>
  50 + </div>
  51 + </td>
  52 + </tr>
  53 + <% end %>
  54 +
  55 + </tbody>
  56 + </table>
  57 + </div><!-- END table-responsive-->
  58 + </div>
  59 + </div><!-- END card-->
  60 +
45 61
46   - </tbody>
47   - </table>
48   - </div><!-- END table-responsive-->
  62 + </div>
49 63 </div>
50   - </div><!-- END card-->
  64 + </div>
  65 + <% end %>
  66 + </div>
  67 +
  68 +
51 69 </div>
52 70 </div>
53 71 </div>
\ No newline at end of file
... ...
1 1 <div class="content-wrapper">
2   - <div class="row">
3   - <div class="col-xl-12">
4   - <!-- START card-->
5   - <div class="card card-default">
6   - <div class="card-header">
7   - <div class="row">
8   - <div class="col-md-8">
9   - <%= t('admin.pages.page_title') %>
10   - </div>
11   - <div class="col-md-4 text-right">
12   - <%= link_to t('admin.pages.add_new'), new_admin_page_url, class: 'btn btn-primary' %>
13   - </div>
14   - </div>
  2 +
  3 +
  4 + <div id="accordion">
  5 + <% Kanjai::Domain.order(:title).each do |domain| %>
  6 + <div class="card card-default mb-1">
  7 + <div class="card-header" id="domain-headline-<%= domain.id %>">
  8 + <h4 class="mb-0"><a class="text-inherit" data-toggle="collapse" data-target="#domain-<%= domain.id %>" aria-expanded="true" aria-controls="domain-<%= domain.id %>" href=""><%= domain.title %></a></h4>
15 9 </div>
16   - <div class="card-body">
17   - <div class="table-responsive">
18   - <div class="nestable-page-list dd dd-full-width page-list">
19   - <ol class="dd-list">
20   - <%= render partial: 'kanjai/admin/pages/page_block', locals: {collection: Kanjai::Page.where(parent: nil).order(:position)} %>
21   - </ol>
22   - </div>
23   - </div>
  10 + <div class="collapse <%= params[:domain_id].to_i == domain.id ? 'show' : '' %>" id="domain-<%= domain.id %>" aria-labelledby="domain-headline-<%= domain.id %>" data-parent="#accordion" style="">
  11 + <div class="card-body border-top">
  12 +
  13 +
  14 + <div class="row">
  15 + <div class="col-xl-12">
  16 + <!-- START card-->
  17 + <div class="card card-default">
  18 + <div class="card-header">
  19 + <div class="row">
  20 + <div class="col-md-8">
  21 + <%= t('admin.pages.page_title') %>
  22 + </div>
  23 + <div class="col-md-4 text-right">
  24 + <%= link_to t('admin.pages.add_new'), new_admin_page_url(domain_id: domain.id), class: 'btn btn-primary' %>
  25 + </div>
  26 + </div>
  27 + </div>
  28 + <div class="card-body">
  29 + <div class="table-responsive">
  30 + <div class="nestable-page-list dd dd-full-width page-list">
  31 + <ol class="dd-list">
  32 + <%= render partial: 'kanjai/admin/pages/page_block', locals: {collection: domain.pages.where(parent: nil).order(:position)} %>
  33 + </ol>
  34 + </div>
  35 + </div>
  36 + </div>
  37 + </div><!-- END card-->
  38 + </div>
  39 + </div>
  40 +
  41 +
  42 + </div>
24 43 </div>
25   - </div><!-- END card-->
26   - </div>
  44 + </div>
  45 + <% end %>
27 46 </div>
  47 +
  48 +
28 49 </div>
29 50
30 51
... ...
... ... @@ -19,7 +19,7 @@
19 19 <div class="card-footer mt-20">
20 20 <div class="clearfix">
21 21 <div class="float-right">
22   - <%= link_to t('actions.cancel'), admin_pages_url, class: 'btn btn-secondary' %>
  22 + <%= link_to t('actions.cancel'), admin_pages_url(domain_id: @page.domain.id), class: 'btn btn-secondary' %>
23 23 <button class="btn btn-primary save" type="submit"><%= t('actions.save') %></button>
24 24 </div>
25 25 </div>
... ...
1 1 <%= form_for(@page, :url => (@page.new_record? ? admin_pages_url : admin_page_url(@page, :lang => params[:lang])), :html => {:class => "form-horizontal ajax-file-upload-form simple_submit"}) do |form| %>
2 2
  3 + <%= form.hidden_field :domain_id, :class => "form-control" %>
  4 +
3 5 <fieldset>
4 6 <legend><%= t('admin.pages.edit_general_content') %></legend>
5 7
... ... @@ -89,7 +91,7 @@
89 91 </div>
90 92 <div class="col-md-6">
91 93 <div class="float-right">
92   - <%= link_to t('actions.cancel'), admin_pages_url, class: 'btn btn-secondary' %>
  94 + <%= link_to t('actions.cancel'), admin_pages_url(domain_id: @page.domain.id), class: 'btn btn-secondary' %>
93 95 <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button>
94 96 </div>
95 97 </div>
... ...
... ... @@ -28,7 +28,7 @@
28 28 <div class="card-footer mt-20">
29 29 <div class="clearfix">
30 30 <div class="float-right">
31   - <%= link_to t('actions.cancel'), admin_pages_url, class: 'btn btn-secondary' %>
  31 + <%= link_to t('actions.cancel'), admin_pages_url(domain_id: @page.domain.id), class: 'btn btn-secondary' %>
32 32 <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button>
33 33 </div>
34 34 </div>
... ...
... ... @@ -42,6 +42,9 @@
42 42 </div>
43 43 </li>
44 44
  45 + <li class="nav-item <%= controller_name == 'domains' ? 'active' : '' %>">
  46 + <%= link_to t('domains_menu_title'), kanjai.admin_domains_url, :class => 'nav-link' %>
  47 + </li>
45 48 <li class="nav-item <%= controller_name == 'pages' ? 'active' : '' %>">
46 49 <%= link_to t('pages_menu_title'), kanjai.admin_pages_url, :class => 'nav-link' %>
47 50 </li>
... ...
... ... @@ -25,6 +25,7 @@ en:
25 25 templates_menu_title: "Templates"
26 26 images_menu_title: "Files"
27 27 user_menu_title: "Users"
  28 + domains_menu_title: "Domains"
28 29 page_langs_menu_title: "Page Languages"
29 30 drop_your_file: "Drop your file here ..."
30 31 are_you_sure: "Are you sure?"
... ... @@ -157,8 +158,15 @@ en:
157 158 empty_text: "You don't have template"
158 159 edit: "Edit template"
159 160 create: "Add new template"
  161 + domains:
  162 + title: "Domains"
  163 + add_new: "Add domain"
  164 + empty_text: "Empty domain list"
  165 + create: "Add new domain"
  166 + edit: "Edit domain"
160 167 template_status:
161 168 not_file: ""
162 169 unzip: "Ready"
163 170 zip: "In Progress"
164 171
  172 +
... ...
... ... @@ -25,6 +25,8 @@ Kanjai::Engine.routes.draw do
25 25
26 26 resources :admin_users
27 27
  28 + resources :domains
  29 +
28 30 resources :pages do
29 31 get :markdown, on: :member
30 32 get :html, on: :member
... ...
  1 +class CreateKanjaiDomains < ActiveRecord::Migration[5.2]
  2 + def change
  3 + create_table :kanjai_domains do |t|
  4 + t.string :title
  5 + t.timestamps
  6 + end
  7 + end
  8 +end
... ...
  1 +class AddDomainIdToKanjaiPage < ActiveRecord::Migration[5.2]
  2 + def change
  3 + add_column :kanjai_pages, :domain_id, :integer
  4 + end
  5 +end
... ...
  1 +class AddDomainIdToKanjaiPageLang < ActiveRecord::Migration[5.2]
  2 + def change
  3 + add_column :kanjai_page_langs, :domain_id, :integer
  4 + end
  5 +end
... ...
... ... @@ -31,7 +31,7 @@ module Kanjai
31 31 content = item[:source]
32 32 if current_page
33 33 content = content.gsub('###link###', current_page.menu_url('http://', lang = nil))
34   - .gsub('###title###', current_page.lang_attributes(PageLang.default, :title))
  34 + .gsub('###title###', current_page.lang_attributes($domain.page_langs.default, :title))
35 35 end
36 36 subparts << content
37 37 when 'repeat'
... ... @@ -68,7 +68,7 @@ module Kanjai
68 68 end
69 69
70 70
71   - page_collection = Page.order(:position)
  71 + page_collection = Page.joins(:domain).where(kanjai_domains: {id: $domain.id}).order(:position)
72 72
73 73 if item[:attributes]["ids"].present?
74 74 page_collection = page_collection.where('id in (?)', item[:attributes]["ids"])
... ... @@ -147,7 +147,7 @@ module Kanjai
147 147 elements.each do |item|
148 148 case item[:name]
149 149 when 'text'
150   - lang = PageLang.find_by_code($current_locale)
  150 + lang = $domain.page_langs.find_by_code($current_locale)
151 151 content = item[:source]
152 152 content = content.gsub('###CURRENT_LANG_TITLE###', lang.title)
153 153 .gsub('###CURRENT_LANG_CODE###', lang.code)
... ... @@ -178,7 +178,7 @@ module Kanjai
178 178 if page_data
179 179 page = page_data.page
180 180 end
181   - PageLang.all.each do |lang|
  181 + $domain.page_langs.all.each do |lang|
182 182 if lang.code.to_s == $current_locale.to_s && active_state_template
183 183 content = active_state_template.gsub('###LANG_CODE###', lang.code)
184 184 .gsub('###LANG_TITLE###', lang.title)
... ...
1 1 module Kanjai
2   - VERSION = "0.0.198"
  2 + VERSION = "0.0.199"
3 3 end
... ...
  1 +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
  2 +
  3 +# This model initially had no columns defined. If you add columns to the
  4 +# model remove the '{}' from the fixture names and add the columns immediately
  5 +# below each fixture, per the syntax in the comments below
  6 +#
  7 +one: {}
  8 +# column: value
  9 +#
  10 +two: {}
  11 +# column: value
... ...
  1 +require 'test_helper'
  2 +
  3 +module Kanjai
  4 + class DomainTest < ActiveSupport::TestCase
  5 + # test "the truth" do
  6 + # assert true
  7 + # end
  8 + end
  9 +end
... ...