system_settings 0.7.0 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -12
- data/app/assets/config/manifest.js +1 -0
- data/app/assets/stylesheets/system_settings/application.css +227 -0
- data/app/controllers/system_settings/application_controller.rb +3 -9
- data/app/controllers/system_settings/settings_controller.rb +25 -21
- data/app/helpers/system_settings/application_helper.rb +36 -0
- data/app/models/system_settings/application_record.rb +2 -4
- data/app/models/system_settings/boolean_setting.rb +3 -5
- data/app/models/system_settings/configurator.rb +100 -94
- data/app/models/system_settings/decimal_list_setting.rb +6 -0
- data/app/models/system_settings/decimal_setting.rb +6 -0
- data/app/models/system_settings/errors/error.rb +2 -4
- data/app/models/system_settings/errors/not_found_error.rb +8 -3
- data/app/models/system_settings/errors/not_loaded_error.rb +2 -4
- data/app/models/system_settings/errors/settings_read_error.rb +2 -4
- data/app/models/system_settings/integer_list_setting.rb +3 -5
- data/app/models/system_settings/integer_setting.rb +3 -5
- data/app/models/system_settings/list_of_decimals_validator.rb +35 -0
- data/app/models/system_settings/list_of_integers_validator.rb +23 -25
- data/app/models/system_settings/list_of_strings_validator.rb +23 -25
- data/app/models/system_settings/setting.rb +3 -5
- data/app/models/system_settings/string_list_setting.rb +3 -5
- data/app/models/system_settings/string_setting.rb +7 -4
- data/app/models/system_settings/type/decimal_list.rb +40 -0
- data/app/models/system_settings/type/integer_list.rb +24 -33
- data/app/models/system_settings/type/string_list.rb +19 -21
- data/app/views/layouts/system_settings/application.html.erb +21 -0
- data/app/views/system_settings/settings/_common_attributes.html.erb +14 -0
- data/app/views/system_settings/settings/_form.html.erb +18 -0
- data/app/views/system_settings/settings/edit.html.erb +2 -0
- data/app/views/system_settings/settings/index.html.erb +29 -0
- data/app/views/system_settings/settings/show.html.erb +9 -0
- data/config/locales/system_settings.en.yml +27 -1
- data/config/locales/system_settings.lv.yml +65 -0
- data/config/routes.rb +5 -4
- data/lib/system_settings/engine.rb +3 -12
- data/lib/system_settings/version.rb +1 -1
- data/lib/system_settings.rb +1 -0
- metadata +18 -19
- data/app/controllers/system_settings/root_controller.rb +0 -13
- data/app/models/system_settings/pagination.rb +0 -20
- data/frontend/build/asset-manifest.json +0 -15
- data/frontend/build/favicon.ico +0 -0
- data/frontend/build/index.html +0 -1
- data/frontend/build/precache-manifest.3d1bd8b01752fe34cb52390bc898ad26.js +0 -22
- data/frontend/build/service-worker.js +0 -39
- data/frontend/build/static/css/main.04fc5f62.chunk.css +0 -2
- data/frontend/build/static/css/main.04fc5f62.chunk.css.map +0 -1
- data/frontend/build/static/js/2.8729aa12.chunk.js +0 -2
- data/frontend/build/static/js/2.8729aa12.chunk.js.map +0 -1
- data/frontend/build/static/js/main.8f1e7b9c.chunk.js +0 -2
- data/frontend/build/static/js/main.8f1e7b9c.chunk.js.map +0 -1
- data/frontend/build/static/js/runtime~main.ea5ad98e.js +0 -2
- data/frontend/build/static/js/runtime~main.ea5ad98e.js.map +0 -1
@@ -1,8 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module SystemSettings
|
4
|
-
|
5
|
-
|
3
|
+
module SystemSettings::Errors
|
4
|
+
class NotFoundError < SystemSettings::Errors::Error
|
5
|
+
if ActiveSupport.const_defined?("ActionableError")
|
6
|
+
include ActiveSupport::ActionableError
|
7
|
+
|
8
|
+
action "Load all settings" do
|
9
|
+
SystemSettings.load
|
10
|
+
end
|
6
11
|
end
|
7
12
|
end
|
8
13
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
validates :value, "system_settings/list_of_integers": true
|
7
|
-
end
|
3
|
+
class SystemSettings::IntegerListSetting < SystemSettings::Setting
|
4
|
+
attribute :value, SystemSettings::Type::IntegerList.new(limit: 8)
|
5
|
+
validates :value, "system_settings/list_of_integers": true
|
8
6
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
validates :value, numericality: { only_integer: true }
|
7
|
-
end
|
3
|
+
class SystemSettings::IntegerSetting < SystemSettings::Setting
|
4
|
+
attribute :value, :integer, limit: 8
|
5
|
+
validates :value, numericality: { only_integer: true }
|
8
6
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class SystemSettings::ListOfDecimalsValidator < ActiveModel::EachValidator
|
4
|
+
LIST_REGEXP = /\A[+-]?\d+(?:\.\d+){0,1}(?:; *[+-]?\d+(?:\.\d+){0,1})*\z/.freeze
|
5
|
+
SINGLE_REGEXP = /\A[+-]?\d+(?:\.\d+){0,1}\z/.freeze
|
6
|
+
|
7
|
+
def validate_each(record, attr_name, value)
|
8
|
+
came_from_user = :"#{attr_name}_came_from_user?"
|
9
|
+
|
10
|
+
raw_value = record.read_attribute_before_type_cast(attr_name) if record.respond_to?(came_from_user) && record.public_send(came_from_user)
|
11
|
+
raw_value ||= value
|
12
|
+
|
13
|
+
raw_value = value if record_attribute_changed_in_place?(record, attr_name)
|
14
|
+
|
15
|
+
record.errors.add(attr_name, :not_a_list_of_decimals) unless matches_list_of_decimals_regexp?(raw_value)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def record_attribute_changed_in_place?(record, attr_name)
|
21
|
+
record.respond_to?(:attribute_changed_in_place?) &&
|
22
|
+
record.attribute_changed_in_place?(attr_name.to_s)
|
23
|
+
end
|
24
|
+
|
25
|
+
def matches_list_of_decimals_regexp?(raw_value)
|
26
|
+
case raw_value
|
27
|
+
when String
|
28
|
+
LIST_REGEXP.match?(raw_value)
|
29
|
+
when Array
|
30
|
+
raw_value.all? { |v| SINGLE_REGEXP.match?(v.to_s) }
|
31
|
+
else
|
32
|
+
false
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,37 +1,35 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
SINGLE_REGEXP = /\A[+-]?\d+\z/.freeze
|
3
|
+
class SystemSettings::ListOfIntegersValidator < ActiveModel::EachValidator
|
4
|
+
LIST_REGEXP = /\A[+-]?\d+(?:; *[+-]?\d+)*\z/.freeze
|
5
|
+
SINGLE_REGEXP = /\A[+-]?\d+\z/.freeze
|
7
6
|
|
8
|
-
|
9
|
-
|
7
|
+
def validate_each(record, attr_name, value)
|
8
|
+
came_from_user = :"#{attr_name}_came_from_user?"
|
10
9
|
|
11
|
-
|
12
|
-
|
10
|
+
raw_value = record.read_attribute_before_type_cast(attr_name) if record.respond_to?(came_from_user) && record.public_send(came_from_user)
|
11
|
+
raw_value ||= value
|
13
12
|
|
14
|
-
|
13
|
+
raw_value = value if record_attribute_changed_in_place?(record, attr_name)
|
15
14
|
|
16
|
-
|
17
|
-
|
15
|
+
record.errors.add(attr_name, :not_a_list_of_integers) unless matches_list_of_integers_regexp?(raw_value)
|
16
|
+
end
|
18
17
|
|
19
|
-
|
18
|
+
private
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
def record_attribute_changed_in_place?(record, attr_name)
|
21
|
+
record.respond_to?(:attribute_changed_in_place?) &&
|
22
|
+
record.attribute_changed_in_place?(attr_name.to_s)
|
23
|
+
end
|
25
24
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
25
|
+
def matches_list_of_integers_regexp?(raw_value)
|
26
|
+
case raw_value
|
27
|
+
when String
|
28
|
+
LIST_REGEXP.match?(raw_value)
|
29
|
+
when Array
|
30
|
+
raw_value.all? { |v| SINGLE_REGEXP.match?(v.to_s) }
|
31
|
+
else
|
32
|
+
false
|
35
33
|
end
|
36
34
|
end
|
37
35
|
end
|
@@ -1,38 +1,36 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
NON_WHITESPACE_REGEXP = /[^[:space:]]/.freeze
|
3
|
+
class SystemSettings::ListOfStringsValidator < ActiveModel::EachValidator
|
4
|
+
NON_WHITESPACE_REGEXP = /[^[:space:]]/.freeze
|
6
5
|
|
7
|
-
|
8
|
-
|
6
|
+
def validate_each(record, attr_name, value)
|
7
|
+
came_from_user = :"#{attr_name}_came_from_user?"
|
9
8
|
|
10
|
-
|
11
|
-
|
9
|
+
raw_value = record.read_attribute_before_type_cast(attr_name) if record.respond_to?(came_from_user) && record.public_send(came_from_user)
|
10
|
+
raw_value ||= value
|
12
11
|
|
13
|
-
|
12
|
+
raw_value = value if record_attribute_changed_in_place?(record, attr_name)
|
14
13
|
|
15
|
-
|
16
|
-
|
14
|
+
record.errors.add(attr_name, :not_a_list_of_strings) unless matches_list_of_strings_regexp?(raw_value)
|
15
|
+
end
|
17
16
|
|
18
|
-
|
17
|
+
private
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
def record_attribute_changed_in_place?(record, attr_name)
|
20
|
+
record.respond_to?(:attribute_changed_in_place?) &&
|
21
|
+
record.attribute_changed_in_place?(attr_name.to_s)
|
22
|
+
end
|
24
23
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
31
|
-
when Array
|
32
|
-
raw_value.all? { |v| NON_WHITESPACE_REGEXP.match?(v.to_s) }
|
33
|
-
else
|
34
|
-
false
|
24
|
+
def matches_list_of_strings_regexp?(raw_value)
|
25
|
+
case raw_value
|
26
|
+
when String
|
27
|
+
raw_value.split(SystemSettings::Type::StringList::DELIMITER_REGEXP).all? do |value|
|
28
|
+
NON_WHITESPACE_REGEXP.match?(value)
|
35
29
|
end
|
30
|
+
when Array
|
31
|
+
raw_value.all? { |v| NON_WHITESPACE_REGEXP.match?(v.to_s) }
|
32
|
+
else
|
33
|
+
false
|
36
34
|
end
|
37
35
|
end
|
38
36
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
validates :name, presence: true, uniqueness: true
|
7
|
-
end
|
3
|
+
class SystemSettings::Setting < SystemSettings::ApplicationRecord
|
4
|
+
validates :type, presence: true
|
5
|
+
validates :name, presence: true, uniqueness: true
|
8
6
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
validates :value, "system_settings/list_of_strings": true
|
7
|
-
end
|
3
|
+
class SystemSettings::StringListSetting < SystemSettings::Setting
|
4
|
+
attribute :value, SystemSettings::Type::StringList.new
|
5
|
+
validates :value, "system_settings/list_of_strings": true
|
8
6
|
end
|
@@ -1,8 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
class SystemSettings::StringSetting < SystemSettings::Setting
|
4
|
+
attribute :value, :string
|
5
|
+
validates :value, presence: true
|
6
|
+
|
7
|
+
def value=(original_value)
|
8
|
+
next_value = original_value.to_s.blank? ? nil : original_value.to_s.strip
|
9
|
+
super(next_value)
|
7
10
|
end
|
8
11
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SystemSettings::Type
|
4
|
+
class DecimalList < ActiveModel::Type::Value
|
5
|
+
SEPARATOR = ";"
|
6
|
+
|
7
|
+
def initialize(precision: nil, limit: nil, scale: nil)
|
8
|
+
super
|
9
|
+
@single_type = ActiveModel::Type::Decimal.new(precision: precision, limit: limit, scale: scale)
|
10
|
+
end
|
11
|
+
|
12
|
+
def type
|
13
|
+
:decimal_list
|
14
|
+
end
|
15
|
+
|
16
|
+
def deserialize(value)
|
17
|
+
result = value.presence && JSON.parse(value)
|
18
|
+
if result.is_a?(Array)
|
19
|
+
result.map { |v| @single_type.cast(v) }
|
20
|
+
else
|
21
|
+
result
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def serialize(value)
|
26
|
+
JSON.dump(value) unless value.nil?
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def cast_value(value)
|
32
|
+
case value
|
33
|
+
when Array
|
34
|
+
value.map { |v| @single_type.cast(v) }
|
35
|
+
when String
|
36
|
+
value.split(SEPARATOR).map { |v| @single_type.cast(v) }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -1,43 +1,34 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module SystemSettings
|
4
|
-
|
5
|
-
|
6
|
-
SEPARATOR = ";"
|
3
|
+
module SystemSettings::Type
|
4
|
+
class IntegerList < ActiveModel::Type::Value
|
5
|
+
SEPARATOR = ";"
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
def initialize(precision: nil, limit: nil, scale: nil)
|
8
|
+
super
|
9
|
+
@single_type = ActiveModel::Type::Integer.new(precision: precision, limit: limit, scale: scale)
|
10
|
+
end
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
def type
|
13
|
+
:integer_list
|
14
|
+
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
def deserialize(value)
|
17
|
+
value.presence && JSON.parse(value)
|
18
|
+
end
|
19
|
+
|
20
|
+
def serialize(value)
|
21
|
+
JSON.dump(value) unless value.nil?
|
22
|
+
end
|
19
23
|
|
20
|
-
|
24
|
+
private
|
21
25
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
rescue StandardError
|
29
|
-
nil
|
30
|
-
end
|
31
|
-
end
|
32
|
-
when String
|
33
|
-
value.split(SEPARATOR).map do |v|
|
34
|
-
begin
|
35
|
-
v.to_i
|
36
|
-
rescue StandardError
|
37
|
-
nil
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
26
|
+
def cast_value(value)
|
27
|
+
case value
|
28
|
+
when Array
|
29
|
+
value.map { |v| @single_type.cast(v) }
|
30
|
+
when String
|
31
|
+
value.split(SEPARATOR).map { |v| @single_type.cast(v) }
|
41
32
|
end
|
42
33
|
end
|
43
34
|
end
|
@@ -1,30 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module SystemSettings
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
3
|
+
module SystemSettings::Type
|
4
|
+
class StringList < ActiveModel::Type::Value
|
5
|
+
DELIMITER_REGEXP = /(?<=[^\\]);/.freeze
|
6
|
+
def type
|
7
|
+
:string_list
|
8
|
+
end
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
def deserialize(value)
|
11
|
+
value.presence && JSON.parse(value)
|
12
|
+
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
def serialize(value)
|
15
|
+
JSON.dump(value) unless value.nil?
|
16
|
+
end
|
18
17
|
|
19
|
-
|
18
|
+
private
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
20
|
+
def cast_value(value)
|
21
|
+
case value
|
22
|
+
when Array
|
23
|
+
value.map { |v| String(v).strip }
|
24
|
+
when String
|
25
|
+
value.split(DELIMITER_REGEXP).map(&:strip).map { |str| str.gsub("\\;", ";") }
|
28
26
|
end
|
29
27
|
end
|
30
28
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<title><%= SystemSettings::Setting.model_name.human(count: 2) %> - <%= SystemSettings::VERSION %></title>
|
6
|
+
<%= csrf_meta_tags %>
|
7
|
+
<%= stylesheet_link_tag 'system_settings/application', media: 'all' %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<header>
|
11
|
+
<div class="container">
|
12
|
+
<%= link_to SystemSettings::Setting.model_name.human(count: 2), root_path, class: "app-name" %>
|
13
|
+
</div>
|
14
|
+
</header>
|
15
|
+
<main>
|
16
|
+
<div class="container">
|
17
|
+
<%= yield %>
|
18
|
+
</div>
|
19
|
+
</main>
|
20
|
+
</body>
|
21
|
+
</html>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="attribute">
|
2
|
+
<div class="name"><%= setting.class.human_attribute_name(:name) %></div>
|
3
|
+
<div class="value">
|
4
|
+
<span class="sys-name"><%= setting.name %></span>
|
5
|
+
</div>
|
6
|
+
</div>
|
7
|
+
<div class="attribute">
|
8
|
+
<div class="name"><%= setting.class.human_attribute_name(:type) %></div>
|
9
|
+
<div class="value"><%= setting.model_name.human %></div>
|
10
|
+
</div>
|
11
|
+
<div class="attribute">
|
12
|
+
<div class="name"><%= setting.class.human_attribute_name(:description) %></div>
|
13
|
+
<div class="value"><%= setting.description %></div>
|
14
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%= form_for setting, as: :setting, url: setting_path(setting), method: "post" do |f| %>
|
2
|
+
<div class="attribute">
|
3
|
+
<%= f.label :value, class: "name" %>
|
4
|
+
<% if f.object.is_a?(SystemSettings::BooleanSetting) %>
|
5
|
+
<%= f.check_box :value, value: f.object.value %>
|
6
|
+
<% else %>
|
7
|
+
<%= f.text_field :value, value: format_value_for_form(f.object), class: "value" %>
|
8
|
+
<% end %>
|
9
|
+
<% if f.object.errors.messages[:value].any? %>
|
10
|
+
<div class="errors"><%= f.object.errors.messages[:value].join("; ") %></div>
|
11
|
+
<% end %>
|
12
|
+
<div class="hint"><%= t(f.object.type, scope: "system_settings.settings.form.hints_by_type", default: "").html_safe %></div>
|
13
|
+
</div>
|
14
|
+
<div class="buttons">
|
15
|
+
<%= f.submit t(".save"), class: "primary" %>
|
16
|
+
<%= link_to t(".back"), setting_path(setting), class: "button" %>
|
17
|
+
</div>
|
18
|
+
<% end %>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<table class="settings-table">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th class="name"><%= SystemSettings::Setting.human_attribute_name(:name) %></th>
|
5
|
+
<th class="description"><%= SystemSettings::Setting.human_attribute_name(:description) %></th>
|
6
|
+
<th class="value"><%= SystemSettings::Setting.human_attribute_name(:value) %></th>
|
7
|
+
</tr>
|
8
|
+
</thead>
|
9
|
+
<tbody>
|
10
|
+
<% if @settings.any? %>
|
11
|
+
<% @settings.each do |setting| %>
|
12
|
+
<tr>
|
13
|
+
<td class="name"><%= link_to setting.name, setting_path(setting), class: "sys-name" %></td>
|
14
|
+
<td class="description"><%= setting.description %></td>
|
15
|
+
<td class="value"><%= format_value setting.value %></td>
|
16
|
+
</tr>
|
17
|
+
<% end %>
|
18
|
+
<% else %>
|
19
|
+
<tr>
|
20
|
+
<td colspan="3" class="no-entries"><%= t(".no_settings").html_safe %></td>
|
21
|
+
</tr>
|
22
|
+
<% end %>
|
23
|
+
</tbody>
|
24
|
+
<tfoot>
|
25
|
+
<tr>
|
26
|
+
<td colspan="3"><%= t(".add_new", path: display_settings_file_path).html_safe %></td>
|
27
|
+
</tr>
|
28
|
+
</tfoot>
|
29
|
+
</table>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= render "common_attributes", setting: @setting %>
|
2
|
+
<div class="attribute">
|
3
|
+
<div class="name"><%= @setting.class.human_attribute_name(:value) %></div>
|
4
|
+
<div class="value"><%= format_value @setting.value %></div>
|
5
|
+
</div>
|
6
|
+
<div class="buttons">
|
7
|
+
<%= link_to t(".edit"), edit_setting_path(@setting), class: "button primary" %>
|
8
|
+
<%= link_to t(".back"), root_path, class: "button" %>
|
9
|
+
</div>
|
@@ -16,11 +16,21 @@ en:
|
|
16
16
|
system_settings/string_setting:
|
17
17
|
one: "System Setting (String)"
|
18
18
|
other: "System Settings (String)"
|
19
|
+
system_settings/decimal_setting:
|
20
|
+
one: "System Setting (Decimal)"
|
21
|
+
other: "System Settings (Decimal)"
|
22
|
+
system_settings/decimal_list_setting:
|
23
|
+
one: "System Setting (Decimal list)"
|
24
|
+
other: "System Settings (Decimal list)"
|
25
|
+
system_settings/boolean_setting:
|
26
|
+
one: "System Setting (Boolean)"
|
27
|
+
other: "System Settings (Boolean)"
|
19
28
|
attributes:
|
20
29
|
system_settings/setting:
|
21
30
|
id: "ID"
|
22
31
|
name: "Name"
|
23
32
|
type: "Type"
|
33
|
+
value: "Value"
|
24
34
|
description: "Description"
|
25
35
|
created_at: "Created at"
|
26
36
|
uploaded_at: "Updated at"
|
@@ -31,7 +41,23 @@ en:
|
|
31
41
|
value:
|
32
42
|
not_a_list_of_integers: "not a list of integers"
|
33
43
|
not_a_list_of_strings: "not a list of strings"
|
44
|
+
not_a_list_of_decimals: "not a list of decimals"
|
34
45
|
system_settings/boolean_setting:
|
35
46
|
attributes:
|
36
47
|
value:
|
37
|
-
inclusion: "must be set to true or false"
|
48
|
+
inclusion: "must be set to true or false"
|
49
|
+
system_settings:
|
50
|
+
settings:
|
51
|
+
index:
|
52
|
+
no_settings: "No settings"
|
53
|
+
add_new: "Add new entries in <code>%{path}</code>"
|
54
|
+
show:
|
55
|
+
edit: Edit
|
56
|
+
back: Back
|
57
|
+
form:
|
58
|
+
save: Save
|
59
|
+
back: Back
|
60
|
+
hints_by_type:
|
61
|
+
"SystemSettings::StringListSetting": "Separate values by <code>;</code> character."
|
62
|
+
"SystemSettings::IntegerListSetting": "Separate values by <code>;</code> character."
|
63
|
+
"SystemSettings::DecimalListSetting": "Decimal separator is the <code>.</code> character. Separate multiple values by <code>;</code> character."
|
@@ -0,0 +1,65 @@
|
|
1
|
+
lv:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
system_settings/setting:
|
5
|
+
one: "Sistēmas iestatījums"
|
6
|
+
other: "Sistēmas iestatījumi"
|
7
|
+
system_settings/integer_list_setting:
|
8
|
+
one: "Sistēmas iestatījums (Veselu skaitļu virkne)"
|
9
|
+
other: "Sistēmas iestatījumi (Veselu skaitļu virkne)"
|
10
|
+
system_settings/integer_setting:
|
11
|
+
one: "Sistēmas iestatījums (Vesels skaitlis)"
|
12
|
+
other: "Sistēmas iestatījumi (Veseli skaitļi)"
|
13
|
+
system_settings/string_list_setting:
|
14
|
+
one: "Sistēmas iestatījums (Vārdu virkne)"
|
15
|
+
other: "Sistēmas iestatījumi (Vārdu virkne)"
|
16
|
+
system_settings/string_setting:
|
17
|
+
one: "Sistēmas iestatījums (Vārds)"
|
18
|
+
other: "Sistēmas iestatījumi (Vārds)"
|
19
|
+
system_settings/decimal_setting:
|
20
|
+
one: "Sistēmas iestatījums (Decimālskaitlis)"
|
21
|
+
other: "Sistēmas iestatījumi (Decimālskaitļi)"
|
22
|
+
system_settings/decimal_list_setting:
|
23
|
+
one: "Sistēmas iestatījums (Decimālskaitļu virkne)"
|
24
|
+
other: "Sistēmas iestatījumi (Decimālskaitļu virkne)"
|
25
|
+
system_settings/boolean_setting:
|
26
|
+
one: "Sistēmas iestatījums (Patiesumvērtība)"
|
27
|
+
other: "Sistēmas iestatījumi (Patiesumvērtības)"
|
28
|
+
attributes:
|
29
|
+
system_settings/setting:
|
30
|
+
id: "ID"
|
31
|
+
name: "Nosaukums"
|
32
|
+
type: "Tips"
|
33
|
+
value: "Vērtība"
|
34
|
+
description: "Apraksts"
|
35
|
+
created_at: "Izveides datums"
|
36
|
+
uploaded_at: "Atjaunošanas datums"
|
37
|
+
errors:
|
38
|
+
models:
|
39
|
+
system_settings/setting:
|
40
|
+
attributes:
|
41
|
+
value:
|
42
|
+
blank: "vērtībai ir jābūt aizpildītai"
|
43
|
+
not_a_number: "vērtība nav skaitlis"
|
44
|
+
not_a_list_of_integers: "vērtība nav virkne ar veseliem skaitļiem"
|
45
|
+
not_a_list_of_strings: "vērtība nav virke ar vārdiem"
|
46
|
+
not_a_list_of_decimals: "vērtība nav virkne ar decimālskaitļiem"
|
47
|
+
system_settings/boolean_setting:
|
48
|
+
attributes:
|
49
|
+
value:
|
50
|
+
inclusion: "ir jābūt aizpildītam"
|
51
|
+
system_settings:
|
52
|
+
settings:
|
53
|
+
index:
|
54
|
+
no_settings: "Nav ierakstu"
|
55
|
+
add_new: "Jaunus ierakstus iespējams pievienot: <code>%{path}</code>"
|
56
|
+
show:
|
57
|
+
edit: Labot
|
58
|
+
back: Atpakaļ
|
59
|
+
form:
|
60
|
+
save: Saglabāt
|
61
|
+
back: Atpakaļ
|
62
|
+
hints_by_type:
|
63
|
+
"SystemSettings::StringListSetting": "Vairākas vērtības atdala ar <code>;</code> simbolu."
|
64
|
+
"SystemSettings::IntegerListSetting": "Vairākas vērtības atdala ar <code>;</code> simbolu."
|
65
|
+
"SystemSettings::DecimalListSetting": "Decimālskaitļu veselo skaitli no decimāldaļas atdala ar <code>.</code> simbolu. Vairākas vērtības atdala ar <code>;</code> simbolu."
|