active_scaffold 3.2.5 → 3.2.6
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/CHANGELOG +4 -0
- data/config/locales/de.yml +5 -0
- data/config/locales/en.yml +5 -2
- data/config/locales/es.yml +4 -2
- data/config/locales/fr.yml +4 -0
- data/config/locales/hu.yml +48 -2
- data/config/locales/ja.yml +50 -3
- data/config/locales/ru.yml +6 -2
- data/frontends/default/views/_human_conditions.html.erb +1 -1
- data/lib/active_scaffold/data_structures/sorting.rb +1 -1
- data/lib/active_scaffold/extensions/localize.rb +1 -1
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +11 -3
- data/lib/active_scaffold/version.rb +1 -1
- data/test/data_structures/sorting_test.rb +1 -1
- metadata +4 -4
data/CHANGELOG
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
= 3.2.6
|
|
2
|
+
- fix ordering with DISTINCT call
|
|
3
|
+
- allow to override some human condition strings in i18n, and translate select values for non-association columns
|
|
4
|
+
|
|
1
5
|
= 3.2.5
|
|
2
6
|
- add outer window for pagination links
|
|
3
7
|
- workaround rails 3.2.3 bug in TimeWithZone#to_time
|
data/config/locales/de.yml
CHANGED
|
@@ -27,6 +27,7 @@ de:
|
|
|
27
27
|
export: 'Exportieren'
|
|
28
28
|
nested_for_model: '%{nested_model} für %{parent_model}'
|
|
29
29
|
nested_of_model: '%{nested_model} von %{parent_model}'
|
|
30
|
+
'false': 'False'
|
|
30
31
|
filtered: '(Gefiltert)'
|
|
31
32
|
found: 'Gefunden'
|
|
32
33
|
hide: 'Verstecken'
|
|
@@ -53,6 +54,7 @@ de:
|
|
|
53
54
|
show: 'Anzeigen'
|
|
54
55
|
show_model: 'Zeige %{model} an'
|
|
55
56
|
_to_ : ' zu '
|
|
57
|
+
'true': 'True'
|
|
56
58
|
update: 'Speichern'
|
|
57
59
|
update_model: 'Editiere %{model}'
|
|
58
60
|
updated_model: '%{model} aktualisiert'
|
|
@@ -100,6 +102,9 @@ de:
|
|
|
100
102
|
timeText: 'Uhrzeit'
|
|
101
103
|
currentText: 'Jetzt'
|
|
102
104
|
closeText: 'Schließen'
|
|
105
|
+
human_conditions:
|
|
106
|
+
boolean: "%{column} = %{value}"
|
|
107
|
+
association: "%{column} = %{value}"
|
|
103
108
|
errors:
|
|
104
109
|
template:
|
|
105
110
|
header:
|
data/config/locales/en.yml
CHANGED
|
@@ -100,6 +100,10 @@ en:
|
|
|
100
100
|
showMonthAfterYear: false
|
|
101
101
|
|
|
102
102
|
datetime_picker_options:
|
|
103
|
+
|
|
104
|
+
human_conditions:
|
|
105
|
+
boolean: "%{column} = %{value}"
|
|
106
|
+
association: "%{column} = %{value}"
|
|
103
107
|
|
|
104
108
|
errors:
|
|
105
109
|
template:
|
|
@@ -109,8 +113,7 @@ en:
|
|
|
109
113
|
|
|
110
114
|
body: "There were problems with the following fields:"
|
|
111
115
|
|
|
112
|
-
|
|
113
|
-
# error_messages
|
|
116
|
+
# error_messages
|
|
114
117
|
cant_destroy_record: "%{record} can't be destroyed"
|
|
115
118
|
internal_error: 'Request Failed (code 500, Internal Error)'
|
|
116
119
|
version_inconsistency: 'Version inconsistency - this record has been modified since you started editing it.'
|
data/config/locales/es.yml
CHANGED
|
@@ -67,8 +67,6 @@ es:
|
|
|
67
67
|
'<': 'Menor'
|
|
68
68
|
'!=': 'Distinto'
|
|
69
69
|
between: 'Entre'
|
|
70
|
-
is_null: 'Es nulo'
|
|
71
|
-
is_not_null: 'No es nulo'
|
|
72
70
|
contains: 'Contiene'
|
|
73
71
|
begins_with: 'Empieza con'
|
|
74
72
|
ends_with: 'Termina con'
|
|
@@ -106,6 +104,9 @@ es:
|
|
|
106
104
|
timeText: 'Hora'
|
|
107
105
|
currentText: 'Ahora'
|
|
108
106
|
closeText: 'Cerrar'
|
|
107
|
+
human_conditions:
|
|
108
|
+
boolean: "%{column} = %{value}"
|
|
109
|
+
association: "%{column} = %{value}"
|
|
109
110
|
errors:
|
|
110
111
|
template:
|
|
111
112
|
header:
|
|
@@ -117,4 +118,5 @@ es:
|
|
|
117
118
|
cant_destroy_record: "No se pudo borrar %{record}"
|
|
118
119
|
internal_error: 'Petición fallida (código 500, error interno)'
|
|
119
120
|
version_inconsistency: 'Inconsistencia de versiones - este registro se ha modificado después de que empezó a editarlo.'
|
|
121
|
+
record_not_saved: 'Fallo guardando el registro debido a un error desconocido'
|
|
120
122
|
no_authorization_for_action: "No dispone de autorización para la acción %{action}"
|
data/config/locales/fr.yml
CHANGED
data/config/locales/hu.yml
CHANGED
|
@@ -11,6 +11,8 @@ hu:
|
|
|
11
11
|
click_to_edit: 'Kattints a szerkesztéshez'
|
|
12
12
|
click_to_reset: 'Kattints az alapállapothoz'
|
|
13
13
|
close: 'Bezárás'
|
|
14
|
+
config_list: 'Configure'
|
|
15
|
+
config_list_model: 'Configure Columns for %{model}'
|
|
14
16
|
create: 'Létrehozás'
|
|
15
17
|
create_model: '%{model} létrehozása'
|
|
16
18
|
create_another: 'Mégegy hozzáadása'
|
|
@@ -25,6 +27,7 @@ hu:
|
|
|
25
27
|
export: 'Exportálás'
|
|
26
28
|
nested_for_model: '%{nested_model} / %{parent_model}'
|
|
27
29
|
nested_of_model: '%{nested_model} of %{parent_model}'
|
|
30
|
+
'false': 'False'
|
|
28
31
|
filtered: '(Szűrt)'
|
|
29
32
|
found: 'Találat'
|
|
30
33
|
hide: 'Elrejtés'
|
|
@@ -51,6 +54,7 @@ hu:
|
|
|
51
54
|
show: 'Mutatás'
|
|
52
55
|
show_model: '%{model} mutatása'
|
|
53
56
|
_to_ : ' – '
|
|
57
|
+
'true': 'True'
|
|
54
58
|
update: 'Modosítás'
|
|
55
59
|
update_model: '%{model} modosítása'
|
|
56
60
|
updated_model: '%{model} módosítva'
|
|
@@ -61,12 +65,54 @@ hu:
|
|
|
61
65
|
'<': '<'
|
|
62
66
|
'!=': '!='
|
|
63
67
|
between: 'Között'
|
|
64
|
-
is_null: 'Is null'
|
|
65
|
-
is_not_null: 'Is not null'
|
|
66
68
|
contains: 'Contains'
|
|
67
69
|
begins_with: 'Begins with'
|
|
68
70
|
ends_with: 'Ends with'
|
|
71
|
+
today: 'Today'
|
|
72
|
+
yesterday: 'Yesterday'
|
|
73
|
+
tomorrow: 'Tommorrow'
|
|
74
|
+
this_week: 'This Week'
|
|
75
|
+
prev_week: 'Last Week'
|
|
76
|
+
next_week: 'Next Week'
|
|
77
|
+
this_month: 'This Month'
|
|
78
|
+
prev_month: 'Last Month'
|
|
79
|
+
next_month: 'Next Month'
|
|
80
|
+
this_year: 'This Year'
|
|
81
|
+
prev_year: 'Last Year'
|
|
82
|
+
next_year: 'Next Year'
|
|
83
|
+
past: 'Past'
|
|
84
|
+
future: 'Future'
|
|
85
|
+
range: 'Range'
|
|
86
|
+
seconds: 'Seconds'
|
|
87
|
+
minutes: 'Minutes'
|
|
88
|
+
hours: 'Hours'
|
|
89
|
+
days: 'Days'
|
|
90
|
+
weeks: 'Weeks'
|
|
91
|
+
months: 'Months'
|
|
92
|
+
years: 'Years'
|
|
93
|
+
optional_attributes: 'Further Options'
|
|
94
|
+
null: 'Null'
|
|
95
|
+
not_null: 'Not Null'
|
|
96
|
+
date_picker_options:
|
|
97
|
+
weekHeader: 'Wk'
|
|
98
|
+
firstDay: 0
|
|
99
|
+
isRTL: false
|
|
100
|
+
showMonthAfterYear: false
|
|
101
|
+
|
|
102
|
+
datetime_picker_options:
|
|
69
103
|
|
|
104
|
+
human_conditions:
|
|
105
|
+
boolean: "%{column} = %{value}"
|
|
106
|
+
association: "%{column} = %{value}"
|
|
107
|
+
|
|
108
|
+
errors:
|
|
109
|
+
template:
|
|
110
|
+
header:
|
|
111
|
+
one: "1 error prohibited this %{model} from being saved."
|
|
112
|
+
other: "%{count} errors prohibited this %{model} from being saved"
|
|
113
|
+
|
|
114
|
+
body: "There were problems with the following fields:"
|
|
115
|
+
|
|
70
116
|
# error_messages
|
|
71
117
|
cant_destroy_record: "nem törölhető: %{record}"
|
|
72
118
|
internal_error: 'A lekérés sikertelen (code 500, Internal Error)'
|
data/config/locales/ja.yml
CHANGED
|
@@ -9,7 +9,10 @@ ja:
|
|
|
9
9
|
are_you_sure_to_delete: '本当によいですか?'
|
|
10
10
|
cancel: 'キャンセル'
|
|
11
11
|
click_to_edit: 'クリックして編集'
|
|
12
|
+
click_to_reset: 'Click to reset'
|
|
12
13
|
close: '閉じる'
|
|
14
|
+
config_list: 'Configure'
|
|
15
|
+
config_list_model: 'Configure Columns for %{model}'
|
|
13
16
|
create: '作成'
|
|
14
17
|
create_model: '%{model}を作成'
|
|
15
18
|
create_another: '別のものを作成'
|
|
@@ -24,6 +27,7 @@ ja:
|
|
|
24
27
|
export: 'Export' # needed?
|
|
25
28
|
nested_for_model: '%{parent_model}の%{nested_model}'
|
|
26
29
|
nested_of_model: '%{nested_model} of %{parent_model}'
|
|
30
|
+
'false': 'False'
|
|
27
31
|
filtered: '(フィルタ中)'
|
|
28
32
|
found: '個ありました'
|
|
29
33
|
hide: '隠す'
|
|
@@ -50,6 +54,7 @@ ja:
|
|
|
50
54
|
show: '表示'
|
|
51
55
|
show_model: '%{model}を表示'
|
|
52
56
|
_to_ : ' to ' # needed?
|
|
57
|
+
'true': 'True'
|
|
53
58
|
update: '更新'
|
|
54
59
|
update_model: '%{model}を更新'
|
|
55
60
|
updated_model: '%{model}を更新しました'
|
|
@@ -60,12 +65,54 @@ ja:
|
|
|
60
65
|
'<': '<'
|
|
61
66
|
'!=': '!='
|
|
62
67
|
between: 'Between' # needed?
|
|
63
|
-
is_null: 'Is null'
|
|
64
|
-
is_not_null: 'Is not null'
|
|
65
68
|
contains: 'Contains'
|
|
66
69
|
begins_with: 'Begins with'
|
|
67
70
|
ends_with: 'Ends with'
|
|
68
|
-
|
|
71
|
+
today: 'Today'
|
|
72
|
+
yesterday: 'Yesterday'
|
|
73
|
+
tomorrow: 'Tommorrow'
|
|
74
|
+
this_week: 'This Week'
|
|
75
|
+
prev_week: 'Last Week'
|
|
76
|
+
next_week: 'Next Week'
|
|
77
|
+
this_month: 'This Month'
|
|
78
|
+
prev_month: 'Last Month'
|
|
79
|
+
next_month: 'Next Month'
|
|
80
|
+
this_year: 'This Year'
|
|
81
|
+
prev_year: 'Last Year'
|
|
82
|
+
next_year: 'Next Year'
|
|
83
|
+
past: 'Past'
|
|
84
|
+
future: 'Future'
|
|
85
|
+
range: 'Range'
|
|
86
|
+
seconds: 'Seconds'
|
|
87
|
+
minutes: 'Minutes'
|
|
88
|
+
hours: 'Hours'
|
|
89
|
+
days: 'Days'
|
|
90
|
+
weeks: 'Weeks'
|
|
91
|
+
months: 'Months'
|
|
92
|
+
years: 'Years'
|
|
93
|
+
optional_attributes: 'Further Options'
|
|
94
|
+
null: 'Null'
|
|
95
|
+
not_null: 'Not Null'
|
|
96
|
+
date_picker_options:
|
|
97
|
+
weekHeader: 'Wk'
|
|
98
|
+
firstDay: 0
|
|
99
|
+
isRTL: false
|
|
100
|
+
showMonthAfterYear: false
|
|
101
|
+
|
|
102
|
+
datetime_picker_options:
|
|
103
|
+
|
|
104
|
+
human_conditions:
|
|
105
|
+
boolean: "%{column} = %{value}"
|
|
106
|
+
association: "%{column} = %{value}"
|
|
107
|
+
|
|
108
|
+
errors:
|
|
109
|
+
template:
|
|
110
|
+
header:
|
|
111
|
+
one: "1 error prohibited this %{model} from being saved."
|
|
112
|
+
other: "%{count} errors prohibited this %{model} from being saved"
|
|
113
|
+
|
|
114
|
+
body: "There were problems with the following fields:"
|
|
115
|
+
|
|
69
116
|
# error_messages
|
|
70
117
|
cant_destroy_record: "%{record}を削除で来ません"
|
|
71
118
|
internal_error: 'リクエストが失敗しました(コード500: 内部エラー)'
|
data/config/locales/ru.yml
CHANGED
|
@@ -27,7 +27,7 @@ ru:
|
|
|
27
27
|
export: 'Экспорт'
|
|
28
28
|
nested_for_model: '%{parent_model} / %{nested_model}'
|
|
29
29
|
nested_of_model: '%{nested_model} @ %{parent_model}'
|
|
30
|
-
false: 'Нет'
|
|
30
|
+
'false': 'Нет'
|
|
31
31
|
filtered: '(Найденное)'
|
|
32
32
|
found:
|
|
33
33
|
one: 'запись'
|
|
@@ -58,7 +58,7 @@ ru:
|
|
|
58
58
|
show: 'Показать'
|
|
59
59
|
show_model: '%{model}: показать запись'
|
|
60
60
|
_to_ : ' to '
|
|
61
|
-
true: 'Да'
|
|
61
|
+
'true': 'Да'
|
|
62
62
|
update: 'Обновить запись'
|
|
63
63
|
update_model: '%{model}: обновить запись'
|
|
64
64
|
updated_model: '%{model}: запись обновлена'
|
|
@@ -104,6 +104,10 @@ ru:
|
|
|
104
104
|
showMonthAfterYear: false
|
|
105
105
|
|
|
106
106
|
datetime_picker_options:
|
|
107
|
+
|
|
108
|
+
human_conditions:
|
|
109
|
+
boolean: "%{column} = %{value}"
|
|
110
|
+
association: "%{column} = %{value}"
|
|
107
111
|
|
|
108
112
|
errors:
|
|
109
113
|
template:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<%= columns.collect {|column| active_scaffold_human_condition_for(column)}.compact.
|
|
1
|
+
<%= columns.collect {|column| active_scaffold_human_condition_for(column)}.compact.to_sentence %>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
class Object
|
|
2
2
|
def as_(key, options = {})
|
|
3
3
|
unless key.blank?
|
|
4
|
-
text = I18n.translate "#{key}", {:scope => [:active_scaffold], :default => key.is_a?(String) ? key : key.to_s.titleize}.merge(options)
|
|
4
|
+
text = I18n.translate "#{key}", {:scope => [:active_scaffold, *options.delete(:scope)], :default => key.is_a?(String) ? key : key.to_s.titleize}.merge(options)
|
|
5
5
|
# text = nil if text.include?('translation missing:')
|
|
6
6
|
end
|
|
7
7
|
text ||= key
|
|
@@ -26,11 +26,19 @@ module ActiveScaffold
|
|
|
26
26
|
when :select, :multi_select, :record_select
|
|
27
27
|
associated = value
|
|
28
28
|
associated = [associated].compact unless associated.is_a? Array
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
if column.association
|
|
30
|
+
associated = column.association.klass.where(:id => associated.map(&:to_i)).collect(&:to_label)
|
|
31
|
+
elsif column.options[:options]
|
|
32
|
+
associated = associated.collect do |value|
|
|
33
|
+
text, val = column.options[:options].find {|text, val| (val.nil? ? text : val).to_s == value.to_s}
|
|
34
|
+
value = active_scaffold_translated_option(column, text, val).first if text
|
|
35
|
+
value
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
as_(:association, :scope => :human_conditions, :column => column.active_record_class.human_attribute_name(column.name), :value => associated.join(', '))
|
|
31
39
|
when :boolean, :checkbox
|
|
32
40
|
label = column.column.type_cast(value) ? as_(:true) : as_(:false)
|
|
33
|
-
|
|
41
|
+
as_(:boolean, :scope => :human_conditions, :column => column.active_record_class.human_attribute_name(column.name), :value => label)
|
|
34
42
|
when :null
|
|
35
43
|
"#{column.active_record_class.human_attribute_name(column.name)} #{as_(value.to_sym)}"
|
|
36
44
|
end
|
|
@@ -100,7 +100,7 @@ class SortingTest < Test::Unit::TestCase
|
|
|
100
100
|
@sorting << [:a, 'desc']
|
|
101
101
|
@sorting << [:b, 'asc']
|
|
102
102
|
|
|
103
|
-
assert_equal '"model_stubs"."a" DESC, "model_stubs"."b" ASC', @sorting.clause
|
|
103
|
+
assert_equal '"model_stubs"."a" DESC, "model_stubs"."b" ASC', @sorting.clause.join(', ')
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
def test_set_default_sorting_with_simple_default_scope
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active_scaffold
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 3
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 3
|
|
8
8
|
- 2
|
|
9
|
-
-
|
|
10
|
-
version: 3.2.
|
|
9
|
+
- 6
|
|
10
|
+
version: 3.2.6
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Many, see README
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2012-05-
|
|
18
|
+
date: 2012-05-03 00:00:00 Z
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
21
21
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|