Commit 76ad2fbcc4ed83764bad587d72f553ecdeed1857

Authored by Karpikau Andrei
1 parent e1522026

check language part

1 1 PATH
2 2 remote: .
3 3 specs:
4   - kanjai (0.0.203)
  4 + kanjai (0.0.232)
5 5 acts-as-taggable-on (~> 6.5)
6 6 acts_as_list
7 7 acts_as_tree
... ... @@ -59,7 +59,7 @@ GEM
59 59 tzinfo (~> 1.1)
60 60 acts-as-taggable-on (6.5.0)
61 61 activerecord (>= 5.0, < 6.1)
62   - acts_as_list (1.0.1)
  62 + acts_as_list (1.0.2)
63 63 activerecord (>= 4.2)
64 64 acts_as_tree (2.9.1)
65 65 activerecord (>= 3.0.0)
... ... @@ -970,7 +970,7 @@ GEM
970 970 aws-sigv2 (1.0.1)
971 971 aws-sigv4 (1.2.1)
972 972 aws-eventstream (~> 1, >= 1.0.2)
973   - bcrypt (3.1.15)
  973 + bcrypt (3.1.16)
974 974 builder (3.2.4)
975 975 concurrent-ruby (1.1.6)
976 976 crass (1.0.6)
... ... @@ -1064,8 +1064,8 @@ GEM
1064 1064 thread_safe (~> 0.1)
1065 1065 unobtrusive_flash (3.3.1)
1066 1066 railties
1067   - warden (1.2.8)
1068   - rack (>= 2.0.6)
  1067 + warden (1.2.9)
  1068 + rack (>= 2.0.9)
1069 1069 websocket-driver (0.7.3)
1070 1070 websocket-extensions (>= 0.1.0)
1071 1071 websocket-extensions (0.1.5)
... ...
... ... @@ -50,4 +50,8 @@
50 50 .filter .btn-group-toggle > .btn{margin-bottom:5px;position:relative;}
51 51 .filter .btn-group-toggle > .btn a, .filter .btn-group-toggle > .btn a:hover{text-decoration:none;position:absolute;top:-14px;right:2px;font-size:14px;line-height:14px;}
52 52 .filter .btn-group-toggle > .btn a{display:none;}
53   -.filter .btn-group-toggle > .btn:hover a{display:inline;}
\ No newline at end of file
  53 +.filter .btn-group-toggle > .btn:hover a{display:inline;}
  54 +.checkbox-list{
  55 + input{margin-right:3px;}
  56 + label{margin-right:10px;}
  57 +}
\ No newline at end of file
... ...
... ... @@ -45,7 +45,7 @@ module Kanjai
45 45 private
46 46
47 47 def permitted_params
48   - params.permit(:domain => [:title, language_domains_attributes: [:id, :title, :_destroy]])
  48 + params.permit(:domain => [:title, :default_lang_id, language_domains_attributes: [:id, :title, :page_lang_id, :_destroy], page_lang_ids: []])
49 49 end
50 50
51 51 end
... ...
... ... @@ -6,17 +6,17 @@ module Kanjai
6 6 end
7 7
8 8 def new
9   - @domain = Domain.find(params[:domain_id])
  9 + #@domain = Domain.find(params[:domain_id])
10 10 @page_lang = PageLang.new
11   - @page_lang.domain = @domain
  11 + #@page_lang.domain = @domain
12 12 end
13 13
14 14 def create
15 15 @page_lang = PageLang.new(permitted_params[:page_lang])
16 16
17   - if params[:page_lang][:default_use].to_i == 1
18   - @page_lang.domain.page_langs.all.each {|item| item.update_column(:default_use, false) }
19   - end
  17 + #if params[:page_lang][:default_use].to_i == 1
  18 + # @page_lang.domain.page_langs.all.each {|item| item.update_column(:default_use, false) }
  19 + #end
20 20
21 21 if @page_lang.save
22 22 redirect_to admin_page_langs_url
... ...
... ... @@ -48,15 +48,19 @@ module Kanjai
48 48
49 49 if domain.nil?
50 50 # try found alternative domain
51   - lang_domain = LanguageDomain.joins(:page_langs).where(title: domain_title, kanjai_page_langs: {default_use: false}).first
52   - if lang_domain && lang_domain.page_langs.count > 0
  51 + lang_domain = LanguageDomain.where(title: domain_title).first
  52 + if lang_domain
53 53 domain = lang_domain.domain
54   - lang = lang_domain.page_langs.where(default_use: false).first.code
  54 + if lang_domain.page_lang
  55 + lang = lang_domain.page_lang.code
  56 + else
  57 + lang = domain.default_lang.try(:code)
  58 + end
55 59 else
56 60 render plain: "Domain #{domain_title} Not Exist" and return
57 61 end
58 62 else
59   - lang = domain.page_langs.where(default_use: true).first.try(:code)
  63 + lang = domain.default_lang.try(:code)
60 64 end
61 65
62 66 if params && params[:locale].present? && request.original_fullpath.split('/')[1].length == 2
... ...
... ... @@ -2,8 +2,10 @@ module Kanjai
2 2 class Domain < ApplicationRecord
3 3 validates :title, presence: true
4 4
  5 + belongs_to :default_lang, class_name: 'Kanjai::PageLang', optional: true
  6 +
5 7 has_many :pages, dependent: :destroy
6   - has_many :page_langs, dependent: :destroy
  8 + has_and_belongs_to_many :page_langs
7 9 has_many :language_domains, dependent: :destroy
8 10 accepts_nested_attributes_for :language_domains, reject_if: :all_blank, allow_destroy: true
9 11 end
... ...
1 1 module Kanjai
2 2 class LanguageDomain < ApplicationRecord
3 3 belongs_to :domain
4   - has_many :page_langs, dependent: :nullify
  4 + belongs_to :page_lang, optional: true
  5 + #has_many :page_langs, dependent: :nullify
5 6 end
6 7 end
... ...
1 1 module Kanjai
2 2 class PageLang < ActiveRecord::Base
3 3
4   - belongs_to :domain
5 4 belongs_to :language_domain, optional: true
6 5
  6 + has_and_belongs_to_many :domains
  7 +
7 8 validates :code, :title, presence: true
8 9
9 10 default_scope { order('code') }
... ...
... ... @@ -5,6 +5,21 @@
5 5 <%= f.text_field :title, class: "form-control #{@domain.errors.include?(:title) ? 'parsley-error' : ''} " %>
6 6 <%= error_messages(@domain, :title) %>
7 7 </div>
  8 + <div class="form-group">
  9 + <%= f.label :page_lang_ids, Kanjai::Domain.human_attribute_name(:page_lang_ids), class: 'col-form-label' %>
  10 + <div class="checkbox-list">
  11 + <%= f.collection_check_boxes :page_lang_ids, Kanjai::PageLang.order(:title), :id, :title %>
  12 + </div>
  13 + </div>
  14 +
  15 + <div class="form-group">
  16 + <%= f.label :default_lang_id, Kanjai::Domain.human_attribute_name(:default_lang_id), class: 'col-form-label' %>
  17 + <div class="checkbox-list">
  18 + <%= f.select :default_lang_id, @domain.page_langs.collect{|item| [item.title, item.id]}, {include_blank: true}, class: 'form-control' %>
  19 + </div>
  20 + </div>
  21 +
  22 +
8 23
9 24 <div id="language_domains">
10 25 <%=f.fields_for :language_domains do |f2| %>
... ...
1 1 <div class="nested-fields mt-20">
2 2 <div class="row">
3   - <div class="col-md-8"><%= f.text_field :title, class: 'form-control' %></div>
4   - <div class="col-md-4"><%= link_to_remove_association t('actions.delete'), f %></div>
  3 + <div class="col-md-5"><%= f.text_field :title, class: 'form-control' %></div>
  4 + <div class="col-md-5"><%= f.select :page_lang_id, @domain.page_langs.order(:title).collect{|item| [item.title, item.id] } , {include_blank: true}, class: 'form-control' %></div>
  5 + <div class="col-md-2"><%= link_to_remove_association t('actions.delete'), f %></div>
5 6 </div>
6 7 </div>
\ No newline at end of file
... ...
... ... @@ -14,23 +14,6 @@
14 14 </div>
15 15
16 16
17   - <div class="form-group row">
18   - <%= f.label :default_use, Kanjai::PageLang.human_attribute_name(:default_use), class: 'col-md-2 col-form-label' %>
19   - <div class="col-md-10">
20   - <label class="switch switch-lg"><%= f.check_box :default_use, class: 'default-lang-checkbox' %><span></span></label>
21   - </div>
22   - </div>
23   -
24   - <div class="language-domain-wrapper <%= f.object.default_use ? 'not-visible' : '' %>" >
25   - <% if @page_lang.domain.language_domains.count > 0 %>
26   - <div class="form-group">
27   - <%= f.label :language_domain_id, Kanjai::PageLang.human_attribute_name(:language_domain) + ' *', class: 'col-form-label' %>
28   - <%= f.select :language_domain_id, options_for_select(@page_lang.domain.language_domains.collect{|item| [item.title, item.id]}, @page_lang.language_domain_id.to_i), {include_blank: true}, class: "form-control " %>
29   - <%= error_messages(@page_lang, :language_domain_id) %>
30   - </div>
31   - <% end %>
32   - </div>
33   -
34 17
35 18 <div class="card-footer mt-20">
36 19 <div class="clearfix">
... ...
... ... @@ -4,42 +4,35 @@
4 4 <!-- START card-->
5 5
6 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>
  7 +
  8 + <!-- START card-->
  9 + <div class="card card-default">
  10 + <div class="card-header">
  11 + <div class="row">
  12 + <div class="col-md-8">
  13 + <%= t('admin.page_langs.page_title') %>
  14 + </div>
  15 + <div class="col-md-4 text-right">
  16 + <%= link_to I18n.t('admin.page_langs.create'), new_admin_page_lang_url, class: 'btn btn-primary' %>
  17 + </div>
  18 + </div>
11 19 </div>
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">
  20 + <div class="card-body">
  21 + <!-- START table-responsive-->
  22 + <div class="table-responsive">
28 23 <table class="table">
29 24 <thead>
30 25 <tr>
31 26 <th><%= Kanjai::PageLang.human_attribute_name(:code) %></th>
32 27 <th><%= Kanjai::PageLang.human_attribute_name(:title) %></th>
33   - <th><%= Kanjai::PageLang.human_attribute_name(:language_domain) %></th>
34 28 <th width="50px"></th>
35 29 </tr>
36 30 </thead>
37 31 <tbody>
38   - <% domain.page_langs.order(:code).each do |item| %>
  32 + <% @collection.each do |item| %>
39 33 <tr id='<%= dom_id(item) %>'>
40 34 <td><%= item.code %></td>
41 35 <td><%= item.title %></td>
42   - <td><%= !item.default_use ? item.language_domain.try(:title) : '' %></td>
43 36 <td>
44 37 <div class="dropdown">
45 38 <button class="btn btn-secondary dropdown-toggle dropdown-toggle-nocaret" type="button" data-toggle="dropdown" aria-expanded="false">
... ... @@ -56,15 +49,11 @@
56 49
57 50 </tbody>
58 51 </table>
59   - </div><!-- END table-responsive-->
60   - </div>
61   - </div><!-- END card-->
  52 + </div><!-- END table-responsive-->
  53 + </div>
  54 + </div><!-- END card-->
62 55
63 56
64   - </div>
65   - </div>
66   - </div>
67   - <% end %>
68 57 </div>
69 58
70 59
... ...
... ... @@ -102,6 +102,9 @@ en:
102 102 meta_title: Meta Title
103 103 meta_description: Meta Description
104 104 meta_keywords: Meta Keywords
  105 + kanjai/domain:
  106 + page_lang_ids: "Languages"
  107 + default_lang_id: "Default Language"
105 108
106 109
107 110 actions:
... ... @@ -146,6 +149,7 @@ en:
146 149 empty_text: "Empty language list"
147 150 create: "Add new language"
148 151 edit: "Edit language"
  152 + page_title: "Languages"
149 153 pages:
150 154 page_title: "Pages"
151 155 add_new: "Add page"
... ... @@ -167,7 +171,7 @@ en:
167 171 add_new: "Add domain"
168 172 empty_text: "Empty domain list"
169 173 create: "Add new domain"
170   - edit: "Edit domain"
  174 + edit: "Edit domain"
171 175 template_status:
172 176 not_file: ""
173 177 unzip: "Ready"
... ...
  1 +class CreateJoinTableDomainPageLang < ActiveRecord::Migration[5.2]
  2 + def change
  3 + create_table :kanjai_domains_page_langs, id: false do |t|
  4 + t.integer :domain_id
  5 + t.integer :page_lang_id
  6 + end
  7 + end
  8 +end
... ...
  1 +class AddPageLangIdToKanjaiLanguageDomain < ActiveRecord::Migration[5.2]
  2 + def change
  3 + add_column :kanjai_language_domains, :page_lang_id, :integer
  4 + end
  5 +end
... ...
  1 +class AddDefaultPageLangIdToKanjaiDomain < ActiveRecord::Migration[5.2]
  2 + def change
  3 + add_column :kanjai_domains, :default_lang_id, :integer
  4 + end
  5 +end
... ...
1 1 module Kanjai
2   - VERSION = "0.0.232"
  2 + VERSION = "0.0.233"
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 DomainLanguageTest < ActiveSupport::TestCase
  5 + # test "the truth" do
  6 + # assert true
  7 + # end
  8 + end
  9 +end
... ...