keppler 2.0.2 → 2.0.3

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 (236) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +8 -0
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/Gemfile.lock +26 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +93 -22
  7. data/Rakefile +6 -0
  8. data/bin/keppler +6 -2
  9. data/bin/setup +2 -1
  10. data/exe/keppler +6 -0
  11. data/installer/core/.gitignore +87 -0
  12. data/installer/core/.ruby-version +1 -0
  13. data/installer/core/Gemfile +6 -4
  14. data/installer/core/README.md +86 -50
  15. data/installer/core/app/assets/images/.keep +0 -0
  16. data/installer/core/app/assets/images/admin/astronauta_keppler.svg +123 -0
  17. data/installer/core/app/assets/images/admin/avatar_keppler.svg +100 -0
  18. data/installer/core/app/assets/images/admin/image_default.png +0 -0
  19. data/installer/core/app/assets/images/app/fondo.svg +19 -0
  20. data/installer/core/app/assets/javascripts/admin/file_upload.coffee +11 -0
  21. data/installer/core/app/assets/javascripts/admin/main.coffee +23 -12
  22. data/installer/core/app/assets/javascripts/admin/preview_template.js +2 -2
  23. data/installer/core/app/assets/javascripts/admin/sidebar.js +8 -7
  24. data/installer/core/app/assets/javascripts/admin/swal.js +37 -0
  25. data/installer/core/app/assets/javascripts/admin/switch.js +6 -0
  26. data/installer/core/app/assets/javascripts/admin/tooltips.coffee +3 -0
  27. data/installer/core/app/assets/javascripts/errors/application.js.coffee +1 -0
  28. data/installer/core/app/assets/javascripts/errors/errors.js +113 -0
  29. data/installer/core/app/assets/javascripts/keppler_ga_dashboard/view-selector2.js +1 -1
  30. data/installer/core/app/assets/javascripts/vue_admin/index.js +34 -9
  31. data/installer/core/app/assets/stylesheets/admin/application.scss +4 -14
  32. data/installer/core/app/assets/stylesheets/admin/components/navigation/_navbar.scss +4 -5
  33. data/installer/core/app/assets/stylesheets/admin/components/navigation/_sidebar.scss +26 -17
  34. data/installer/core/app/assets/stylesheets/admin/pages/_appearance.scss +5 -0
  35. data/installer/core/app/assets/stylesheets/admin/pages/_customize.scss +21 -0
  36. data/installer/core/app/assets/stylesheets/admin/pages/_datepicker.scss +1088 -0
  37. data/installer/core/app/assets/stylesheets/admin/pages/_files.scss +26 -9
  38. data/installer/core/app/assets/stylesheets/admin/pages/_form.scss +19 -6
  39. data/installer/core/app/assets/stylesheets/admin/pages/_index.scss +4 -8
  40. data/installer/core/app/assets/stylesheets/admin/pages/_listing.scss +5 -0
  41. data/installer/core/app/assets/stylesheets/admin/pages/_navbar.scss +9 -2
  42. data/installer/core/app/assets/stylesheets/admin/pages/_roles.scss +6 -0
  43. data/installer/core/app/assets/stylesheets/admin/pages/_search.scss +24 -28
  44. data/installer/core/app/assets/stylesheets/admin/pages/_sidebar.scss +1 -1
  45. data/installer/core/app/assets/stylesheets/admin/pages/_switchs.scss +135 -39
  46. data/installer/core/app/assets/stylesheets/admin/pages/_timepicker.scss +16 -0
  47. data/installer/core/app/assets/stylesheets/admin/pages/_user.scss +6 -0
  48. data/installer/core/app/assets/stylesheets/admin/utils/_base.scss +6 -1
  49. data/installer/core/app/assets/stylesheets/admin/utils/_theme.scss +24 -11
  50. data/installer/core/app/assets/stylesheets/admin/utils/_variables.scss +1 -1
  51. data/installer/core/app/assets/stylesheets/app/pages/_front.sass +70 -56
  52. data/installer/core/app/assets/stylesheets/errors/errors.scss +161 -120
  53. data/installer/core/app/assets/stylesheets/vendor/admin-lte/_skin-blue.scss +1 -1
  54. data/installer/core/app/controllers/admin/admin_controller.rb +1 -1
  55. data/installer/core/app/controllers/admin/customizes_controller.rb +6 -8
  56. data/installer/core/app/controllers/admin/meta_tags_controller.rb +14 -18
  57. data/installer/core/app/controllers/admin/roles_controller.rb +176 -0
  58. data/installer/core/app/controllers/admin/scripts_controller.rb +14 -33
  59. data/installer/core/app/controllers/admin/settings_controller.rb +26 -27
  60. data/installer/core/app/controllers/admin/users_controller.rb +35 -29
  61. data/installer/core/app/controllers/app/app_controller.rb +27 -4
  62. data/installer/core/app/controllers/application_controller.rb +39 -1
  63. data/installer/core/app/controllers/concerns/.keep +0 -0
  64. data/installer/core/app/helpers/admin_helper.rb +5 -0
  65. data/installer/core/app/helpers/application_helper.rb +9 -0
  66. data/installer/core/app/helpers/roles_helper.rb +2 -0
  67. data/installer/core/app/inputs/file_material_input.rb +4 -2
  68. data/installer/core/app/inputs/keppler_boolean_input.rb +74 -0
  69. data/installer/core/app/inputs/keppler_file_input.rb +70 -0
  70. data/installer/core/app/mailers/.keep +0 -0
  71. data/installer/core/app/mailers/application_mailer.rb +13 -13
  72. data/installer/core/app/models/.keep +0 -0
  73. data/installer/core/app/models/appearance.rb +2 -0
  74. data/installer/core/app/models/application_record.rb +3 -0
  75. data/installer/core/app/models/concerns/.keep +0 -0
  76. data/installer/core/app/models/concerns/downloadable.rb +13 -0
  77. data/installer/core/app/models/concerns/sortable.rb +9 -0
  78. data/installer/core/app/models/concerns/uploadable.rb +10 -0
  79. data/installer/core/app/models/customize.rb +8 -6
  80. data/installer/core/app/models/front.rb +3 -0
  81. data/installer/core/app/models/google_analytics_setting.rb +2 -0
  82. data/installer/core/app/models/meta_tag.rb +27 -14
  83. data/installer/core/app/models/permission.rb +3 -0
  84. data/installer/core/app/models/role.rb +62 -5
  85. data/installer/core/app/models/script.rb +6 -15
  86. data/installer/core/app/models/setting.rb +2 -0
  87. data/installer/core/app/models/smtp_setting.rb +2 -0
  88. data/installer/core/app/models/social_account.rb +2 -0
  89. data/installer/core/app/models/user.rb +17 -1
  90. data/installer/core/app/policies/application_policy.rb +4 -4
  91. data/installer/core/app/policies/controller_policy.rb +15 -11
  92. data/installer/core/app/policies/role_policy.rb +25 -0
  93. data/installer/core/app/policies/user_policy.rb +1 -1
  94. data/installer/core/app/uploaders/attachment_uploader.rb +18 -1
  95. data/installer/core/app/views/admin/customizes/_description.html.haml +4 -4
  96. data/installer/core/app/views/admin/customizes/_form.html.haml +4 -4
  97. data/installer/core/app/views/admin/customizes/_listing.html.haml +1 -1
  98. data/installer/core/app/views/admin/customizes/_switch_default_template.html.haml +8 -13
  99. data/installer/core/app/views/admin/customizes/_switch_template.html.haml +8 -11
  100. data/installer/core/app/views/admin/customizes/index.html.haml +9 -9
  101. data/installer/core/app/views/admin/layouts/_head.html.haml +3 -3
  102. data/installer/core/app/views/admin/layouts/_keppler_boolean_script.haml +12 -0
  103. data/installer/core/app/views/admin/layouts/_navigation.html.haml +17 -16
  104. data/installer/core/app/views/admin/layouts/_sidebar.html.haml +27 -36
  105. data/installer/core/app/views/admin/layouts/application.html.haml +1 -0
  106. data/installer/core/app/views/admin/layouts/index/remote_messages.js.haml +6 -6
  107. data/installer/core/app/views/admin/meta_tags/_index_show.html.haml +2 -2
  108. data/installer/core/app/views/admin/meta_tags/_listing.html.haml +6 -6
  109. data/installer/core/app/views/admin/meta_tags/index.html.haml +15 -29
  110. data/installer/core/app/views/admin/meta_tags/show.html.haml +7 -8
  111. data/installer/core/app/views/admin/roles/_description.html.haml +13 -0
  112. data/installer/core/app/views/admin/roles/_form.html.haml +27 -0
  113. data/installer/core/app/views/admin/roles/_index_show.html.haml +24 -0
  114. data/installer/core/app/views/admin/roles/_listing.html.haml +46 -0
  115. data/installer/core/app/views/admin/roles/_switch.html.haml +20 -0
  116. data/installer/core/app/views/admin/roles/add_permissions.html.haml +60 -0
  117. data/installer/core/app/views/admin/roles/create_permissions.html.haml +0 -0
  118. data/installer/core/app/views/admin/roles/create_permissions.js.erb +1 -0
  119. data/installer/core/app/views/admin/roles/edit.html.haml +1 -0
  120. data/installer/core/app/views/admin/roles/index.html.haml +80 -0
  121. data/installer/core/app/views/admin/roles/new.html.haml +1 -0
  122. data/installer/core/app/views/admin/roles/reload.js.haml +5 -0
  123. data/installer/core/app/views/admin/roles/show.html.haml +32 -0
  124. data/installer/core/app/views/admin/roles/show.js.haml +4 -0
  125. data/installer/core/app/views/admin/roles/show_description.js.erb +2 -0
  126. data/installer/core/app/views/admin/scripts/_index_show.html.haml +2 -2
  127. data/installer/core/app/views/admin/scripts/_listing.html.haml +13 -13
  128. data/installer/core/app/views/admin/scripts/index.html.haml +12 -26
  129. data/installer/core/app/views/admin/scripts/show.html.haml +4 -4
  130. data/installer/core/app/views/admin/settings/components/_preview.html.haml +1 -1
  131. data/installer/core/app/views/admin/settings/fields/_appearance.html.haml +25 -17
  132. data/installer/core/app/views/admin/settings/fields/_basic_information.html.haml +13 -7
  133. data/installer/core/app/views/admin/settings/fields/_email_setting.html.haml +16 -16
  134. data/installer/core/app/views/admin/settings/fields/_google_analytics_setting.html.haml +1 -1
  135. data/installer/core/app/views/admin/settings/fields/_social_accounts.html.haml +39 -39
  136. data/installer/core/app/views/admin/users/_form.html.haml +18 -25
  137. data/installer/core/app/views/admin/users/_index_show.html.haml +2 -2
  138. data/installer/core/app/views/admin/users/_listing.html.haml +6 -6
  139. data/installer/core/app/views/admin/users/delete_avatar.js.haml +3 -0
  140. data/installer/core/app/views/admin/users/filter_by_role.js.erb +9 -0
  141. data/installer/core/app/views/admin/users/index.html.haml +22 -22
  142. data/installer/core/app/views/admin/users/show.html.haml +10 -12
  143. data/installer/core/app/views/app/front/index.html.haml +137 -87
  144. data/installer/core/app/views/app/layouts/_footer.html.haml +2 -2
  145. data/installer/core/app/views/app/layouts/_head.html.haml +4 -12
  146. data/installer/core/app/views/app/layouts/_meta_tags.html.haml +38 -6
  147. data/installer/core/app/views/app/layouts/application.html.haml +8 -8
  148. data/installer/core/app/views/devise/sessions/new.html.haml +32 -28
  149. data/installer/core/app/views/errors/internal_server_error.html.haml +50 -7
  150. data/installer/core/app/views/errors/not_authorized.html.haml +75 -6
  151. data/installer/core/app/views/errors/not_found.html.haml +101 -7
  152. data/installer/core/app/views/errors/unprocessable.html.haml +50 -7
  153. data/installer/core/bin/update +31 -0
  154. data/installer/core/bin/yarn +11 -0
  155. data/installer/core/config/application.rb +1 -1
  156. data/installer/core/config/environments/production.rb +1 -1
  157. data/installer/core/config/initializers/carrierwave.rb +12 -0
  158. data/installer/core/config/initializers/mime_types.rb +2 -2
  159. data/installer/core/config/initializers/simple_form_bootstrap.rb +20 -1
  160. data/installer/core/config/initializers/simple_form_components.rb +61 -0
  161. data/installer/core/config/locales/en.yml +29 -6
  162. data/installer/core/config/locales/es.yml +32 -5
  163. data/installer/core/config/locales/simple_form.en.yml +1 -0
  164. data/installer/core/config/locales/simple_form.es.yml +3 -2
  165. data/installer/core/config/menu.yml +34 -8
  166. data/installer/core/config/permissions.yml +21 -0
  167. data/installer/core/config/routes.rb +56 -14
  168. data/installer/core/db/migrate/20140812210925_rolify_create_roles.rb +2 -0
  169. data/installer/core/db/migrate/20160128131802_create_scripts.rb +1 -0
  170. data/installer/core/db/migrate/20180503174351_create_permissions.rb +11 -0
  171. data/installer/core/db/seeds.rb +12 -6
  172. data/installer/core/lib/generators/keppler_front/templates/views/template.html.haml +222 -177
  173. data/installer/core/lib/generators/keppler_relation/keppler_relation_generator.rb +1 -1
  174. data/installer/core/lib/generators/keppler_scaffold/keppler_scaffold_generator.rb +57 -40
  175. data/installer/core/lib/generators/keppler_scaffold/templates/controllers/controller.rb +29 -30
  176. data/installer/core/lib/generators/keppler_scaffold/templates/models/model.rb +14 -20
  177. data/installer/core/lib/generators/keppler_scaffold/templates/views/_form.html.haml +24 -35
  178. data/installer/core/lib/generators/keppler_scaffold/templates/views/_index_show.html.haml +12 -11
  179. data/installer/core/lib/generators/keppler_scaffold/templates/views/_listing.html.haml +7 -7
  180. data/installer/core/lib/generators/keppler_scaffold/templates/views/index.html.haml +17 -33
  181. data/installer/core/lib/generators/keppler_scaffold/templates/views/show.html.haml +23 -24
  182. data/installer/core/plugins/keppler_ga_dashboard/app/assets/images/keppler_ga_dashboard/.keep +0 -0
  183. data/installer/core/plugins/keppler_ga_dashboard/config/permissions.yml +4 -0
  184. data/installer/core/plugins/keppler_ga_dashboard/keppler_ga_dashboard.gemspec +1 -1
  185. data/installer/core/test/controllers/.keep +0 -0
  186. data/installer/core/test/controllers/roles_controller_test.rb +48 -0
  187. data/installer/core/test/fixtures/.keep +0 -0
  188. data/installer/core/test/fixtures/permissions.yml +9 -0
  189. data/installer/core/test/helpers/.keep +0 -0
  190. data/installer/core/test/integration/.keep +0 -0
  191. data/installer/core/test/mailers/.keep +0 -0
  192. data/installer/core/test/models/.keep +0 -0
  193. data/installer/core/test/models/permission_test.rb +7 -0
  194. data/installer/core/test/system/roles_test.rb +43 -0
  195. data/installer/core/vendor/assets/javascripts/.keep +0 -0
  196. data/installer/core/vendor/assets/stylesheets/.keep +0 -0
  197. data/installer/plugins/concerns/commons.rb +47 -0
  198. data/installer/plugins/concerns/destroy_multiple.rb +33 -0
  199. data/installer/plugins/concerns/history.rb +24 -0
  200. data/installer/plugins/config/locales/en.yml +104 -0
  201. data/installer/plugins/config/locales/es.yml +139 -0
  202. data/installer/plugins/config/menu.yml +12 -0
  203. data/installer/plugins/config/permissions.yml +1 -0
  204. data/installer/plugins/generators/keppler_scaffold/keppler_scaffold_generator.rb +203 -0
  205. data/installer/plugins/generators/keppler_scaffold/templates/controllers/controller.rb +171 -0
  206. data/installer/plugins/generators/keppler_scaffold/templates/models/model.rb +41 -0
  207. data/installer/plugins/generators/keppler_scaffold/templates/policies/policy.rb +11 -0
  208. data/installer/plugins/generators/keppler_scaffold/templates/views/_description.html.haml +13 -0
  209. data/installer/plugins/generators/keppler_scaffold/templates/views/_form.html.haml +49 -0
  210. data/installer/plugins/generators/keppler_scaffold/templates/views/_index_show.html.haml +26 -0
  211. data/installer/plugins/generators/keppler_scaffold/templates/views/_listing.html.haml +65 -0
  212. data/installer/plugins/generators/keppler_scaffold/templates/views/edit.html.haml +1 -0
  213. data/installer/plugins/generators/keppler_scaffold/templates/views/index.html.haml +97 -0
  214. data/installer/plugins/generators/keppler_scaffold/templates/views/new.html.haml +1 -0
  215. data/installer/plugins/generators/keppler_scaffold/templates/views/reload.js.haml +5 -0
  216. data/installer/plugins/generators/keppler_scaffold/templates/views/show.html.haml +66 -0
  217. data/installer/plugins/generators/keppler_scaffold/templates/views/show.js.haml +4 -0
  218. data/installer/plugins/install.rb +156 -0
  219. data/installer/plugins/layouts/_navigation.html.haml +47 -0
  220. data/installer/plugins/layouts/application.html.haml +24 -0
  221. data/keppler.gemspec +35 -0
  222. data/lib/keppler.rb +0 -1
  223. data/lib/keppler/add.rb +13 -0
  224. data/lib/keppler/cli.rb +134 -5
  225. data/lib/keppler/delete.rb +13 -0
  226. data/lib/keppler/version.rb +1 -1
  227. metadata +117 -23
  228. data/installer/core/app/assets/images/admin/space.png +0 -0
  229. data/installer/core/app/assets/stylesheets/admin/pages/_header.scss +0 -34
  230. data/installer/core/app/assets/stylesheets/admin/pages/_pageslide.scss +0 -125
  231. data/installer/core/db/schema.rb +0 -172
  232. data/installer/lib/conf.rb +0 -31
  233. data/installer/lib/scaffold.rb +0 -10
  234. data/installer/run.sh +0 -17
  235. data/installer/scripts/bin.sh +0 -61
  236. data/lib/keppler/cli/generate.rb +0 -19
@@ -6,11 +6,11 @@ class ApplicationPolicy
6
6
  user.keppler_admin?
7
7
  end
8
8
 
9
- def admin?
10
- user.admin?
11
- end
12
-
13
9
  def same_user?(id)
14
10
  user.id.eql?(id)
15
11
  end
12
+
13
+ def user_can?(objects, method)
14
+ user.can?(objects.model_name.name, method)
15
+ end
16
16
  end
@@ -8,31 +8,31 @@ class ControllerPolicy < ApplicationPolicy
8
8
  end
9
9
 
10
10
  def index?
11
- true
11
+ keppler_admin? || user_can?(@objects, 'index')
12
12
  end
13
13
 
14
14
  def new?
15
- create?
15
+ create? || user_can?(@objects, 'create')
16
16
  end
17
17
 
18
18
  def create?
19
- keppler_admin? || admin?
19
+ keppler_admin? || user_can?(@objects, 'create')
20
20
  end
21
21
 
22
22
  def edit?
23
- update?
23
+ update? || user_can?(@objects, 'update')
24
24
  end
25
25
 
26
26
  def update?
27
- keppler_admin? || admin?
27
+ keppler_admin? || user_can?(@objects, 'update')
28
28
  end
29
29
 
30
30
  def clone?
31
- keppler_admin? || admin?
31
+ keppler_admin? || user_can?(@objects, 'clone')
32
32
  end
33
33
 
34
34
  def show?
35
- true
35
+ keppler_admin? || user_can?(@objects, 'index')
36
36
  end
37
37
 
38
38
  def destroy_multiple?
@@ -40,14 +40,18 @@ class ControllerPolicy < ApplicationPolicy
40
40
  end
41
41
 
42
42
  def destroy?
43
- keppler_admin? || admin?
43
+ keppler_admin? || user_can?(@objects, 'destroy')
44
44
  end
45
45
 
46
- def import?
47
- keppler_admin? || admin?
46
+ def upload?
47
+ keppler_admin? || user_can?(@objects, 'upload')
48
48
  end
49
49
 
50
50
  def download?
51
- keppler_admin? || admin?
51
+ keppler_admin? || user_can?(@objects, 'download')
52
+ end
53
+
54
+ def sort?
55
+ keppler_admin? || user_can?(@objects, 'sort')
52
56
  end
53
57
  end
@@ -0,0 +1,25 @@
1
+ # Policy for Role model
2
+ class RolePolicy < ControllerPolicy
3
+ attr_reader :user, :objects
4
+
5
+ def initialize(user, objects)
6
+ @user = user
7
+ @objects = objects
8
+ end
9
+
10
+ def clone?
11
+ false
12
+ end
13
+
14
+ def add_permissions?
15
+ keppler_admin? || user_can?(@objects, 'add_permissions')
16
+ end
17
+
18
+ def create_permissions?
19
+ keppler_admin? || user_can?(@objects, 'create_permissions')
20
+ end
21
+
22
+ def show_description?
23
+ keppler_admin? || user_can?(@objects, 'create_permissions')
24
+ end
25
+ end
@@ -12,6 +12,6 @@ class UserPolicy < ControllerPolicy
12
12
  end
13
13
 
14
14
  def destroy?
15
- (keppler_admin? || admin?) && !same_user?(@user)
15
+ keppler_admin? && !same_user?(@user)
16
16
  end
17
17
  end
@@ -3,12 +3,16 @@
3
3
  # AttachmentUploader Carrierwave
4
4
  class AttachmentUploader < CarrierWave::Uploader::Base
5
5
  # Include RMagick or MiniMagick support:
6
- # include CarrierWave::RMagick
6
+ include CarrierWave::RMagick
7
+ include CarrierWave::ImageOptimizer
8
+
7
9
  # include CarrierWave::MiniMagick
8
10
 
9
11
  # Choose what kind of storage to use for this uploader:
10
12
  storage :file
11
13
  # storage :fog
14
+ process :optimize
15
+ process quality: 100
12
16
 
13
17
  # Override the directory where uploaded files will be stored.
14
18
  # This is a sensible default for uploaders that are meant to be mounted:
@@ -16,6 +20,13 @@ class AttachmentUploader < CarrierWave::Uploader::Base
16
20
  "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
17
21
  end
18
22
 
23
+ def size_range
24
+ return_size_type(file.content_type)
25
+ end
26
+
27
+ version :thumb do
28
+ process resize_to_fit: [200, 200]
29
+ end
19
30
  # Provide a default URL as a default if there hasn't been a file uploaded:
20
31
 
21
32
  # Process files as they are uploaded:
@@ -41,4 +52,10 @@ class AttachmentUploader < CarrierWave::Uploader::Base
41
52
  # def filename
42
53
  # "something.jpg" if original_filename
43
54
  # end
55
+ private
56
+
57
+ def return_size_type(file)
58
+ return 0..1.megabytes if file.include?('image')
59
+ 0..5.megabytes
60
+ end
44
61
  end
@@ -1,13 +1,13 @@
1
1
  %aside.control-sidebar.control-sidebar-light
2
2
  .tab-content
3
3
  %p.control-sidebar-heading
4
- = @activities.empty? ? t('keppler.messages.no_events') : t("keppler.titles.history")
4
+ = @activities.empty? ? t('keppler.messages.no_events') : t('keppler.titles.history')
5
5
  %ul.timeline
6
6
  - @activities.each do |activity|
7
- - if activity.trackable_type.eql? "Session"
7
+ - if activity.trackable_type.eql? 'Session'
8
8
  %li
9
- = render partial: "public_activity/session/#{activity.key.split(".").second}", locals: { activity: activity, method: "name" }
9
+ = render partial: "public_activity/session/#{activity.key.split('.').second}", locals: { activity: activity, method: 'name' }
10
10
  - else
11
11
  %li
12
- = render partial: "public_activity/layout/#{activity.key.split(".").second}", locals: { activity: activity, method: "name" }
12
+ = render partial: "public_activity/layout/#{activity.key.split('.').second}", locals: { activity: activity, method: 'name' }
13
13
  .control-sidebar-bg
@@ -2,7 +2,7 @@
2
2
  .container
3
3
  .row
4
4
  .col-lg-2
5
- = link_to admin_customizes_path, class: "", "data-position" => "bottom", "data-tooltip" => t("keppler.actions.back") do
5
+ = link_to admin_customizes_path, 'data-position' => 'bottom', 'data-tooltip' => t('keppler.actions.back') do
6
6
  .arrow-back.btn.btn-default
7
7
  %i.fa.fa-angle-left
8
8
  = t('keppler.actions.back')
@@ -23,11 +23,11 @@
23
23
  .row
24
24
  .col-md-12
25
25
  .form-group.files
26
- %input{type: "hidden", name: "customize[file]"}
26
+ %input{ type: 'hidden', name: 'customize[file]' }
27
27
  = f.input :file, label: false
28
28
 
29
29
  .row
30
30
  .col-lg-12
31
31
  .pull-right
32
- = f.button :submit, t("keppler.actions.save"), name: "_save", class: "btn-primary"
33
- = f.button :submit, t("keppler.actions.save_and_add_another"), name: "_add_other"
32
+ = f.button :submit, t('keppler.actions.save'), name: '_save', class: 'btn-primary'
33
+ = f.button :submit, t('keppler.actions.save_and_add_another'), name: '_add_other'
@@ -1,6 +1,6 @@
1
1
  %tr{id: "row-#{customize.id}"}
2
2
  %td.item-check{style:"width: 5%"}
3
- - if Pundit.policy(current_user, Customize).destroy?
3
+ - if can?(Customize).destroy?
4
4
  - if !customize.id.eql?(1) && !customize.installed
5
5
  = link_to admin_customize_path(customize), method: :delete do
6
6
  %i.icon-trash.icon-delete
@@ -1,16 +1,11 @@
1
1
  = simple_form_for customize, url: admin_customize_install_default_path(customize), method: :post do |f|
2
2
  - if customize.installed == false
3
- %label
4
- %span.status.pull-left{style: "padding-right: 50px"} No installed
5
- .switch.pull-right
6
- %input{name: "customize[installed]", type: "hidden", value: "true"}
7
- %input#default_switch{:name => "customize[installed]", type: "checkbox", value: "true"}/
8
- %label.label-default{:for => "default_switch", onclick: "$('#edit_customize_#{customize.id}').submit(); $('#spinner').css('display', 'block')"}
9
-
3
+ %label.switch.pull-right
4
+ %input{ name: 'customize[installed]', type: 'hidden', value: 'true' }
5
+ %input#default_switch{ name: 'customize[installed]', type: 'checkbox', value: 'true'}
6
+ %span.slider.round{onclick: "$('#edit_customize_#{customize.id}').submit(); $('#spinner').css('display', 'block')"}
10
7
  - else
11
- %label
12
- %span.status.pull-left{style: "padding-right: 50px"} Installed
13
- .switch.pull-right
14
- %input{name: "customize[installed]", type: "hidden", value: "false"}
15
- %input#default_switch{:name => "customize[installed]", type: "checkbox", value: "false", checked: "checked"}/
16
- %label.label-default{:for => "default_switch", onclick: "$('#edit_customize_#{customize.id}').submit(); $('#spinner').css('display', 'block')"}
8
+ %label.switch.pull-right
9
+ %input{ name: 'customize[installed]', type: 'hidden', value: 'false' }
10
+ %input.active#default_switch{ name: 'customize[installed]', type: 'checkbox', value: 'false', checked: "checked"}
11
+ %span.slider.round{onclick: "$('#edit_customize_#{customize.id}').submit(); $('#spinner').css('display', 'block')"}
@@ -2,18 +2,15 @@
2
2
  = simple_form_for [:admin, customize] do |f|
3
3
  %label
4
4
  - if customize.installed == false
5
- %span.status.pull-left{style: "padding-right: 50px"} No installed
6
- .switch.pull-right
7
- %input{name: "customize[installed]", type: "hidden", value: "true"}
8
- %input#default_switch{:name => "customize[installed]", type: "checkbox", value: "true"}/
9
- %label.label-default{:for => "default_switch", onclick: "installTemplate(#{customize.id})"}
10
-
5
+ %label.switch.pull-right
6
+ %input{ name: 'customize[installed]', type: 'hidden', value: 'true' }
7
+ %input#default_switch{ name: 'customize[installed]', type: 'checkbox', value: 'true'}
8
+ %span.slider.round{onclick: "installTemplate(#{customize.id})"}
11
9
  - else
12
- %span.status.pull-left{style: "padding-right: 50px"} Installed
13
- .switch.pull-right
14
- %input{name: "customize[installed]", type: "hidden", value: "false"}
15
- %input#default_switch{:name => "customize[installed]", type: "checkbox", value: "false", checked: "checked"}/
16
- %label.label-default{:for => "default_switch", onclick: "installTemplate(#{customize.id})"}
10
+ %label.switch.pull-right
11
+ %input{ name: 'customize[installed]', type: 'hidden', value: 'false' }
12
+ %input.active#default_switch{ name: 'customize[installed]', type: 'checkbox', value: 'false', checked: 'checked' }
13
+ %span.slider.round{onclick: "installTemplate(#{customize.id})"}
17
14
 
18
15
  :javascript
19
16
  function installTemplate(customize_id) {
@@ -1,4 +1,4 @@
1
- .row{style: 'padding: 2rem;padding-top: 20px;padding: 2rem;'}
1
+ #customize-index.row
2
2
  .col-md-6.col-lg-6
3
3
  .box.slice-box
4
4
  .box-header.with-border
@@ -9,11 +9,11 @@
9
9
  %i.icon-screen-desktop#lg
10
10
  -# %span.separator-line
11
11
  %i.icon-reload#reload
12
- = link_to root_path, target: "_blank" do
12
+ = link_to root_path, target: '_blank' do
13
13
  %i.icon-size-fullscreen
14
14
 
15
- .box-body.box-body-no-padding.hidden-xs#box-body{style:"height: 325px;flow:hidden;overflow:hidden; margin: 0 auto"}
16
- %iframe{src: "#{root_path}", frameborder:"0", style:"height:250%;width:250%;zoom:1.8;transform:scale(0.4);transform-origin:0 0;"}
15
+ .box-body.box-body-no-padding.hidden-xs#box-body
16
+ %iframe{ src: root_path, frameborder: '0' }
17
17
  .col-md-6.col-lg-6
18
18
  .box.slice-box
19
19
  .box-header.with-border
@@ -25,14 +25,14 @@
25
25
  = render 'listing', customize: customize
26
26
  - if @objects.size.zero?
27
27
  %tr
28
- %td{colspan: "4"}
28
+ %td{ colspan: 4 }
29
29
  %center
30
- = t('keppler.messages.not_found_records', model: t("keppler.models.pluralize.customizes"))
30
+ = t('keppler.messages.not_found_records', model: t('keppler.models.pluralize.customizes'))
31
31
  %center#paginator-module
32
32
  = paginate @objects, window: 1
33
33
  .listing-show.col.l3.m12.hide-on-small-and-down.hide-on-med-and-down
34
- = render "description"
35
- - if Pundit.policy(current_user, Customize).create?
34
+ = render 'description'
35
+ - if can?(Customize).create?
36
36
  .mixed-btn
37
- = link_to new_admin_customize_path, class: "btn-float" do
37
+ = link_to new_admin_customize_path, class: 'btn-float' do
38
38
  +
@@ -1,8 +1,8 @@
1
1
  %head
2
- %meta{:name => "viewport", :content => "width=device-width, initial-scale=1.0"}
3
- %link{href:'https://fonts.googleapis.com/css?family=Patua+One', rel:'stylesheet', type:'text/css'}
2
+ %meta{ name: 'viewport', content: 'width=device-width, initial-scale=1.0' }
3
+ %link{ href:'https://fonts.googleapis.com/css?family=Patua+One', rel: 'stylesheet', type: 'text/css' }
4
4
  %title= content_for?(:title) ? yield(:title) : 'Keppler Admin'
5
5
  = stylesheet_link_tag 'admin/application', media: 'all'
6
6
  = javascript_include_tag 'admin/application', 'data-turbolinks-track' => true
7
7
  = csrf_meta_tags
8
- = favicon_link_tag "admin/favicon.png"
8
+ = favicon_link_tag 'admin/favicon.png'
@@ -0,0 +1,12 @@
1
+ :javascript
2
+ $('.keppler-switch').click(function(event) {
3
+ event.preventDefault()
4
+ var input = $(this).find('input')
5
+ var label = $(this).find('.inline-label')
6
+ input
7
+ .toggleClass('active')
8
+ .val(input.hasClass('active'))
9
+ label
10
+ .toggleClass('active')
11
+ .text(label.hasClass('active'))
12
+ })
@@ -1,11 +1,11 @@
1
1
  %header.main-header
2
- %nav.navbar.navbar-static-top
3
- %a.logo.hidden-xs{href: "/admin/dashboard"}
2
+ %nav.navbar.navbar-static-top
3
+ %a.logo.keppler-color.hidden-xs{ href: '/admin/dashboard' }
4
4
  %span.logo-mini
5
5
  %span K
6
6
  %span.logo-lg
7
7
  %span K
8
- %a.sidebar-toggle{"data-toggle" => "offcanvas", href: "#", role: "button"}
8
+ %a.sidebar-toggle{ 'data-toggle' => 'offcanvas', href: '#', role: 'button' }
9
9
  %i.icon-menu
10
10
  %span.sr-only Toggle navigation
11
11
  - if listing? && @q
@@ -14,33 +14,34 @@
14
14
  = search_form_for [:admin, @q], html: { method: :get } do |f|
15
15
  = f.search_field search_model, placeholder: "#{t('keppler.actions.search')}...", class: 'form-control search-bar'
16
16
  %span.input-group-btn
17
- %button.btn.search-button.toggle-search{type: "submit"}
18
- %span.glyphicon.glyphicon-search.search-icon
17
+ %button.btn.search-button.toggle-search{ type: 'submit' }
18
+ %i.icon-magnifier.search-icon{ style: 'line-height: 1.4;' }
19
19
  .hide-search
20
- %i.fa.fa-angle-left
20
+ %i.fa.fa-arrow-left
21
21
 
22
22
  .navbar-custom-menu
23
23
  %ul.nav.navbar-nav
24
- %li.dropdown.messages-menu
25
- %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"}
26
- %i.icon-envelope
24
+ -# - if defined?(KepplerContactUs) && KepplerContactUs.is_a?(Class)
25
+ %li.dropdown.messages-menu
26
+ %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"}
27
+ %i.icon-envelope
27
28
  %li.dropdown.user.user-menu
28
- %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"}
29
- .small-profile-img{ style: "background-image: url(#{current_user.avatar? ? current_user.avatar : 'https://thumbs.dreamstime.com/t/profile-icon-male-avatar-portrait-casual-person-silhouette-face-flat-design-vector-46846326.jpg'})" }
29
+ %a.dropdown-toggle{ 'data-toggle' => 'dropdown', href: '#' }
30
+ = image_tag (current_user.avatar.url || 'admin/avatar_keppler.svg'), class: 'small-profile-img keppler-background'
30
31
  %span.hidden-xs= current_user.name
31
32
  %ul.dropdown-menu
32
33
  %li.user-header{ style: @appearance.image_background? ? "background-image: url(#{@appearance.image_background})" : nil }
33
- .img-circle.nav-profile-img{:alt => "User Image", style: "background-image: url(#{current_user.avatar? ? current_user.avatar : 'https://thumbs.dreamstime.com/t/profile-icon-male-avatar-portrait-casual-person-silhouette-face-flat-design-vector-46846326.jpg'})"}
34
+ = image_tag (current_user.avatar.url || 'admin/avatar_keppler.svg'), class: 'img-circle nav-profile-img', alt: current_user.name
34
35
  %p
35
36
  = current_user.name
36
37
  %small
37
- = "#{t('keppler.navigation.last_session')} #{current_user.updated_at.strftime("%d %b %Y")}"
38
+ = "#{t('keppler.navigation.last_session')} #{current_user.updated_at.strftime('%d %b %Y')}"
38
39
  %li.user-footer
39
40
  .pull-left
40
- = link_to "Profile", "/admin/users/#{current_user.id}", class: "btn btn-default btn-flat"
41
+ = link_to 'Profile', "/admin/users/#{current_user.id}", class: 'btn btn-default btn-flat'
41
42
  .pull-right
42
- = link_to t('devise.sign_out'), destroy_session_path(current_user), class: " btn btn-default btn-flat"
43
+ = link_to t('devise.sign_out'), destroy_session_path(current_user), class: 'btn btn-default btn-flat'
43
44
  - if listing?
44
45
  %li.hidden-xs
45
- %a{:href=>"#", "data-toggle" => "control-sidebar"}
46
+ %a{ href: '#', 'data-toggle' => 'control-sidebar' }
46
47
  %i.icon-clock
@@ -1,59 +1,50 @@
1
1
  %aside.main-sidebar
2
- %section.sidebar.sidebar-collapse{style: "" }
2
+ %section.sidebar.sidebar-collapse
3
3
  / Sidebar user panel
4
- .user-panel{ style: @appearance.image_background? ? "background-image: url(#{@appearance.image_background})" : nil }
4
+ .user-panel
5
+ -# Activar background del panel de usuario para versiones darken
6
+ -# - if @appearance.image_background?
7
+ :sass
8
+ .user-panel
9
+ background-image: url(#{@appearance.image_background})
5
10
  .pull-left.image
6
- .img-circle.side-img-profile{:alt => "User Image", style: "background-image: url(#{current_user.avatar? ? current_user.avatar : 'https://thumbs.dreamstime.com/t/profile-icon-male-avatar-portrait-casual-person-silhouette-face-flat-design-vector-46846326.jpg'})" }
11
+ = image_tag (current_user.avatar.url || 'admin/avatar_keppler.svg'), class: 'img-circle side-img-profile keppler-background', alt: current_user.name
7
12
  .info
8
13
  %p= current_user.name
9
14
  %small= current_user.rol.humanize
10
15
  / sidebar menu: : style can be found in sidebar.less
11
16
  %ul.sidebar-menu.tree{"data-widget" => "tree" }
12
- %li.header MAIN NAVIGATION
13
- -# %li
17
+ -# %li.header MAIN NAVIGATION
18
+ %li
19
+ -# - if can?('Dashboard').index?
14
20
  = link_to '/admin/dashboard' do
15
21
  %i.icon-pie-chart
16
22
  %span= t('keppler.sidebar-menu.dashboard')
17
23
  - @sidebar.each do |menu|
18
24
  - menu.each do |key, value|
19
25
  - unless menu[key]["submenu"] # ontetab sidebar linkbyg
20
- - if menu[key]["model"] && Pundit.policy(current_user, menu[key]["model"].constantize).index?
26
+ - if menu[key]["model"] && can?(menu[key]["model"].constantize).index?
21
27
  %li.treeview{ class: ('active' if controller_name.eql?(menu[key]['name']))}
22
28
  = link_to menu[key]['url_path'], class: "collapsible-header #{'current' if menu[key]['current'].include?(controller_path)}", :'data-no-turbolink'=> true do
23
29
  %i{ class: "icon-#{menu[key]["icon"]}" }
24
30
  %span= t("keppler.sidebar-menu.#{menu[key]['name'].parameterize}")
25
31
  - else # tree sidebar links
26
- - if menu[key]["model"] && Pundit.policy(current_user, menu[key]["model"].constantize).index?
27
- %li{ class: ('active' if menu[key]['current'].include?(controller_path))}
28
- %a{ href: "#", class: "#{'active current' if menu[key]['current'].include?(controller_path)}" }
29
- %i{ class: "icon-#{menu[key]['icon']}" }
30
- %span= t("keppler.sidebar-menu.#{menu[key]['name'].parameterize}")
32
+ - unless menu[key]["model"].eql?('Customize') and Rails.env.production?
33
+ - if menu[key]["model"] && can?(menu[key]["model"].constantize).index?
34
+ %li{ class: ('active' if menu[key]['current'].include?(controller_path))}
35
+ %a{ href: "#", class: "#{'active current' if menu[key]['current'].include?(controller_path)}" }
36
+ %i{ class: "icon-#{menu[key]['icon']}" }
37
+ %span= t("keppler.sidebar-menu.#{menu[key]['name'].parameterize}")
38
+ %ul.treeview-menu
39
+ - menu[key]["submenu"].each do |submenu|
40
+ - submenu.each do |name, val|
41
+ %li
42
+ - if settings_path?
43
+ = link_to t("keppler.sidebar-menu.#{menu[key]['name'].parameterize}-submenu.#{submenu[name]['name'].parameterize}"), submenu[name]['url_path'], class: "#{'current' if submenu[name]['current'].include?(@render)}", :'data-no-turbolink'=>true, class: (submenu[name]['url_path'].eql?("/admin/settings/email_setting") ? 'cut-text' : '')
44
+ - else
45
+ = link_to t("keppler.sidebar-menu.#{menu[key]['name'].parameterize}-submenu.#{submenu[name]['name'].parameterize}"), submenu[name]['url_path'], class: "#{'current' if submenu[name]['current'].include?(controller_path)}", :'data-no-turbolink'=> true, class: (submenu[name]['url_path'].eql?("/admin/settings/email_setting") ? 'cut-text' : '')
46
+
31
47
 
32
- %ul.treeview-menu
33
- - menu[key]["submenu"].each do |submenu|
34
- - submenu.each do |name, val|
35
- %li
36
- - if settings_path?
37
- = link_to t("keppler.sidebar-menu.#{menu[key]['name'].parameterize}-submenu.#{submenu[name]['name'].parameterize}"), submenu[name]['url_path'], class: "#{'current' if submenu[name]['current'].include?(@render)}", :'data-no-turbolink'=>true, class: (submenu[name]['url_path'].eql?("/admin/settings/email_setting") ? 'cut-text' : '')
38
- - else
39
- = link_to t("keppler.sidebar-menu.#{menu[key]['name'].parameterize}-submenu.#{submenu[name]['name'].parameterize}"), submenu[name]['url_path'], class: "#{'current' if submenu[name]['current'].include?(controller_path)}", :'data-no-turbolink'=> true, class: (submenu[name]['url_path'].eql?("/admin/settings/email_setting") ? 'cut-text' : '')
40
- %li
41
- = link_to '#' do
42
- %i.icon-settings
43
- %span= t('keppler.sidebar-menu.setting')
44
- %ul{class: "treeview-menu", style:"display: none;"}
45
- %li
46
- %a{"data-no-turbolink"=>"true", href:"/admin/settings/basic_information"}
47
- = t('keppler.sidebar-menu.setting-submenu.basic-information')
48
- %li
49
- %a{"data-no-turbolink"=>"true", href:"/admin/settings/email_setting"}
50
- = t('keppler.sidebar-menu.setting-submenu.email-setting-smtp')
51
- %li
52
- %a{"data-no-turbolink"=>"true", href:"/admin/settings/google_analytics_setting"}
53
- = t('keppler.sidebar-menu.setting-submenu.google-analytics')
54
- %li
55
- %a{"data-no-turbolink"=>"true", href:"/admin/settings/social_accounts"}
56
- = t('keppler.sidebar-menu.setting-submenu.social-accounts')
57
48
  #sidebar-footer
58
49
  %a{:href=>"http://slicegroup.xyz", target: "_blank" }
59
50
  #slice.brand.pull-left