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
@@ -36,5 +36,18 @@ module Adminpanel
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
def get_oauth_link(resource)
|
40
|
+
Koala::Facebook::OAuth.new(
|
41
|
+
Adminpanel.fb_app_id,
|
42
|
+
Adminpanel.fb_app_secret,
|
43
|
+
url_for({
|
44
|
+
controller: params[:controller],
|
45
|
+
action: 'fb_choose_page',
|
46
|
+
id: resource,
|
47
|
+
host: request.host
|
48
|
+
})
|
49
|
+
).url_for_oauth_code
|
50
|
+
end
|
51
|
+
|
39
52
|
end
|
40
53
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Adminpanel
|
2
|
+
class Auth < ActiveRecord::Base
|
3
|
+
include Adminpanel::Base
|
4
|
+
|
5
|
+
def self.form_attributes
|
6
|
+
[
|
7
|
+
{
|
8
|
+
'name' => {
|
9
|
+
'type' => 'text_field',
|
10
|
+
'label' => 'Cuenta:'
|
11
|
+
}
|
12
|
+
},
|
13
|
+
{
|
14
|
+
'value' => {
|
15
|
+
'type' => 'wysiwyg_field',
|
16
|
+
'show' => 'show',
|
17
|
+
'label' => 'Access Key'
|
18
|
+
}
|
19
|
+
},
|
20
|
+
{
|
21
|
+
'key' => {
|
22
|
+
'type' => 'text_field',
|
23
|
+
'show' => 'show',
|
24
|
+
'label' => 'Llave'
|
25
|
+
}
|
26
|
+
}
|
27
|
+
]
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.display_name
|
31
|
+
'Cuenta'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -41,13 +41,12 @@ module Adminpanel
|
|
41
41
|
{'name' => {'name' => 'name', 'label' => 'Seccion'}},
|
42
42
|
{'key' => {'name' => 'key', 'label' => 'Llave'}},
|
43
43
|
{'page' => {'name' => 'page'}},
|
44
|
-
# {'key' => {'name' => 'key'}},
|
45
44
|
]
|
46
45
|
|
47
46
|
end
|
48
47
|
|
49
48
|
def self.icon
|
50
|
-
|
49
|
+
'tasks'
|
51
50
|
end
|
52
51
|
|
53
52
|
def self.display_name
|
@@ -11,12 +11,7 @@ module Adminpanel
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def form_attributes
|
14
|
-
[
|
15
|
-
'name' => {
|
16
|
-
'type' => 'text_field',
|
17
|
-
'label' => 'name'
|
18
|
-
}
|
19
|
-
}]
|
14
|
+
[]
|
20
15
|
end
|
21
16
|
|
22
17
|
def display_name
|
@@ -34,17 +29,6 @@ module Adminpanel
|
|
34
29
|
return "field #{field} 'label' property not found :("
|
35
30
|
end
|
36
31
|
|
37
|
-
def get_attribute_placeholder(field)
|
38
|
-
form_attributes.each do |attribute|
|
39
|
-
attribute.each do |name, properties|
|
40
|
-
if name == field
|
41
|
-
return properties['placeholder']
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
return "field #{field} 'placeholder' property not found :("
|
46
|
-
end
|
47
|
-
|
48
32
|
def display_attributes(type)
|
49
33
|
display_attributes = []
|
50
34
|
form_attributes.each do |attribute|
|
@@ -82,28 +66,16 @@ module Adminpanel
|
|
82
66
|
return false
|
83
67
|
end
|
84
68
|
|
85
|
-
def
|
86
|
-
|
69
|
+
def relationships_of(type_property)
|
70
|
+
classes_of_relation = []
|
87
71
|
form_attributes.each do |fields|
|
88
72
|
fields.each do |attribute, properties|
|
89
|
-
if properties['type'] ==
|
90
|
-
|
73
|
+
if properties['type'] == type_property
|
74
|
+
classes_of_relation << properties['model'].classify.constantize
|
91
75
|
end
|
92
76
|
end
|
93
77
|
end
|
94
|
-
return
|
95
|
-
end
|
96
|
-
|
97
|
-
def has_many_relationships
|
98
|
-
has_many_classes = []
|
99
|
-
form_attributes.each do |fields|
|
100
|
-
fields.each do |attribute, properties|
|
101
|
-
if properties['type'] == 'has_many'
|
102
|
-
has_many_classes << properties['model'].classify.constantize
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
return has_many_classes
|
78
|
+
return classes_of_relation
|
107
79
|
end
|
108
80
|
|
109
81
|
def icon
|
@@ -128,6 +100,10 @@ module Adminpanel
|
|
128
100
|
false
|
129
101
|
end
|
130
102
|
end
|
103
|
+
|
104
|
+
def fb_share?
|
105
|
+
false
|
106
|
+
end
|
131
107
|
|
132
108
|
private
|
133
109
|
def exlude?(route)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Adminpanel
|
2
|
+
module Facebook
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
included do
|
5
|
+
attr_accessor :fb_page_access_key, :fb_message
|
6
|
+
end
|
7
|
+
|
8
|
+
#instance methods
|
9
|
+
# def get_oauth_link
|
10
|
+
# Koala::Facebook::OAuth.new(
|
11
|
+
# Adminpanel.fb_app_id,
|
12
|
+
# Adminpanel.fb_app_secret,
|
13
|
+
# )
|
14
|
+
# end
|
15
|
+
def fb_link
|
16
|
+
'www.google.com'
|
17
|
+
end
|
18
|
+
|
19
|
+
# static(class) methods
|
20
|
+
module ClassMethods
|
21
|
+
def fb_share?
|
22
|
+
true
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -14,11 +14,6 @@
|
|
14
14
|
<%= f.hidden_field 'description', :id => "description-field", :value => @section.description %>
|
15
15
|
</div>
|
16
16
|
<%= f.wysiwyg_field 'description', 'label' => I18n.t('section.description'), :name => 'description' %>
|
17
|
-
<%= content_for :scripts do %>
|
18
|
-
<script type="text/javascript">
|
19
|
-
<%= render "shared/init_editor", :field_var => 'description', :label => 'description' %>
|
20
|
-
</script>
|
21
|
-
<% end %>
|
22
17
|
<% else %>
|
23
18
|
<%= f.text_field 'description', :label => t("section.description") %>
|
24
19
|
<% end %>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
)
|
12
12
|
%>
|
13
13
|
</div>
|
14
|
-
<div class="accordion"
|
14
|
+
<div class="accordion">
|
15
15
|
<% Adminpanel.displayable_resources.each do |resource| %>
|
16
16
|
<% resource_class = symbol_class(resource) %>
|
17
17
|
<% if can? :read, resource_class %>
|
@@ -23,10 +23,11 @@
|
|
23
23
|
:i,
|
24
24
|
nil,
|
25
25
|
class:"fa fa-#{resource_class.icon}"
|
26
|
-
) + content_tag(:span," " + resource_class.display_name.pluralize(I18n.default_locale)
|
26
|
+
) + content_tag(:span," " + resource_class.display_name.pluralize(I18n.default_locale)
|
27
|
+
),
|
27
28
|
[route_symbol(resource.to_s)],
|
28
|
-
:
|
29
|
-
|
29
|
+
data: { no_transition_cache: true },
|
30
|
+
class: "accordion-toggle b_99FFCC #{is_current_section?(resource_class.display_name)}"
|
30
31
|
)
|
31
32
|
%>
|
32
33
|
</div>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<!--
|
2
|
+
Button to create a new of remote resource
|
3
|
+
if it's supposed to be created in relation model
|
4
|
+
-->
|
5
|
+
<% demodulized_remote_model_name = remote_resource_name.classify.constantize.model_name.to_s.demodulize.downcase %>
|
6
|
+
<%=
|
7
|
+
link_to(
|
8
|
+
I18n.t('other.add',
|
9
|
+
:model => remote_resource_name.classify.constantize.display_name
|
10
|
+
),
|
11
|
+
polymorphic_path(
|
12
|
+
[:new, :"#{demodulized_remote_model_name}"],
|
13
|
+
:model => @model.display_name,
|
14
|
+
:model_name => @model.name.demodulize.downcase,
|
15
|
+
:belongs_request => defined? belongs_request
|
16
|
+
),
|
17
|
+
:class => 'btn btn-info',
|
18
|
+
:id => "#{demodulized_remote_model_name}-modal-link",
|
19
|
+
:'data-target' => "#remote-form-modal",
|
20
|
+
:'data-toggle' => 'modal',
|
21
|
+
:remote => true
|
22
|
+
)
|
23
|
+
%>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%
|
2
|
+
if @model.fb_share?
|
3
|
+
if @fb_auths_count > 0
|
4
|
+
link = '#'
|
5
|
+
options = { target: "#fb-#{resource.id}", toggle: 'modal' }
|
6
|
+
else
|
7
|
+
link = get_oauth_link(resource)
|
8
|
+
options = {}
|
9
|
+
end
|
10
|
+
%>
|
11
|
+
<%=
|
12
|
+
link_to(
|
13
|
+
content_tag(
|
14
|
+
:i,
|
15
|
+
nil,
|
16
|
+
class: 'fa fa-facebook'
|
17
|
+
),
|
18
|
+
link,
|
19
|
+
title: 'Compartir en Facebook',
|
20
|
+
id: 'resource-publish',
|
21
|
+
data: options
|
22
|
+
)
|
23
|
+
%>
|
24
|
+
<!-- the modal that it's going to toggle if exist the fb acces token -->
|
25
|
+
<%= render 'shared/fb_publish_modal', resource: resource %>
|
26
|
+
<% end %>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<div id="fb-<%= resource.id %>" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
2
|
+
<div class="modal-header" id="modal-header">
|
3
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
4
|
+
<h3 id="modal-title"><%= I18n.t('action.publish') %> en Facebook</h3>
|
5
|
+
</div>
|
6
|
+
<div id="modal-container">
|
7
|
+
<%=
|
8
|
+
adminpanel_form_for(
|
9
|
+
resource,
|
10
|
+
url: url_for({
|
11
|
+
controller: params[:controller],
|
12
|
+
action: :fb_publish,
|
13
|
+
id: resource
|
14
|
+
}),
|
15
|
+
method: :post
|
16
|
+
) do |f|
|
17
|
+
%>
|
18
|
+
<div class="row-fluid">
|
19
|
+
<div class="modal-body">
|
20
|
+
<%= f.text_area :fb_message, { 'label' => I18n.t('fb.message') } %>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
<div class="modal-footer">
|
24
|
+
<button id="modal-button" class="btn" data-dismiss="modal" aria-hidden="true">
|
25
|
+
<%= I18n.t('action.close') %>
|
26
|
+
</button>
|
27
|
+
<%=
|
28
|
+
f.submit(
|
29
|
+
I18n.t('action.publish') + " " + @model.display_name,
|
30
|
+
data: {
|
31
|
+
:disable_with => I18n.t('action.submitting')
|
32
|
+
},
|
33
|
+
:id =>"new-#{@model.name.demodulize}-button"
|
34
|
+
)
|
35
|
+
%>
|
36
|
+
</div>
|
37
|
+
<% end %>
|
38
|
+
|
39
|
+
</div>
|
40
|
+
</div>
|
@@ -4,10 +4,7 @@
|
|
4
4
|
<% field_type = properties['type'] %>
|
5
5
|
<% properties = properties.except('type') %>
|
6
6
|
|
7
|
-
<% if field_type == '
|
8
|
-
<%= f.send(field_type, attribute) %>
|
9
|
-
|
10
|
-
<% elsif field_type == 'adminpanel_file_field' %>
|
7
|
+
<% if field_type == 'adminpanel_file_field' %>
|
11
8
|
|
12
9
|
<% if !defined? remote_request %>
|
13
10
|
<!-- if not making resource from other form -->
|
@@ -27,32 +24,10 @@
|
|
27
24
|
<% args = properties.except('model') %>
|
28
25
|
<%= f.select(attribute, (@collections["#{properties["model"]}"].collect{|resource| [resource.name, resource.id]}), args) %>
|
29
26
|
|
30
|
-
|
31
27
|
<% if(properties['remote_resource'].nil? || properties['remote_resource']) %>
|
32
|
-
|
33
|
-
Button to create a new of this belongs_to resource
|
34
|
-
if it's supposed to be created remotely
|
35
|
-
-->
|
36
|
-
<% model_name = properties['model'].classify.constantize.model_name.to_s.demodulize.downcase %>
|
37
|
-
<%=
|
38
|
-
link_to(
|
39
|
-
I18n.t('other.add',
|
40
|
-
:model => properties['model'].classify.constantize.display_name
|
41
|
-
),
|
42
|
-
polymorphic_path(
|
43
|
-
[:new, :"#{model_name}"],
|
44
|
-
:model => @model.display_name,
|
45
|
-
:model_name => @model.name.demodulize.downcase,
|
46
|
-
:belongs_request => true
|
47
|
-
),
|
48
|
-
:class => 'btn btn-info',
|
49
|
-
:id => "#{model_name}-modal-link",
|
50
|
-
:'data-target' => "#new-modal",
|
51
|
-
:'data-toggle' => 'modal',
|
52
|
-
:remote => true
|
53
|
-
)
|
54
|
-
%>
|
28
|
+
<%= render 'shared/create_remote_resource_button', belongs_request: true, remote_resource_name: properties['model'] %>
|
55
29
|
<% end %>
|
30
|
+
|
56
31
|
<% end %>
|
57
32
|
<% elsif field_type == 'has_many' %>
|
58
33
|
<% if !defined? remote_request %>
|
@@ -63,32 +38,13 @@
|
|
63
38
|
<%= hidden_field_tag("#{class_name_downcase(f.object)}[#{relationship_ids(properties["model"])}][]", nil) %>
|
64
39
|
<div class="controls" id="<%= properties['model'].demodulize.downcase %>-relation">
|
65
40
|
<% @collections["#{properties['model']}"].each do |resource| %>
|
66
|
-
<%= f.checkbox(resource, class_name_downcase(f.object)
|
41
|
+
<%= f.checkbox(resource, class_name_downcase(f.object), relationship_ids(properties['model'])) %>
|
67
42
|
<% end %>
|
68
43
|
</div>
|
69
44
|
</div>
|
70
45
|
|
71
|
-
<% if
|
72
|
-
|
73
|
-
if it can be created remotely -->
|
74
|
-
<% model_name = properties['model'].classify.constantize.model_name.to_s.demodulize.downcase %>
|
75
|
-
<%=
|
76
|
-
link_to(
|
77
|
-
I18n.t('other.add',
|
78
|
-
:model => properties['model'].classify.constantize.display_name
|
79
|
-
),
|
80
|
-
polymorphic_path(
|
81
|
-
[:new, :"#{model_name}"],
|
82
|
-
:model => @model.display_name,
|
83
|
-
:model_name => @model.name.demodulize.downcase
|
84
|
-
),
|
85
|
-
:class => 'btn btn-info',
|
86
|
-
:id => "#{model_name}-modal-link",
|
87
|
-
:'data-target' => "#new-modal",
|
88
|
-
:'data-toggle' => 'modal',
|
89
|
-
:remote => true
|
90
|
-
)
|
91
|
-
%>
|
46
|
+
<% if(properties['remote_resource'].nil? || properties['remote_resource']) %>
|
47
|
+
<%= render 'shared/create_remote_resource_button', remote_resource_name: properties['model'] %>
|
92
48
|
<% end %>
|
93
49
|
<% end %>
|
94
50
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div id="
|
1
|
+
<div id="remote-form-modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
2
2
|
<div class="modal-header" id="modal-header">
|
3
3
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
4
4
|
<h3 id="modal-title"></h3>
|
@@ -2,4 +2,4 @@ var model_name = "<%= params[:model_name] %>";
|
|
2
2
|
var new_model = "<%= @model.name.demodulize.downcase %>";
|
3
3
|
var option = '<option value="<%= resource.id %>" selected="selected"><%= resource.name %></option>';
|
4
4
|
$("#" + model_name + "_" + new_model + "_id").append(option);
|
5
|
-
$("#
|
5
|
+
$("#remote-form-modal").modal('toggle');
|
@@ -2,4 +2,4 @@ var model_name = "<%= params[:model_name] %>";
|
|
2
2
|
var new_model = "<%= @model.name.demodulize.downcase %>";
|
3
3
|
row = '<label class="checkbox"><input checked="checked" id="' + model_name + '_' + new_model + '_ids_" name="' + model_name + '[' + new_model + '_ids][]" type="checkbox" value="<%= resource.id %>"><%= resource.name %></label>';
|
4
4
|
$("#" + new_model + "-relation").append(row);
|
5
|
-
$("#
|
5
|
+
$("#remote-form-modal").modal('toggle');
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<% provide(:page_title, I18n.t('fb.pages', name: @name)) %>
|
2
|
+
<% breadcrumb_add(
|
3
|
+
@model.display_name.capitalize.pluralize(I18n.default_locale),
|
4
|
+
{
|
5
|
+
:controller => params[:controller],
|
6
|
+
:action => "index"
|
7
|
+
}
|
8
|
+
)
|
9
|
+
%>
|
10
|
+
<div class="row-fluid">
|
11
|
+
<div class = "widget widget-padding span12">
|
12
|
+
<div class = "widget-header">
|
13
|
+
<%= content_tag(:i, nil, :class => "fa fa-#{@model.icon}") %>
|
14
|
+
<h5><%= t("action.share", model: @model.display_name) %></h5>
|
15
|
+
</div>
|
16
|
+
<div class = "widget-body">
|
17
|
+
<div class = "widget-forms clearfix">
|
18
|
+
<%= adminpanel_form_for(
|
19
|
+
resource,
|
20
|
+
url: url_for({
|
21
|
+
controller: params[:controller],
|
22
|
+
action: :fb_save_token,
|
23
|
+
id: resource,
|
24
|
+
host: request.host
|
25
|
+
}),
|
26
|
+
method: :post
|
27
|
+
) do |f| %>
|
28
|
+
|
29
|
+
<%= f.select(
|
30
|
+
:fb_page_access_key,
|
31
|
+
options_for_select(@pages.map{ |p| [ p['name'], p['access_token'] ] }),
|
32
|
+
{ 'label' => I18n.t('fb.page-select') }
|
33
|
+
)
|
34
|
+
%>
|
35
|
+
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
<div class = "widget-footer">
|
39
|
+
<%=
|
40
|
+
f.submit t('action.add') + " " + @model.display_name,
|
41
|
+
data: {:disable_with => t("action.submitting")},
|
42
|
+
:id =>"new-#{@model.name.demodulize}-button"
|
43
|
+
%>
|
44
|
+
</div>
|
45
|
+
<% end -%>
|
46
|
+
</div>
|
47
|
+
</div>
|