tkh_menus 0.2.2 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +18 -0
- data/app/models/menu.rb +15 -1
- data/app/views/menus/_form.html.erb +11 -3
- data/app/views/menus/_tab_admin_menu.html.erb +5 -0
- data/app/views/menus/edit.html.erb +4 -0
- data/app/views/menus/index.html.erb +8 -6
- data/app/views/menus/new.html.erb +4 -0
- data/app/views/shared/_language_switcher.html.erb +2 -14
- data/app/views/shared/_language_switcher_for_navbar.html.erb +2 -12
- data/app/views/shared/_menu_for_navbar.html.erb +1 -1
- data/lib/generators/tkh_menus/create_or_update_locales/templates/de.yml +12 -7
- data/lib/generators/tkh_menus/create_or_update_locales/templates/en.yml +12 -8
- data/lib/generators/tkh_menus/create_or_update_locales/templates/es.yml +11 -7
- data/lib/generators/tkh_menus/create_or_update_locales/templates/fr.yml +13 -8
- data/lib/generators/tkh_menus/create_or_update_locales/templates/it.yml +30 -0
- data/lib/tkh_menus/version.rb +1 -1
- metadata +6 -4
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,24 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
## 0.3.2
|
6
|
+
|
7
|
+
* Refactored the language switchers
|
8
|
+
|
9
|
+
|
10
|
+
## 0.3.1
|
11
|
+
|
12
|
+
* Fixed typo bug in 3 locale files
|
13
|
+
|
14
|
+
|
15
|
+
## 0.3
|
16
|
+
|
17
|
+
* Added tab admin menu navigation.
|
18
|
+
* Set up many translations
|
19
|
+
* Autocomplete of the parent menu in form
|
20
|
+
* Added Italian to the full name hash
|
21
|
+
|
22
|
+
|
5
23
|
## 0.2.2
|
6
24
|
|
7
25
|
* Removed automatic blog link from menu navbar partial.
|
data/app/models/menu.rb
CHANGED
@@ -5,7 +5,7 @@ end
|
|
5
5
|
|
6
6
|
class Menu < ActiveRecord::Base
|
7
7
|
|
8
|
-
attr_accessible :name, :path, :position, :parent_id
|
8
|
+
attr_accessible :name, :path, :position, :parent_id, :parent_menu_name
|
9
9
|
|
10
10
|
validates_presence_of :name, :path
|
11
11
|
|
@@ -15,6 +15,7 @@ class Menu < ActiveRecord::Base
|
|
15
15
|
name ? "#{id}-#{name.to_url}" : id
|
16
16
|
end
|
17
17
|
|
18
|
+
scope :alphabetical, order('name')
|
18
19
|
scope :ordered, order('position, id')
|
19
20
|
# tree scopes
|
20
21
|
scope :orphans, where('parent_id IS ?', nil)
|
@@ -44,4 +45,17 @@ class Menu < ActiveRecord::Base
|
|
44
45
|
Menu.with_parent_id(parent_id)
|
45
46
|
end
|
46
47
|
|
48
|
+
### autocomplete related instance methods
|
49
|
+
def parent_menu_name
|
50
|
+
parent.try(:name) unless self.orphan?
|
51
|
+
end
|
52
|
+
|
53
|
+
def parent_menu_name=(name)
|
54
|
+
if name.present? && Menu.find_by_name(name)
|
55
|
+
self.parent_id = Menu.find_by_name(name).id
|
56
|
+
else
|
57
|
+
self.parent_id = nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
47
61
|
end
|
@@ -2,9 +2,17 @@
|
|
2
2
|
<%= f.error_notification %>
|
3
3
|
|
4
4
|
<div class="form-inputs">
|
5
|
-
<%= f.input :name,
|
6
|
-
<%= f.input :path,
|
7
|
-
|
5
|
+
<%= f.input :name, label: t('activerecord.attributes.menu.name'), hint: t('menus.hint.name') %>
|
6
|
+
<%= f.input :path, label: t('activerecord.attributes.menu.path'), hint: t('menus.hint.path') %>
|
7
|
+
<%# = f.input :parent_id, label: t('activerecord.attributes.menu.parent'), hint: t('menus.hint.parent') %>
|
8
|
+
<%= f.input :parent_menu_name,
|
9
|
+
as: :string,
|
10
|
+
:wrapper_html => { :id => 'parent-menu-name' },
|
11
|
+
label: t('activerecord.attributes.menu.parent'),
|
12
|
+
:input_html => {
|
13
|
+
:data => { provide: 'typeahead',
|
14
|
+
source: Menu.orphans.alphabetical.map(&:name).to_json }
|
15
|
+
} %>
|
8
16
|
</div>
|
9
17
|
|
10
18
|
<div class="form-actions">
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<ul class="nav nav-tabs" id="admin-menu-tab">
|
2
|
+
<%= content_tag :li, link_to(t('new'), new_menu_path), ({ class: 'active' } if controller.action_name.to_s == 'new' ) %>
|
3
|
+
<%= content_tag :li, link_to(t('list'), menus_path), ({ class: 'active' } if controller.action_name.to_s == 'index' ) %>
|
4
|
+
<%= content_tag :li, link_to(t('edit'), menus_path), ({ class: 'active' }) if controller.action_name.to_s == 'edit' %>
|
5
|
+
</ul>
|
@@ -1,12 +1,14 @@
|
|
1
|
-
<h1
|
1
|
+
<h1><%= t('activerecord.models.menus') %></h1>
|
2
|
+
|
3
|
+
<%= render 'tab_admin_menu' %>
|
2
4
|
|
3
5
|
<table class='table table-striped'>
|
4
6
|
<thead>
|
5
7
|
<tr>
|
6
|
-
<th><%= t(
|
7
|
-
<th><%= t(
|
8
|
-
<th><%= t(
|
9
|
-
<th
|
8
|
+
<th><%= t('activerecord.attributes.menu.name') %></th>
|
9
|
+
<th><%= t('activerecord.attributes.menu.path') %></th>
|
10
|
+
<th><%= t('activerecord.attributes.menu.parent') %></th>
|
11
|
+
<th><%= t('actions') %></th>
|
10
12
|
</tr>
|
11
13
|
</thead>
|
12
14
|
|
@@ -23,6 +25,6 @@
|
|
23
25
|
</tbody>
|
24
26
|
</table>
|
25
27
|
|
26
|
-
<%= link_to t('menus.create_new')
|
28
|
+
<%= link_to t('menus.create_new'), new_menu_path, class: 'btn btn-primary' %>
|
27
29
|
|
28
30
|
<%= render 'shared/admin_sidebar' %>
|
@@ -1,23 +1,11 @@
|
|
1
|
-
<% def full_language_name( lang = :en) %>
|
2
|
-
<% list = { :en => 'English',
|
3
|
-
:fr => 'Français',
|
4
|
-
:es => 'Español',
|
5
|
-
:de => 'Deutsch'
|
6
|
-
}
|
7
|
-
%>
|
8
|
-
<% list[lang] %>
|
9
|
-
<% end %>
|
10
|
-
|
11
1
|
<% if I18n.available_locales.size > 1 %>
|
12
2
|
|
13
3
|
<div class="btn-group">
|
14
|
-
<a class="btn btn-medium btn-primary btn-success dropdown-toggle" data-toggle="dropdown" href="#">
|
15
|
-
<%= full_language_name(I18n.locale) %>
|
16
|
-
<span class="caret"></span>
|
4
|
+
<a class="btn btn-medium btn-primary btn-success dropdown-toggle" data-toggle="dropdown" href="#"><%= t('full_name') %> <span class="caret"></span>
|
17
5
|
</a>
|
18
6
|
<ul class="dropdown-menu">
|
19
7
|
<% for loc in I18n.available_locales %>
|
20
|
-
<%= content_tag( :li, link_to(
|
8
|
+
<%= content_tag( :li, link_to( t('full_name', locale: loc), :locale => loc )) unless loc.to_s == I18n.locale.to_s %>
|
21
9
|
<% end %>
|
22
10
|
</ul>
|
23
11
|
</div>
|
@@ -1,20 +1,10 @@
|
|
1
1
|
<% if I18n.available_locales.size > 1 %>
|
2
2
|
|
3
|
-
<% def full_language_name( lang = :en) %>
|
4
|
-
<% list = { :en => 'English',
|
5
|
-
:fr => 'Français',
|
6
|
-
:es => 'Español',
|
7
|
-
:de => 'Deutsch'
|
8
|
-
}
|
9
|
-
%>
|
10
|
-
<% list[lang] %>
|
11
|
-
<% end %>
|
12
|
-
|
13
3
|
<li class="dropdown active">
|
14
|
-
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><%=
|
4
|
+
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><%= t('full_name') %> <span class="caret"></span></a>
|
15
5
|
<ul class="dropdown-menu">
|
16
6
|
<% for loc in I18n.available_locales %>
|
17
|
-
<%= content_tag( :li, link_to(
|
7
|
+
<%= content_tag( :li, link_to(t('full_name', locale: loc), :locale => loc)) unless loc.to_s == I18n.locale.to_s %>
|
18
8
|
<% end %>
|
19
9
|
</ul>
|
20
10
|
</li>
|
@@ -22,7 +22,7 @@
|
|
22
22
|
<% Menu.orphans.ordered.each do |menu| %>
|
23
23
|
<% if menu.has_children? %>
|
24
24
|
<li class='dropdown'>
|
25
|
-
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
|
25
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><%= menu.name %> <b class="caret"></b></a>
|
26
26
|
<ul class="dropdown-menu">
|
27
27
|
<%= content_tag :li, link_to(menu.name, menu.path) %>
|
28
28
|
<li class="divider"></li>
|
@@ -1,19 +1,24 @@
|
|
1
1
|
de:
|
2
2
|
|
3
|
-
are_you_sure: 'Bist Du sicher?'
|
4
|
-
delete: 'löschen'
|
5
|
-
edit: 'bearbeiten'
|
6
3
|
menus: 'Menüs'
|
7
4
|
|
8
|
-
activerecord:
|
5
|
+
activerecord:
|
6
|
+
models:
|
7
|
+
menu: 'Menü'
|
8
|
+
menus: 'Menüs'
|
9
|
+
|
9
10
|
attributes:
|
10
|
-
|
11
|
+
menu:
|
11
12
|
name: "Name"
|
12
13
|
path: 'Pfad'
|
13
14
|
parent: 'Haupmenü'
|
14
15
|
|
15
16
|
menus:
|
16
|
-
create_new: '
|
17
|
+
create_new: 'Erstelle neues Menü'
|
18
|
+
hint:
|
19
|
+
name: 'Sollte eher kurz sein, da er in die Navigationsleiste kommt und der Platz dort kostbar ist'
|
20
|
+
path: 'Die Url zu der das Menü hinführt. Beispiel: /blog oder http://tenthousandhours.eu'
|
21
|
+
parent: 'Für die zweite Ebene der Untermenüs'
|
17
22
|
|
18
23
|
create:
|
19
24
|
notice: 'Das Menü wurde erfolgreich erstellt.'
|
@@ -22,4 +27,4 @@ de:
|
|
22
27
|
notice: 'Das Menü wurde erfolgreich aktualisiert.'
|
23
28
|
warning: 'Beim Speichern des Menüs ist ein Fehler aufgetreten'
|
24
29
|
destroy:
|
25
|
-
notice: 'Das Menü wurde gelöscht'
|
30
|
+
notice: 'Das Menü wurde gelöscht'
|
@@ -1,20 +1,24 @@
|
|
1
1
|
en:
|
2
2
|
|
3
|
-
|
4
|
-
delete: 'delete'
|
5
|
-
edit: 'edit'
|
6
|
-
menus: 'menus'
|
3
|
+
menus: 'menus' # legacy. needed?
|
7
4
|
|
8
|
-
|
9
|
-
|
5
|
+
activerecord:
|
6
|
+
models:
|
7
|
+
menu: 'menu'
|
8
|
+
menus: 'menus'
|
9
|
+
|
10
10
|
attributes:
|
11
|
-
|
11
|
+
menu:
|
12
12
|
name: "name"
|
13
13
|
path: 'path'
|
14
14
|
parent: 'parent menu'
|
15
15
|
|
16
16
|
menus:
|
17
17
|
create_new: 'create new menu'
|
18
|
+
hint:
|
19
|
+
name: 'should be rather short as it will figure in navigation bar and space there is at a premium'
|
20
|
+
path: 'the url the menu is pointing to. Example: /blog ou http://tenthousandhours.eu'
|
21
|
+
parent: 'for second level sub-menu items'
|
18
22
|
|
19
23
|
create:
|
20
24
|
notice: 'The menu was successfully created.'
|
@@ -23,4 +27,4 @@ en:
|
|
23
27
|
notice: 'The menu was successfully updated.'
|
24
28
|
warning: 'There was a problem saving the menu'
|
25
29
|
destroy:
|
26
|
-
notice: 'The menu was deleted'
|
30
|
+
notice: 'The menu was deleted'
|
@@ -1,20 +1,24 @@
|
|
1
1
|
es:
|
2
2
|
|
3
|
-
are_you_sure: 'are you sure?'
|
4
|
-
delete: 'delete'
|
5
|
-
edit: 'edit'
|
6
3
|
menus: 'menus'
|
7
4
|
|
8
|
-
|
9
|
-
|
5
|
+
activerecord:
|
6
|
+
models:
|
7
|
+
menu: 'menu'
|
8
|
+
menus: 'menus'
|
9
|
+
|
10
10
|
attributes:
|
11
|
-
|
11
|
+
menu:
|
12
12
|
name: "name"
|
13
13
|
path: 'path'
|
14
14
|
parent: 'parent menu'
|
15
15
|
|
16
16
|
menus:
|
17
17
|
create_new: 'create new menu'
|
18
|
+
hint:
|
19
|
+
name: 'should be rather short as it will figure in navigation bar and space there is at a premium'
|
20
|
+
path: 'the url the menu is pointing to. Example: /blog ou http://tenthousandhours.eu'
|
21
|
+
parent: 'for second level sub-menu items'
|
18
22
|
|
19
23
|
create:
|
20
24
|
notice: 'The menu was successfully created.'
|
@@ -23,4 +27,4 @@ es:
|
|
23
27
|
notice: 'The menu was successfully updated.'
|
24
28
|
warning: 'There was a problem saving the menu'
|
25
29
|
destroy:
|
26
|
-
notice: 'The menu was deleted'
|
30
|
+
notice: 'The menu was deleted'
|
@@ -1,19 +1,24 @@
|
|
1
1
|
fr:
|
2
2
|
|
3
|
-
are_you_sure: 'êtes vous sûr ?'
|
4
|
-
delete: 'supprimer'
|
5
|
-
edit: 'modifier'
|
6
3
|
menus: 'menus'
|
7
4
|
|
8
|
-
activerecord:
|
5
|
+
activerecord:
|
6
|
+
models:
|
7
|
+
menu: 'menu'
|
8
|
+
menus: 'les menus'
|
9
|
+
|
9
10
|
attributes:
|
10
|
-
|
11
|
+
menu:
|
11
12
|
name: "nom"
|
12
|
-
path: '
|
13
|
-
parent: 'menu
|
13
|
+
path: 'chemin'
|
14
|
+
parent: 'parent du menu'
|
14
15
|
|
15
16
|
menus:
|
16
17
|
create_new: 'créer un nouveau menu'
|
18
|
+
hint:
|
19
|
+
name: 'doit être assez court pour se placer sur la barre de navigation sans encombre'
|
20
|
+
path: "l'URL de la page web qui correspond a ce menu. Par exemple /blog ou http://tenthousandhours.eu"
|
21
|
+
parent: 'pour les sous-menus de deuxième niveau'
|
17
22
|
|
18
23
|
create:
|
19
24
|
notice: 'Le menu a été créé.'
|
@@ -22,4 +27,4 @@ fr:
|
|
22
27
|
notice: 'Les changements de ce menu ont été sauvegardés'
|
23
28
|
warning: "Il y'a eu un probleme et les changements de ce menu n'ont pas été sauvegardés"
|
24
29
|
destroy:
|
25
|
-
notice: 'Le menu a été supprimé'
|
30
|
+
notice: 'Le menu a été supprimé'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
it:
|
2
|
+
|
3
|
+
menus: 'menus'
|
4
|
+
|
5
|
+
activerecord:
|
6
|
+
models:
|
7
|
+
menu: 'menu'
|
8
|
+
menus: 'menus'
|
9
|
+
|
10
|
+
attributes:
|
11
|
+
menu:
|
12
|
+
name: "name"
|
13
|
+
path: 'path'
|
14
|
+
parent: 'parent menu'
|
15
|
+
|
16
|
+
menus:
|
17
|
+
create_new: 'create new menu'
|
18
|
+
hint:
|
19
|
+
name: 'should be rather short as it will figure in navigation bar and space there is at a premium'
|
20
|
+
path: 'the url the menu is pointing to. Example: /blog ou http://tenthousandhours.eu'
|
21
|
+
parent: 'for second level sub-menu items'
|
22
|
+
|
23
|
+
create:
|
24
|
+
notice: 'The menu was successfully created.'
|
25
|
+
warning: 'There was a problem saving the menu'
|
26
|
+
update:
|
27
|
+
notice: 'The menu was successfully updated.'
|
28
|
+
warning: 'There was a problem saving the menu'
|
29
|
+
destroy:
|
30
|
+
notice: 'The menu was deleted'
|
data/lib/tkh_menus/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tkh_menus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-02-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- app/controllers/menus_controller.rb
|
104
104
|
- app/models/menu.rb
|
105
105
|
- app/views/menus/_form.html.erb
|
106
|
+
- app/views/menus/_tab_admin_menu.html.erb
|
106
107
|
- app/views/menus/edit.html.erb
|
107
108
|
- app/views/menus/index.html.erb
|
108
109
|
- app/views/menus/new.html.erb
|
@@ -117,6 +118,7 @@ files:
|
|
117
118
|
- lib/generators/tkh_menus/create_or_update_locales/templates/en.yml
|
118
119
|
- lib/generators/tkh_menus/create_or_update_locales/templates/es.yml
|
119
120
|
- lib/generators/tkh_menus/create_or_update_locales/templates/fr.yml
|
121
|
+
- lib/generators/tkh_menus/create_or_update_locales/templates/it.yml
|
120
122
|
- lib/generators/tkh_menus/create_or_update_migrations/create_or_update_migrations_generator.rb
|
121
123
|
- lib/generators/tkh_menus/create_or_update_migrations/templates/add_menu_position_to_pages.rb
|
122
124
|
- lib/generators/tkh_menus/create_or_update_migrations/templates/create_menus.rb
|
@@ -171,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
171
173
|
version: '0'
|
172
174
|
segments:
|
173
175
|
- 0
|
174
|
-
hash:
|
176
|
+
hash: 3984902534821179842
|
175
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
178
|
none: false
|
177
179
|
requirements:
|
@@ -180,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
182
|
version: '0'
|
181
183
|
segments:
|
182
184
|
- 0
|
183
|
-
hash:
|
185
|
+
hash: 3984902534821179842
|
184
186
|
requirements: []
|
185
187
|
rubyforge_project:
|
186
188
|
rubygems_version: 1.8.23
|