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
@@ -5,10 +5,10 @@ class Ability
5
5
  def initialize(user)
6
6
 
7
7
  if user.nil?
8
- elsif user.rol.name == 'Admin'
8
+ elsif user.role.name == 'Admin'
9
9
  can :manage, :all
10
10
  else
11
- user.rol.permissions.each do |permission|
11
+ user.role.permissions.each do |permission|
12
12
  if permission.to_read?
13
13
  can :read, symbol_class(permission.resource)
14
14
  elsif permission.to_publish?
@@ -1,13 +1,13 @@
1
1
  module Adminpanel
2
- class Analytic #< ActiveRecord::Base
2
+ class Analytic # PORO
3
3
  include Adminpanel::Base
4
4
 
5
5
  def self.display_name
6
- I18n.t('model.Analytic')
6
+ I18n.t("model.Analytic")
7
7
  end
8
8
 
9
9
  def self.icon
10
- 'dashboard'
10
+ "dashboard"
11
11
  end
12
12
 
13
13
  end
@@ -3,32 +3,32 @@ module Adminpanel
3
3
  include Adminpanel::Base
4
4
  include ApplicationHelper
5
5
 
6
- enum action: [ :to_read, :to_publish, :to_create, :to_update,
7
- :to_destroy, :to_manage ]
6
+ enum action: [
7
+ :to_read,
8
+ :to_publish,
9
+ :to_create,
10
+ :to_update,
11
+ :to_destroy,
12
+ :to_manage
13
+ ]
8
14
 
9
- belongs_to :rol
15
+ belongs_to :role, touch: true
16
+
17
+ # validates_presence_of :action
18
+ validates_presence_of :role_id
19
+ validates_presence_of :resource
10
20
 
11
21
  def name
12
- "#{action} #{symbol_class(self['resource']).display_name}"
22
+ "#{I18n.t("#{self.class.name.demodulize.downcase}.#{self.action}")} #{symbol_class(self['resource']).display_name}"
13
23
  end
14
24
 
15
- # def action
16
- # Permission.actions.each do |key, value|
17
- # return I18n.t("permission.#{key}") if value == self['action']
18
- # end
19
- # end
20
-
21
- # def resource
22
- # symbol_class(self['resource']).display_name.to_s.pluralize(I18n.default_locale)
23
- # end
24
-
25
25
  def self.form_attributes
26
26
  [
27
27
  {
28
- 'rol_id' => {
28
+ 'role_id' => {
29
29
  'type' => 'belongs_to',
30
- 'label' => I18n.t('permission.rol'),
31
- 'model' => 'Adminpanel::Rol',
30
+ 'label' => I18n.t('permission.role'),
31
+ 'model' => 'Adminpanel::Role',
32
32
  # 'remote_resource' => false
33
33
  }
34
34
  },
@@ -48,11 +48,11 @@ module Adminpanel
48
48
  end
49
49
 
50
50
  def self.display_name
51
- 'Permiso' #singular
51
+ I18n.t('model.Permission') # singular
52
52
  end
53
53
 
54
54
  def self.icon
55
- "gavel" # fa-{icon}
55
+ 'gavel' # fa-{icon}
56
56
  end
57
57
  end
58
58
  end
@@ -1,10 +1,17 @@
1
1
  module Adminpanel
2
- class Rol < ActiveRecord::Base
2
+ class Role < ActiveRecord::Base
3
3
  include Adminpanel::Base
4
+
4
5
  has_many :permissions
6
+ has_many :users
7
+
5
8
  validates_presence_of :name
6
9
  validates_uniqueness_of :name
7
10
 
11
+ default_scope do
12
+ includes(:permissions)
13
+ end
14
+
8
15
  def self.form_attributes
9
16
  [
10
17
  {
@@ -25,7 +32,7 @@ module Adminpanel
25
32
  end
26
33
 
27
34
  def self.display_name
28
- 'Rol'
35
+ I18n.t('model.Role')
29
36
  end
30
37
 
31
38
  def self.icon
@@ -4,7 +4,7 @@ module Adminpanel
4
4
  class Section < ActiveRecord::Base
5
5
  include Adminpanel::Base
6
6
 
7
- mount_images :images
7
+ mount_images :sectionfiles
8
8
 
9
9
  validates_length_of :description,
10
10
  minimum: 10,
@@ -27,13 +27,17 @@ module Adminpanel
27
27
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
28
28
  validates_format_of :description, with: VALID_EMAIL_REGEX, if: :is_email?
29
29
 
30
- default_scope { order("page ASC") }
30
+ default_scope do
31
+ order("page ASC")
32
+ end
31
33
 
32
- scope :of_page, lambda{ |page|
34
+ scope :of_page, -> (page) do
33
35
  where(page: page)
34
- }
36
+ end
35
37
 
36
- scope :with_description, -> { where.not( description: '') }
38
+ scope :with_description, -> do
39
+ where.not( description: '')
40
+ end
37
41
 
38
42
  def self.form_attributes
39
43
  [
@@ -49,7 +53,7 @@ module Adminpanel
49
53
  end
50
54
 
51
55
  def self.display_name
52
- 'Seccion'
56
+ I18n.t('model.Section')
53
57
  end
54
58
 
55
59
  def description
@@ -1,5 +1,5 @@
1
1
  module Adminpanel
2
- class Image < ActiveRecord::Base
2
+ class Sectionfile < ActiveRecord::Base
3
3
  include Adminpanel::Base
4
4
 
5
5
  validates_presence_of :file
@@ -2,36 +2,36 @@ module Adminpanel
2
2
  class User < ActiveRecord::Base
3
3
  include Adminpanel::Base
4
4
  has_secure_password
5
- belongs_to :rol
5
+ belongs_to :role, touch: true
6
6
 
7
- #rol validation
8
- validates_presence_of :rol_id
7
+ default_scope do
8
+ includes(:role)
9
+ end
10
+
11
+ #role validation
12
+ validates_presence_of :role_id
9
13
 
10
- #name validations
14
+ #name validations
11
15
  validates_presence_of :name
12
- validates_length_of :name, :maximum => 25
16
+ validates_length_of :name, maximum: 25
13
17
 
14
- #password validations
15
- validates_confirmation_of :password, :on => :create
16
- validates_presence_of :password, :on => :create
17
- validates_length_of :password, :minimum => 6, :on => :create
18
+ #password validations
19
+ validates_confirmation_of :password, on: :create
20
+ validates_presence_of :password, on: :create
21
+ validates_length_of :password, minimum: 6, on: :create
18
22
 
19
- #password_confirmation validations
20
- validates_presence_of :password_confirmation, :on => :create
23
+ #password_confirmation validations
24
+ validates_presence_of :password_confirmation, on: :create
21
25
 
22
- #email validations
26
+ #email validations
23
27
  validates_presence_of :email
24
28
  validates_uniqueness_of :email
25
29
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
26
- validates_format_of :email, :with => VALID_EMAIL_REGEX
30
+ validates_format_of :email, with: VALID_EMAIL_REGEX
27
31
 
28
32
  before_save{ email.downcase! }
29
33
  before_save :create_remember_token
30
34
 
31
- def has_role?(role_sym)
32
- roles.any? { |r| r.name.underscore.to_sym == role_sym }
33
- end
34
-
35
35
  def self.form_attributes
36
36
  [
37
37
  {
@@ -65,33 +65,29 @@ module Adminpanel
65
65
  }
66
66
  },
67
67
  {
68
- 'rol_id' => {
68
+ 'role_id' => {
69
69
  'type' => 'belongs_to',
70
- 'model' => 'Adminpanel::Rol',
70
+ 'model' => 'Adminpanel::Role',
71
71
  # 'remote_resource' => false,
72
- 'placeholder' => I18n.t('model.attributes.rol_id'),
73
- 'label' => I18n.t('model.attributes.rol_id')
72
+ 'placeholder' => I18n.t('model.attributes.role_id'),
73
+ 'label' => I18n.t('model.attributes.role_id')
74
74
  }
75
75
  },
76
76
  ]
77
77
  end
78
78
 
79
- def root_url
80
- self.rol.permissions.first
81
- end
82
-
83
- def self.display_name
84
- 'Usuario'
85
- end
86
-
87
- def User.new_remember_token
79
+ def self.new_remember_token
88
80
  SecureRandom.urlsafe_base64
89
81
  end
90
82
 
91
- def User.digest(token)
83
+ def self.digest(token)
92
84
  Digest::SHA1.hexdigest(token.to_s)
93
85
  end
94
86
 
87
+ def self.display_name
88
+ I18n.t('model.User')
89
+ end
90
+
95
91
  def self.icon
96
92
  'user'
97
93
  end
@@ -3,10 +3,15 @@ module Adminpanel
3
3
  extend ActiveSupport::Concern
4
4
  #instance methods
5
5
  # static(class) methods
6
+
6
7
  module ClassMethods
7
8
  def mount_images(relation)
8
- has_many relation, :dependent => :destroy
9
- accepts_nested_attributes_for relation, :allow_destroy => true
9
+ has_many relation, dependent: :destroy
10
+ accepts_nested_attributes_for relation, allow_destroy: true
11
+ end
12
+
13
+ def belongs_to(name, scope = nil, options = {})
14
+ super(name, scope, options.reverse_merge!({touch: true}))
10
15
  end
11
16
 
12
17
  def form_attributes
@@ -21,7 +26,7 @@ module Adminpanel
21
26
  form_attributes.each do |attribute|
22
27
  attribute.each do |name, properties|
23
28
  if name == field
24
- return properties["label"]
29
+ return properties['label']
25
30
  end
26
31
  end
27
32
  end
@@ -32,9 +37,14 @@ module Adminpanel
32
37
  display_attributes = []
33
38
  form_attributes.each do |attribute|
34
39
  attribute.each do |name, properties|
35
- if properties['show'].nil? ||
40
+ if (
41
+ properties['show'].nil? ||
36
42
  properties['show'] == 'true' ||
37
- properties['show'] == type
43
+ (
44
+ properties['show'] == type &&
45
+ properties['type'] != 'adminpanel_file_field' #file fields get only displayed in form
46
+ )
47
+ )
38
48
  display_attributes << attribute
39
49
  end
40
50
  end
@@ -45,35 +55,35 @@ module Adminpanel
45
55
 
46
56
  def has_images?
47
57
  form_attributes.each do |fields|
48
- fields.each do |attribute, properties|
49
- if properties['type'] == 'adminpanel_file_field'
50
- return true
58
+ fields.each do |attribute, properties|
59
+ if properties['type'] == 'adminpanel_file_field'
60
+ return true
61
+ end
51
62
  end
52
63
  end
53
- end
54
64
  return false
55
65
  end
56
66
 
57
67
  def get_image_relationship
58
68
  form_attributes.each do |fields|
59
- fields.each do |attribute, properties|
60
- if properties['type'] == 'adminpanel_file_field'
61
- return attribute
69
+ fields.each do |attribute, properties|
70
+ if properties['type'] == 'adminpanel_file_field'
71
+ return attribute
72
+ end
62
73
  end
63
74
  end
64
- end
65
75
  return false
66
76
  end
67
77
 
68
78
  def relationships_of(type_property)
69
79
  classes_of_relation = []
70
80
  form_attributes.each do |fields|
71
- fields.each do |attribute, properties|
72
- if properties['type'] == type_property
73
- classes_of_relation << properties['model'].classify.constantize
81
+ fields.each do |attribute, properties|
82
+ if properties['type'] == type_property
83
+ classes_of_relation << properties['model'].classify.constantize
84
+ end
74
85
  end
75
86
  end
76
- end
77
87
  return classes_of_relation
78
88
  end
79
89
 
@@ -90,7 +100,7 @@ module Adminpanel
90
100
  end
91
101
 
92
102
  def has_route?(route)
93
- if (!exlude?(route)) && include_route(route)
103
+ if (!exclude?(route)) && include_route(route)
94
104
  true
95
105
  else
96
106
  false
@@ -113,8 +123,12 @@ module Adminpanel
113
123
  []
114
124
  end
115
125
 
126
+ def is_sortable?
127
+ false
128
+ end
129
+
116
130
  private
117
- def exlude?(route)
131
+ def exclude?(route)
118
132
  if routes_options[:except].nil?
119
133
  false
120
134
  elsif routes_options[:except].include?(route)
@@ -5,7 +5,12 @@ module Adminpanel
5
5
  included do
6
6
  before_create :set_position
7
7
  before_destroy :rearrange_positions
8
- default_scope { order("position ASC")}
8
+
9
+ scope :ordered, -> do
10
+ order('position ASC')
11
+ # where(position: 1)
12
+ end
13
+
9
14
  end
10
15
 
11
16
  def move_to_better_position
@@ -32,14 +37,14 @@ module Adminpanel
32
37
 
33
38
  conflicting_gallery.update_attribute(
34
39
  :position, conflicting_gallery.position - 1
35
- )
40
+ )
36
41
  true
37
42
  else
38
43
  false
39
44
  end
40
45
  end
41
46
 
42
- private
47
+ protected
43
48
  def get_conflicting_gallery(conflicting_position)
44
49
  self.class.where(
45
50
  self.class.relation_field => self.send(self.class.relation_field)
@@ -47,7 +52,11 @@ module Adminpanel
47
52
  end
48
53
 
49
54
  def rearrange_positions
50
- unarranged_galleries = self.class.where(self.class.relation_field => self.send(self.class.relation_field)).where("position > ?", self.position)
55
+ unarranged_galleries = self.class.where(
56
+ self.class.relation_field => self.send(
57
+ self.class.relation_field
58
+ )
59
+ ).where('position > ?', self.position)
51
60
  unarranged_galleries.each do |gallery|
52
61
  gallery.update_attribute(:position, gallery.position - 1)
53
62
  end
@@ -55,7 +64,11 @@ module Adminpanel
55
64
  end
56
65
 
57
66
  def set_position
58
- last_record = self.class.where(self.class.relation_field => self.send(self.class.relation_field)).last
67
+ last_record = self.class.where(
68
+ self.class.relation_field => self.send(
69
+ self.class.relation_field
70
+ )
71
+ ).last
59
72
  if last_record.nil?
60
73
  self.position = 1
61
74
  else
@@ -23,7 +23,7 @@ module Adminpanel
23
23
  request = url % CGI.escape("#{root_url}/sitemap.xml")
24
24
  logger.info root_url
25
25
  logger.info " Pinging #{name} with #{request}"
26
- if Rails.env != "development"
26
+ if !Rails.env.development?
27
27
  response = Net::HTTP.get_response(URI.parse(request))
28
28
  logger.info " #{response.code}: #{response.message}"
29
29
  logger.info " Body: #{response.body}"