adminpanel 2.2.5 → 2.3.0
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/.travis.yml +1 -5
- data/CONTRIBUTING.md +22 -0
- data/Gemfile +1 -6
- data/README.md +8 -13
- data/Rakefile +4 -6
- data/adminpanel.gemspec +29 -24
- data/app/assets/javascripts/{application-admin.js → adminpanel/application.js} +2 -1
- data/app/assets/javascripts/adminpanel/images_form_add_remove_fields.js.coffee +11 -0
- data/app/assets/javascripts/adminpanel/sections.js.coffee +9 -0
- data/app/assets/javascripts/adminpanel/spinner.js.coffee +3 -3
- data/app/assets/javascripts/adminpanel/tables.js +4 -3
- data/app/assets/javascripts/adminpanel/wysiwyg.js.coffee +4 -1
- data/app/assets/stylesheets/{application-admin.css → adminpanel/application.css} +2 -2
- data/app/assets/stylesheets/adminpanel/fa-hidden.css.scss +7 -0
- data/app/assets/stylesheets/adminpanel/theme.css.scss.erb +3 -27
- data/app/assets/stylesheets/adminpanel/turbolinks_progress_load.css.scss +5 -0
- data/app/controllers/adminpanel/analytics_controller.rb +3 -3
- data/app/controllers/adminpanel/application_controller.rb +5 -11
- data/app/controllers/adminpanel/auths_controller.rb +6 -0
- data/app/controllers/adminpanel/categories_controller.rb +26 -60
- data/app/controllers/adminpanel/permissions_controller.rb +1 -2
- data/app/controllers/adminpanel/roles_controller.rb +10 -0
- data/app/controllers/adminpanel/sections_controller.rb +14 -14
- data/app/controllers/adminpanel/sessions_controller.rb +4 -3
- data/app/controllers/adminpanel/users_controller.rb +2 -2
- data/app/controllers/concerns/adminpanel/analytics/twitter_analytics.rb +1 -1
- data/app/controllers/concerns/adminpanel/facebook_actions.rb +13 -12
- data/app/controllers/concerns/adminpanel/galleryzable_actions.rb +13 -9
- data/app/controllers/concerns/adminpanel/rest_actions.rb +65 -59
- data/app/controllers/concerns/adminpanel/sitemap_actions.rb +1 -1
- data/app/controllers/concerns/adminpanel/sortable_actions.rb +29 -0
- data/app/controllers/concerns/adminpanel/twitter_actions.rb +5 -5
- data/app/helpers/adminpanel/adminpanel_form_builder.rb +104 -64
- data/app/helpers/adminpanel/application_helper.rb +20 -9
- data/app/helpers/adminpanel/breadcrumbs_helper.rb +2 -2
- data/app/helpers/adminpanel/router_helper.rb +8 -4
- data/app/helpers/adminpanel/shared_pages_helper.rb +59 -11
- data/app/models/ability.rb +2 -2
- data/app/models/adminpanel/analytic.rb +3 -3
- data/app/models/adminpanel/permission.rb +19 -19
- data/app/models/adminpanel/{rol.rb → role.rb} +9 -2
- data/app/models/adminpanel/section.rb +10 -6
- data/app/models/adminpanel/{image.rb → sectionfile.rb} +1 -1
- data/app/models/adminpanel/user.rb +27 -31
- data/app/models/concerns/adminpanel/base.rb +33 -19
- data/app/models/concerns/adminpanel/galleryzation.rb +18 -5
- data/app/models/concerns/adminpanel/sitemap.rb +1 -1
- data/app/models/concerns/adminpanel/sortable.rb +69 -0
- data/app/uploaders/adminpanel/.keep +1 -0
- data/app/views/adminpanel/analytics/_fb_statistic_widget.html.erb +27 -27
- data/app/views/adminpanel/categories/_categories_table.html.erb +4 -4
- data/app/views/adminpanel/categories/_category_form.html.erb +26 -6
- data/app/views/adminpanel/categories/create.js.erb +4 -5
- data/app/views/adminpanel/categories/index.html.erb +23 -16
- data/app/views/adminpanel/categories/new.js.erb +1 -1
- data/app/views/adminpanel/form/_adminpanel_file_field.html.erb +24 -0
- data/app/views/adminpanel/form/_belongs_to.html.erb +24 -0
- data/app/views/adminpanel/form/_file_field.html.erb +4 -0
- data/app/views/adminpanel/form/_has_many.html.erb +19 -0
- data/app/views/adminpanel/form/_non_image_file_field.html.erb +4 -0
- data/app/views/{shared/_delete_icon_button.html.erb → adminpanel/icons/_delete.html.erb} +3 -1
- data/app/views/{shared/_edit_icon_button.html.erb → adminpanel/icons/_edit.html.erb} +3 -3
- data/app/views/{shared/_fb_icon_button.html.erb → adminpanel/icons/_facebook.html.erb} +6 -5
- data/app/views/adminpanel/icons/_move_to_better.html.erb +16 -0
- data/app/views/adminpanel/icons/_move_to_worst.html.erb +17 -0
- data/app/views/{shared/_show_icon_button.html.erb → adminpanel/icons/_show.html.erb} +1 -1
- data/app/views/{shared/_twitter_icon_button.html.erb → adminpanel/icons/_twitter.html.erb} +1 -1
- data/app/views/adminpanel/sections/_sections_table.html.erb +1 -1
- data/app/views/adminpanel/sections/edit.html.erb +25 -17
- data/app/views/adminpanel/sections/index.html.erb +1 -1
- data/app/views/adminpanel/sections/show.html.erb +2 -2
- data/app/views/{shared → adminpanel/shared}/_breadcrumb.html.erb +0 -0
- data/app/views/adminpanel/shared/_create_remote_resource_button.html.erb +21 -0
- data/app/views/{shared → adminpanel/shared}/_error_messages.html.erb +0 -0
- data/app/views/{shared → adminpanel/shared}/_fb_publish_modal.html.erb +2 -2
- data/app/views/adminpanel/shared/_form_fields.html.erb +21 -0
- data/app/views/adminpanel/shared/_gallery_entries.html.erb +11 -0
- data/app/views/adminpanel/shared/_image_fields.html.erb +3 -0
- data/app/views/adminpanel/shared/_index_records.html.erb +32 -0
- data/app/views/adminpanel/shared/_modal.html.erb +20 -0
- data/app/views/adminpanel/shared/_new_resource_button.html.erb +17 -0
- data/app/views/adminpanel/shared/_remote_form_fields.html.erb +28 -0
- data/app/views/{shared → adminpanel/shared}/_twitter_publish_modal.html.erb +0 -0
- data/app/views/{shared → adminpanel/shared}/create_belongs_to.js.erb +0 -0
- data/app/views/{shared → adminpanel/shared}/create_has_many.js.erb +0 -0
- data/app/views/adminpanel/shared/edit.html.erb +42 -0
- data/app/views/{shared → adminpanel/shared}/fb_choose_page.html.erb +2 -2
- data/app/views/adminpanel/shared/gallery_entries.js.erb +1 -0
- data/app/views/adminpanel/shared/index.html.erb +43 -0
- data/app/views/adminpanel/shared/index_records.js.erb +1 -0
- data/app/views/adminpanel/shared/new.html.erb +42 -0
- data/app/views/adminpanel/shared/new.js.erb +2 -0
- data/app/views/adminpanel/shared/show.html.erb +77 -0
- data/app/views/layouts/{_shim.html.erb → adminpanel/_shim.html.erb} +0 -0
- data/app/views/layouts/adminpanel/_side_menu.html.erb +32 -0
- data/app/views/layouts/{_top_bar.html.erb → adminpanel/_top_bar.html.erb} +4 -2
- data/app/views/layouts/{admin-login.html.erb → adminpanel/application-login.html.erb} +4 -4
- data/app/views/layouts/{admin.html.erb → adminpanel/application.html.erb} +8 -6
- data/config/initializers/adminpanel/clear_cache.rb +4 -0
- data/config/initializers/{pluralization_es.rb → adminpanel/pluralization_es.rb} +0 -0
- data/config/initializers/{twitter-oauth.rb → adminpanel/twitter_oauth.rb} +0 -0
- data/config/locales/en.yml +93 -59
- data/config/locales/es.yml +34 -14
- data/config/routes.rb +27 -24
- data/lib/adminpanel.rb +3 -1
- data/lib/adminpanel/engine.rb +6 -3
- data/lib/adminpanel/version.rb +1 -1
- data/lib/generators/adminpanel/contact/contact_generator.rb +12 -0
- data/{app/models/contact.rb → lib/generators/adminpanel/contact/templates/contact_template.rb} +0 -0
- data/lib/generators/adminpanel/dump/dump_generator.rb +37 -0
- data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +7 -0
- data/lib/generators/adminpanel/gallery/templates/uploader.rb +7 -9
- data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +2 -2
- data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +23 -34
- data/lib/generators/adminpanel/initialize/templates/section_uploader.rb +6 -8
- data/lib/generators/adminpanel/resource/resource_generator.rb +3 -2
- data/lib/generators/adminpanel/resource/resource_generator_helper.rb +6 -8
- data/lib/generators/adminpanel/resource/templates/adminpanel_controller_template.rb +1 -1
- data/lib/generators/adminpanel/resource/templates/adminpanel_resource_template.rb +2 -2
- data/lib/tasks/adminpanel/adminpanel.rake +11 -24
- data/lib/tasks/adminpanel/sections.rake +65 -0
- data/test/dummy/app/controllers/adminpanel/file_resources_controller.rb +12 -0
- data/test/dummy/app/controllers/adminpanel/galleries_controller.rb +4 -0
- data/test/dummy/app/controllers/adminpanel/products_controller.rb +5 -5
- data/test/dummy/app/models/adminpanel/category.rb +2 -0
- data/test/dummy/app/models/adminpanel/file_resource.rb +34 -0
- data/test/dummy/app/models/adminpanel/file_resourcefile.rb +13 -0
- data/test/dummy/app/models/adminpanel/gallery.rb +32 -0
- data/test/dummy/app/models/adminpanel/galleryfile.rb +19 -0
- data/test/dummy/app/models/adminpanel/mug.rb +14 -14
- data/test/dummy/app/models/adminpanel/photo.rb +1 -0
- data/test/dummy/app/models/adminpanel/product.rb +7 -7
- data/test/dummy/app/models/adminpanel/test_object.rb +53 -0
- data/test/dummy/app/uploader/adminpanel/file_resourcefile_uploader.rb +82 -0
- data/test/dummy/app/uploader/adminpanel/photo_uploader.rb +5 -9
- data/test/dummy/app/uploader/adminpanel/section_uploader.rb +5 -9
- data/test/dummy/config/application.rb +3 -30
- data/test/dummy/config/carrierwave.rb +1 -1
- data/test/dummy/config/environments/test.rb +10 -4
- data/test/dummy/config/initializers/adminpanel_setup.rb +5 -2
- data/test/dummy/db/schema.rb +65 -34
- data/test/dummy/test/fixtures/adminpanel/categories.yml +7 -0
- data/test/dummy/test/fixtures/adminpanel/galleryfiles.yml +18 -0
- data/test/dummy/test/fixtures/adminpanel/permissions.yml +7 -7
- data/test/dummy/test/fixtures/adminpanel/products.yml +7 -0
- data/test/dummy/test/fixtures/adminpanel/{rols.yml → roles.yml} +0 -0
- data/test/dummy/test/fixtures/adminpanel/test_objects.yml +7 -0
- data/test/dummy/test/fixtures/adminpanel/users.yml +7 -7
- data/test/dummy/test/fixtures/dog fries.png +0 -0
- data/test/features/categories/categories_index_test.rb +31 -0
- data/test/features/shared/concerns/galleryzable_test.rb +22 -0
- data/test/features/shared/concerns/sortable_test.rb +26 -0
- data/test/features/shared/form/has_many_through_non_category_modal_test.rb +1 -1
- data/test/features/shared/form/remote_resource_modal_test.rb +41 -0
- data/test/features/shared/resource/edit_test.rb +7 -6
- data/test/features/shared/resource/new_test.rb +3 -2
- data/test/features/shared/ui/max_images_gallery_test.rb +52 -0
- data/test/generators/contact_generator_test.rb +20 -0
- data/test/generators/dump_generator_test.rb +51 -0
- data/test/generators/resource_generator_test.rb +46 -1
- data/test/helpers/breadcrumbs_helper_test.rb +3 -4
- data/test/helpers/router_helper_test.rb +1 -1
- data/test/helpers/shared_pages_helper_test.rb +120 -0
- data/test/models/adminpanel/gallery_test.rb +16 -23
- data/test/models/adminpanel/user_test.rb +1 -1
- data/test/support/view_case.rb +18 -19
- data/test/tasks/adminpanel_rake_test.rb +5 -3
- data/test/test_helper.rb +2 -5
- metadata +204 -150
- data/.rspec +0 -2
- data/app/assets/javascripts/adminpanel/images_form.js +0 -23
- data/app/assets/javascripts/adminpanel/imagesloaded.js +0 -16
- data/app/controllers/adminpanel/galleries_controller.rb +0 -75
- data/app/controllers/adminpanel/rols_controller.rb +0 -10
- data/app/models/adminpanel/gallery.rb +0 -82
- data/app/uploaders/adminpanel/gallery_uploader.rb +0 -56
- data/app/views/adminpanel/galleries/_galleries_table.html.erb +0 -15
- data/app/views/adminpanel/galleries/create.html.erb +0 -2
- data/app/views/adminpanel/galleries/index.html.erb +0 -52
- data/app/views/adminpanel/galleries/move_better.js.erb +0 -1
- data/app/views/adminpanel/galleries/move_worst.js.erb +0 -1
- data/app/views/layouts/_side_menu.html.erb +0 -40
- data/app/views/shared/_create_remote_resource_button.html.erb +0 -23
- data/app/views/shared/_form_fields.html.erb +0 -63
- data/app/views/shared/_gallery_entries.html.erb +0 -11
- data/app/views/shared/_image_fields.html.erb +0 -3
- data/app/views/shared/_modal.html.erb +0 -8
- data/app/views/shared/_new_resource_button.html.erb +0 -17
- data/app/views/shared/_remote_form_fields.html.erb +0 -12
- data/app/views/shared/edit.html.erb +0 -29
- data/app/views/shared/gallery_entries.js.erb +0 -1
- data/app/views/shared/index.html.erb +0 -68
- data/app/views/shared/new.html.erb +0 -41
- data/app/views/shared/new.js.erb +0 -2
- data/app/views/shared/show.html.erb +0 -92
- data/test/dummy/README.rdoc +0 -261
- data/test/dummy/config/environments/development.rb +0 -29
- data/test/dummy/config/environments/production.rb +0 -80
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/script/rails +0 -6
- data/test/unit/gallery_unit_test.rb +0 -21
|
@@ -1,86 +1,52 @@
|
|
|
1
1
|
module Adminpanel
|
|
2
|
-
class CategoriesController < ApplicationController
|
|
2
|
+
class CategoriesController < Adminpanel::ApplicationController
|
|
3
|
+
skip_before_action :set_resource_collection
|
|
3
4
|
|
|
4
5
|
def index
|
|
5
6
|
@categories = Category.all
|
|
6
7
|
end
|
|
7
8
|
|
|
8
9
|
def new
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
format.html { render
|
|
12
|
-
format.js
|
|
13
|
-
render
|
|
14
|
-
end
|
|
10
|
+
@resource_instance = @model.new
|
|
11
|
+
respond_to do |format|
|
|
12
|
+
format.html { render 'adminpanel/shared/new' }
|
|
13
|
+
format.js { render }
|
|
15
14
|
end
|
|
16
15
|
end
|
|
17
16
|
|
|
18
|
-
|
|
19
17
|
def create
|
|
20
18
|
merge_params
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
redirect_to categories_path
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
render 'shared/create_has_many'
|
|
19
|
+
@resource_instance = @model.new(send(whitelisted_params))
|
|
20
|
+
respond_to do |format|
|
|
21
|
+
if @resource_instance.save
|
|
22
|
+
format.html { redirect_to categories_path, flash: { success: I18n.t('action.save_success') } }
|
|
23
|
+
format.js do
|
|
24
|
+
if params[:currentcontroller].to_s == 'adminpanel/categories'
|
|
25
|
+
# we are in categories controller
|
|
26
|
+
render 'create', locals: { category: @resource_instance }
|
|
27
|
+
elsif params[:belongs_request].present?
|
|
28
|
+
# we are in other controller as a belongs_to, add option to select
|
|
29
|
+
render 'adminpanel/shared/create_belongs_to', locals: { resource: @resource_instance }
|
|
30
|
+
else
|
|
31
|
+
# we are in other controller as a has_many, add checkbox
|
|
32
|
+
render 'adminpanel/shared/create_has_many', locals: { resource: @resource_instance }
|
|
33
|
+
end
|
|
37
34
|
end
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
render "new"
|
|
42
|
-
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def edit
|
|
48
|
-
edit! do |format|
|
|
49
|
-
format.html do
|
|
50
|
-
set_collections
|
|
51
|
-
render "shared/edit"
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def update
|
|
57
|
-
update! do |success, failure|
|
|
58
|
-
success.html do
|
|
59
|
-
flash[:success] = I18n.t("action.save_success")
|
|
60
|
-
# render "shared/index"
|
|
61
|
-
redirect_to categories_path
|
|
62
|
-
end
|
|
63
|
-
failure.html do
|
|
64
|
-
set_collections
|
|
65
|
-
render "shared/edit"
|
|
35
|
+
else
|
|
36
|
+
format.html { render 'adminpanel/shared/new' }
|
|
37
|
+
format.js { render 'new' }
|
|
66
38
|
end
|
|
67
39
|
end
|
|
68
40
|
end
|
|
69
41
|
|
|
70
42
|
def destroy
|
|
71
|
-
destroy
|
|
72
|
-
|
|
73
|
-
redirect_to categories_path
|
|
74
|
-
end
|
|
75
|
-
end
|
|
43
|
+
@resource_instance.destroy
|
|
44
|
+
redirect_to categories_path
|
|
76
45
|
end
|
|
77
46
|
|
|
78
47
|
private
|
|
79
48
|
def category_params
|
|
80
49
|
params.require(:category).permit(:name, :model)
|
|
81
|
-
# permitted.permit(:currentcontroller)
|
|
82
|
-
# params.require(:currentcontroller)
|
|
83
|
-
|
|
84
50
|
end
|
|
85
51
|
end
|
|
86
52
|
end
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
module Adminpanel
|
|
2
2
|
class SectionsController < Adminpanel::ApplicationController
|
|
3
|
+
def index
|
|
4
|
+
@sections = Section.all
|
|
5
|
+
end
|
|
6
|
+
|
|
3
7
|
# def new
|
|
4
8
|
# @section = Section.new
|
|
5
9
|
# authorize! :create, @section
|
|
@@ -16,8 +20,8 @@ module Adminpanel
|
|
|
16
20
|
def update
|
|
17
21
|
@section = Section.find(params[:id])
|
|
18
22
|
|
|
19
|
-
if @section.
|
|
20
|
-
redirect_to section_path(@section), :
|
|
23
|
+
if @section.update(section_params)
|
|
24
|
+
redirect_to section_path(@section), notice: 'La seccion se ha actualizado'
|
|
21
25
|
else
|
|
22
26
|
render 'edit'
|
|
23
27
|
end
|
|
@@ -27,17 +31,6 @@ module Adminpanel
|
|
|
27
31
|
@section = Section.find(params[:id])
|
|
28
32
|
end
|
|
29
33
|
|
|
30
|
-
# def destroy
|
|
31
|
-
# @section = Section.find(params[:id])
|
|
32
|
-
# @section.destroy
|
|
33
|
-
|
|
34
|
-
# redirect_to sections_path
|
|
35
|
-
# end
|
|
36
|
-
|
|
37
|
-
def index
|
|
38
|
-
@sections = Section.all
|
|
39
|
-
end
|
|
40
|
-
|
|
41
34
|
private
|
|
42
35
|
def section_params
|
|
43
36
|
params.require(:section).permit(
|
|
@@ -46,8 +39,15 @@ module Adminpanel
|
|
|
46
39
|
:key,
|
|
47
40
|
:page,
|
|
48
41
|
:name,
|
|
42
|
+
:max_files,
|
|
49
43
|
:has_image,
|
|
50
|
-
{
|
|
44
|
+
{
|
|
45
|
+
sectionfiles_attributes: [
|
|
46
|
+
:id,
|
|
47
|
+
:file,
|
|
48
|
+
:_destroy
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
51
|
)
|
|
52
52
|
end
|
|
53
53
|
end
|
|
@@ -4,7 +4,7 @@ module Adminpanel
|
|
|
4
4
|
include ApplicationHelper
|
|
5
5
|
|
|
6
6
|
protect_from_forgery
|
|
7
|
-
layout '
|
|
7
|
+
layout 'adminpanel/application-login'
|
|
8
8
|
before_action :configure_instagram, only:[:instagram_login, :instagram_callback]
|
|
9
9
|
|
|
10
10
|
def new
|
|
@@ -15,7 +15,7 @@ module Adminpanel
|
|
|
15
15
|
if user && user.authenticate(params[:session][:password])
|
|
16
16
|
sign_in user
|
|
17
17
|
flash[:success] = I18n.t('authentication.signin_success')
|
|
18
|
-
permission = user.
|
|
18
|
+
permission = user.role.permissions.first
|
|
19
19
|
if permission.nil?
|
|
20
20
|
redirect_to root_url
|
|
21
21
|
else
|
|
@@ -34,12 +34,13 @@ module Adminpanel
|
|
|
34
34
|
|
|
35
35
|
def twitter_callback
|
|
36
36
|
save_twitter_tokens
|
|
37
|
+
Rails.cache.clear
|
|
37
38
|
flash[:success] = I18n.t('twitter.saved_token')
|
|
38
39
|
redirect_to twitter_analytics_path
|
|
39
40
|
end
|
|
40
41
|
|
|
41
42
|
def instagram_login
|
|
42
|
-
redirect_to Instagram.authorize_url(:
|
|
43
|
+
redirect_to Instagram.authorize_url(redirect_uri: instagram_callback_sessions_url, scope: 'comments')
|
|
43
44
|
end
|
|
44
45
|
|
|
45
46
|
def instagram_callback
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Adminpanel
|
|
2
2
|
class UsersController < Adminpanel::ApplicationController
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
private
|
|
5
5
|
def user_params
|
|
6
6
|
params.require(:user).permit(
|
|
@@ -8,7 +8,7 @@ module Adminpanel
|
|
|
8
8
|
:name,
|
|
9
9
|
:password,
|
|
10
10
|
:password_confirmation,
|
|
11
|
-
:
|
|
11
|
+
:role_id
|
|
12
12
|
)
|
|
13
13
|
end
|
|
14
14
|
end
|
|
@@ -4,7 +4,7 @@ module Adminpanel
|
|
|
4
4
|
extend ActiveSupport::Concern
|
|
5
5
|
|
|
6
6
|
included do
|
|
7
|
-
|
|
7
|
+
before_action :get_twitter_token, only:[:twitter, :reply_to_tweet, :favorite_tweet, :retweet_tweet]
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def reply_to_tweet
|
|
@@ -3,7 +3,7 @@ module Adminpanel
|
|
|
3
3
|
extend ActiveSupport::Concern
|
|
4
4
|
|
|
5
5
|
included do
|
|
6
|
-
|
|
6
|
+
before_action :set_fb_auths_count, only: [:index, :create, :update, :destroy, :show]
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
def fb_choose_page
|
|
@@ -13,7 +13,7 @@ module Adminpanel
|
|
|
13
13
|
url_for({
|
|
14
14
|
controller: params[:controller],
|
|
15
15
|
action: :fb_choose_page,
|
|
16
|
-
id:
|
|
16
|
+
id: @resource_instance,
|
|
17
17
|
host: request.host
|
|
18
18
|
})
|
|
19
19
|
).get_access_token(params[:code])
|
|
@@ -21,7 +21,7 @@ module Adminpanel
|
|
|
21
21
|
@pages = user.get_connections('me', 'accounts')
|
|
22
22
|
@name = user.get_object('me')['name']
|
|
23
23
|
@pages << { 'name' => @name, 'access_token' => access_token } # to permit posts on own wall
|
|
24
|
-
render 'shared/fb_choose_page'
|
|
24
|
+
render 'adminpanel/shared/fb_choose_page'
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def fb_save_token
|
|
@@ -30,32 +30,33 @@ module Adminpanel
|
|
|
30
30
|
)
|
|
31
31
|
update_fb_auth(page_selected.get_object('me')['name'])
|
|
32
32
|
flash[:success] = I18n.t('fb.saved_token')
|
|
33
|
-
|
|
33
|
+
Rails.cache.clear
|
|
34
|
+
redirect_to @resource_instance
|
|
34
35
|
end
|
|
35
36
|
|
|
36
37
|
def fb_publish
|
|
37
|
-
authorize! :publish,
|
|
38
|
+
authorize! :publish, @resource_instance
|
|
38
39
|
|
|
39
40
|
page_graph = Koala::Facebook::API.new(Auth.find_by_key('facebook').value)
|
|
40
41
|
page_graph.put_wall_post(
|
|
41
42
|
params[model_name][:fb_message],
|
|
42
43
|
{
|
|
43
|
-
link:
|
|
44
|
-
name:
|
|
44
|
+
link: @resource_instance.share_link,
|
|
45
|
+
name: @resource_instance.name
|
|
45
46
|
}
|
|
46
47
|
)
|
|
47
48
|
flash[:success] = I18n.t('fb.posted', user: page_graph.get_object('me')['name'])
|
|
48
|
-
redirect_to
|
|
49
|
+
redirect_to @resource_instance
|
|
49
50
|
end
|
|
50
51
|
|
|
51
52
|
private
|
|
52
53
|
def set_fb_auths_count
|
|
53
|
-
@fb_auths_count
|
|
54
|
+
@fb_auths_count ||= Auth.find_by_key('facebook')
|
|
54
55
|
end
|
|
55
56
|
|
|
56
57
|
def update_fb_auth(account_selected_name)
|
|
57
|
-
|
|
58
|
-
if
|
|
58
|
+
auth = Auth.find_by(key: 'facebook', name: account_selected_name)
|
|
59
|
+
if auth.nil?
|
|
59
60
|
Auth.create(
|
|
60
61
|
key: 'facebook',
|
|
61
62
|
name: account_selected_name,
|
|
@@ -63,7 +64,7 @@ module Adminpanel
|
|
|
63
64
|
)
|
|
64
65
|
else
|
|
65
66
|
#only support 1 fb account
|
|
66
|
-
|
|
67
|
+
auth.update_attribute(:value, params[model_name][:fb_page_access_key])
|
|
67
68
|
end
|
|
68
69
|
end
|
|
69
70
|
|
|
@@ -2,16 +2,20 @@ module Adminpanel
|
|
|
2
2
|
module GalleryzableActions
|
|
3
3
|
extend ActiveSupport::Concern
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
included do
|
|
6
|
+
skip_authorize_resource :move_gallery_better, :move_gallery_worst
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def move_gallery_better
|
|
10
|
+
@resource_instance = @model.find(params[:id])
|
|
11
|
+
@resource_instance.move_to_better_position
|
|
8
12
|
respond
|
|
9
13
|
|
|
10
14
|
end
|
|
11
15
|
|
|
12
|
-
def
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
def move_gallery_worst
|
|
17
|
+
@resource_instance = @model.find(params[:id])
|
|
18
|
+
@resource_instance.move_to_worst_position
|
|
15
19
|
respond
|
|
16
20
|
end
|
|
17
21
|
|
|
@@ -19,9 +23,9 @@ module Adminpanel
|
|
|
19
23
|
def respond
|
|
20
24
|
respond_to do |format|
|
|
21
25
|
format.js do
|
|
22
|
-
render 'shared/gallery_entries', :
|
|
23
|
-
:
|
|
24
|
-
@model.relation_field.to_sym =>
|
|
26
|
+
render 'adminpanel/shared/gallery_entries', locals: {
|
|
27
|
+
collection: @model.ordered.where(
|
|
28
|
+
@model.relation_field.to_sym => @resource_instance.send(@model.relation_field)
|
|
25
29
|
)
|
|
26
30
|
}
|
|
27
31
|
end
|
|
@@ -1,85 +1,79 @@
|
|
|
1
1
|
module Adminpanel
|
|
2
2
|
module RestActions
|
|
3
|
+
extend ActiveSupport::Concern
|
|
4
|
+
included do
|
|
5
|
+
before_action :set_resource_instance, only: [
|
|
6
|
+
:show,
|
|
7
|
+
:edit,
|
|
8
|
+
:update,
|
|
9
|
+
:destroy,
|
|
10
|
+
:fb_choose_page,
|
|
11
|
+
:fb_save_token,
|
|
12
|
+
:fb_publish,
|
|
13
|
+
:twitter_publish,
|
|
14
|
+
:move_to_better,
|
|
15
|
+
:move_to_worst
|
|
16
|
+
]
|
|
17
|
+
before_action :set_resource_collection, only: [:index, :destroy]
|
|
18
|
+
before_action :set_relationship_collections, only: [:new, :create, :edit, :update]
|
|
19
|
+
end
|
|
3
20
|
|
|
4
21
|
def index
|
|
5
|
-
index
|
|
6
|
-
format.html { render 'shared/index' }
|
|
7
|
-
end
|
|
22
|
+
render 'adminpanel/shared/index'
|
|
8
23
|
end
|
|
9
24
|
|
|
10
25
|
def show
|
|
11
|
-
show
|
|
12
|
-
format.html { render 'shared/show' }
|
|
13
|
-
end
|
|
26
|
+
render 'adminpanel/shared/show' if stale?(last_modified: @resource_instance.updated_at.utc, etag: @resource_instance.cache_key)
|
|
14
27
|
end
|
|
15
28
|
|
|
16
29
|
def new
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
format
|
|
20
|
-
format.js { render 'shared/new', :locals => { :resource => resource }}
|
|
30
|
+
@resource_instance = @model.new
|
|
31
|
+
respond_to do |format|
|
|
32
|
+
render_new(format)
|
|
21
33
|
end
|
|
22
34
|
end
|
|
23
35
|
|
|
24
36
|
def create
|
|
25
37
|
merge_params
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
redirect_to
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
render 'shared/create_belongs_to', :locals => { :resource => resource }
|
|
38
|
-
else
|
|
39
|
-
render 'shared/create_has_many', :locals => { :resource => resource }
|
|
38
|
+
@resource_instance = @model.new(send(whitelisted_params))
|
|
39
|
+
respond_to do |format|
|
|
40
|
+
if @resource_instance.save
|
|
41
|
+
format.html { redirect_to @resource_instance }
|
|
42
|
+
format.js do
|
|
43
|
+
# if format js, request is from another controller's form
|
|
44
|
+
if params[:belongs_request]
|
|
45
|
+
render 'adminpanel/shared/create_belongs_to', locals: { resource: @resource_instance }
|
|
46
|
+
else
|
|
47
|
+
render 'adminpanel/shared/create_has_many', locals: { resource: @resource_instance }
|
|
48
|
+
end
|
|
40
49
|
end
|
|
50
|
+
else
|
|
51
|
+
render_new(format)
|
|
41
52
|
end
|
|
42
|
-
failure.js do
|
|
43
|
-
set_collections
|
|
44
|
-
render 'shared/new', :locals => {:resource => resource }
|
|
45
|
-
end
|
|
46
|
-
respond_to_json(success, failure)
|
|
47
53
|
end
|
|
48
54
|
end
|
|
49
55
|
|
|
50
56
|
|
|
51
57
|
def edit
|
|
52
|
-
edit
|
|
53
|
-
format.html do
|
|
54
|
-
set_collections
|
|
55
|
-
render 'shared/edit'
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
+
render 'adminpanel/shared/edit'
|
|
58
59
|
end
|
|
59
60
|
|
|
60
61
|
def update
|
|
61
|
-
update
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
end
|
|
66
|
-
failure.html do
|
|
67
|
-
set_collections
|
|
68
|
-
render 'shared/edit'
|
|
69
|
-
end
|
|
70
|
-
respond_to_json(success, failure)
|
|
62
|
+
if @resource_instance.update(send(whitelisted_params))
|
|
63
|
+
redirect_to @resource_instance
|
|
64
|
+
else
|
|
65
|
+
render 'adminpanel/shared/edit'
|
|
71
66
|
end
|
|
72
67
|
end
|
|
73
68
|
|
|
74
69
|
def destroy
|
|
75
|
-
destroy
|
|
76
|
-
|
|
77
|
-
end
|
|
70
|
+
@resource_instance.destroy
|
|
71
|
+
redirect_to action: :index
|
|
78
72
|
end
|
|
79
73
|
|
|
80
74
|
private
|
|
81
75
|
|
|
82
|
-
def
|
|
76
|
+
def set_relationship_collections
|
|
83
77
|
@collections = {}
|
|
84
78
|
set_belongs_to_collections
|
|
85
79
|
set_has_many_collections
|
|
@@ -106,20 +100,32 @@ module Adminpanel
|
|
|
106
100
|
end
|
|
107
101
|
|
|
108
102
|
def merge_params
|
|
109
|
-
params.merge({:
|
|
110
|
-
params.merge({:
|
|
111
|
-
params.merge({:
|
|
112
|
-
params.merge({:
|
|
103
|
+
params.merge({model: params[:model]}) if params[:model].present?
|
|
104
|
+
params.merge({model_name: params[:model_name]}) if params[:model_name].present?
|
|
105
|
+
params.merge({belongs_request: params[:belongs_request]}) if params[:belongs_request].present?
|
|
106
|
+
params.merge({currentcontroller: params[:currentcontroller]}) if params[:currentcontroller].present?
|
|
113
107
|
end
|
|
114
108
|
|
|
115
|
-
def
|
|
116
|
-
|
|
117
|
-
|
|
109
|
+
def whitelisted_params
|
|
110
|
+
resource = controller_name.singularize.to_sym
|
|
111
|
+
"#{resource}_params"
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def set_resource_instance
|
|
115
|
+
@resource_instance = @model.find(params[:id])
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def set_resource_collection
|
|
119
|
+
@collection = @model.all
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def render_new format
|
|
123
|
+
format.html do
|
|
124
|
+
render 'adminpanel/shared/new'
|
|
118
125
|
end
|
|
119
|
-
|
|
120
|
-
render
|
|
126
|
+
format.js do
|
|
127
|
+
render 'adminpanel/shared/new', locals: { resource: @resource_instance }
|
|
121
128
|
end
|
|
122
129
|
end
|
|
123
|
-
|
|
124
130
|
end
|
|
125
131
|
end
|