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.
- checksums.yaml +5 -5
- data/.gitignore +8 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile.lock +26 -0
- data/LICENSE.txt +21 -0
- data/README.md +93 -22
- data/Rakefile +6 -0
- data/bin/keppler +6 -2
- data/bin/setup +2 -1
- data/exe/keppler +6 -0
- data/installer/core/.gitignore +87 -0
- data/installer/core/.ruby-version +1 -0
- data/installer/core/Gemfile +6 -4
- data/installer/core/README.md +86 -50
- data/installer/core/app/assets/images/.keep +0 -0
- data/installer/core/app/assets/images/admin/astronauta_keppler.svg +123 -0
- data/installer/core/app/assets/images/admin/avatar_keppler.svg +100 -0
- data/installer/core/app/assets/images/admin/image_default.png +0 -0
- data/installer/core/app/assets/images/app/fondo.svg +19 -0
- data/installer/core/app/assets/javascripts/admin/file_upload.coffee +11 -0
- data/installer/core/app/assets/javascripts/admin/main.coffee +23 -12
- data/installer/core/app/assets/javascripts/admin/preview_template.js +2 -2
- data/installer/core/app/assets/javascripts/admin/sidebar.js +8 -7
- data/installer/core/app/assets/javascripts/admin/swal.js +37 -0
- data/installer/core/app/assets/javascripts/admin/switch.js +6 -0
- data/installer/core/app/assets/javascripts/admin/tooltips.coffee +3 -0
- data/installer/core/app/assets/javascripts/errors/application.js.coffee +1 -0
- data/installer/core/app/assets/javascripts/errors/errors.js +113 -0
- data/installer/core/app/assets/javascripts/keppler_ga_dashboard/view-selector2.js +1 -1
- data/installer/core/app/assets/javascripts/vue_admin/index.js +34 -9
- data/installer/core/app/assets/stylesheets/admin/application.scss +4 -14
- data/installer/core/app/assets/stylesheets/admin/components/navigation/_navbar.scss +4 -5
- data/installer/core/app/assets/stylesheets/admin/components/navigation/_sidebar.scss +26 -17
- data/installer/core/app/assets/stylesheets/admin/pages/_appearance.scss +5 -0
- data/installer/core/app/assets/stylesheets/admin/pages/_customize.scss +21 -0
- data/installer/core/app/assets/stylesheets/admin/pages/_datepicker.scss +1088 -0
- data/installer/core/app/assets/stylesheets/admin/pages/_files.scss +26 -9
- data/installer/core/app/assets/stylesheets/admin/pages/_form.scss +19 -6
- data/installer/core/app/assets/stylesheets/admin/pages/_index.scss +4 -8
- data/installer/core/app/assets/stylesheets/admin/pages/_listing.scss +5 -0
- data/installer/core/app/assets/stylesheets/admin/pages/_navbar.scss +9 -2
- data/installer/core/app/assets/stylesheets/admin/pages/_roles.scss +6 -0
- data/installer/core/app/assets/stylesheets/admin/pages/_search.scss +24 -28
- data/installer/core/app/assets/stylesheets/admin/pages/_sidebar.scss +1 -1
- data/installer/core/app/assets/stylesheets/admin/pages/_switchs.scss +135 -39
- data/installer/core/app/assets/stylesheets/admin/pages/_timepicker.scss +16 -0
- data/installer/core/app/assets/stylesheets/admin/pages/_user.scss +6 -0
- data/installer/core/app/assets/stylesheets/admin/utils/_base.scss +6 -1
- data/installer/core/app/assets/stylesheets/admin/utils/_theme.scss +24 -11
- data/installer/core/app/assets/stylesheets/admin/utils/_variables.scss +1 -1
- data/installer/core/app/assets/stylesheets/app/pages/_front.sass +70 -56
- data/installer/core/app/assets/stylesheets/errors/errors.scss +161 -120
- data/installer/core/app/assets/stylesheets/vendor/admin-lte/_skin-blue.scss +1 -1
- data/installer/core/app/controllers/admin/admin_controller.rb +1 -1
- data/installer/core/app/controllers/admin/customizes_controller.rb +6 -8
- data/installer/core/app/controllers/admin/meta_tags_controller.rb +14 -18
- data/installer/core/app/controllers/admin/roles_controller.rb +176 -0
- data/installer/core/app/controllers/admin/scripts_controller.rb +14 -33
- data/installer/core/app/controllers/admin/settings_controller.rb +26 -27
- data/installer/core/app/controllers/admin/users_controller.rb +35 -29
- data/installer/core/app/controllers/app/app_controller.rb +27 -4
- data/installer/core/app/controllers/application_controller.rb +39 -1
- data/installer/core/app/controllers/concerns/.keep +0 -0
- data/installer/core/app/helpers/admin_helper.rb +5 -0
- data/installer/core/app/helpers/application_helper.rb +9 -0
- data/installer/core/app/helpers/roles_helper.rb +2 -0
- data/installer/core/app/inputs/file_material_input.rb +4 -2
- data/installer/core/app/inputs/keppler_boolean_input.rb +74 -0
- data/installer/core/app/inputs/keppler_file_input.rb +70 -0
- data/installer/core/app/mailers/.keep +0 -0
- data/installer/core/app/mailers/application_mailer.rb +13 -13
- data/installer/core/app/models/.keep +0 -0
- data/installer/core/app/models/appearance.rb +2 -0
- data/installer/core/app/models/application_record.rb +3 -0
- data/installer/core/app/models/concerns/.keep +0 -0
- data/installer/core/app/models/concerns/downloadable.rb +13 -0
- data/installer/core/app/models/concerns/sortable.rb +9 -0
- data/installer/core/app/models/concerns/uploadable.rb +10 -0
- data/installer/core/app/models/customize.rb +8 -6
- data/installer/core/app/models/front.rb +3 -0
- data/installer/core/app/models/google_analytics_setting.rb +2 -0
- data/installer/core/app/models/meta_tag.rb +27 -14
- data/installer/core/app/models/permission.rb +3 -0
- data/installer/core/app/models/role.rb +62 -5
- data/installer/core/app/models/script.rb +6 -15
- data/installer/core/app/models/setting.rb +2 -0
- data/installer/core/app/models/smtp_setting.rb +2 -0
- data/installer/core/app/models/social_account.rb +2 -0
- data/installer/core/app/models/user.rb +17 -1
- data/installer/core/app/policies/application_policy.rb +4 -4
- data/installer/core/app/policies/controller_policy.rb +15 -11
- data/installer/core/app/policies/role_policy.rb +25 -0
- data/installer/core/app/policies/user_policy.rb +1 -1
- data/installer/core/app/uploaders/attachment_uploader.rb +18 -1
- data/installer/core/app/views/admin/customizes/_description.html.haml +4 -4
- data/installer/core/app/views/admin/customizes/_form.html.haml +4 -4
- data/installer/core/app/views/admin/customizes/_listing.html.haml +1 -1
- data/installer/core/app/views/admin/customizes/_switch_default_template.html.haml +8 -13
- data/installer/core/app/views/admin/customizes/_switch_template.html.haml +8 -11
- data/installer/core/app/views/admin/customizes/index.html.haml +9 -9
- data/installer/core/app/views/admin/layouts/_head.html.haml +3 -3
- data/installer/core/app/views/admin/layouts/_keppler_boolean_script.haml +12 -0
- data/installer/core/app/views/admin/layouts/_navigation.html.haml +17 -16
- data/installer/core/app/views/admin/layouts/_sidebar.html.haml +27 -36
- data/installer/core/app/views/admin/layouts/application.html.haml +1 -0
- data/installer/core/app/views/admin/layouts/index/remote_messages.js.haml +6 -6
- data/installer/core/app/views/admin/meta_tags/_index_show.html.haml +2 -2
- data/installer/core/app/views/admin/meta_tags/_listing.html.haml +6 -6
- data/installer/core/app/views/admin/meta_tags/index.html.haml +15 -29
- data/installer/core/app/views/admin/meta_tags/show.html.haml +7 -8
- data/installer/core/app/views/admin/roles/_description.html.haml +13 -0
- data/installer/core/app/views/admin/roles/_form.html.haml +27 -0
- data/installer/core/app/views/admin/roles/_index_show.html.haml +24 -0
- data/installer/core/app/views/admin/roles/_listing.html.haml +46 -0
- data/installer/core/app/views/admin/roles/_switch.html.haml +20 -0
- data/installer/core/app/views/admin/roles/add_permissions.html.haml +60 -0
- data/installer/core/app/views/admin/roles/create_permissions.html.haml +0 -0
- data/installer/core/app/views/admin/roles/create_permissions.js.erb +1 -0
- data/installer/core/app/views/admin/roles/edit.html.haml +1 -0
- data/installer/core/app/views/admin/roles/index.html.haml +80 -0
- data/installer/core/app/views/admin/roles/new.html.haml +1 -0
- data/installer/core/app/views/admin/roles/reload.js.haml +5 -0
- data/installer/core/app/views/admin/roles/show.html.haml +32 -0
- data/installer/core/app/views/admin/roles/show.js.haml +4 -0
- data/installer/core/app/views/admin/roles/show_description.js.erb +2 -0
- data/installer/core/app/views/admin/scripts/_index_show.html.haml +2 -2
- data/installer/core/app/views/admin/scripts/_listing.html.haml +13 -13
- data/installer/core/app/views/admin/scripts/index.html.haml +12 -26
- data/installer/core/app/views/admin/scripts/show.html.haml +4 -4
- data/installer/core/app/views/admin/settings/components/_preview.html.haml +1 -1
- data/installer/core/app/views/admin/settings/fields/_appearance.html.haml +25 -17
- data/installer/core/app/views/admin/settings/fields/_basic_information.html.haml +13 -7
- data/installer/core/app/views/admin/settings/fields/_email_setting.html.haml +16 -16
- data/installer/core/app/views/admin/settings/fields/_google_analytics_setting.html.haml +1 -1
- data/installer/core/app/views/admin/settings/fields/_social_accounts.html.haml +39 -39
- data/installer/core/app/views/admin/users/_form.html.haml +18 -25
- data/installer/core/app/views/admin/users/_index_show.html.haml +2 -2
- data/installer/core/app/views/admin/users/_listing.html.haml +6 -6
- data/installer/core/app/views/admin/users/delete_avatar.js.haml +3 -0
- data/installer/core/app/views/admin/users/filter_by_role.js.erb +9 -0
- data/installer/core/app/views/admin/users/index.html.haml +22 -22
- data/installer/core/app/views/admin/users/show.html.haml +10 -12
- data/installer/core/app/views/app/front/index.html.haml +137 -87
- data/installer/core/app/views/app/layouts/_footer.html.haml +2 -2
- data/installer/core/app/views/app/layouts/_head.html.haml +4 -12
- data/installer/core/app/views/app/layouts/_meta_tags.html.haml +38 -6
- data/installer/core/app/views/app/layouts/application.html.haml +8 -8
- data/installer/core/app/views/devise/sessions/new.html.haml +32 -28
- data/installer/core/app/views/errors/internal_server_error.html.haml +50 -7
- data/installer/core/app/views/errors/not_authorized.html.haml +75 -6
- data/installer/core/app/views/errors/not_found.html.haml +101 -7
- data/installer/core/app/views/errors/unprocessable.html.haml +50 -7
- data/installer/core/bin/update +31 -0
- data/installer/core/bin/yarn +11 -0
- data/installer/core/config/application.rb +1 -1
- data/installer/core/config/environments/production.rb +1 -1
- data/installer/core/config/initializers/carrierwave.rb +12 -0
- data/installer/core/config/initializers/mime_types.rb +2 -2
- data/installer/core/config/initializers/simple_form_bootstrap.rb +20 -1
- data/installer/core/config/initializers/simple_form_components.rb +61 -0
- data/installer/core/config/locales/en.yml +29 -6
- data/installer/core/config/locales/es.yml +32 -5
- data/installer/core/config/locales/simple_form.en.yml +1 -0
- data/installer/core/config/locales/simple_form.es.yml +3 -2
- data/installer/core/config/menu.yml +34 -8
- data/installer/core/config/permissions.yml +21 -0
- data/installer/core/config/routes.rb +56 -14
- data/installer/core/db/migrate/20140812210925_rolify_create_roles.rb +2 -0
- data/installer/core/db/migrate/20160128131802_create_scripts.rb +1 -0
- data/installer/core/db/migrate/20180503174351_create_permissions.rb +11 -0
- data/installer/core/db/seeds.rb +12 -6
- data/installer/core/lib/generators/keppler_front/templates/views/template.html.haml +222 -177
- data/installer/core/lib/generators/keppler_relation/keppler_relation_generator.rb +1 -1
- data/installer/core/lib/generators/keppler_scaffold/keppler_scaffold_generator.rb +57 -40
- data/installer/core/lib/generators/keppler_scaffold/templates/controllers/controller.rb +29 -30
- data/installer/core/lib/generators/keppler_scaffold/templates/models/model.rb +14 -20
- data/installer/core/lib/generators/keppler_scaffold/templates/views/_form.html.haml +24 -35
- data/installer/core/lib/generators/keppler_scaffold/templates/views/_index_show.html.haml +12 -11
- data/installer/core/lib/generators/keppler_scaffold/templates/views/_listing.html.haml +7 -7
- data/installer/core/lib/generators/keppler_scaffold/templates/views/index.html.haml +17 -33
- data/installer/core/lib/generators/keppler_scaffold/templates/views/show.html.haml +23 -24
- data/installer/core/plugins/keppler_ga_dashboard/app/assets/images/keppler_ga_dashboard/.keep +0 -0
- data/installer/core/plugins/keppler_ga_dashboard/config/permissions.yml +4 -0
- data/installer/core/plugins/keppler_ga_dashboard/keppler_ga_dashboard.gemspec +1 -1
- data/installer/core/test/controllers/.keep +0 -0
- data/installer/core/test/controllers/roles_controller_test.rb +48 -0
- data/installer/core/test/fixtures/.keep +0 -0
- data/installer/core/test/fixtures/permissions.yml +9 -0
- data/installer/core/test/helpers/.keep +0 -0
- data/installer/core/test/integration/.keep +0 -0
- data/installer/core/test/mailers/.keep +0 -0
- data/installer/core/test/models/.keep +0 -0
- data/installer/core/test/models/permission_test.rb +7 -0
- data/installer/core/test/system/roles_test.rb +43 -0
- data/installer/core/vendor/assets/javascripts/.keep +0 -0
- data/installer/core/vendor/assets/stylesheets/.keep +0 -0
- data/installer/plugins/concerns/commons.rb +47 -0
- data/installer/plugins/concerns/destroy_multiple.rb +33 -0
- data/installer/plugins/concerns/history.rb +24 -0
- data/installer/plugins/config/locales/en.yml +104 -0
- data/installer/plugins/config/locales/es.yml +139 -0
- data/installer/plugins/config/menu.yml +12 -0
- data/installer/plugins/config/permissions.yml +1 -0
- data/installer/plugins/generators/keppler_scaffold/keppler_scaffold_generator.rb +203 -0
- data/installer/plugins/generators/keppler_scaffold/templates/controllers/controller.rb +171 -0
- data/installer/plugins/generators/keppler_scaffold/templates/models/model.rb +41 -0
- data/installer/plugins/generators/keppler_scaffold/templates/policies/policy.rb +11 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/_description.html.haml +13 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/_form.html.haml +49 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/_index_show.html.haml +26 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/_listing.html.haml +65 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/edit.html.haml +1 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/index.html.haml +97 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/new.html.haml +1 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/reload.js.haml +5 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/show.html.haml +66 -0
- data/installer/plugins/generators/keppler_scaffold/templates/views/show.js.haml +4 -0
- data/installer/plugins/install.rb +156 -0
- data/installer/plugins/layouts/_navigation.html.haml +47 -0
- data/installer/plugins/layouts/application.html.haml +24 -0
- data/keppler.gemspec +35 -0
- data/lib/keppler.rb +0 -1
- data/lib/keppler/add.rb +13 -0
- data/lib/keppler/cli.rb +134 -5
- data/lib/keppler/delete.rb +13 -0
- data/lib/keppler/version.rb +1 -1
- metadata +117 -23
- data/installer/core/app/assets/images/admin/space.png +0 -0
- data/installer/core/app/assets/stylesheets/admin/pages/_header.scss +0 -34
- data/installer/core/app/assets/stylesheets/admin/pages/_pageslide.scss +0 -125
- data/installer/core/db/schema.rb +0 -172
- data/installer/lib/conf.rb +0 -31
- data/installer/lib/scaffold.rb +0 -10
- data/installer/run.sh +0 -17
- data/installer/scripts/bin.sh +0 -61
- 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,
|
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
|
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
|
-
.
|
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
|
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:
|
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:
|
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
|
-
|
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:
|
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:
|
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(
|
59
|
-
= f.button :submit, t(
|
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
|
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
|
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
|
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
|
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
|
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
|
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,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{ :
|
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
|
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
|
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{
|
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
|
47
|
-
Actions
|
56
|
+
%th
|
48
57
|
%tbody#objects-container
|
49
58
|
= render 'admin/layouts/listing_preloader'
|
50
|
-
= render 'listing', 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
|
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
|
-
|
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,
|
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
|
-
|
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
|
19
|
+
%h3.box-title= @user.name || 'User'
|
20
20
|
.box-tools.pull-right
|
21
|
-
- if
|
22
|
-
= link_to edit_admin_user_path(@user), class:
|
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
|
24
|
+
- if can?(User).destroy?
|
25
25
|
- unless current_user == @user
|
26
|
-
= link_to admin_user_path(@user), class:
|
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(
|
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
|
36
|
-
%td.display-value.fs-body-1.tc-black-2= value
|
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
|
-
=
|
18
|
-
|
17
|
+
= link_to "https://twitter.com/slicegroupxyz", target: '_blank' do
|
18
|
+
= icon 'fab', 'twitter'
|
19
19
|
%li
|
20
|
-
=
|
21
|
-
|
20
|
+
= link_to "https://www.facebook.com/slicegroupxyz/", target: '_blank' do
|
21
|
+
= icon 'fab', 'facebook'
|
22
22
|
%li
|
23
|
-
=
|
24
|
-
|
23
|
+
= link_to "https://www.instagram.com/slicegroupxyz/", target: '_blank' do
|
24
|
+
= icon 'fab', 'instagram'
|
25
25
|
%li
|
26
|
-
=
|
27
|
-
|
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
|
40
|
-
gemas ya integradas, de tal forma que acelerará el
|
41
|
-
aplicaciones de vanguardia bajo la plataforma de Ruby
|
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
|
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 '
|
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 '
|
69
|
+
= link_to 'AdminLTE', 'https://adminlte.io', target: '_blank'
|
69
70
|
%li
|
70
71
|
Integración con framework javascript
|
71
|
-
= link_to '
|
72
|
+
= link_to 'VueJS', 'https://vuejs.org/', target: '_blank'
|
72
73
|
%li
|
73
74
|
Integración sitemap dinamicos con
|
74
|
-
= link_to '
|
75
|
+
= link_to 'Sitemap Generator', 'https://github.com/kjvarga/sitemap_generator', target: '_blank'
|
75
76
|
|
76
|
-
%h3
|
77
|
+
%h3 Gema de Keppler
|
77
78
|
|
78
|
-
%
|
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
|
-
|
85
|
-
|
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.
|
93
|
-
|
94
|
-
rake db:migrate
|
95
|
-
rake db:seed
|
86
|
+
%code.ruby
|
87
|
+
gem install keppler`
|
96
88
|
|
97
|
-
%
|
89
|
+
%h4 Lista de comandos
|
98
90
|
|
99
|
-
%p
|
100
|
-
|
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
|
-
%
|
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.
|
110
|
-
|
111
|
-
# inputs de tipo text
|
112
|
-
= f.input :name
|
103
|
+
%code.ruby
|
104
|
+
keppler new NuevoProyecto
|
113
105
|
|
114
|
-
|
115
|
-
= f.input :public, as: :checkbox_material
|
106
|
+
%h4 Creación del archivo secrets.yml
|
116
107
|
|
117
|
-
|
118
|
-
|
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
|
-
|
121
|
-
|
112
|
+
%pre
|
113
|
+
%code.ruby
|
114
|
+
keppler db_conf
|
122
115
|
|
123
|
-
|
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
|
-
|
127
|
-
|
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
|
-
|
130
|
-
|
122
|
+
%pre
|
123
|
+
%code.ruby
|
124
|
+
keppler dep
|
131
125
|
|
132
|
-
|
133
|
-
= f.input :date, input_html: {class: "datepicker"}
|
126
|
+
%h3 Keppler Scaffolds
|
134
127
|
|
135
|
-
%strong
|
136
|
-
Nota:
|
137
128
|
%p
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
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
|
-
%
|
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
|
-
|
149
|
-
|
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.
|
155
|
-
|
154
|
+
%code.ruby
|
155
|
+
keppler reset
|
156
156
|
|
157
|
-
%p
|
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.
|
161
|
-
|
162
|
+
%code.ruby
|
163
|
+
keppler server
|
162
164
|
|
163
|
-
%h3
|
165
|
+
%h3 SimpleForm con Bootstrap
|
164
166
|
|
165
167
|
%p
|
166
|
-
|
167
|
-
|
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
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
%
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
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' }
|