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
@@ -3,28 +3,28 @@
3
3
 
4
4
  .row
5
5
  .col-xs-12
6
- = link_to admin_users_path, class: "", "data-position" => "bottom", "data-tooltip" => t("keppler.actions.back") do
6
+ = link_to admin_users_path, 'data-position' => 'bottom', 'data-tooltip' => t('keppler.actions.back') do
7
7
  .arrow-back.btn.btn-default
8
8
  %i.fa.fa-angle-left
9
9
  = t('keppler.actions.back')
10
10
  .row
11
- .col-md-4.col-sm-5
11
+ .col-md-4
12
12
  .box.slice-box
13
+ .box-header.with-border
14
+ %h3.box-title Avatar
15
+ - unless @user.avatar.blank?
16
+ .pull-right
17
+ = link_to admin_user_delete_avatar_path(@user), remote: true do
18
+ %i.icon-trash
13
19
  .box-body.box-profile
14
- .upload-image
15
- .files.form-group.trigger{ class: "#{'files-absolute' unless @user.avatar.blank?}" }
16
- #icon-file
17
- +
18
- = f.file_field :avatar, class: 'photo_upload'
19
- %center#image
20
- = image_tag "#{@user.avatar.blank? ? 'avatar.png' : @user.avatar}", class: "#{'hidden' if @user.avatar.blank?} image_to_upload"
20
+ = f.input :avatar, as: :keppler_file, label: false
21
21
 
22
22
 
23
23
 
24
- .col-md-8.col-sm-7
24
+ .col-md-8
25
25
  .box.slice-box
26
26
  .box-header.with-border
27
- %h3.box-title User
27
+ %h3.box-title= @user.name || 'User'
28
28
 
29
29
 
30
30
  .box-body
@@ -33,27 +33,20 @@
33
33
  .form-padding
34
34
  .row
35
35
  .col-lg-6
36
- = f.input :name, label: false, placeholder: "Name", input_html: {class: "form-control"}, required: true
37
-
36
+ = f.input :name, label: t('simple_form.labels.defaults.name'), placeholder: 'Name', input_html: {class: 'form-control'}, required: true
38
37
  .col-lg-6
39
- = f.input :email, label: false, placeholder: "Email", input_html: {class: "form-control"}, required: true
38
+ = f.input :email, label: t('simple_form.labels.defaults.email'), placeholder: 'Email', input_html: {class: 'form-control'}, required: true
40
39
  .row
41
40
  .col-xs-12
42
- -# = f.input :role_ids, label: false, collection: @roles, include_blank: t("keppler.actions.select_rol"), input_html: { class: "form-control" }, required: true
43
- .form-group
44
- %select#user_role_ids.form-control.select.required.form-control{"aria-required" => "true", :name => "user[role_ids]", :required => "required"}
45
- %option{:value => ""} Seleccionar rol
46
- - @roles.each do |role|
47
- %option{ value: role.last }= role.first
48
-
41
+ = f.input :role_ids, collection: @roles, label: false, include_blank: "Selecione un rol"
49
42
  .row
50
43
  .col-lg-6
51
- = f.input :password, label: false, placeholder: "Password", input_html: {class: "form-control"}, required: true
44
+ = f.input :password, label: t('simple_form.labels.defaults.password'), placeholder: 'Password', input_html: {class: 'form-control'}, required: true
52
45
  .col-lg-6
53
- = f.input :password_confirmation, label: false, placeholder: "Password Confirmation", input_html: {class: "form-control"}, required: true
46
+ = f.input :password_confirmation, label: t('simple_form.labels.defaults.password_confirmation'), placeholder: 'Password Confirmation', input_html: {class: 'form-control'}, required: true
54
47
 
55
48
  .row
56
49
  .col-lg-12
57
50
  .pull-right
58
- = f.button :submit, t("keppler.actions.save"), name: "_save", class: "btn-primary"
59
- = f.button :submit, t("keppler.actions.save_and_add_another"), name: "_add_other"
51
+ = f.button :submit, t('keppler.actions.save'), name: '_save', class: 'btn-primary'
52
+ = f.button :submit, t('keppler.actions.save_and_add_another'), name: '_add_other'
@@ -1,6 +1,6 @@
1
1
  .tab-content
2
2
  %h6.actions
3
- - if Pundit.policy(current_user, User).update?
3
+ - if can?(User).update?
4
4
  = link_to edit_admin_user_path(@user), title: t("keppler.actions.edit"), class: 'pull-left' do
5
5
  %i.icon-pencil
6
6
  %span= t('keppler.actions.edit')
@@ -10,7 +10,7 @@
10
10
  %i.icon-user
11
11
  %b= "#{@user.name}"
12
12
  %small= "(#{@user.rol.humanize})"
13
- = image_tag @user.avatar
13
+ = image_tag @user.avatar.url if @user.avatar.url
14
14
  %ul.timeline
15
15
  - @user.as_json(only: ["id", "name", "permalink", "email", "created_at", "sign_in_count", "updated_at", "password"]).each do |attribute, value|
16
16
  %li.list-row
@@ -1,6 +1,6 @@
1
1
  - objects.each do |user|
2
2
  %tr{ id: "row-#{user.id}" }
3
- - if Pundit.policy(current_user, User).destroy_multiple?
3
+ - if can?(User).destroy_multiple?
4
4
  %td.item-check{style:"width: 10%"}
5
5
  - if user.id.eql?(current_user.id)
6
6
  - else
@@ -12,7 +12,7 @@
12
12
 
13
13
  %td.avatar
14
14
  = link_to admin_user_path(user, search: @query), remote: true, class: 'show-row' do
15
- = image_tag user.avatar
15
+ = image_tag user.avatar.url if user.avatar.url
16
16
  %td.visible-lg.visible-md
17
17
  = link_to admin_user_path(user, search: @query), remote: true, class: 'show-row' do
18
18
  %span= user.name
@@ -26,22 +26,22 @@
26
26
  %a.action-btn.pull-right{ id: "menu-#{user.id}", 'aria-expanded' => 'false', 'aria-haspopup' => 'true', 'data-toggle' => 'dropdown'}
27
27
  %i.icon-options-vertical
28
28
  %ul.actions.dropdown-menu{'aria-labelledby' => "menu-#{user.id}"}
29
- - if Pundit.policy(current_user, User).show?
29
+ - if can?(User).show?
30
30
  %li
31
31
  = link_to admin_user_path(user), class: 'new-menu', title: t('keppler.actions.show') do
32
32
  %i.icon-eye
33
33
  = t('keppler.actions.show')
34
- - if Pundit.policy(current_user, User).update?
34
+ - if can?(User).update?
35
35
  %li
36
36
  = link_to edit_admin_user_path(user), class: 'new-menu', title: t('keppler.actions.edit') do
37
37
  %i.icon-pencil
38
38
  = t('keppler.actions.edit')
39
- - if Pundit.policy(current_user, User).clone?
39
+ - if can?(User).clone?
40
40
  %li
41
41
  = link_to admin_user_path(user), class: 'new-menu', title: t('keppler.actions.clone') do
42
42
  %i.icon-docs
43
43
  = t('keppler.actions.clone')
44
- - if Pundit.policy(current_user, User).destroy?
44
+ - if can?(User).destroy?
45
45
  - unless user.id.eql?(current_user.id)
46
46
  %li
47
47
  = link_to admin_user_path(user), class: 'new-menu', title: t('keppler.actions.delete'), method: :delete, data: { confirm: t('keppler.messages.data_confirm') } do
@@ -0,0 +1,3 @@
1
+ alert(#{'asdasdasdasda'})
2
+
3
+ $('#spinner').fadeOut(500)
@@ -0,0 +1,9 @@
1
+ $('#objects-container').html('<%= j render "listing", objects: @users %>')
2
+
3
+ $('.action-btn').click(function(e) {
4
+ var elem = $(`ul[aria-labelledby='${this.id}']`)[0];
5
+ var top = $(this).position().top;
6
+ $(elem).css("top",(top) + "px")
7
+ });
8
+
9
+ <%= puts params[:role] %>
@@ -1,4 +1,4 @@
1
- #index-container{ :controller => 'users' }
1
+ #index-container{ controller: 'users' }
2
2
  .container
3
3
  .row
4
4
  .listing.col-lg-12.col-xs-12
@@ -7,13 +7,14 @@
7
7
  = t("keppler.modules.#{controller_path.underscore}")
8
8
  = entries(@total, @objects)
9
9
  .toolbar
10
+ - if can?(User).download?
11
+ .toolbar-item
12
+ = link_to admin_users_path(:format => :xls), class: 'tool-btn', title: t('keppler.actions.download_records') do
13
+ %i.icon-cloud-download
10
14
  .toolbar-item
11
- = link_to admin_users_path(:format => :xls), class: "tool-btn", title: t('keppler.actions.download_records') do
12
- %i.icon-cloud-download
13
- .toolbar-item
14
- = link_to reload_admin_users_path, class: "tool-btn", remote: true do
15
+ = link_to reload_admin_users_path, class: 'tool-btn', remote: true do
15
16
  %i.icon-reload
16
- - if Pundit.policy(current_user, User).destroy_multiple?
17
+ - if can?(User).destroy_multiple?
17
18
  .toolbar-item
18
19
  .checkbox
19
20
  %label{ for: 'checkbox-all' }
@@ -21,13 +22,22 @@
21
22
  %span.cr
22
23
  %i.cr-icon.glyphicon.glyphicon-ok
23
24
  .toolbar-item
24
- %a.tool-btn{"data-confirm" => "¿Estás seguro?", "data-method" => "delete", "v-bind:href" => "link", :rel => "nofollow", ":class" => "{disabled: !checks}" }
25
+ %a.tool-btn{'data-confirm' => '¿Estás seguro?', 'data-method' => 'delete', 'v-bind:href' => 'link', rel: 'nofollow', ':class' => '{disabled: !checks}' }
25
26
  %i.icon-trash
26
27
  %ol.breadcrumb
27
28
  %li
28
29
  %a{ href: '#' }
29
30
  %i.icon-directions
30
31
  = t("keppler.modules.#{action_name.underscore}")
32
+
33
+ .form-group
34
+ %label.control-label.string.required{ for: 'user_name' }
35
+ Filtrar usuarios por rol
36
+ = simple_form_for Role.last, url: filter_by_role_path, method: :post, remote: true do |f|
37
+ %select#filter_by_role.form-control.form-control{ name: 'role', onchange: '$(this).parent().submit()' }
38
+ %option{ name: 'role', value: 'all' } Todos
39
+ - @roles.each do |role|
40
+ %option{ name: 'role', value: role.first.downcase }= role.first
31
41
  .box.slice-box
32
42
  .box-body.no-padding
33
43
  %table.table.table-striped
@@ -43,30 +53,20 @@
43
53
  %th.visible-lg.visible-md= t('activerecord.attributes.name')
44
54
  %th= t('activerecord.attributes.email')
45
55
  %th.visible-lg.visible-md= t('activerecord.attributes.role')
46
- %th.center{ style: 'padding-right: 30px' }
47
- Actions
56
+ %th
48
57
  %tbody#objects-container
49
58
  = render 'admin/layouts/listing_preloader'
50
- = render 'listing', objects: @objects
59
+ = render 'listing', objects: @users
51
60
  %center#paginator-module
52
61
  = paginate @objects, window: 1
53
62
 
54
63
  .listing-show.hidden-xs
55
64
  = render 'description'
56
65
  %aside#index-show.control-sidebar
57
- - if Pundit.policy(current_user, User).create?
66
+ - if can?(User).create?
58
67
  .mixed-btn
59
68
  = link_to new_admin_user_path, class: 'btn-float' do
60
69
  +
61
- :javascript
62
- $(document).ready(function(){
63
- $('#user').click(function() {
64
- $('#import_file_user').click()
65
- $('#import_file_user').change(function() {
66
- $('.waiting').css('display', 'block')
67
- $('#import_form_user').submit()
68
- })
69
- });
70
70
 
71
- renderImg();
72
- });
71
+ :javascript
72
+ $('#role-1').fadeOut()
@@ -1,7 +1,7 @@
1
1
  .container
2
2
  .row
3
3
  .col-lg-2
4
- = link_to admin_users_path, class: "", "data-position" => "bottom", "data-tooltip" => t("keppler.actions.back") do
4
+ = link_to admin_users_path, 'data-position' => 'bottom', 'data-tooltip' => t('keppler.actions.back') do
5
5
  .arrow-back.btn.btn-default
6
6
  %i.fa.fa-angle-left
7
7
  = t('keppler.actions.back')
@@ -10,27 +10,25 @@
10
10
  .col-lg-3
11
11
  .box.slice-box
12
12
  .box-body.box-profile
13
- .profile-user-img.img-responsive.bg-profile{style: "background-image: url(#{@user.avatar? ? @user.avatar : 'https://thumbs.dreamstime.com/t/profile-icon-male-avatar-portrait-casual-person-silhouette-face-flat-design-vector-46846326.jpg'})"}
13
+ = image_tag (@user.avatar.url || 'admin/avatar_keppler.svg'), class: 'profile-user-img img-circle img-responsive', alt: @user.name
14
14
  %h3.profile-username.text-center= @user.name
15
15
  %p.text-muted.text-center= @user.rol.humanize
16
16
  .col-lg-9
17
17
  .box.slice-box
18
18
  .box-header.with-border
19
- %h3.box-title Users
19
+ %h3.box-title= @user.name || 'User'
20
20
  .box-tools.pull-right
21
- - if Pundit.policy(current_user, User).update?
22
- = link_to edit_admin_user_path(@user), class: "btn btn-box-tool", title: "#{t('keppler.actions.edit') }" do
21
+ - if can?(User).update?
22
+ = link_to edit_admin_user_path(@user), class: 'btn btn-box-tool', title: "#{t('keppler.actions.edit') }" do
23
23
  %i.icon-pencil
24
- - if Pundit.policy(current_user, User).destroy?
24
+ - if can?(User).destroy?
25
25
  - unless current_user == @user
26
- = link_to admin_user_path(@user), class: "btn btn-box-tool", title: "#{t('keppler.actions.delete')}", method: :delete, data: { confirm: t("keppler.messages.data_confirm") } do
26
+ = link_to admin_user_path(@user), class: 'btn btn-box-tool', title: "#{t('keppler.actions.delete')}", method: :delete, data: { confirm: t("keppler.messages.data_confirm") } do
27
27
  %i.icon-trash
28
-
29
- / /.box-header
30
28
  .box-body.box-body-no-padding
31
29
  %table.table.table-striped
32
30
  %tbody
33
- - @user.as_json(only: ["id", "name", "permalink", "email", "created_at", "sign_in_count", "updated_at", "password"], methods: [:rol]).each do |attribute, value|
31
+ - @user.as_json(except: %i[username deleted_at], methods: [:rol]).each do |attribute, value|
34
32
  %tr.list-row
35
- %th.display-label= t("activerecord.attributes.user.#{attribute}")
36
- %td.display-value.fs-body-1.tc-black-2= value.to_s.humanize
33
+ %th.display-label= t("activerecord.attributes.#{attribute}")
34
+ %td.display-value.fs-body-1.tc-black-2= value
@@ -14,17 +14,17 @@
14
14
  .front-social
15
15
  %ul
16
16
  %li
17
- = link_to "https://twitter.com/slicegroupxyz", target: '_blank' do
18
- -# = icon 'twitter'
17
+ = link_to "https://twitter.com/slicegroupxyz", target: '_blank' do
18
+ = icon 'fab', 'twitter'
19
19
  %li
20
- = link_to "https://www.facebook.com/slicegroupxyz/", target: '_blank' do
21
- -# = icon 'facebook'
20
+ = link_to "https://www.facebook.com/slicegroupxyz/", target: '_blank' do
21
+ = icon 'fab', 'facebook'
22
22
  %li
23
- = link_to "https://www.instagram.com/slicegroupxyz/", target: '_blank' do
24
- -# = icon 'instagram'
23
+ = link_to "https://www.instagram.com/slicegroupxyz/", target: '_blank' do
24
+ = icon 'fab', 'instagram'
25
25
  %li
26
- = link_to "https://github.com/SliceDevelopers", target: '_blank' do
27
- -# = icon 'github'
26
+ = link_to "https://github.com/SliceDevelopers", target: '_blank' do
27
+ = icon 'fab', 'github'
28
28
  .mouse-scroll
29
29
  .mouse
30
30
  .scroll
@@ -36,15 +36,16 @@
36
36
  %h3 KEPPLER ADMIN
37
37
 
38
38
  %p
39
- KEPPLER ADMIN es una entorno de desarrollo que cuenta con una base de
40
- gemas ya integradas, de tal forma que acelerará el desarrollo de
41
- aplicaciones de vanguardia bajo la plataforma de Ruby on Rails.
39
+ KEPPLER ADMIN es un CMS con un entorno de desarrollo que cuenta con
40
+ una base de gemas ya integradas, de tal forma que acelerará el
41
+ desarrollo de aplicaciones de vanguardia bajo la plataforma de Ruby
42
+ on Rails.
42
43
 
43
44
  %h3 Características
44
45
 
45
46
  %ul
46
47
  %li
47
- Base de datos por defecto MySQL
48
+ Base de datos por defecto PostreSQL
48
49
  %li
49
50
  Integración para autenticación de usuarios con
50
51
  = link_to 'Devise', 'https://github.com/plataformatec/devise', target: '_blank'
@@ -53,7 +54,7 @@
53
54
  = link_to 'Rolify', 'https://github.com/RolifyCommunity/rolify', target: '_blank'
54
55
  %li
55
56
  Integración para autorizaciones con
56
- = link_to 'CanCanCan', 'https://github.com/CanCanCommunity/cancancan', target: '_blank'
57
+ = link_to 'Pundit', 'https://github.com/varvet/pundit', target: '_blank'
57
58
  %li
58
59
  Inegración para el manejo de de paginación con
59
60
  = link_to 'Kaminari', 'https://github.com/amatsuda/kaminari', target: '_blank'
@@ -65,116 +66,165 @@
65
66
  = link_to 'Ransack', 'https://github.com/activerecord-hackery/ransack', target: '_blank'
66
67
  %li
67
68
  Integración con framework fronte-end para el administrativo con
68
- = link_to 'Materialize', 'http://materializecss.com/', target: '_blank'
69
+ = link_to 'AdminLTE', 'https://adminlte.io', target: '_blank'
69
70
  %li
70
71
  Integración con framework javascript
71
- = link_to 'AngularJs', 'https://angularjs.org/', target: '_blank'
72
+ = link_to 'VueJS', 'https://vuejs.org/', target: '_blank'
72
73
  %li
73
74
  Integración sitemap dinamicos con
74
- = link_to 'sitemap_generator', 'https://github.com/kjvarga/sitemap_generator', target: '_blank'
75
+ = link_to 'Sitemap Generator', 'https://github.com/kjvarga/sitemap_generator', target: '_blank'
75
76
 
76
- %h3 Instalación
77
+ %h3 Gema de Keppler
77
78
 
78
- %pre
79
- %code.shell
80
- git clone git@github.com:SliceDevelopers/keppler_admin.git
81
- bundle install
79
+ %h4 Instalación
82
80
 
83
- %p
84
- Luego debe configurar el archivo
85
- %pre
86
- %code.ruby
87
- config/secrets.yml
88
- = link_to '[ver archivo]', 'https://github.com/inyxtech/Keppler-CMS/blob/master/config/secrets.yml.example'
89
- de esta manera puede añadir los parámetros de configuración de su base de datos y poder realizar migraciones.
81
+ %p Una de las novedades de Keppler Admin v2.0 es el lanzamiento de una gema que nos
82
+ permite el fácil y rápido manejo de las funcionalidades del CMS. Para instalarlo
83
+ necesitamos ejecutar el siguiente comando desde la consola:
90
84
 
91
85
  %pre
92
- %code.shell
93
- rake db:create
94
- rake db:migrate
95
- rake db:seed
86
+ %code.ruby
87
+ gem install keppler`
96
88
 
97
- %h3 SimpleForm con Materialize
89
+ %h4 Lista de comandos
98
90
 
99
- %p
100
- Se ofrece una integración por defecto entre SimpleForm y Materialize, usted tiene la posibilidad de cambiar su funcionalidad en
101
- %pre
102
- %code.ruby
103
- config/initializers/simple_form_materialize.rb
91
+ %p Para verificar que está instalada la gema correctamente y ver una lista de los posibles comandos
92
+ que podemos utilizar, ejecutamos:
104
93
 
94
+ %pre
95
+ %code.ruby
96
+ keppler
105
97
 
106
- %p Aquí algunos ejemplos para la creación de inputs:
98
+ %h4 Nuevo Proyecto
99
+
100
+ %p Para crear un nuevo proyecto en Ruby on Rails con Keppler Admin, podemos ejecutar:
107
101
 
108
102
  %pre
109
- %code.haml
110
- :preserve
111
- # inputs de tipo text
112
- = f.input :name
103
+ %code.ruby
104
+ keppler new NuevoProyecto
113
105
 
114
- # inputs de tipo boolean
115
- = f.input :public, as: :checkbox_material
106
+ %h4 Creación del archivo secrets.yml
116
107
 
117
- # inputs de tipo textarea
118
- = f.input :description, input_html: { class: "materialize-textarea" }
108
+ %p
109
+ Si detienes el proceso a la mitad o aún no tienes configurado un archivo secrets.yml con la configuración de
110
+ la base de datos y otros inicializadores, puedes crear la base de datos ejecutando:
119
111
 
120
- # inputs de tipo file
121
- = f.input :image, :as => :file_material, label: false, wrapper_html: { class: "file-field" }
112
+ %pre
113
+ %code.ruby
114
+ keppler db_conf
122
115
 
123
- # inputs de tipo select
124
- = f.input :role_ids, collection: Role.all, label: false, include_blank: "Selecione un rol"
116
+ %h4 Instalación de las dependencias
125
117
 
126
- # inputs de tipo radio buttons
127
- = f.collection_radio_buttons :option, [['vegan', 'vegan'] ,['vegetarian', 'vegetarian']],:first, :last
118
+ %p
119
+ Antes de poder iniciar con un proyecto nuevo, primero debemos instalar todas las gemas
120
+ instanciadas en el Gemfile, ubicado en la raíz del proyecto, con el comando:
128
121
 
129
- # inputs de tipo check_boxes
130
- = f.collection_check_boxes :options, [['vegan', 'vegan'] ,['vegetarian', 'vegetarian']],:first, :last
122
+ %pre
123
+ %code.ruby
124
+ keppler dep
131
125
 
132
- # inputs de tipo date
133
- = f.input :date, input_html: {class: "datepicker"}
126
+ %h3 Keppler Scaffolds
134
127
 
135
- %strong
136
- Nota:
137
128
  %p
138
- Puede revisar la documentación de
139
- = link_to 'Materialize', 'http://materializecss.com/'
140
- para agregar nuevas integraciones para sus formularios a través de los
141
- = link_to 'Wrappers', 'https://github.com/plataformatec/simple_form/wiki/Custom-Wrappers'
142
- de simpleform.
129
+ Keppler ofrece la posibilidad de realizar tareas de scaffolds totalmente
130
+ configurados para adaptarse al administrativo. Para crear un nuevo
131
+ módulo sólo debes llamar al siguiente comando desde la consola:
132
+
133
+ %pre
134
+ %code.ruby
135
+ keppler add module ModuleName attribute:type
143
136
 
137
+ %p Por ejemplo, crearemos un scaffold de productos con diversos campos y tipos de datos:
144
138
 
145
- %h3 Keppler scaffolds
139
+ %pre
140
+ %code.ruby
141
+ keppler add module Product title:string description:text quantity:integer price:float arrival_date:date arrival_time:time available:boolean user:references
142
+
143
+ %p Luego debemos migrar la tabla a la base de datos con:
144
+
145
+ %pre
146
+ %code.ruby
147
+ keppler migrate
146
148
 
147
149
  %p
148
- Keppler ofrece la posibilidad de realizar tareas de scaffolds
149
- totalmente configurados para adaptarse de una vez al administrativo.
150
- Para crear un nuevo modulo solo tienes que llamar al siguiente
151
- comando desde la consola:
150
+ Si luego deseamos borrar, crear, migrar y llenar la base de datos desde cero,
151
+ podemos realizarlo ejecutando el comando:
152
152
 
153
153
  %pre
154
- %code.shell
155
- rails g keppler_scaffold [module_name] [attributes] -f
154
+ %code.ruby
155
+ keppler reset
156
156
 
157
- %p Luego crea la tabla en base de datos.
157
+ %p
158
+ Por último, si todo ha sido ejecutado debida y correctamente, podemos iniciar
159
+ el proyecto ejecutando en la consola:
158
160
 
159
161
  %pre
160
- %code.shell
161
- rake db:migrate
162
+ %code.ruby
163
+ keppler server
162
164
 
163
- %h3 Plugins (Módulos)
165
+ %h3 SimpleForm con Bootstrap
164
166
 
165
167
  %p
166
- La plataforma permite la adaptación de módulos con facil instalación,
167
- algunos de los módulos desarrollados son:
168
+ Se ofrece una integración por defecto entre SimpleForm y Bootstrap, usted tiene la posibilidad de cambiar su funcionalidad en
169
+ %pre
170
+ %code.ruby
171
+ config/initializers/simple_form_bootstrap.rb
168
172
 
169
- %ul
170
- %li
171
- = link_to 'Keppler google analytics dashboard', 'https://github.com/SliceDevelopers/keppler_ga_dashboard'
172
- %strong ya viene integrado
173
- %li
174
- = link_to 'Keppler blog', 'https://github.com/SliceDevelopers/keppler_blog'
175
- %li
176
- = link_to 'Keppler catalogs', 'https://github.com/inyxtech/keppler_catalogs'
177
- %li
178
- = link_to 'Keppler contact', 'https://github.com/SliceDevelopers/keppler_contact_us'
173
+
174
+ %p Aquí algunos ejemplos para la creación de inputs:
175
+
176
+ %pre
177
+ %code.haml
178
+ :preserve
179
+ # Inputs de tipo string o textarea
180
+ = f.input :name
181
+
182
+ # Inputs de tipo CKEditor
183
+ = f.input :description, as: :ckeditor, input_html: { ckeditor: { toolbar: 'mini'} }
184
+
185
+ # Inputs de tipo boolean
186
+ = f.input :public, as: :keppler_boolean
187
+
188
+ # Inputs de tipo file
189
+ = f.input :image, as: :keppler_file
190
+
191
+ # Inputs de tipo select
192
+ = f.input :role_ids, collection: Role.all, label: false, include_blank: "Seleccione un rol"
193
+
194
+ # Inputs de tipo radio buttons
195
+ = f.collection_radio_buttons :option, [['vegan', 'vegan'] ,['vegetarian', 'vegetarian']], :first, :last
196
+
197
+ # Inputs de tipo check_boxes
198
+ = f.collection_check_boxes :options, [['vegan', 'vegan'] ,['vegetarian', 'vegetarian']], :first, :last
199
+
200
+ # Inputs de tipo date
201
+ = f.input :date, input_html: { class: 'datepicker' }
202
+
203
+ %strong
204
+ Nota:
205
+ %p
206
+ Puede revisar la documentación de
207
+ = link_to 'AdminLTE', 'https://adminlte.io'
208
+ para agregar nuevas integraciones para sus formularios a través de los
209
+ = link_to 'Wrappers', 'https://github.com/plataformatec/simple_form/wiki/Custom-Wrappers'
210
+ de SimpleForm.
211
+
212
+ -# %h3 Plugins (Módulos)
213
+ -#
214
+ -# %p
215
+ -# La plataforma permite la adaptación de módulos con facil instalación,
216
+ -# algunos de los módulos desarrollados son:
217
+ -#
218
+ -# %ul
219
+ -# %li
220
+ -# = link_to 'Keppler Google Analytics Dashboard', 'https://github.com/slicegroup/keppler_ga_dashboard'
221
+ -# -
222
+ -# %strong ya viene integrado
223
+ -# %li
224
+ -# = link_to 'Keppler Blog', 'https://github.com/slicegroup/keppler_blog'
225
+ -# %li
226
+ -# = link_to 'Keppler Catalogs', 'https://github.com/slicegroup/keppler_catalogs'
227
+ -# %li
228
+ -# = link_to 'Keppler Contact', 'https://github.com/slicegroup/keppler_contact_us'
179
229
 
180
230
  %script{ src: '/assets/app/front.js' }