rademade_admin 0.1.3 → 0.1.4
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/rademade_admin/app/common/location.coffee.erb +5 -1
- data/app/assets/javascripts/rademade_admin/app/common/status-toggler.coffee +25 -0
- data/app/assets/javascripts/rademade_admin/app/common/turboform.coffee +8 -0
- data/app/assets/javascripts/rademade_admin/app/form-popup/view.coffee +3 -3
- data/app/assets/javascripts/rademade_admin/app/gallery/image/collection-view.coffee +35 -0
- data/app/assets/javascripts/rademade_admin/app/gallery/image/collection.coffee +19 -0
- data/app/assets/javascripts/rademade_admin/app/gallery/image/model.coffee +25 -0
- data/app/assets/javascripts/rademade_admin/app/gallery/image/view.coffee +58 -0
- data/app/assets/javascripts/rademade_admin/app/gallery/view.coffee +40 -0
- data/app/assets/javascripts/rademade_admin/app/select2/related/view.coffee +1 -1
- data/app/assets/javascripts/rademade_admin/app/select2/view.coffee +11 -2
- data/app/assets/javascripts/rademade_admin/app/templates/crop.jst.ejs +2 -2
- data/app/assets/javascripts/rademade_admin/app/templates/related-item.jst.ejs +2 -2
- data/app/assets/javascripts/rademade_admin/form/form.coffee +4 -1
- data/app/assets/stylesheets/rademade_admin.sass.erb +2 -1
- data/app/assets/stylesheets/rademade_admin/blocks/form/input.sass +56 -27
- data/app/assets/stylesheets/rademade_admin/blocks/gallery/_main.sass +67 -0
- data/app/assets/stylesheets/rademade_admin/modules/pagination/main.sass +19 -2
- data/app/cells/menu/item.slim +2 -0
- data/app/cells/menu_cell.rb +8 -2
- data/app/controllers/rademade_admin/abstract_controller.rb +6 -2
- data/app/controllers/rademade_admin/dashboard_controller.rb +1 -1
- data/app/controllers/rademade_admin/file_controller.rb +14 -5
- data/app/controllers/rademade_admin/gallery_controller.rb +48 -0
- data/app/controllers/rademade_admin/model_controller.rb +37 -29
- data/app/controllers/rademade_admin/sessions_controller.rb +7 -6
- data/app/controllers/rademade_admin/status_controller.rb +16 -0
- data/app/helpers/rademade_admin/field_helper.rb +3 -4
- data/app/helpers/rademade_admin/form_helper.rb +35 -25
- data/app/helpers/rademade_admin/uri_helper.rb +6 -14
- data/app/inputs/rademade_admin/file_input.rb +24 -8
- data/app/inputs/rademade_admin/gallery_input.rb +77 -0
- data/app/inputs/rademade_admin/related_select_input.rb +13 -4
- data/app/serializers/autocomplete/base_serializer.rb +1 -1
- data/app/services/gallery/manager.rb +81 -0
- data/app/services/login.rb +3 -3
- data/app/services/menu_service.rb +1 -1
- data/app/services/menu_service/menu_item.rb +4 -0
- data/app/services/model_controller/model_options.rb +1 -0
- data/app/services/model_controller/notifier.rb +24 -10
- data/app/services/search/conditions/autocomplete.rb +4 -11
- data/app/services/search/conditions/list.rb +22 -10
- data/app/services/search/conditions/related_list.rb +8 -4
- data/app/services/search/where.rb +20 -0
- data/app/services/sortable_service.rb +1 -4
- data/app/services/status/toggler.rb +27 -0
- data/app/services/template_service.rb +33 -1
- data/app/services/upload/gallery_preview_service.rb +64 -0
- data/app/views/layouts/rademade_admin.html.erb +1 -22
- data/app/views/rademade_admin/_blocks/_form.html.erb +10 -0
- data/app/views/rademade_admin/_blocks/_header.html.erb +0 -12
- data/app/views/rademade_admin/_blocks/_search.html.erb +11 -0
- data/app/views/rademade_admin/_blocks/_sort_reset.html.erb +5 -0
- data/app/views/rademade_admin/_blocks/button/_cancel.html.erb +7 -0
- data/app/views/rademade_admin/_blocks/button/_destroy.html.erb +12 -0
- data/app/views/rademade_admin/_blocks/button/_edit.html.erb +4 -2
- data/app/views/rademade_admin/_blocks/button/_hide.html.erb +13 -0
- data/app/views/rademade_admin/_blocks/button/_preview.html.erb +3 -0
- data/app/views/rademade_admin/_blocks/form/_control.html.erb +9 -3
- data/app/views/rademade_admin/_blocks/form/_separator.html.erb +1 -0
- data/app/views/rademade_admin/_blocks/table/_head.html.erb +8 -2
- data/app/views/rademade_admin/_layouts/inner/index_table.html.erb +1 -3
- data/app/views/rademade_admin/_layouts/main.html.erb +26 -0
- data/app/views/rademade_admin/abstract/_form.html.erb +1 -7
- data/app/views/rademade_admin/abstract/index.html.erb +7 -13
- data/config/locales/rademade_admin.en.yml +16 -1
- data/config/locales/rademade_admin.ru.yml +22 -2
- data/config/routes.rb +9 -1
- data/lib/rademade_admin.rb +5 -0
- data/lib/rademade_admin/configuration.rb +6 -1
- data/lib/rademade_admin/engine.rb +4 -0
- data/lib/rademade_admin/gallery.rb +13 -0
- data/lib/rademade_admin/hideable.rb +37 -0
- data/lib/rademade_admin/input/related_select_input/related_list.rb +2 -2
- data/lib/rademade_admin/model/adapter/data.rb +8 -0
- data/lib/rademade_admin/model/adapter/data/active_record.rb +12 -2
- data/lib/rademade_admin/model/adapter/data/mongoid.rb +10 -8
- data/lib/rademade_admin/model/adapter/query/active_record.rb +8 -3
- data/lib/rademade_admin/model/configuration.rb +10 -8
- data/lib/rademade_admin/model/info.rb +13 -2
- data/lib/rademade_admin/model/info/data_item.rb +8 -3
- data/lib/rademade_admin/model/info/fields.rb +12 -2
- data/lib/rademade_admin/model/info/relation.rb +5 -0
- data/lib/rademade_admin/model/info/relation/gallery.rb +12 -0
- data/lib/rademade_admin/model/reflection.rb +4 -0
- data/lib/rademade_admin/routing/mapper.rb +1 -1
- data/lib/rademade_admin/routing/resource.rb +4 -0
- data/lib/rademade_admin/uploader/crop_photo.rb +3 -2
- data/lib/rademade_admin/version.rb +1 -1
- metadata +83 -8
|
@@ -4,7 +4,7 @@ module RademadeAdmin
|
|
|
4
4
|
|
|
5
5
|
def success_action
|
|
6
6
|
render :json => {
|
|
7
|
-
:message => '
|
|
7
|
+
:message => I18n.t('rademade_admin.success_message')
|
|
8
8
|
}
|
|
9
9
|
end
|
|
10
10
|
|
|
@@ -12,9 +12,12 @@ module RademadeAdmin
|
|
|
12
12
|
respond_to do |format|
|
|
13
13
|
format.html { redirect_to admin_edit_uri(item) }
|
|
14
14
|
format.json {
|
|
15
|
-
|
|
16
|
-
:
|
|
17
|
-
|
|
15
|
+
if params.has_key?(:create_and_return)
|
|
16
|
+
data = { :redirect_to => admin_list_uri(item.class) }
|
|
17
|
+
else
|
|
18
|
+
data = { :form_action => admin_update_uri(item) }
|
|
19
|
+
end
|
|
20
|
+
success_message(item, I18n.t('rademade_admin.success_insert_message'), data)
|
|
18
21
|
}
|
|
19
22
|
end
|
|
20
23
|
end
|
|
@@ -23,7 +26,9 @@ module RademadeAdmin
|
|
|
23
26
|
respond_to do |format|
|
|
24
27
|
format.html { redirect_to admin_edit_uri(item) }
|
|
25
28
|
format.json {
|
|
26
|
-
|
|
29
|
+
data = {}
|
|
30
|
+
data[:redirect_to] = admin_list_uri(item.class) if params.has_key?(:create_and_return)
|
|
31
|
+
success_message(item, I18n.t('rademade_admin.success_update_message'), data)
|
|
27
32
|
}
|
|
28
33
|
end
|
|
29
34
|
end
|
|
@@ -32,27 +37,36 @@ module RademadeAdmin
|
|
|
32
37
|
respond_to do |format|
|
|
33
38
|
format.html { redirect_to admin_list_uri(item) }
|
|
34
39
|
format.json {
|
|
35
|
-
success_message(item, '
|
|
40
|
+
success_message(item, I18n.t('rademade_admin.success_delete_message'))
|
|
41
|
+
}
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def success_status_change(item)
|
|
46
|
+
respond_to do |format|
|
|
47
|
+
format.html { redirect_to admin_list_uri(item) }
|
|
48
|
+
format.json {
|
|
49
|
+
success_message(item, t('rademade_admin.success_status_update_message'))
|
|
36
50
|
}
|
|
37
51
|
end
|
|
38
52
|
end
|
|
39
53
|
|
|
40
54
|
def success_unlink
|
|
41
55
|
render :json => {
|
|
42
|
-
:message => '
|
|
56
|
+
:message => I18n.t('rademade_admin.success_unlink_message')
|
|
43
57
|
}
|
|
44
58
|
end
|
|
45
59
|
|
|
46
60
|
def success_link
|
|
47
61
|
render :json => {
|
|
48
|
-
:message => '
|
|
62
|
+
:message => I18n.t('rademade_admin.success_link_message')
|
|
49
63
|
}
|
|
50
64
|
end
|
|
51
65
|
|
|
52
|
-
def success_message(item,
|
|
66
|
+
def success_message(item, message, additional_data = {})
|
|
53
67
|
render :json => {
|
|
54
68
|
:data => Autocomplete::BaseSerializer.new([item]).as_json.first,
|
|
55
|
-
:message =>
|
|
69
|
+
:message => message
|
|
56
70
|
}.merge(additional_data)
|
|
57
71
|
end
|
|
58
72
|
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
|
2
2
|
require 'search/conditions/abstract'
|
|
3
|
+
require 'search/where'
|
|
3
4
|
|
|
4
5
|
module RademadeAdmin
|
|
5
6
|
module Search
|
|
6
7
|
module Conditions
|
|
7
8
|
class Autocomplete < Abstract
|
|
8
9
|
|
|
10
|
+
include RademadeAdmin::Search::Where
|
|
11
|
+
|
|
9
12
|
protected
|
|
10
13
|
|
|
11
14
|
def where
|
|
12
15
|
@where_conditions = RademadeAdmin::Search::Part::Where.new(:and)
|
|
13
|
-
|
|
16
|
+
regex_filter(@where_conditions, @params[:q])
|
|
14
17
|
append_search_params
|
|
15
18
|
append_ids_params
|
|
16
19
|
@where_conditions
|
|
@@ -22,16 +25,6 @@ module RademadeAdmin
|
|
|
22
25
|
|
|
23
26
|
private
|
|
24
27
|
|
|
25
|
-
def append_query_condition
|
|
26
|
-
if @params[:q].present? and not @data_items.filter_fields.empty?
|
|
27
|
-
query_where = RademadeAdmin::Search::Part::Where.new(:or)
|
|
28
|
-
@data_items.filter_fields.each do |field|
|
|
29
|
-
query_where.add(field, /#{@params[:q]}/i)
|
|
30
|
-
end
|
|
31
|
-
@where_conditions.sub_add(query_where)
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
28
|
def append_search_params
|
|
36
29
|
if @params[:search].present?
|
|
37
30
|
@params[:search].each do |key, value|
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
|
2
2
|
require 'search/conditions/abstract'
|
|
3
|
+
require 'search/where'
|
|
3
4
|
|
|
4
5
|
module RademadeAdmin
|
|
5
6
|
module Search
|
|
6
7
|
module Conditions
|
|
7
8
|
class List < Abstract
|
|
8
9
|
|
|
10
|
+
include RademadeAdmin::Search::Where
|
|
11
|
+
|
|
9
12
|
protected
|
|
10
13
|
|
|
11
14
|
def where
|
|
12
|
-
where_conditions = RademadeAdmin::Search::Part::Where.new(:and)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
where_conditions
|
|
15
|
+
@where_conditions = RademadeAdmin::Search::Part::Where.new(:and)
|
|
16
|
+
search_by_fields
|
|
17
|
+
regex_filter(@where_conditions, @params[:q])
|
|
18
|
+
@where_conditions
|
|
17
19
|
end
|
|
18
20
|
|
|
19
21
|
def order
|
|
20
22
|
order_conditions = super
|
|
21
|
-
|
|
22
|
-
order_conditions.unshift(
|
|
23
|
+
list_order_field = order_field
|
|
24
|
+
order_conditions.unshift(list_order_field, @params[:direction]) unless list_order_field.nil?
|
|
23
25
|
order_conditions
|
|
24
26
|
end
|
|
25
27
|
|
|
@@ -33,11 +35,21 @@ module RademadeAdmin
|
|
|
33
35
|
|
|
34
36
|
private
|
|
35
37
|
|
|
36
|
-
def
|
|
37
|
-
@
|
|
38
|
+
def order_field
|
|
39
|
+
if @params[:sort]
|
|
40
|
+
@params[:sort]
|
|
41
|
+
else
|
|
42
|
+
@data_items.has_field?(:position) ? :position : nil
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def search_by_fields
|
|
47
|
+
@params.slice(*@data_items.origin_fields).each do |field, value|
|
|
48
|
+
@where_conditions.add(field, value)
|
|
49
|
+
end
|
|
38
50
|
end
|
|
39
51
|
|
|
40
52
|
end
|
|
41
53
|
end
|
|
42
54
|
end
|
|
43
|
-
end
|
|
55
|
+
end
|
|
@@ -26,8 +26,8 @@ module RademadeAdmin
|
|
|
26
26
|
|
|
27
27
|
def order
|
|
28
28
|
order_conditions = super
|
|
29
|
-
|
|
30
|
-
order_conditions.unshift(
|
|
29
|
+
related_order_field = order_field
|
|
30
|
+
order_conditions.unshift(related_order_field, @params[:direction]) unless related_order_field.nil?
|
|
31
31
|
order_conditions
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -41,8 +41,12 @@ module RademadeAdmin
|
|
|
41
41
|
|
|
42
42
|
private
|
|
43
43
|
|
|
44
|
-
def
|
|
45
|
-
@
|
|
44
|
+
def order_field
|
|
45
|
+
if @params[:sort]
|
|
46
|
+
@params[:sort]
|
|
47
|
+
else
|
|
48
|
+
@data_items.has_field?(:position) ? :position : nil
|
|
49
|
+
end
|
|
46
50
|
end
|
|
47
51
|
|
|
48
52
|
def related_item_ids
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module RademadeAdmin
|
|
2
|
+
module Search
|
|
3
|
+
module Where
|
|
4
|
+
|
|
5
|
+
protected
|
|
6
|
+
|
|
7
|
+
def regex_filter(where_conditions, search)
|
|
8
|
+
if search.present? and not @data_items.filter_fields.empty?
|
|
9
|
+
query_where = RademadeAdmin::Search::Part::Where.new(:or)
|
|
10
|
+
@data_items.filter_fields.each do |field|
|
|
11
|
+
query_where.add(field, /#{search}/i)
|
|
12
|
+
end
|
|
13
|
+
where_conditions.sub_add(query_where)
|
|
14
|
+
end
|
|
15
|
+
where_conditions
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -19,11 +19,8 @@ module RademadeAdmin
|
|
|
19
19
|
@params[:sort].present?
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
#
|
|
23
|
-
# @return [RademadeAdmin::Model::Info::DataItem]
|
|
24
|
-
#
|
|
25
22
|
def sorting_sign(field)
|
|
26
|
-
if field.
|
|
23
|
+
if field.order_column.to_s == @params[:sort]
|
|
27
24
|
return '⬇' if @params[:direction] == 'asc'
|
|
28
25
|
return '⬆' if @params[:direction] == 'desc'
|
|
29
26
|
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
module RademadeAdmin
|
|
3
|
+
module Status
|
|
4
|
+
class Toggler
|
|
5
|
+
|
|
6
|
+
attr_reader :item
|
|
7
|
+
|
|
8
|
+
def initialize(model, id)
|
|
9
|
+
@model = model
|
|
10
|
+
@id = id
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def init_item
|
|
14
|
+
@model_info = RademadeAdmin::Model::Graph.instance.model_info @model
|
|
15
|
+
@item = @model_info.model.find @id
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def toggle
|
|
19
|
+
if @model_info.hideable?
|
|
20
|
+
@item.toggle
|
|
21
|
+
@item.save
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -9,23 +9,39 @@ module RademadeAdmin
|
|
|
9
9
|
def template_path(*directories)
|
|
10
10
|
"#{@root_dir}/#{directories.join('/')}"
|
|
11
11
|
end
|
|
12
|
+
|
|
13
|
+
def index_template
|
|
14
|
+
abstract_template 'index'
|
|
15
|
+
end
|
|
12
16
|
|
|
13
17
|
def inner_layout
|
|
14
18
|
layout_path 'inner'
|
|
15
19
|
end
|
|
16
20
|
|
|
21
|
+
def main_layout
|
|
22
|
+
layout_path 'main'
|
|
23
|
+
end
|
|
24
|
+
|
|
17
25
|
def inner_form_layout
|
|
18
26
|
layout_path 'inner/form'
|
|
19
27
|
end
|
|
20
28
|
|
|
29
|
+
def form_block
|
|
30
|
+
block_path 'form'
|
|
31
|
+
end
|
|
32
|
+
|
|
21
33
|
def form_control_block
|
|
22
34
|
block_path 'form/control'
|
|
23
35
|
end
|
|
24
36
|
|
|
25
|
-
def
|
|
37
|
+
def form_lang_panel_block
|
|
26
38
|
block_path 'form/lang_panel'
|
|
27
39
|
end
|
|
28
40
|
|
|
41
|
+
def form_separator_block
|
|
42
|
+
block_path 'form/separator'
|
|
43
|
+
end
|
|
44
|
+
|
|
29
45
|
def pagination_block
|
|
30
46
|
block_path 'pagination'
|
|
31
47
|
end
|
|
@@ -34,6 +50,14 @@ module RademadeAdmin
|
|
|
34
50
|
block_path 'on_page_select'
|
|
35
51
|
end
|
|
36
52
|
|
|
53
|
+
def sort_reset_block
|
|
54
|
+
block_path 'sort_reset'
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def search_block
|
|
58
|
+
block_path 'search'
|
|
59
|
+
end
|
|
60
|
+
|
|
37
61
|
def header_block
|
|
38
62
|
block_path 'header'
|
|
39
63
|
end
|
|
@@ -54,8 +78,16 @@ module RademadeAdmin
|
|
|
54
78
|
block_path 'table/head'
|
|
55
79
|
end
|
|
56
80
|
|
|
81
|
+
def cancel_button
|
|
82
|
+
block_path 'button/cancel'
|
|
83
|
+
end
|
|
84
|
+
|
|
57
85
|
private
|
|
58
86
|
|
|
87
|
+
def abstract_template(path)
|
|
88
|
+
template_path 'abstract', path
|
|
89
|
+
end
|
|
90
|
+
|
|
59
91
|
def layout_path(layout)
|
|
60
92
|
template_path '_layouts', layout
|
|
61
93
|
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
module RademadeAdmin
|
|
3
|
+
module Upload
|
|
4
|
+
class GalleryPreviewService
|
|
5
|
+
|
|
6
|
+
include ActionView::Helpers::TagHelper
|
|
7
|
+
include ActionView::Context
|
|
8
|
+
include UriHelper
|
|
9
|
+
|
|
10
|
+
def preview_html(uploader)
|
|
11
|
+
content_tag(:div, HtmlBuffer.new([
|
|
12
|
+
gallery_image_html(uploader),
|
|
13
|
+
remove_ico_html(uploader),
|
|
14
|
+
crop_button_html(uploader)
|
|
15
|
+
]), {
|
|
16
|
+
:class => 'gallery-image',
|
|
17
|
+
:data => {
|
|
18
|
+
:id => uploader.model.id.to_s
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def crop_button_html(uploader)
|
|
24
|
+
content_tag(:span, I18n.translate('rademade_admin.crop'), {
|
|
25
|
+
:class => 'btn red-btn crop-btn',
|
|
26
|
+
:data => {
|
|
27
|
+
:crop => true,
|
|
28
|
+
:url => admin_url_for(:controller => 'gallery', :action => 'crop'),
|
|
29
|
+
:full_url => uploader.url,
|
|
30
|
+
:original_dimensions => uploader.original_dimensions.join(',')
|
|
31
|
+
}
|
|
32
|
+
}) if uploader.class.ancestors.include? RademadeAdmin::Uploader::CropPhoto
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def gallery_image_preview(uploader)
|
|
36
|
+
uploader.resize(150, 100)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
private
|
|
40
|
+
|
|
41
|
+
def gallery_image_html(uploader)
|
|
42
|
+
content_tag(:img, '', {
|
|
43
|
+
:src => gallery_image_preview(uploader),
|
|
44
|
+
:width => 150,
|
|
45
|
+
:height => 100
|
|
46
|
+
})
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def remove_ico_html(uploader)
|
|
50
|
+
content_tag(:span, 'x', {
|
|
51
|
+
:class => 'remove-ico',
|
|
52
|
+
:data => {
|
|
53
|
+
:url => admin_url_for(
|
|
54
|
+
:controller => 'gallery',
|
|
55
|
+
:action => 'remove',
|
|
56
|
+
:id => uploader.model.id.to_s
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -1,22 +1 @@
|
|
|
1
|
-
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Rademade Admin</title>
|
|
5
|
-
<%= stylesheet_link_tag(:rademade_admin, :media => 'all', 'data-turbolinks-track' => true) %>
|
|
6
|
-
<%= javascript_include_tag(:rademade_admin, 'data-turbolinks-track' => true) %>
|
|
7
|
-
<%= csrf_meta_tags %>
|
|
8
|
-
</head>
|
|
9
|
-
|
|
10
|
-
<body>
|
|
11
|
-
<div class="wrapper">
|
|
12
|
-
<%= yield %>
|
|
13
|
-
</div>
|
|
14
|
-
</body>
|
|
15
|
-
|
|
16
|
-
<%= javascript_tag do %>
|
|
17
|
-
I18n.defaultLocale = "<%= I18n.default_locale %>";
|
|
18
|
-
I18n.locale = "<%= I18n.locale %>";
|
|
19
|
-
I18n.fallbacks = true;
|
|
20
|
-
<% end %>
|
|
21
|
-
|
|
22
|
-
</html>
|
|
1
|
+
<%= render :template => @template_service.main_layout %>
|