trestle 0.8.5 → 0.8.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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/trestle/admin.js +11 -10
- data/app/assets/javascripts/trestle/{_confirmation.js → components/_confirmation.js} +1 -1
- data/app/assets/javascripts/trestle/{_datepicker.js → components/_datepicker.js} +4 -4
- data/app/assets/javascripts/trestle/components/_dialog.js +107 -0
- data/app/assets/javascripts/trestle/{_errors.js → components/_errors.js} +2 -2
- data/app/assets/javascripts/trestle/components/_form.js +48 -0
- data/app/assets/javascripts/trestle/{_gallery.js → components/_gallery.js} +3 -3
- data/app/assets/javascripts/trestle/{_select.js → components/_select.js} +2 -2
- data/app/assets/javascripts/trestle/{_sidebar.js → components/_sidebar.js} +3 -1
- data/app/assets/javascripts/trestle/{_table.js → components/_table.js} +1 -1
- data/app/assets/javascripts/trestle/components/_tabs.js +24 -0
- data/app/assets/javascripts/trestle/components/_tooltips.js +3 -0
- data/app/assets/javascripts/trestle/core/_contexts.js +13 -0
- data/app/assets/javascripts/trestle/{_cookies.js → core/_cookies.js} +2 -1
- data/app/assets/javascripts/trestle/core/_events.js +39 -0
- data/app/assets/javascripts/trestle/core/_visit.js +10 -0
- data/app/assets/stylesheets/trestle/components/_buttons.scss +9 -0
- data/app/assets/stylesheets/trestle/components/_modal.scss +92 -0
- data/app/assets/stylesheets/trestle/components/_navigation.scss +47 -12
- data/app/assets/stylesheets/trestle/components/_sidebar.scss +1 -0
- data/app/assets/stylesheets/trestle/core/_defaults.scss +5 -1
- data/app/controllers/trestle/application_controller.rb +5 -1
- data/app/helpers/trestle/dialog_helper.rb +7 -0
- data/app/helpers/trestle/form_helper.rb +7 -0
- data/app/helpers/trestle/url_helper.rb +34 -6
- data/app/views/layouts/trestle/admin.html.erb +1 -1
- data/app/views/trestle/application/_dialog.html.erb +36 -0
- data/app/views/trestle/application/_tabs.html.erb +7 -1
- data/app/views/trestle/resource/edit.html.erb +5 -5
- data/app/views/trestle/resource/index.html.erb +2 -2
- data/app/views/trestle/resource/new.html.erb +2 -2
- data/app/views/trestle/resource/show.html.erb +5 -5
- data/bower.json +1 -1
- data/config/locales/en.yml +25 -21
- data/config/locales/fr.rb +18 -0
- data/config/locales/fr.yml +69 -0
- data/config/locales/nl.yml +14 -14
- data/config/locales/pl.rb +18 -0
- data/config/locales/pl.yml +70 -0
- data/config/locales/pt-BR.yml +22 -22
- data/lib/generators/trestle/resource/templates/admin.rb.erb +1 -1
- data/lib/trestle/admin.rb +14 -1
- data/lib/trestle/admin/builder.rb +10 -2
- data/lib/trestle/breadcrumb.rb +13 -0
- data/lib/trestle/configuration.rb +6 -1
- data/lib/trestle/form.rb +7 -3
- data/lib/trestle/form/automatic.rb +1 -1
- data/lib/trestle/reloader.rb +1 -1
- data/lib/trestle/resource.rb +20 -5
- data/lib/trestle/resource/builder.rb +15 -0
- data/lib/trestle/resource/controller.rb +19 -6
- data/lib/trestle/table.rb +4 -0
- data/lib/trestle/table/actions_column.rb +9 -7
- data/lib/trestle/table/column.rb +3 -2
- data/lib/trestle/table/row.rb +7 -1
- data/lib/trestle/version.rb +1 -1
- data/trestle.gemspec +3 -3
- data/vendor/assets/bower_components/trestle/select2/dist/js/select2.full.js +90 -69
- metadata +30 -19
- data/app/assets/javascripts/trestle/_form.js +0 -6
- data/app/assets/javascripts/trestle/_tabs.js +0 -13
- data/app/assets/javascripts/trestle/_tooltips.js +0 -3
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
fr: {
|
3
|
+
date: {
|
4
|
+
formats: {
|
5
|
+
trestle_date: "%e %b %Y",
|
6
|
+
trestle_calendar: "%d-%m-%Y"
|
7
|
+
}
|
8
|
+
},
|
9
|
+
|
10
|
+
time: {
|
11
|
+
formats: {
|
12
|
+
trestle_date: "%e %b %Y",
|
13
|
+
trestle_time: "%Hh%M",
|
14
|
+
trestle_time_with_seconds: '%Hh %M\' %S"'
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
fr:
|
2
|
+
trestle:
|
3
|
+
title: "Trestle Admin"
|
4
|
+
footer: "Fourni par Trestle"
|
5
|
+
version: "Version"
|
6
|
+
|
7
|
+
flash:
|
8
|
+
success:
|
9
|
+
title: "Opération réussie"
|
10
|
+
create: "%{model_name} créé(e)."
|
11
|
+
update: "%{model_name} mis(e) à jour."
|
12
|
+
destroy: "%{model_name} supprimé(e)."
|
13
|
+
|
14
|
+
failure:
|
15
|
+
title: "Attention!"
|
16
|
+
create: "Veuillez corriger les erreurs ci-après."
|
17
|
+
update: "Veuillez corriger les erreurs ci-après."
|
18
|
+
destroy: "Suppression impossible."
|
19
|
+
|
20
|
+
helpers:
|
21
|
+
page_entries_info:
|
22
|
+
one_page:
|
23
|
+
display_entries:
|
24
|
+
zero: "Aucun(e) '%{entry_name}'"
|
25
|
+
one: "<strong>1</strong> %{entry_name}"
|
26
|
+
other: "<strong>%{count}</strong> %{entry_name}"
|
27
|
+
|
28
|
+
more_pages:
|
29
|
+
display_entries: "%{entry_name} <strong>%{first} - %{last}</strong> sur <b>%{total}</b>"
|
30
|
+
|
31
|
+
onboarding:
|
32
|
+
welcome: "Bienvenue sur Trestle"
|
33
|
+
no_admins: "Pour commencer, créez le répertoire <code>app/admin</code>."
|
34
|
+
no_template: "Pour personnaliser ce modèle, veuillez créer <code>%{path}</code>."
|
35
|
+
no_form: "Veuillez déclarer un block 'form' ou créer un modèle partiel <code>_form.html</code>."
|
36
|
+
|
37
|
+
admin:
|
38
|
+
titles:
|
39
|
+
index: "Liste des %{pluralized_model_name}"
|
40
|
+
new: "%{model_name} (ajout)"
|
41
|
+
edit: "%{model_name} (modification)"
|
42
|
+
|
43
|
+
buttons:
|
44
|
+
new: "Nouveau"
|
45
|
+
save: "Enregistrer"
|
46
|
+
delete: "Supprimer"
|
47
|
+
|
48
|
+
breadcrumbs:
|
49
|
+
home: "Acceuil"
|
50
|
+
|
51
|
+
table:
|
52
|
+
headers:
|
53
|
+
id: "ID"
|
54
|
+
|
55
|
+
form:
|
56
|
+
select:
|
57
|
+
prompt: "- Choisir le/la %{attribute_name} -"
|
58
|
+
|
59
|
+
confirmation:
|
60
|
+
title: "Voulez-vous supprimer?"
|
61
|
+
delete: "Oui"
|
62
|
+
cancel: "Non"
|
63
|
+
|
64
|
+
ui:
|
65
|
+
toggle_navigation: "Basculer navigation"
|
66
|
+
toggle_sidebar: "Basculer vue latérale"
|
67
|
+
|
68
|
+
format:
|
69
|
+
blank: "Aucun"
|
data/config/locales/nl.yml
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
nl:
|
2
2
|
trestle:
|
3
|
-
title: Trestle Admin
|
4
|
-
footer: Powered by Trestle
|
5
|
-
version: Versie
|
3
|
+
title: "Trestle Admin"
|
4
|
+
footer: "Powered by Trestle"
|
5
|
+
version: "Versie"
|
6
6
|
|
7
7
|
flash:
|
8
8
|
success:
|
@@ -29,14 +29,14 @@ nl:
|
|
29
29
|
display_entries: "%{entry_name} <strong>%{first} - %{last}</strong> van de <b>%{total}</b> worden weergeven"
|
30
30
|
|
31
31
|
onboarding:
|
32
|
-
welcome: Welkom bij Trestle
|
33
|
-
no_admins: Voeg een admin toe in <code>app/admin</code> om te beginnen.
|
34
|
-
no_template: Maak <code>%{path}</code> aan om dit template aan te passen.
|
35
|
-
no_form: Definieer een form block of maak een <code>_form.html</code> partial.
|
32
|
+
welcome: "Welkom bij Trestle"
|
33
|
+
no_admins: "Voeg een admin toe in <code>app/admin</code> om te beginnen."
|
34
|
+
no_template: "Maak <code>%{path}</code> aan om dit template aan te passen."
|
35
|
+
no_form: "Definieer een form block of maak een <code>_form.html</code> partial."
|
36
36
|
|
37
37
|
admin:
|
38
38
|
titles:
|
39
|
-
index: Lijst van %{pluralized_model_name}
|
39
|
+
index: "Lijst van %{pluralized_model_name}"
|
40
40
|
edit: "%{model_name} aanpassen"
|
41
41
|
|
42
42
|
buttons:
|
@@ -44,24 +44,24 @@ nl:
|
|
44
44
|
delete: "%{model_name} verwijderen"
|
45
45
|
|
46
46
|
breadcrumbs:
|
47
|
-
home: Home
|
47
|
+
home: "Home"
|
48
48
|
|
49
49
|
table:
|
50
50
|
headers:
|
51
|
-
id: ID
|
51
|
+
id: "ID"
|
52
52
|
|
53
53
|
form:
|
54
54
|
select:
|
55
55
|
prompt: "- Selecteer %{attribute_name} -"
|
56
56
|
|
57
57
|
confirmation:
|
58
|
-
title: Weer je het zeker?
|
59
|
-
delete: Verwijderen
|
60
|
-
cancel: Annuleren
|
58
|
+
title: "Weer je het zeker?"
|
59
|
+
delete: "Verwijderen"
|
60
|
+
cancel: "Annuleren"
|
61
61
|
|
62
62
|
ui:
|
63
63
|
toggle_navigation: "Navigation tonen/verbergen"
|
64
64
|
toggle_sidebar: "Sidebar tonen/verbergen"
|
65
65
|
|
66
66
|
format:
|
67
|
-
blank: Geen
|
67
|
+
blank: "Geen"
|
@@ -0,0 +1,70 @@
|
|
1
|
+
pl:
|
2
|
+
trestle:
|
3
|
+
title: "Trestle Admin"
|
4
|
+
footer: "Powered by Trestle"
|
5
|
+
version: "Wersja"
|
6
|
+
|
7
|
+
flash:
|
8
|
+
success:
|
9
|
+
title: "Sukces!"
|
10
|
+
create: "%{lowercase_model_name} został pomyślnie utworzony."
|
11
|
+
update: "%{lowercase_model_name} został pomyślnie zaktualizowany."
|
12
|
+
destroy: "%{lowercase_model_name} został pomyślnie usunięty."
|
13
|
+
|
14
|
+
failure:
|
15
|
+
title: "Uwaga!"
|
16
|
+
create: "Popraw poniższe błędy."
|
17
|
+
update: "Popraw poniższe błędy."
|
18
|
+
destroy: "Nie można usunąć %{lowercase_model_name}."
|
19
|
+
|
20
|
+
helpers:
|
21
|
+
page_entries_info:
|
22
|
+
one_page:
|
23
|
+
display_entries:
|
24
|
+
zero: "Nie znaleziono %{entry_name}"
|
25
|
+
one: "Wyświetla <strong>1</strong> %{entry_name}"
|
26
|
+
few: "Wyświetla <strong>wszystkie %{count}</strong> %{entry_name}"
|
27
|
+
other: "Wyświetla <strong>wszystkie %{count}</strong> %{entry_name}"
|
28
|
+
|
29
|
+
more_pages:
|
30
|
+
display_entries: "Wyświetla %{entry_name} <strong>%{first} - %{last}</strong> z <b>%{total}</b> łącznie"
|
31
|
+
|
32
|
+
onboarding:
|
33
|
+
welcome: "Witamy w Trestle"
|
34
|
+
no_admins: "Aby rozpocząć, utwórz administratora w zasięgu <code>app/admin</code>."
|
35
|
+
no_template: "Aby dostosować ten szablon, utwórz <code>%{path}</code>."
|
36
|
+
no_form: "Proszę zdefiniować blok formularza lub utworzyć podszablon <code>_form.html</code>."
|
37
|
+
|
38
|
+
admin:
|
39
|
+
titles:
|
40
|
+
index: "Lista %{pluralized_model_name}"
|
41
|
+
new: "Nowy %{model_name}"
|
42
|
+
edit: "Edycja %{model_name}"
|
43
|
+
|
44
|
+
buttons:
|
45
|
+
new: "Nowy %{model_name}"
|
46
|
+
save: "Zachowaj %{model_name}"
|
47
|
+
delete: "Usuń %{model_name}"
|
48
|
+
|
49
|
+
breadcrumbs:
|
50
|
+
home: "Start"
|
51
|
+
|
52
|
+
table:
|
53
|
+
headers:
|
54
|
+
id: "ID"
|
55
|
+
|
56
|
+
form:
|
57
|
+
select:
|
58
|
+
prompt: "- Wybierz %{attribute_name} -"
|
59
|
+
|
60
|
+
confirmation:
|
61
|
+
title: "Jesteś pewny?"
|
62
|
+
delete: "Usuń"
|
63
|
+
cancel: "Anuluj"
|
64
|
+
|
65
|
+
ui:
|
66
|
+
toggle_navigation: "Przełącz nawigację"
|
67
|
+
toggle_sidebar: "Przełącz pasek boczny"
|
68
|
+
|
69
|
+
format:
|
70
|
+
blank: "Żaden"
|
data/config/locales/pt-BR.yml
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
pt-BR:
|
2
2
|
trestle:
|
3
|
-
title: Trestle Admin
|
4
|
-
footer: Powered by Trestle
|
5
|
-
version: Versão
|
3
|
+
title: "Trestle Admin"
|
4
|
+
footer: "Powered by Trestle"
|
5
|
+
version: "Versão"
|
6
6
|
|
7
7
|
flash:
|
8
8
|
success:
|
@@ -29,41 +29,41 @@ pt-BR:
|
|
29
29
|
display_entries: "Mostrando %{entry_name} <strong>%{first} - %{last}</strong> de <b>%{total}</b>"
|
30
30
|
|
31
31
|
onboarding:
|
32
|
-
welcome: Bem-vindo ao Trestle
|
33
|
-
no_admins: Para começar, crie um admin dentro de <code>app/admin</code>.
|
34
|
-
no_template: Para personalizar este template, crie <code>%{path}</code>.
|
35
|
-
no_form: Defina um bloco de formulário ou crie um <code>_form.html</code> parcial.
|
36
|
-
|
32
|
+
welcome: "Bem-vindo ao Trestle"
|
33
|
+
no_admins: "Para começar, crie um admin dentro de <code>app/admin</code>."
|
34
|
+
no_template: "Para personalizar este template, crie <code>%{path}</code>."
|
35
|
+
no_form: "Defina um bloco de formulário ou crie um <code>_form.html</code> parcial."
|
36
|
+
|
37
37
|
admin:
|
38
38
|
titles:
|
39
|
-
index: Listando %{pluralized_model_name}
|
40
|
-
new: Novo %{model_name}
|
41
|
-
edit: Editando %{model_name}
|
39
|
+
index: "Listando %{pluralized_model_name}"
|
40
|
+
new: "Novo %{model_name}"
|
41
|
+
edit: "Editando %{model_name}"
|
42
42
|
|
43
43
|
buttons:
|
44
|
-
new: Novo %{model_name}
|
45
|
-
save: Salvar %{model_name}
|
46
|
-
delete: Excluir %{model_name}
|
44
|
+
new: "Novo %{model_name}"
|
45
|
+
save: "Salvar %{model_name}"
|
46
|
+
delete: "Excluir %{model_name}"
|
47
47
|
|
48
48
|
breadcrumbs:
|
49
|
-
home: Home
|
49
|
+
home: "Home"
|
50
50
|
|
51
51
|
table:
|
52
52
|
headers:
|
53
|
-
id: ID
|
53
|
+
id: "ID"
|
54
54
|
|
55
55
|
form:
|
56
56
|
select:
|
57
57
|
prompt: "- Selecione %{attribute_name} -"
|
58
58
|
|
59
59
|
confirmation:
|
60
|
-
title: Você tem certeza?
|
61
|
-
delete: Excluir
|
62
|
-
cancel: Cancelar
|
60
|
+
title: "Você tem certeza?"
|
61
|
+
delete: "Excluir"
|
62
|
+
cancel: "Cancelar"
|
63
63
|
|
64
64
|
ui:
|
65
|
-
toggle_navigation: Alternar naveção
|
66
|
-
toggle_sidebar: Alternar barra lateral
|
65
|
+
toggle_navigation: "Alternar naveção"
|
66
|
+
toggle_sidebar: "Alternar barra lateral"
|
67
67
|
|
68
68
|
format:
|
69
|
-
blank: Nenhum
|
69
|
+
blank: "Nenhum"
|
@@ -30,6 +30,6 @@ Trestle.resource(:<%= plural_name %><% if module? %>, scope: <%= module_name %><
|
|
30
30
|
# http://guides.rubyonrails.org/action_controller_overview.html#strong-parameters
|
31
31
|
#
|
32
32
|
# params do |params|
|
33
|
-
# params.require(:<%= singular_name %>).
|
33
|
+
# params.require(:<%= singular_name %>).permit(:name, ...)
|
34
34
|
# end
|
35
35
|
end
|
data/lib/trestle/admin.rb
CHANGED
@@ -14,6 +14,7 @@ module Trestle
|
|
14
14
|
attr_accessor :additional_routes
|
15
15
|
|
16
16
|
attr_writer :options
|
17
|
+
attr_writer :breadcrumb
|
17
18
|
|
18
19
|
def options
|
19
20
|
@options ||= {}
|
@@ -24,7 +25,15 @@ module Trestle
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def breadcrumb
|
27
|
-
|
28
|
+
if @breadcrumb
|
29
|
+
Breadcrumb.cast(@breadcrumb.call)
|
30
|
+
else
|
31
|
+
default_breadcrumb
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def default_breadcrumb
|
36
|
+
Breadcrumb.new(I18n.t("admin.breadcrumbs.#{admin_name}", default: admin_name.titleize), path)
|
28
37
|
end
|
29
38
|
|
30
39
|
def admin_name
|
@@ -47,6 +56,10 @@ module Trestle
|
|
47
56
|
Engine.routes.url_for(options.merge(controller: controller_namespace, action: action, only_path: true))
|
48
57
|
end
|
49
58
|
|
59
|
+
def actions
|
60
|
+
[:index]
|
61
|
+
end
|
62
|
+
|
50
63
|
def routes
|
51
64
|
admin = self
|
52
65
|
|
@@ -42,8 +42,8 @@ module Trestle
|
|
42
42
|
admin.table = Table::Builder.build(options.reverse_merge(admin: admin, sortable: true), &block)
|
43
43
|
end
|
44
44
|
|
45
|
-
def form(&block)
|
46
|
-
admin.form = Form.new(&block)
|
45
|
+
def form(options={}, &block)
|
46
|
+
admin.form = Form.new(options, &block)
|
47
47
|
end
|
48
48
|
|
49
49
|
def admin(&block)
|
@@ -59,6 +59,14 @@ module Trestle
|
|
59
59
|
def routes(&block)
|
60
60
|
@admin.additional_routes = block
|
61
61
|
end
|
62
|
+
|
63
|
+
def breadcrumb(label=nil, path=nil, &block)
|
64
|
+
if block_given?
|
65
|
+
@admin.breadcrumb = block
|
66
|
+
else
|
67
|
+
@admin.breadcrumb = -> { Breadcrumb.new(label, path) }
|
68
|
+
end
|
69
|
+
end
|
62
70
|
end
|
63
71
|
end
|
64
72
|
end
|
data/lib/trestle/breadcrumb.rb
CHANGED
@@ -10,6 +10,19 @@ module Trestle
|
|
10
10
|
label == other.label && path == other.path
|
11
11
|
end
|
12
12
|
|
13
|
+
def self.cast(obj)
|
14
|
+
case obj
|
15
|
+
when Breadcrumb
|
16
|
+
obj
|
17
|
+
when String
|
18
|
+
new(obj)
|
19
|
+
when Array
|
20
|
+
new(*obj)
|
21
|
+
else
|
22
|
+
raise ArgumentError, "Unable to cast #{obj.inspect} to Breadcrumb"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
13
26
|
class Trail
|
14
27
|
include Enumerable
|
15
28
|
|
@@ -83,7 +83,12 @@ module Trestle
|
|
83
83
|
end
|
84
84
|
|
85
85
|
# List of i18n keys to pass into the Trestle.i18n JavaScript object
|
86
|
-
option :javascript_i18n_keys, ["admin.confirmation.title", "admin.confirmation.delete", "admin.confirmation.cancel"]
|
86
|
+
option :javascript_i18n_keys, ["admin.confirmation.title", "admin.confirmation.delete", "admin.confirmation.cancel", "trestle.dialog.error", "admin.buttons.ok"]
|
87
|
+
|
88
|
+
# List of load paths for where to find admin definitions
|
89
|
+
option :load_paths, [
|
90
|
+
-> { ActiveSupport::Dependencies.autoload_paths.grep(/\/app\/admin\Z/) }
|
91
|
+
]
|
87
92
|
|
88
93
|
|
89
94
|
## Debugging
|
data/lib/trestle/form.rb
CHANGED
@@ -8,10 +8,14 @@ module Trestle
|
|
8
8
|
autoload :Fields
|
9
9
|
autoload :Renderer
|
10
10
|
|
11
|
-
attr_reader :block
|
11
|
+
attr_reader :options, :block
|
12
12
|
|
13
|
-
def initialize(&block)
|
14
|
-
@block = block
|
13
|
+
def initialize(options={}, &block)
|
14
|
+
@options, @block = options, block
|
15
|
+
end
|
16
|
+
|
17
|
+
def dialog?
|
18
|
+
options[:dialog] == true
|
15
19
|
end
|
16
20
|
|
17
21
|
def render(template, instance)
|