adminpanel 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/Gemfile +6 -3
- data/README.md +6 -26
- data/adminpanel.gemspec +6 -3
- data/app/assets/javascripts/adminpanel/bootstrap-wysihtml5-4pre.js +9579 -0
- data/app/assets/javascripts/adminpanel/bootstrap-wysihtml5.js +9 -9
- data/app/assets/javascripts/adminpanel/realm.js +12 -8
- data/app/assets/javascripts/adminpanel/spinner.js.coffee +11 -0
- data/app/assets/javascripts/adminpanel/wysiwyg.js.coffee +3 -0
- data/app/assets/javascripts/application-admin.js +1 -0
- data/app/assets/stylesheets/adminpanel/{bootstrap.css → bootstrap.css.erb} +2 -2
- data/app/assets/stylesheets/adminpanel/{theme.css → theme.css.erb} +6 -6
- data/app/controllers/adminpanel/analytics_controller.rb +2 -1
- data/app/controllers/adminpanel/application_controller.rb +1 -0
- data/app/controllers/adminpanel/auths_controller.rb +8 -0
- data/app/controllers/adminpanel/categories_controller.rb +1 -1
- data/app/controllers/adminpanel/galleries_controller.rb +3 -11
- data/app/controllers/adminpanel/sections_controller.rb +5 -14
- data/app/controllers/adminpanel/users_controller.rb +1 -1
- data/app/controllers/concerns/adminpanel/facebook_actions.rb +64 -0
- data/app/controllers/concerns/adminpanel/galleryzable_actions.rb +12 -14
- data/app/controllers/concerns/adminpanel/rest_actions.rb +2 -2
- data/app/helpers/adminpanel/adminpanel_form_builder.rb +20 -2
- data/app/helpers/adminpanel/shared_pages_helper.rb +13 -0
- data/app/models/adminpanel/auth.rb +34 -0
- data/app/models/adminpanel/section.rb +1 -2
- data/app/models/adminpanel/user.rb +1 -2
- data/app/models/concerns/adminpanel/base.rb +10 -34
- data/app/models/concerns/adminpanel/facebook.rb +27 -0
- data/app/views/adminpanel/sections/edit.html.erb +0 -5
- data/app/views/adminpanel/sections/index.html.erb +1 -3
- data/app/views/layouts/_side_menu.html.erb +5 -4
- data/app/views/shared/_create_remote_resource_button.html.erb +23 -0
- data/app/views/shared/_fb_icon_button.html.erb +26 -0
- data/app/views/shared/_fb_publish_modal.html.erb +40 -0
- data/app/views/shared/_form_fields.html.erb +6 -50
- data/app/views/shared/_modal.html.erb +1 -1
- data/app/views/shared/create_belongs_to.js.erb +1 -1
- data/app/views/shared/create_has_many.js.erb +1 -1
- data/app/views/shared/fb_choose_page.html.erb +47 -0
- data/app/views/shared/index.html.erb +2 -0
- data/app/views/shared/show.html.erb +2 -0
- data/config/initializers/pluralization_es.rb +3 -0
- data/config/locales/es.yml +69 -60
- data/config/routes.rb +8 -1
- data/lib/adminpanel.rb +1 -0
- data/lib/adminpanel/engine.rb +4 -1
- data/lib/adminpanel/version.rb +1 -1
- data/lib/generators/adminpanel/gallery/gallery_generator.rb +2 -2
- data/lib/generators/adminpanel/initialize/initialize_generator.rb +2 -3
- data/lib/generators/adminpanel/initialize/templates/ability.rb +1 -1
- data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +6 -2
- data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +11 -0
- data/lib/generators/adminpanel/resource/resource_generator.rb +112 -130
- data/lib/generators/adminpanel/resource/templates/controller.rb +4 -1
- data/lib/generators/adminpanel/resource/templates/resource.rb +4 -1
- data/lib/tasks/adminpanel/adminpanel.rake +6 -2
- data/spec/dummy/app/controllers/adminpanel/salesmen_controller.rb +9 -0
- data/spec/dummy/app/models/adminpanel/category.rb +1 -0
- data/spec/dummy/app/models/adminpanel/mug.rb +2 -2
- data/spec/dummy/app/models/adminpanel/product.rb +4 -6
- data/spec/dummy/app/models/adminpanel/salesman.rb +35 -0
- data/spec/dummy/config/initializers/adminpanel_setup.rb +2 -1
- data/spec/dummy/db/schema.rb +13 -0
- data/spec/features/shared_pages/edit_spec.rb +48 -0
- data/spec/features/shared_pages/index_spec.rb +50 -0
- data/spec/features/shared_pages/new_spec.rb +128 -0
- data/spec/features/shared_pages/show_spec.rb +30 -0
- data/spec/generators/gallery_generator_spec.rb +1 -1
- data/spec/generators/resource_generator_spec.rb +36 -11
- data/spec/spec_helper.rb +12 -13
- data/spec/support/capybara_matchers.rb +17 -0
- data/spec/support/factories.rb +1 -1
- data/spec/support/helper_methods.rb +0 -18
- data/spec/support/shared_connection.rb +10 -0
- metadata +100 -21
- data/app/assets/javascripts/adminpanel/bootstrap-wysihtml5-3.min.js +0 -261
- data/app/assets/javascripts/adminpanel/medium-editor.js +0 -703
- data/app/assets/javascripts/adminpanel/wysiwyg.js +0 -5
- data/app/assets/stylesheets/adminpanel/medium-editor.css.scss +0 -1
- data/app/views/shared/_init_editor.html.erb +0 -27
- data/lib/generators/adminpanel/resource/templates/migration.rb +0 -13
- data/spec/features/shared_pages_spec.rb +0 -128
@@ -6,7 +6,7 @@
|
|
6
6
|
var size = (options && options.size) ? ' btn-'+options.size : '';
|
7
7
|
return "<li class='dropdown'>" +
|
8
8
|
"<a class='btn dropdown-toggle" + size + "' data-toggle='dropdown' href='#'>" +
|
9
|
-
"<i class='
|
9
|
+
"<i class='fa fa-font'></i> <span class='current-font'>" + locale.font_styles.normal + "</span> <b class='caret'></b>" +
|
10
10
|
"</a>" +
|
11
11
|
"<ul class='dropdown-menu'>" +
|
12
12
|
"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='div' tabindex='-1'>" + locale.font_styles.normal + "</a></li>" +
|
@@ -24,9 +24,9 @@
|
|
24
24
|
var size = (options && options.size) ? ' btn-'+options.size : '';
|
25
25
|
return "<li>" +
|
26
26
|
"<div class='btn-group'>" +
|
27
|
-
"<a class='btn
|
28
|
-
"<a class='btn
|
29
|
-
"<a class='btn
|
27
|
+
"<a class='btn' data-wysihtml5-command='bold' title='CTRL+B' tabindex='-1'><i class='fa fa-bold'></i></a>" +
|
28
|
+
"<a class='btn' data-wysihtml5-command='italic' title='CTRL+I' tabindex='-1'><i class='fa fa-italic'></i></a>" +
|
29
|
+
"<a class='btn' data-wysihtml5-command='underline' title='CTRL+U' tabindex='-1'><i class='fa fa-underline'></i></a>" +
|
30
30
|
"</div>" +
|
31
31
|
"</li>";
|
32
32
|
},
|
@@ -35,10 +35,10 @@
|
|
35
35
|
var size = (options && options.size) ? ' btn-'+options.size : '';
|
36
36
|
return "<li>" +
|
37
37
|
"<div class='btn-group'>" +
|
38
|
-
"<a class='btn" + size + "' data-wysihtml5-command='insertUnorderedList' title='" + locale.lists.unordered + "' tabindex='-1'><i class='
|
39
|
-
"<a class='btn" + size + "' data-wysihtml5-command='insertOrderedList' title='" + locale.lists.ordered + "' tabindex='-1'><i class='
|
40
|
-
"<a class='btn" + size + "' data-wysihtml5-command='Outdent' title='" + locale.lists.outdent + "' tabindex='-1'><i class='
|
41
|
-
"<a class='btn" + size + "' data-wysihtml5-command='Indent' title='" + locale.lists.indent + "' tabindex='-1'><i class='
|
38
|
+
"<a class='btn" + size + "' data-wysihtml5-command='insertUnorderedList' title='" + locale.lists.unordered + "' tabindex='-1'><i class='fa fa-list-ul'></i></a>" +
|
39
|
+
"<a class='btn" + size + "' data-wysihtml5-command='insertOrderedList' title='" + locale.lists.ordered + "' tabindex='-1'><i class='fa fa-list-ol'></i></a>" +
|
40
|
+
"<a class='btn" + size + "' data-wysihtml5-command='Outdent' title='" + locale.lists.outdent + "' tabindex='-1'><i class='fa fa-outdent'></i></a>" +
|
41
|
+
"<a class='btn" + size + "' data-wysihtml5-command='Indent' title='" + locale.lists.indent + "' tabindex='-1'><i class='fa fa-indent'></i></a>" +
|
42
42
|
"</div>" +
|
43
43
|
"</li>";
|
44
44
|
},
|
@@ -88,7 +88,7 @@
|
|
88
88
|
var size = (options && options.size) ? ' btn-'+options.size : '';
|
89
89
|
return "<li>" +
|
90
90
|
"<div class='btn-group'>" +
|
91
|
-
"<a class='btn" + size + "' data-wysihtml5-action='change_view' title='" + locale.html.edit + "' tabindex='-1'><i class='
|
91
|
+
"<a class='btn" + size + "' data-wysihtml5-action='change_view' title='" + locale.html.edit + "' tabindex='-1'><i class='fa fa-pencil'></i></a>" +
|
92
92
|
"</div>" +
|
93
93
|
"</li>";
|
94
94
|
},
|
@@ -1,9 +1,9 @@
|
|
1
1
|
|
2
|
-
|
2
|
+
var ready = function(){
|
3
3
|
|
4
|
-
// toggle arrow on menu items
|
4
|
+
// toggle arrow on menu items
|
5
5
|
$('.accordion-heading .accordion-toggle').click(function(){
|
6
|
-
$('.accordion-heading .accordion-toggle').not($(this)[0], '.accordion-heading .accordion-toggle.collapse').addClass('collapsed');
|
6
|
+
$('.accordion-heading .accordion-toggle').not($(this)[0], '.accordion-heading .accordion-toggle.collapse').addClass('collapsed');
|
7
7
|
});
|
8
8
|
|
9
9
|
|
@@ -26,7 +26,7 @@ $(function() {
|
|
26
26
|
});
|
27
27
|
|
28
28
|
|
29
|
-
// funtion to slide menu out from the left
|
29
|
+
// funtion to slide menu out from the left
|
30
30
|
$('.slide_menu_left').click(function(e){
|
31
31
|
|
32
32
|
e.preventDefault();
|
@@ -43,7 +43,7 @@ $(function() {
|
|
43
43
|
// $(window).bind('resize', handler);
|
44
44
|
}
|
45
45
|
});
|
46
|
-
|
46
|
+
|
47
47
|
|
48
48
|
// collapse function for the widget
|
49
49
|
$('.widget-buttons a.collapse').click(function(){
|
@@ -57,10 +57,14 @@ $(function() {
|
|
57
57
|
});
|
58
58
|
|
59
59
|
$('.datepicker-basic').datepicker();
|
60
|
-
}); // end document reday
|
61
60
|
|
61
|
+
};
|
62
|
+
|
63
|
+
$(document).ready(ready);
|
64
|
+
$(document).on('page:load', ready);
|
62
65
|
|
63
|
-
|
66
|
+
|
67
|
+
//----- Side menu functions -----
|
64
68
|
|
65
69
|
// slide menu out of view
|
66
70
|
function sidemenu_close(){
|
@@ -84,4 +88,4 @@ $(function() {
|
|
84
88
|
$(".nav-collapse.collapse").stop().animate({
|
85
89
|
'left': '0'
|
86
90
|
}, 250, 'swing').addClass('open_left');
|
87
|
-
}
|
91
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
$(document).on 'click', 'a.accordion-toggle', ->
|
2
|
+
$( this ).attr('data-clicked', true)
|
3
|
+
|
4
|
+
$(document).on 'page:fetch', ->
|
5
|
+
$('a.accordion-toggle[data-clicked="true"]').children('i:first').toggleClass('hidden')
|
6
|
+
$('a.accordion-toggle[data-clicked="true"]').prepend('<i class="fa fa-spinner fa-spin"></i>')
|
7
|
+
|
8
|
+
$(document).on 'page:restore', ->
|
9
|
+
$('a.accordion-toggle[data-clicked="true"]').children('i:first').remove()
|
10
|
+
$('a.accordion-toggle[data-clicked="true"]').children('i:first').toggleClass 'hidden'
|
11
|
+
$('a.accordion-toggle[data-clicked="true"]').attr 'data-clicked', false
|
@@ -2368,7 +2368,7 @@ input[type="submit"].btn.btn-mini {
|
|
2368
2368
|
*margin-right: .3em;
|
2369
2369
|
line-height: 14px;
|
2370
2370
|
vertical-align: text-top;
|
2371
|
-
background-image: url(
|
2371
|
+
background-image: url(asset_path 'adminpanel/glyphicons-halflings.png');
|
2372
2372
|
background-position: 14px 14px;
|
2373
2373
|
background-repeat: no-repeat;
|
2374
2374
|
margin-top: 1px;
|
@@ -2387,7 +2387,7 @@ input[type="submit"].btn.btn-mini {
|
|
2387
2387
|
.dropdown-menu > .active > a > [class*=" icon-"],
|
2388
2388
|
.dropdown-submenu:hover > a > [class^="icon-"],
|
2389
2389
|
.dropdown-submenu:hover > a > [class*=" icon-"] {
|
2390
|
-
background-image: url(
|
2390
|
+
background-image: url(asset_path 'adminpanel/glyphicons-halflings-white.png');
|
2391
2391
|
}
|
2392
2392
|
.icon-glass {
|
2393
2393
|
background-position: 0 0;
|
@@ -12,7 +12,7 @@ html, body{
|
|
12
12
|
body{
|
13
13
|
padding-top: 45px;
|
14
14
|
font-family: 'Open Sans', sans-serif;
|
15
|
-
background-image: url(
|
15
|
+
background-image: url(<%= asset_path 'adminpanel/dotted.png' %>);
|
16
16
|
overflow-x: hidden;
|
17
17
|
}
|
18
18
|
h2{
|
@@ -307,12 +307,12 @@ table.table thead .sorting_desc_disabled {
|
|
307
307
|
cursor: pointer;
|
308
308
|
*cursor: hand;
|
309
309
|
}
|
310
|
-
table.table thead .sorting { background: url('sort_both.png') no-repeat center right; }
|
311
|
-
table.table thead .sorting_asc { background: url('sort_asc.png') no-repeat center right; }
|
312
|
-
table.table thead .sorting_desc { background: url('sort_desc.png') no-repeat center right; }
|
310
|
+
table.table thead .sorting { background: url(<%= asset_path 'adminpanel/sort_both.png' %>) no-repeat center right; }
|
311
|
+
table.table thead .sorting_asc { background: url(<%= asset_path 'adminpanel/sort_asc.png' %>) no-repeat center right; }
|
312
|
+
table.table thead .sorting_desc { background: url(<%= asset_path 'adminpanel/sort_desc.png' %>) no-repeat center right; }
|
313
313
|
|
314
|
-
table.table thead .sorting_asc_disabled { background: url('sort_asc_disabled.png') no-repeat center right; }
|
315
|
-
table.table thead .sorting_desc_disabled { background: url('sort_desc_disabled.png') no-repeat center right; }
|
314
|
+
table.table thead .sorting_asc_disabled { background: url(<%= asset_path 'adminpanel/sort_asc_disabled.png' %>) no-repeat center right; }
|
315
|
+
table.table thead .sorting_desc_disabled { background: url(<%= asset_path 'adminpanel/sort_desc_disabled.png' %>) no-repeat center right; }
|
316
316
|
.dataTables_filter{
|
317
317
|
text-align: right;
|
318
318
|
}
|
@@ -62,7 +62,7 @@ module Adminpanel
|
|
62
62
|
)
|
63
63
|
|
64
64
|
@visits = @visitCount.data.rows.collect do |r|
|
65
|
-
|
65
|
+
r[2]
|
66
66
|
end
|
67
67
|
|
68
68
|
@visitDates = @visitCount.data.rows.collect { |r| "#{r[0]}/#{r[1]}" }
|
@@ -73,5 +73,6 @@ module Adminpanel
|
|
73
73
|
format.json {render :json => {:visit_count => @visitCount, :visits => @visits, :visit_dates => @visitDates }}
|
74
74
|
end
|
75
75
|
end
|
76
|
+
|
76
77
|
end
|
77
78
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Adminpanel
|
2
2
|
class GalleriesController < Adminpanel::ApplicationController
|
3
|
-
|
3
|
+
authorize_resource
|
4
4
|
|
5
5
|
def index
|
6
6
|
@galleries = Gallery.all
|
@@ -26,11 +26,7 @@ module Adminpanel
|
|
26
26
|
|
27
27
|
def move_better
|
28
28
|
@gallery = Gallery.find(params[:id])
|
29
|
-
|
30
|
-
flash[:success] = t("gallery.moved")
|
31
|
-
else
|
32
|
-
flash[:warning] = t("gallery.not-moved")
|
33
|
-
end
|
29
|
+
@gallery.move_to_better_position
|
34
30
|
respond_to do |format|
|
35
31
|
format.html do
|
36
32
|
redirect_to galleries_path
|
@@ -44,11 +40,7 @@ module Adminpanel
|
|
44
40
|
|
45
41
|
def move_worst
|
46
42
|
@gallery = Gallery.find(params[:id])
|
47
|
-
|
48
|
-
flash[:success] = t("gallery.moved")
|
49
|
-
else
|
50
|
-
flash[:warning] = t("gallery.not-moved")
|
51
|
-
end
|
43
|
+
@gallery.move_to_worst_position
|
52
44
|
respond_to do |format|
|
53
45
|
format.html do
|
54
46
|
redirect_to galleries_path
|
@@ -1,19 +1,10 @@
|
|
1
1
|
module Adminpanel
|
2
2
|
class SectionsController < Adminpanel::ApplicationController
|
3
|
-
|
4
|
-
|
5
|
-
def new
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
# def create
|
10
|
-
# @section = Section.new(params[:section])
|
11
|
-
|
12
|
-
# if @section.save
|
13
|
-
# redirect_to section_path(@section), :notice => 'La seccion ha sido creada'
|
14
|
-
# else
|
15
|
-
# render 'new'
|
16
|
-
# end
|
3
|
+
# authorize_resource
|
4
|
+
authorize_resource
|
5
|
+
# def new
|
6
|
+
# @section = Section.new
|
7
|
+
# authorize! :create, @section
|
17
8
|
# end
|
18
9
|
|
19
10
|
def edit
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Adminpanel
|
2
|
+
module FacebookActions
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
include ActionView::Helpers::TextHelper
|
5
|
+
|
6
|
+
included do
|
7
|
+
before_filter :set_auths_count, only:[:index, :show, :destroy]
|
8
|
+
end
|
9
|
+
|
10
|
+
def fb_choose_page
|
11
|
+
access_token = Koala::Facebook::OAuth.new(
|
12
|
+
Adminpanel.fb_app_id,
|
13
|
+
Adminpanel.fb_app_secret,
|
14
|
+
url_for({
|
15
|
+
controller: params[:controller],
|
16
|
+
action: :fb_choose_page,
|
17
|
+
id: resource,
|
18
|
+
host: request.host
|
19
|
+
})
|
20
|
+
).get_access_token(params[:code]) if params[:code]
|
21
|
+
user = Koala::Facebook::API.new(access_token)
|
22
|
+
@pages = user.get_connections('me', 'accounts')
|
23
|
+
user_object = user.get_object('me')
|
24
|
+
@name = user_object['name']
|
25
|
+
user_hash = { 'name' => @name, 'access_token' => access_token }
|
26
|
+
@pages << user_hash # to permit post on own profile
|
27
|
+
render 'shared/fb_choose_page'
|
28
|
+
end
|
29
|
+
|
30
|
+
def fb_save_token
|
31
|
+
page_selected = Koala::Facebook::API.new(params[@model.name.demodulize.downcase][:fb_page_access_key])
|
32
|
+
@auths = Auth.where(key: 'facebook', name: page_selected.get_object('me')['name'])
|
33
|
+
if @auths.count == 0
|
34
|
+
Auth.create(
|
35
|
+
key: 'facebook',
|
36
|
+
name: page_selected.get_object('me')['name'],
|
37
|
+
value: params[@model.name.demodulize.downcase][:fb_page_access_key]
|
38
|
+
)
|
39
|
+
else
|
40
|
+
@auths.first.update_attribute(:value, params[@mode.name.demodulize.downcase][:fb_page_access_key])
|
41
|
+
end
|
42
|
+
flash[:success] = I18n.t('fb.saved-token')
|
43
|
+
redirect_to resource
|
44
|
+
end
|
45
|
+
|
46
|
+
def fb_publish
|
47
|
+
page_graph = Koala::Facebook::API.new(Auth.find_by_key('facebook').value)
|
48
|
+
page_graph.put_wall_post(
|
49
|
+
strip_tags(params[@model.name.demodulize.downcase][:fb_message]),
|
50
|
+
{
|
51
|
+
link: resource.fb_link,
|
52
|
+
name: resource.name
|
53
|
+
}
|
54
|
+
)
|
55
|
+
flash[:success] = I18n.t('fb.posted', user: page_graph.get_object('me')['name'])
|
56
|
+
redirect_to resource
|
57
|
+
end
|
58
|
+
|
59
|
+
private
|
60
|
+
def set_auths_count
|
61
|
+
@fb_auths_count = Auth.where(key: 'facebook').count
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -3,28 +3,26 @@ module Adminpanel
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
def move_better
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
render 'shared/gallery_entries', :locals => {
|
11
|
-
:collection => @model.where(
|
12
|
-
@model.relation_field.to_sym => resource.send(@model.relation_field)
|
13
|
-
)
|
14
|
-
}
|
15
|
-
end
|
16
|
-
end
|
6
|
+
resource = @model.find(params[:id])
|
7
|
+
resource.move_to_better_position
|
8
|
+
respond
|
9
|
+
|
17
10
|
end
|
18
11
|
|
19
12
|
def move_worst
|
13
|
+
resource = @model.find(params[:id])
|
14
|
+
resource.move_to_worst_position
|
15
|
+
respond
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def respond
|
20
20
|
respond_to do |format|
|
21
21
|
format.js do
|
22
|
-
resource = @model.find(params[:id])
|
23
|
-
resource.move_to_worst_position
|
24
22
|
render 'shared/gallery_entries', :locals => {
|
25
23
|
:collection => @model.where(
|
26
24
|
@model.relation_field.to_sym => resource.send(@model.relation_field)
|
27
|
-
|
25
|
+
)
|
28
26
|
}
|
29
27
|
end
|
30
28
|
end
|
@@ -86,13 +86,13 @@ module Adminpanel
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def set_belongs_to_collections
|
89
|
-
@model.
|
89
|
+
@model.relationships_of('belongs_to').each do |class_variable|
|
90
90
|
set_relationship(class_variable)
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
94
|
def set_has_many_collections
|
95
|
-
@model.
|
95
|
+
@model.relationships_of('has_many').each do |class_variable|
|
96
96
|
set_relationship(class_variable)
|
97
97
|
end
|
98
98
|
end
|
@@ -4,6 +4,7 @@ module Adminpanel
|
|
4
4
|
alias_method :text_field_original, :text_field
|
5
5
|
alias_method :radio_button_original, :radio_button
|
6
6
|
alias_method :parent_file_field, :file_field
|
7
|
+
alias_method :text_area_original, :text_area
|
7
8
|
|
8
9
|
def text_field(name, *args)
|
9
10
|
options = args.extract_options!
|
@@ -76,7 +77,7 @@ module Adminpanel
|
|
76
77
|
@template.content_tag(:div, :class => 'control-group') do
|
77
78
|
@template.content_tag(:label, label, :class => 'control-label') +
|
78
79
|
@template.content_tag(:div, :class => 'controls') do
|
79
|
-
|
80
|
+
text_area_original(
|
80
81
|
name,
|
81
82
|
class: 'wysihtml5 span10',
|
82
83
|
placeholder: I18n.t('wysiwyg.description'),
|
@@ -86,8 +87,25 @@ module Adminpanel
|
|
86
87
|
end
|
87
88
|
end
|
88
89
|
|
89
|
-
def
|
90
|
+
def text_area(name, *args)
|
91
|
+
options = args.extract_options!
|
92
|
+
label = options['label']
|
93
|
+
options.delete('label')
|
90
94
|
|
95
|
+
@template.content_tag(:div, :class => 'control-group') do
|
96
|
+
@template.content_tag(:label, label, :class => 'control-label') +
|
97
|
+
@template.content_tag(:div, :class => 'controls') do
|
98
|
+
super(
|
99
|
+
name,
|
100
|
+
class: 'span10',
|
101
|
+
placeholder: I18n.t('wysiwyg.description'),
|
102
|
+
rows: '4'
|
103
|
+
)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def radio_button_group(name, buttons, options)
|
91
109
|
options.reverse_merge! :label => name
|
92
110
|
options.reverse_merge! :html => {}
|
93
111
|
output = ""
|