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.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -5
  3. data/CONTRIBUTING.md +22 -0
  4. data/Gemfile +1 -6
  5. data/README.md +8 -13
  6. data/Rakefile +4 -6
  7. data/adminpanel.gemspec +29 -24
  8. data/app/assets/javascripts/{application-admin.js → adminpanel/application.js} +2 -1
  9. data/app/assets/javascripts/adminpanel/images_form_add_remove_fields.js.coffee +11 -0
  10. data/app/assets/javascripts/adminpanel/sections.js.coffee +9 -0
  11. data/app/assets/javascripts/adminpanel/spinner.js.coffee +3 -3
  12. data/app/assets/javascripts/adminpanel/tables.js +4 -3
  13. data/app/assets/javascripts/adminpanel/wysiwyg.js.coffee +4 -1
  14. data/app/assets/stylesheets/{application-admin.css → adminpanel/application.css} +2 -2
  15. data/app/assets/stylesheets/adminpanel/fa-hidden.css.scss +7 -0
  16. data/app/assets/stylesheets/adminpanel/theme.css.scss.erb +3 -27
  17. data/app/assets/stylesheets/adminpanel/turbolinks_progress_load.css.scss +5 -0
  18. data/app/controllers/adminpanel/analytics_controller.rb +3 -3
  19. data/app/controllers/adminpanel/application_controller.rb +5 -11
  20. data/app/controllers/adminpanel/auths_controller.rb +6 -0
  21. data/app/controllers/adminpanel/categories_controller.rb +26 -60
  22. data/app/controllers/adminpanel/permissions_controller.rb +1 -2
  23. data/app/controllers/adminpanel/roles_controller.rb +10 -0
  24. data/app/controllers/adminpanel/sections_controller.rb +14 -14
  25. data/app/controllers/adminpanel/sessions_controller.rb +4 -3
  26. data/app/controllers/adminpanel/users_controller.rb +2 -2
  27. data/app/controllers/concerns/adminpanel/analytics/twitter_analytics.rb +1 -1
  28. data/app/controllers/concerns/adminpanel/facebook_actions.rb +13 -12
  29. data/app/controllers/concerns/adminpanel/galleryzable_actions.rb +13 -9
  30. data/app/controllers/concerns/adminpanel/rest_actions.rb +65 -59
  31. data/app/controllers/concerns/adminpanel/sitemap_actions.rb +1 -1
  32. data/app/controllers/concerns/adminpanel/sortable_actions.rb +29 -0
  33. data/app/controllers/concerns/adminpanel/twitter_actions.rb +5 -5
  34. data/app/helpers/adminpanel/adminpanel_form_builder.rb +104 -64
  35. data/app/helpers/adminpanel/application_helper.rb +20 -9
  36. data/app/helpers/adminpanel/breadcrumbs_helper.rb +2 -2
  37. data/app/helpers/adminpanel/router_helper.rb +8 -4
  38. data/app/helpers/adminpanel/shared_pages_helper.rb +59 -11
  39. data/app/models/ability.rb +2 -2
  40. data/app/models/adminpanel/analytic.rb +3 -3
  41. data/app/models/adminpanel/permission.rb +19 -19
  42. data/app/models/adminpanel/{rol.rb → role.rb} +9 -2
  43. data/app/models/adminpanel/section.rb +10 -6
  44. data/app/models/adminpanel/{image.rb → sectionfile.rb} +1 -1
  45. data/app/models/adminpanel/user.rb +27 -31
  46. data/app/models/concerns/adminpanel/base.rb +33 -19
  47. data/app/models/concerns/adminpanel/galleryzation.rb +18 -5
  48. data/app/models/concerns/adminpanel/sitemap.rb +1 -1
  49. data/app/models/concerns/adminpanel/sortable.rb +69 -0
  50. data/app/uploaders/adminpanel/.keep +1 -0
  51. data/app/views/adminpanel/analytics/_fb_statistic_widget.html.erb +27 -27
  52. data/app/views/adminpanel/categories/_categories_table.html.erb +4 -4
  53. data/app/views/adminpanel/categories/_category_form.html.erb +26 -6
  54. data/app/views/adminpanel/categories/create.js.erb +4 -5
  55. data/app/views/adminpanel/categories/index.html.erb +23 -16
  56. data/app/views/adminpanel/categories/new.js.erb +1 -1
  57. data/app/views/adminpanel/form/_adminpanel_file_field.html.erb +24 -0
  58. data/app/views/adminpanel/form/_belongs_to.html.erb +24 -0
  59. data/app/views/adminpanel/form/_file_field.html.erb +4 -0
  60. data/app/views/adminpanel/form/_has_many.html.erb +19 -0
  61. data/app/views/adminpanel/form/_non_image_file_field.html.erb +4 -0
  62. data/app/views/{shared/_delete_icon_button.html.erb → adminpanel/icons/_delete.html.erb} +3 -1
  63. data/app/views/{shared/_edit_icon_button.html.erb → adminpanel/icons/_edit.html.erb} +3 -3
  64. data/app/views/{shared/_fb_icon_button.html.erb → adminpanel/icons/_facebook.html.erb} +6 -5
  65. data/app/views/adminpanel/icons/_move_to_better.html.erb +16 -0
  66. data/app/views/adminpanel/icons/_move_to_worst.html.erb +17 -0
  67. data/app/views/{shared/_show_icon_button.html.erb → adminpanel/icons/_show.html.erb} +1 -1
  68. data/app/views/{shared/_twitter_icon_button.html.erb → adminpanel/icons/_twitter.html.erb} +1 -1
  69. data/app/views/adminpanel/sections/_sections_table.html.erb +1 -1
  70. data/app/views/adminpanel/sections/edit.html.erb +25 -17
  71. data/app/views/adminpanel/sections/index.html.erb +1 -1
  72. data/app/views/adminpanel/sections/show.html.erb +2 -2
  73. data/app/views/{shared → adminpanel/shared}/_breadcrumb.html.erb +0 -0
  74. data/app/views/adminpanel/shared/_create_remote_resource_button.html.erb +21 -0
  75. data/app/views/{shared → adminpanel/shared}/_error_messages.html.erb +0 -0
  76. data/app/views/{shared → adminpanel/shared}/_fb_publish_modal.html.erb +2 -2
  77. data/app/views/adminpanel/shared/_form_fields.html.erb +21 -0
  78. data/app/views/adminpanel/shared/_gallery_entries.html.erb +11 -0
  79. data/app/views/adminpanel/shared/_image_fields.html.erb +3 -0
  80. data/app/views/adminpanel/shared/_index_records.html.erb +32 -0
  81. data/app/views/adminpanel/shared/_modal.html.erb +20 -0
  82. data/app/views/adminpanel/shared/_new_resource_button.html.erb +17 -0
  83. data/app/views/adminpanel/shared/_remote_form_fields.html.erb +28 -0
  84. data/app/views/{shared → adminpanel/shared}/_twitter_publish_modal.html.erb +0 -0
  85. data/app/views/{shared → adminpanel/shared}/create_belongs_to.js.erb +0 -0
  86. data/app/views/{shared → adminpanel/shared}/create_has_many.js.erb +0 -0
  87. data/app/views/adminpanel/shared/edit.html.erb +42 -0
  88. data/app/views/{shared → adminpanel/shared}/fb_choose_page.html.erb +2 -2
  89. data/app/views/adminpanel/shared/gallery_entries.js.erb +1 -0
  90. data/app/views/adminpanel/shared/index.html.erb +43 -0
  91. data/app/views/adminpanel/shared/index_records.js.erb +1 -0
  92. data/app/views/adminpanel/shared/new.html.erb +42 -0
  93. data/app/views/adminpanel/shared/new.js.erb +2 -0
  94. data/app/views/adminpanel/shared/show.html.erb +77 -0
  95. data/app/views/layouts/{_shim.html.erb → adminpanel/_shim.html.erb} +0 -0
  96. data/app/views/layouts/adminpanel/_side_menu.html.erb +32 -0
  97. data/app/views/layouts/{_top_bar.html.erb → adminpanel/_top_bar.html.erb} +4 -2
  98. data/app/views/layouts/{admin-login.html.erb → adminpanel/application-login.html.erb} +4 -4
  99. data/app/views/layouts/{admin.html.erb → adminpanel/application.html.erb} +8 -6
  100. data/config/initializers/adminpanel/clear_cache.rb +4 -0
  101. data/config/initializers/{pluralization_es.rb → adminpanel/pluralization_es.rb} +0 -0
  102. data/config/initializers/{twitter-oauth.rb → adminpanel/twitter_oauth.rb} +0 -0
  103. data/config/locales/en.yml +93 -59
  104. data/config/locales/es.yml +34 -14
  105. data/config/routes.rb +27 -24
  106. data/lib/adminpanel.rb +3 -1
  107. data/lib/adminpanel/engine.rb +6 -3
  108. data/lib/adminpanel/version.rb +1 -1
  109. data/lib/generators/adminpanel/contact/contact_generator.rb +12 -0
  110. data/{app/models/contact.rb → lib/generators/adminpanel/contact/templates/contact_template.rb} +0 -0
  111. data/lib/generators/adminpanel/dump/dump_generator.rb +37 -0
  112. data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +7 -0
  113. data/lib/generators/adminpanel/gallery/templates/uploader.rb +7 -9
  114. data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +2 -2
  115. data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +23 -34
  116. data/lib/generators/adminpanel/initialize/templates/section_uploader.rb +6 -8
  117. data/lib/generators/adminpanel/resource/resource_generator.rb +3 -2
  118. data/lib/generators/adminpanel/resource/resource_generator_helper.rb +6 -8
  119. data/lib/generators/adminpanel/resource/templates/adminpanel_controller_template.rb +1 -1
  120. data/lib/generators/adminpanel/resource/templates/adminpanel_resource_template.rb +2 -2
  121. data/lib/tasks/adminpanel/adminpanel.rake +11 -24
  122. data/lib/tasks/adminpanel/sections.rake +65 -0
  123. data/test/dummy/app/controllers/adminpanel/file_resources_controller.rb +12 -0
  124. data/test/dummy/app/controllers/adminpanel/galleries_controller.rb +4 -0
  125. data/test/dummy/app/controllers/adminpanel/products_controller.rb +5 -5
  126. data/test/dummy/app/models/adminpanel/category.rb +2 -0
  127. data/test/dummy/app/models/adminpanel/file_resource.rb +34 -0
  128. data/test/dummy/app/models/adminpanel/file_resourcefile.rb +13 -0
  129. data/test/dummy/app/models/adminpanel/gallery.rb +32 -0
  130. data/test/dummy/app/models/adminpanel/galleryfile.rb +19 -0
  131. data/test/dummy/app/models/adminpanel/mug.rb +14 -14
  132. data/test/dummy/app/models/adminpanel/photo.rb +1 -0
  133. data/test/dummy/app/models/adminpanel/product.rb +7 -7
  134. data/test/dummy/app/models/adminpanel/test_object.rb +53 -0
  135. data/test/dummy/app/uploader/adminpanel/file_resourcefile_uploader.rb +82 -0
  136. data/test/dummy/app/uploader/adminpanel/photo_uploader.rb +5 -9
  137. data/test/dummy/app/uploader/adminpanel/section_uploader.rb +5 -9
  138. data/test/dummy/config/application.rb +3 -30
  139. data/test/dummy/config/carrierwave.rb +1 -1
  140. data/test/dummy/config/environments/test.rb +10 -4
  141. data/test/dummy/config/initializers/adminpanel_setup.rb +5 -2
  142. data/test/dummy/db/schema.rb +65 -34
  143. data/test/dummy/test/fixtures/adminpanel/categories.yml +7 -0
  144. data/test/dummy/test/fixtures/adminpanel/galleryfiles.yml +18 -0
  145. data/test/dummy/test/fixtures/adminpanel/permissions.yml +7 -7
  146. data/test/dummy/test/fixtures/adminpanel/products.yml +7 -0
  147. data/test/dummy/test/fixtures/adminpanel/{rols.yml → roles.yml} +0 -0
  148. data/test/dummy/test/fixtures/adminpanel/test_objects.yml +7 -0
  149. data/test/dummy/test/fixtures/adminpanel/users.yml +7 -7
  150. data/test/dummy/test/fixtures/dog fries.png +0 -0
  151. data/test/features/categories/categories_index_test.rb +31 -0
  152. data/test/features/shared/concerns/galleryzable_test.rb +22 -0
  153. data/test/features/shared/concerns/sortable_test.rb +26 -0
  154. data/test/features/shared/form/has_many_through_non_category_modal_test.rb +1 -1
  155. data/test/features/shared/form/remote_resource_modal_test.rb +41 -0
  156. data/test/features/shared/resource/edit_test.rb +7 -6
  157. data/test/features/shared/resource/new_test.rb +3 -2
  158. data/test/features/shared/ui/max_images_gallery_test.rb +52 -0
  159. data/test/generators/contact_generator_test.rb +20 -0
  160. data/test/generators/dump_generator_test.rb +51 -0
  161. data/test/generators/resource_generator_test.rb +46 -1
  162. data/test/helpers/breadcrumbs_helper_test.rb +3 -4
  163. data/test/helpers/router_helper_test.rb +1 -1
  164. data/test/helpers/shared_pages_helper_test.rb +120 -0
  165. data/test/models/adminpanel/gallery_test.rb +16 -23
  166. data/test/models/adminpanel/user_test.rb +1 -1
  167. data/test/support/view_case.rb +18 -19
  168. data/test/tasks/adminpanel_rake_test.rb +5 -3
  169. data/test/test_helper.rb +2 -5
  170. metadata +204 -150
  171. data/.rspec +0 -2
  172. data/app/assets/javascripts/adminpanel/images_form.js +0 -23
  173. data/app/assets/javascripts/adminpanel/imagesloaded.js +0 -16
  174. data/app/controllers/adminpanel/galleries_controller.rb +0 -75
  175. data/app/controllers/adminpanel/rols_controller.rb +0 -10
  176. data/app/models/adminpanel/gallery.rb +0 -82
  177. data/app/uploaders/adminpanel/gallery_uploader.rb +0 -56
  178. data/app/views/adminpanel/galleries/_galleries_table.html.erb +0 -15
  179. data/app/views/adminpanel/galleries/create.html.erb +0 -2
  180. data/app/views/adminpanel/galleries/index.html.erb +0 -52
  181. data/app/views/adminpanel/galleries/move_better.js.erb +0 -1
  182. data/app/views/adminpanel/galleries/move_worst.js.erb +0 -1
  183. data/app/views/layouts/_side_menu.html.erb +0 -40
  184. data/app/views/shared/_create_remote_resource_button.html.erb +0 -23
  185. data/app/views/shared/_form_fields.html.erb +0 -63
  186. data/app/views/shared/_gallery_entries.html.erb +0 -11
  187. data/app/views/shared/_image_fields.html.erb +0 -3
  188. data/app/views/shared/_modal.html.erb +0 -8
  189. data/app/views/shared/_new_resource_button.html.erb +0 -17
  190. data/app/views/shared/_remote_form_fields.html.erb +0 -12
  191. data/app/views/shared/edit.html.erb +0 -29
  192. data/app/views/shared/gallery_entries.js.erb +0 -1
  193. data/app/views/shared/index.html.erb +0 -68
  194. data/app/views/shared/new.html.erb +0 -41
  195. data/app/views/shared/new.js.erb +0 -2
  196. data/app/views/shared/show.html.erb +0 -92
  197. data/test/dummy/README.rdoc +0 -261
  198. data/test/dummy/config/environments/development.rb +0 -29
  199. data/test/dummy/config/environments/production.rb +0 -80
  200. data/test/dummy/lib/assets/.gitkeep +0 -0
  201. data/test/dummy/script/rails +0 -6
  202. 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
- set_collections
10
- new! do |format|
11
- format.html { render "shared/new" }
12
- format.js do
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
- create! do |success, failure|
22
- success.html do
23
- flash[:success] = I18n.t("action.save_success")
24
- redirect_to categories_path
25
- end
26
- failure.html do
27
- set_collections
28
- render 'shared/new'
29
- end
30
- success.js do
31
- if params[:currentcontroller].to_s == 'adminpanel/categories'
32
- render 'create', :locals => {:category => resource}
33
- elsif params[:belongs_request].present?
34
- render 'shared/create_belongs_to'
35
- else
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
- end
39
- failure.js do
40
- set_collections
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! do |format|
72
- format.html do
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
@@ -4,8 +4,7 @@ module Adminpanel
4
4
  private
5
5
  def permission_params
6
6
  params.require(:permission).permit(
7
-
8
- :rol_id,
7
+ :role_id,
9
8
  :action,
10
9
  :resource
11
10
  )
@@ -0,0 +1,10 @@
1
+ module Adminpanel
2
+ class RolesController < Adminpanel::ApplicationController
3
+
4
+ private
5
+ def role_params
6
+ params.require(:role).permit(:name, {permission_ids: []})
7
+
8
+ end
9
+ end
10
+ 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.update_attributes(params[:section])
20
- redirect_to section_path(@section), :notice => 'La seccion se ha actualizado'
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
- { images_attributes: [:id, :file, :_destroy] }
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 'admin-login'
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.rol.permissions.first
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(:redirect_uri => instagram_callback_sessions_url, :scope => 'comments')
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
- :rol_id
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
- before_filter :get_twitter_token, only:[:twitter, :reply_to_tweet, :favorite_tweet, :retweet_tweet]
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
- before_filter :set_fb_auths_count, only:[:index, :create, :update, :destroy, :show]
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: resource,
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
- redirect_to resource
33
+ Rails.cache.clear
34
+ redirect_to @resource_instance
34
35
  end
35
36
 
36
37
  def fb_publish
37
- authorize! :publish, resource
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: resource.share_link,
44
- name: resource.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 resource
49
+ redirect_to @resource_instance
49
50
  end
50
51
 
51
52
  private
52
53
  def set_fb_auths_count
53
- @fb_auths_count = Auth.where(key: 'facebook').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
- auths = Auth.where(key: 'facebook', name: account_selected_name)
58
- if auths.count == 0
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
- auths.first.update_attribute(:value, params[model_name][:fb_page_access_key])
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
- def move_better
6
- resource = @model.find(params[:id])
7
- resource.move_to_better_position
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 move_worst
13
- resource = @model.find(params[:id])
14
- resource.move_to_worst_position
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', :locals => {
23
- :collection => @model.where(
24
- @model.relation_field.to_sym => resource.send(@model.relation_field)
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! do |format|
6
- format.html { render 'shared/index' }
7
- end
22
+ render 'adminpanel/shared/index'
8
23
  end
9
24
 
10
25
  def show
11
- show! do |format|
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
- set_collections
18
- new! do |format|
19
- format.html { render 'shared/new' }
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
- create! do |success, failure|
27
- success.html do
28
- flash[:success] = I18n.t('action.save_success')
29
- redirect_to resource
30
- end
31
- failure.html do
32
- set_collections
33
- render 'shared/new'
34
- end
35
- success.js do
36
- if params[:belongs_request]
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! do |format|
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! do |success, failure|
62
- success.html do
63
- flash.now[:success] = I18n.t('action.save_success')
64
- render 'shared/index'
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! do |format|
76
- format.html { render 'shared/index' }
77
- end
70
+ @resource_instance.destroy
71
+ redirect_to action: :index
78
72
  end
79
73
 
80
74
  private
81
75
 
82
- def set_collections
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({:model => params[:model]}) if params[:model].present?
110
- params.merge({:model_name => params[:model_name]}) if params[:model_name].present?
111
- params.merge({:belongs_request => params[:belongs_request]}) if params[:belongs_request].present?
112
- params.merge({:currentcontroller => params[:currentcontroller]}) if params[:currentcontroller].present?
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 respond_to_json(success, failure)
116
- success.json do
117
- render json: resource
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
- failure.json do
120
- render json: resource
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