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
@@ -0,0 +1 @@
|
|
1
|
+
= render 'form'
|
@@ -0,0 +1,5 @@
|
|
1
|
+
$('#objects-container').html("#{j render 'listing', objects: @objects}");
|
2
|
+
$('#objects-container').css('opacity', '0');
|
3
|
+
$('#spinner2').css('display', 'block');
|
4
|
+
var request = $.ajax({url: "/admin/<%= plural_table_name %>", method: "get", dataType: "html"});
|
5
|
+
request.done(function(msg){$('#spinner2').css('display', 'none');$('#objects-container').css('opacity', '1');});
|
@@ -0,0 +1,66 @@
|
|
1
|
+
.container
|
2
|
+
.row
|
3
|
+
.col-lg-2
|
4
|
+
= link_to admin_<%= namespaced_path.split('_').drop(1).join('_') %>_<%= plural_table_name %>_path, class: "", "data-position" => "bottom", "data-tooltip" => t("keppler.actions.back") do
|
5
|
+
.arrow-back.btn.btn-default
|
6
|
+
%i.fa.fa-angle-left
|
7
|
+
= t('keppler.actions.back')
|
8
|
+
|
9
|
+
.show-section
|
10
|
+
.row
|
11
|
+
<%- if attributes.select{|attribute| @attachments.include?(attribute.name)}.size <= 0 -%>
|
12
|
+
.col-lg-12
|
13
|
+
.box.slice-box
|
14
|
+
.box-header.with-border
|
15
|
+
%h3.box-title= t("keppler.modules.#{controller_path.underscore}")
|
16
|
+
.box-tools.pull-right
|
17
|
+
- if can?(<%= namespaced_path.split('_').map(&:capitalize).join('') %>::<%= singular_table_name.camelcase %>).update?
|
18
|
+
= link_to edit_admin_<%= namespaced_path.split('_').drop(1).join('_') %>_<%= singular_table_name %>_path(@<%= singular_table_name %>), class: "btn btn-box-tool", title: "#{t('keppler.actions.edit') }" do
|
19
|
+
%i.icon-pencil
|
20
|
+
- if can?(<%= namespaced_path.split('_').map(&:capitalize).join('') %>::<%= singular_table_name.camelcase %>).destroy?
|
21
|
+
= link_to admin_<%= namespaced_path.split('_').drop(1).join('_') %>_<%= singular_table_name %>_path(@<%= singular_table_name %>), class: "btn btn-box-tool", title: "#{t('keppler.actions.delete')}", method: :delete, data: { confirm: t("keppler.messages.data_confirm") } do
|
22
|
+
%i.icon-trash
|
23
|
+
.box-body.box-body-no-padding
|
24
|
+
%table.table.table-striped
|
25
|
+
%tbody
|
26
|
+
- @<%= singular_table_name %>.as_json(only: <%= attributes.map{|attr| attr.name} %>).each do |attribute, value|
|
27
|
+
- unless attribute.eql?('position') || attribute.eql?('deleted_at')
|
28
|
+
%tr.list-row
|
29
|
+
%th.display-label= t("activerecord.attributes.#{attribute}")
|
30
|
+
%td.display-value.fs-body-1.tc-black-2
|
31
|
+
- if @attachments.include?(attribute)
|
32
|
+
= image_tag value.url unless value.url.blank?
|
33
|
+
- else
|
34
|
+
= value.blank? ? '-----------' : value
|
35
|
+
<%- else -%>
|
36
|
+
<%- @attr = attributes.map{|attr| attr.name}.select{|attr| @attachments.include?(attr)} %>
|
37
|
+
.col-lg-5
|
38
|
+
- @<%= singular_table_name %>.as_json(only: <%= @attr %>).each do |attribute, value|
|
39
|
+
.box.slice-box
|
40
|
+
.box-header.with-border
|
41
|
+
%h3.box-title= attribute.capitalize
|
42
|
+
.box-tools.pull-right
|
43
|
+
%a.btn.btn-box-tool{"data-widget" => "collapse", type: "button"}
|
44
|
+
%i.fa.fa-minus
|
45
|
+
.box-body.box-body-no-padding
|
46
|
+
- unless value.url.blank?
|
47
|
+
= image_tag value.url, class: 'img-show'
|
48
|
+
.col-lg-7
|
49
|
+
.box.slice-box
|
50
|
+
.box-header.with-border
|
51
|
+
%h3.box-title= t("keppler.modules.#{controller_path.underscore}")
|
52
|
+
.box-tools.pull-right
|
53
|
+
= link_to edit_admin_<%= namespaced_path.split('_').drop(1).join('_') %>_<%= singular_table_name %>_path(@<%= singular_table_name %>), class: "btn btn-box-tool", title: "#{t('keppler.actions.edit') }" do
|
54
|
+
%i.icon-pencil
|
55
|
+
= link_to admin_<%= namespaced_path.split('_').drop(1).join('_') %>_<%= singular_table_name %>_path(@<%= singular_table_name %>), class: "btn btn-box-tool", title: "#{t('keppler.actions.delete')}", method: :delete, data: { confirm: t("keppler.messages.data_confirm") } do
|
56
|
+
%i.icon-trash
|
57
|
+
%a.btn.btn-box-tool{"data-widget" => "collapse", type: "button"}
|
58
|
+
%i.fa.fa-minus
|
59
|
+
.box-body.box-body-no-padding
|
60
|
+
%table.table.table-striped
|
61
|
+
%tbody
|
62
|
+
- @<%= singular_table_name %>.as_json(only: <%= attributes.map{|attr| attr.name}.select{|attr| !@attachments.include?(attr)} %>).each do |attribute, value|
|
63
|
+
%tr.list-row
|
64
|
+
%th.display-label= t("activerecord.attributes.#{attribute}")
|
65
|
+
%td.display-value.fs-body-1.tc-black-2.text-overflow= value.blank? ? '-----------' : value
|
66
|
+
<%- end -%>
|
@@ -0,0 +1,156 @@
|
|
1
|
+
require "keppler/version"
|
2
|
+
|
3
|
+
gemspec = File.readlines("#{ARGV[0]}/#{ARGV[0]}.gemspec")
|
4
|
+
|
5
|
+
gemspec[11] = " s.homepage = 'http://keppler.io'\n"
|
6
|
+
gemspec[12] = " s.summary = '#{ARGV[0]}'\n"
|
7
|
+
gemspec[13] = " s.description = '#{ARGV[0]}'\n"
|
8
|
+
|
9
|
+
gemspec.insert(17, " s.test_files = Dir['test/**/*']\n")
|
10
|
+
|
11
|
+
# gemspec.delete_at(19)
|
12
|
+
# gemspec.delete_at(20)
|
13
|
+
|
14
|
+
gemspec[19] = " s.add_dependency 'rails', '5.2.0'\n"
|
15
|
+
gemspec[20] = " s.add_dependency 'simple_form'\n"
|
16
|
+
gemspec.insert(21, " s.add_dependency 'haml_rails'\n")
|
17
|
+
gemspec.insert(22, " s.add_dependency 'pundit'\n")
|
18
|
+
gemspec.insert(23, " s.add_development_dependency 'pg'\n")
|
19
|
+
gemspec.delete_at(24)
|
20
|
+
gemspec = gemspec.join("")
|
21
|
+
|
22
|
+
File.write("#{ARGV[0]}/#{ARGV[0]}.gemspec", gemspec)
|
23
|
+
|
24
|
+
|
25
|
+
engine = File.readlines("#{ARGV[0]}/lib/#{ARGV[0]}/engine.rb")
|
26
|
+
|
27
|
+
engine.insert(3, " paths['config/locales']\n")
|
28
|
+
engine.insert(4, " config.generators do |g|\n")
|
29
|
+
engine.insert(5, " g.template_engine :haml\n")
|
30
|
+
engine.insert(6, " end\n")
|
31
|
+
engine.insert(7, "\n")
|
32
|
+
engine.insert(8, " config.to_prepare do\n")
|
33
|
+
engine.insert(9, " ApplicationController.helper(ApplicationHelper)\n")
|
34
|
+
engine.insert(10, " end\n")
|
35
|
+
|
36
|
+
engine = engine.join("")
|
37
|
+
|
38
|
+
File.write("#{ARGV[0]}/lib/#{ARGV[0]}/engine.rb", engine)
|
39
|
+
|
40
|
+
|
41
|
+
route = File.readlines("#{ARGV[0]}/config/routes.rb")
|
42
|
+
|
43
|
+
route.insert(1, " namespace :admin do\n")
|
44
|
+
route.insert(2, " scope :#{ARGV[0].split('_').drop(1).join('')}, as: :#{ARGV[0].split('_').drop(1).join('')} do\n")
|
45
|
+
route.insert(3, " end\n")
|
46
|
+
route.insert(4, " end\n")
|
47
|
+
|
48
|
+
route = route.join("")
|
49
|
+
|
50
|
+
File.write("#{ARGV[0]}/config/routes.rb", route)
|
51
|
+
|
52
|
+
system("scp -r $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/plugins/config/permissions.yml #{ARGV[0]}/config/permissions.yml")
|
53
|
+
|
54
|
+
system("scp -r $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/plugins/config/menu.yml #{ARGV[0]}/config/menu.yml")
|
55
|
+
|
56
|
+
menu = File.readlines("#{ARGV[0]}/config/menu.yml")
|
57
|
+
|
58
|
+
menu[1] = " #{ARGV[0]}:\n"
|
59
|
+
menu[2] = " name: #{ARGV[0].split('_').map(&:capitalize).join(' ')}\n"
|
60
|
+
|
61
|
+
menu = menu.join("")
|
62
|
+
|
63
|
+
File.write("#{ARGV[0]}/config/menu.yml", menu)
|
64
|
+
|
65
|
+
system("scp -r $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/plugins/config/locales #{ARGV[0]}/config/locales")
|
66
|
+
|
67
|
+
project = ARGV[0].to_s
|
68
|
+
|
69
|
+
locales = File.readlines("#{ARGV[0]}/config/locales/en.yml")
|
70
|
+
|
71
|
+
locales[3] = " #{project.gsub('_', '-')}: #{ARGV[0].split('_').map(&:capitalize).join(' ')}\n"
|
72
|
+
locales[4] = " #{project.gsub('_', '-')}-submenu:\n"
|
73
|
+
|
74
|
+
locales = locales.join("")
|
75
|
+
|
76
|
+
File.write("#{ARGV[0]}/config/locales/en.yml", locales)
|
77
|
+
|
78
|
+
locales = File.readlines("#{ARGV[0]}/config/locales/es.yml")
|
79
|
+
|
80
|
+
locales[3] = " #{project.gsub('_', '-')}: #{ARGV[0].split('_').map(&:capitalize).join(' ')}\n"
|
81
|
+
locales[4] = " #{project.gsub('_', '-')}-submenu:\n"
|
82
|
+
|
83
|
+
locales = locales.join("")
|
84
|
+
|
85
|
+
File.write("#{ARGV[0]}/config/locales/es.yml", locales)
|
86
|
+
|
87
|
+
|
88
|
+
system("scp -r $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/plugins/concerns #{ARGV[0]}/app/controllers/#{ARGV[0]}")
|
89
|
+
|
90
|
+
commons = File.readlines("#{ARGV[0]}/app/controllers/#{ARGV[0]}/concerns/commons.rb")
|
91
|
+
|
92
|
+
commons[0] = "module #{ARGV[0].split('_').map(&:capitalize).join('')}\n"
|
93
|
+
|
94
|
+
commons = commons.join("")
|
95
|
+
|
96
|
+
File.write("#{ARGV[0]}/app/controllers/#{ARGV[0]}/concerns/commons.rb", commons)
|
97
|
+
|
98
|
+
|
99
|
+
destroy = File.readlines("#{ARGV[0]}/app/controllers/#{ARGV[0]}/concerns/destroy_multiple.rb")
|
100
|
+
|
101
|
+
destroy[0] = "module #{ARGV[0].split('_').map(&:capitalize).join('')}\n"
|
102
|
+
|
103
|
+
destroy = destroy.join("")
|
104
|
+
|
105
|
+
File.write("#{ARGV[0]}/app/controllers/#{ARGV[0]}/concerns/destroy_multiple.rb", destroy)
|
106
|
+
|
107
|
+
|
108
|
+
history = File.readlines("#{ARGV[0]}/app/controllers/#{ARGV[0]}/concerns/history.rb")
|
109
|
+
|
110
|
+
history[0] = "module #{ARGV[0].split('_').map(&:capitalize).join('')}\n"
|
111
|
+
|
112
|
+
history = history.join("")
|
113
|
+
|
114
|
+
File.write("#{ARGV[0]}/app/controllers/#{ARGV[0]}/concerns/history.rb", history)
|
115
|
+
|
116
|
+
application = File.readlines("#{ARGV[0]}/app/controllers/#{ARGV[0]}/application_controller.rb")
|
117
|
+
|
118
|
+
application[1] = " class ApplicationController < ::ApplicationController\n"
|
119
|
+
|
120
|
+
application = application.join("")
|
121
|
+
|
122
|
+
File.write("#{ARGV[0]}/app/controllers/#{ARGV[0]}/application_controller.rb", application)
|
123
|
+
|
124
|
+
dummy_test = File.readlines("#{ARGV[0]}/test/dummy/config/database.yml")
|
125
|
+
|
126
|
+
dummy_test[7] = " adapter: postgresql\n"
|
127
|
+
dummy_test = dummy_test.join("")
|
128
|
+
|
129
|
+
File.write("#{ARGV[0]}/test/dummy/config/database.yml", dummy_test)
|
130
|
+
|
131
|
+
generator_routes = File.readlines("#{ARGV[0]}/lib/generators/keppler_scaffold/keppler_scaffold_generator.rb")
|
132
|
+
|
133
|
+
generator_routes[37] = " after: 'scope :#{ARGV[0].split('_').drop(1).join('')}, as: :#{ARGV[0].split('_').drop(1).join('')} do'\n"
|
134
|
+
generator_routes = generator_routes.join("")
|
135
|
+
|
136
|
+
File.write("#{ARGV[0]}/lib/generators/keppler_scaffold/keppler_scaffold_generator.rb", generator_routes)
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
layouts = File.readlines("#{ARGV[0]}/app/views/#{ARGV[0]}/admin/layouts/application.html.haml")
|
141
|
+
|
142
|
+
layouts[8] =" = render '#{ARGV[0]}/admin/layouts/navigation'\n"
|
143
|
+
|
144
|
+
layouts = layouts.join("")
|
145
|
+
|
146
|
+
File.write("#{ARGV[0]}/app/views/#{ARGV[0]}/admin/layouts/application.html.haml", layouts)
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
layouts = File.readlines("#{ARGV[0]}/app/views/#{ARGV[0]}/admin/layouts/_navigation.html.haml")
|
151
|
+
|
152
|
+
layouts[13] =" = search_form_for [:admin, :#{ARGV[0].split('_').drop(1).join('')}, @q], html: { method: :get } do |f|\n"
|
153
|
+
|
154
|
+
layouts = layouts.join("")
|
155
|
+
|
156
|
+
File.write("#{ARGV[0]}/app/views/#{ARGV[0]}/admin/layouts/_navigation.html.haml", layouts)
|
@@ -0,0 +1,47 @@
|
|
1
|
+
%header.main-header
|
2
|
+
%nav.navbar.navbar-static-top
|
3
|
+
%a.logo.keppler-color.hidden-xs{ href: '/admin/dashboard' }
|
4
|
+
%span.logo-mini
|
5
|
+
%span K
|
6
|
+
%span.logo-lg
|
7
|
+
%span K
|
8
|
+
%a.sidebar-toggle{ 'data-toggle' => 'offcanvas', href: '#', role: 'button' }
|
9
|
+
%i.icon-menu
|
10
|
+
%span.sr-only Toggle navigation
|
11
|
+
- if listing? && @q
|
12
|
+
#search
|
13
|
+
.input-group
|
14
|
+
= search_form_for [:admin, :model, @q], html: { method: :get } do |f|
|
15
|
+
= f.search_field search_model, placeholder: "#{t('keppler.actions.search')}...", class: 'form-control search-bar'
|
16
|
+
%span.input-group-btn
|
17
|
+
%button.btn.search-button.toggle-search{ type: 'submit' }
|
18
|
+
%i.icon-magnifier.search-icon{ style: 'line-height: 1.4;' }
|
19
|
+
.hide-search
|
20
|
+
%i.fa.fa-arrow-left
|
21
|
+
|
22
|
+
.navbar-custom-menu
|
23
|
+
%ul.nav.navbar-nav
|
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
|
28
|
+
%li.dropdown.user.user-menu
|
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'
|
31
|
+
%span.hidden-xs= current_user.name
|
32
|
+
%ul.dropdown-menu
|
33
|
+
%li.user-header{ style: @appearance.image_background? ? "background-image: url(#{@appearance.image_background})" : nil }
|
34
|
+
= image_tag (current_user.avatar.url || 'admin/avatar_keppler.svg'), class: 'img-circle nav-profile-img', alt: current_user.name
|
35
|
+
%p
|
36
|
+
= current_user.name
|
37
|
+
%small
|
38
|
+
= "#{t('keppler.navigation.last_session')} #{current_user.updated_at.strftime('%d %b %Y')}"
|
39
|
+
%li.user-footer
|
40
|
+
.pull-left
|
41
|
+
= link_to 'Profile', "/admin/users/#{current_user.id}", class: 'btn btn-default btn-flat'
|
42
|
+
.pull-right
|
43
|
+
= link_to t('devise.sign_out'), destroy_session_path(current_user), class: 'btn btn-default btn-flat'
|
44
|
+
- if listing?
|
45
|
+
%li.hidden-xs
|
46
|
+
%a{ href: '#', 'data-toggle' => 'control-sidebar' }
|
47
|
+
%i.icon-clock
|
@@ -0,0 +1,24 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
= render 'admin/layouts/head'
|
4
|
+
%body.sidebar-mini.skin-blue{style: "height: auto; min-height: 100%;" }
|
5
|
+
#log
|
6
|
+
|
7
|
+
- if loggedin?
|
8
|
+
.wrapper{style:"height: auto; min-height: 100%;"}
|
9
|
+
= render 'module/admin/layouts/navigation'
|
10
|
+
= render 'admin/layouts/sidebar'
|
11
|
+
= render 'admin/layouts/messages'
|
12
|
+
.content-wrapper{ style: "min-height: 901px;" }
|
13
|
+
= yield
|
14
|
+
|
15
|
+
#spinner
|
16
|
+
= preloader
|
17
|
+
|
18
|
+
= render 'admin/layouts/footer'
|
19
|
+
- else
|
20
|
+
%main.devise{ style: @appearance.image_background? ? "background-image: url(#{@appearance.image_background})" : nil }
|
21
|
+
= yield
|
22
|
+
- if action_name.eql?('index')
|
23
|
+
%script{src: "/assets/vue_admin/index.js"}
|
24
|
+
= keppler_boolean_script
|
data/keppler.gemspec
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "keppler/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "keppler"
|
8
|
+
spec.version = Keppler::VERSION
|
9
|
+
spec.authors = ["Luis Perez"]
|
10
|
+
spec.email = 'luis.prz7@gmail.com'
|
11
|
+
spec.summary = "Keppler Administrator"
|
12
|
+
spec.description = "Keppler Administrator"
|
13
|
+
spec.homepage = 'https://rubygems.org/gems/keppler'
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
17
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
18
|
+
if spec.respond_to?(:metadata)
|
19
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org/gems/keppler"
|
20
|
+
else
|
21
|
+
raise "RubyGems 2.0 or newer is required to protect against " \
|
22
|
+
"public gem pushes."
|
23
|
+
end
|
24
|
+
|
25
|
+
spec.files = `git ls-files`.split("\n")
|
26
|
+
spec.bindir = "exe"
|
27
|
+
spec.executables = ['keppler']
|
28
|
+
spec.require_paths = ["lib"]
|
29
|
+
|
30
|
+
spec.add_development_dependency "bundler", "~> 1.16"
|
31
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
+
spec.add_dependency 'thor'
|
33
|
+
spec.add_dependency 'httparty'
|
34
|
+
|
35
|
+
end
|
data/lib/keppler.rb
CHANGED
data/lib/keppler/add.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module Keppler
|
4
|
+
class Add < Thor
|
5
|
+
|
6
|
+
desc 'module', 'Add a new keppler module'
|
7
|
+
def module(*params)
|
8
|
+
module_name = params[0]
|
9
|
+
fields = params[1..params.length].join(" ")
|
10
|
+
system("rails g keppler_scaffold #{module_name} #{fields} position:integer deleted_at:datetime:index -y")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/keppler/cli.rb
CHANGED
@@ -1,12 +1,141 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'thor'
|
3
|
-
require
|
3
|
+
require "keppler/version"
|
4
|
+
require_relative 'add'
|
5
|
+
require_relative 'delete'
|
4
6
|
|
5
7
|
module Keppler
|
6
|
-
class
|
7
|
-
# [...]
|
8
|
+
class Cli < Thor
|
8
9
|
|
9
|
-
desc
|
10
|
-
|
10
|
+
desc 'new NAME', 'Create a new keppler app'
|
11
|
+
|
12
|
+
def new(project_name)
|
13
|
+
system("scp -r $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/core #{project_name}")
|
14
|
+
puts '> Created project'
|
15
|
+
system("cd #{project_name} && bundle install")
|
16
|
+
puts '> Installed dependences'
|
17
|
+
system("scp -r $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/db_conf/conf.yml #{project_name}/config/secrets.yml")
|
18
|
+
|
19
|
+
puts "----------------------------------------------------------"
|
20
|
+
puts "Database name"
|
21
|
+
puts "----------------------------------------------------------"
|
22
|
+
db_name = STDIN.gets.chomp
|
23
|
+
puts "----------------------------------------------------------"
|
24
|
+
puts "Database username"
|
25
|
+
puts "----------------------------------------------------------"
|
26
|
+
db_username = STDIN.gets.chomp
|
27
|
+
puts "----------------------------------------------------------"
|
28
|
+
puts "Database password"
|
29
|
+
puts "----------------------------------------------------------"
|
30
|
+
db_password = STDIN.gets.chomp
|
31
|
+
|
32
|
+
|
33
|
+
db_conf = File.readlines("#{project_name}/config/secrets.yml")
|
34
|
+
new_file = []
|
35
|
+
db_conf.each do |line|
|
36
|
+
if line.eql?(" :name: database\n")
|
37
|
+
line = " :name: #{db_name}\n"
|
38
|
+
elsif line.eql?(" :username: username\n")
|
39
|
+
line = " :username: #{db_username}\n"
|
40
|
+
elsif line.eql?(" :password: password\n")
|
41
|
+
line = " :password: #{db_password}\n"
|
42
|
+
end
|
43
|
+
new_file.push(line)
|
44
|
+
end
|
45
|
+
new_file = new_file.join("")
|
46
|
+
File.write("#{project_name}/config/secrets.yml", new_file)
|
47
|
+
puts '> Configured database'
|
48
|
+
|
49
|
+
system("cd #{project_name} && rake db:create db:migrate db:seed")
|
50
|
+
puts '> Created database'
|
51
|
+
puts "#{project_name} has been created"
|
52
|
+
end
|
53
|
+
|
54
|
+
desc 'plugin NAME', 'Create a new keppler plugin'
|
55
|
+
|
56
|
+
def plugin(plugin_name)
|
57
|
+
system("rails plugin new keppler_#{plugin_name} --mountable")
|
58
|
+
puts "> Created scaffold"
|
59
|
+
system("cd keppler_#{plugin_name} && scp -r $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/plugins/generators lib/generators")
|
60
|
+
puts "> Installed generators"
|
61
|
+
system("mkdir keppler_#{plugin_name}/app/views/keppler_#{plugin_name}")
|
62
|
+
system("mkdir keppler_#{plugin_name}/app/views/keppler_#{plugin_name}/admin")
|
63
|
+
system("scp -r $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/plugins/layouts keppler_#{plugin_name}/app/views/keppler_#{plugin_name}/admin/layouts")
|
64
|
+
system("ruby $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/plugins/install.rb keppler_#{plugin_name}")
|
65
|
+
system("mkdir keppler_#{plugin_name}/app/policies")
|
66
|
+
puts "> Installed policies"
|
67
|
+
puts "#{plugin_name} has been created"
|
68
|
+
end
|
69
|
+
|
70
|
+
desc 'server', 'Initialize puma server'
|
71
|
+
|
72
|
+
def server
|
73
|
+
system("rails s")
|
74
|
+
end
|
75
|
+
|
76
|
+
desc 'dep', 'Install dependencies'
|
77
|
+
|
78
|
+
def dep
|
79
|
+
system("bundle install")
|
80
|
+
end
|
81
|
+
|
82
|
+
desc 'db_conf', 'Create secrets file'
|
83
|
+
|
84
|
+
def db_conf
|
85
|
+
system("scp -r $GEM_HOME/gems/keppler-#{Keppler::VERSION}/installer/db_conf/conf.yml config/secrets.yml")
|
86
|
+
|
87
|
+
puts "----------------------------------------------------------"
|
88
|
+
puts "Database name"
|
89
|
+
puts "----------------------------------------------------------"
|
90
|
+
db_name = STDIN.gets.chomp
|
91
|
+
puts "----------------------------------------------------------"
|
92
|
+
puts "Database username"
|
93
|
+
puts "----------------------------------------------------------"
|
94
|
+
db_username = STDIN.gets.chomp
|
95
|
+
puts "----------------------------------------------------------"
|
96
|
+
puts "Database password"
|
97
|
+
puts "----------------------------------------------------------"
|
98
|
+
db_password = STDIN.gets.chomp
|
99
|
+
|
100
|
+
|
101
|
+
db_conf = File.readlines("config/secrets.yml")
|
102
|
+
new_file = []
|
103
|
+
db_conf.each do |line|
|
104
|
+
if line.eql?(" :name: database\n")
|
105
|
+
line = " :name: #{db_name}\n"
|
106
|
+
elsif line.eql?(" :username: username\n")
|
107
|
+
line = " :username: #{db_username}\n"
|
108
|
+
elsif line.eql?(" :password: password\n")
|
109
|
+
line = " :password: #{db_password}\n"
|
110
|
+
end
|
111
|
+
new_file.push(line)
|
112
|
+
end
|
113
|
+
new_file = new_file.join("")
|
114
|
+
File.write("config/secrets.yml", new_file)
|
115
|
+
puts '> Configured database'
|
116
|
+
|
117
|
+
system("crake db:create db:migrate db:seed")
|
118
|
+
end
|
119
|
+
|
120
|
+
desc 'reset', 'Reset to database'
|
121
|
+
def reset
|
122
|
+
system("rake db:drop db:create db:migrate db:seed")
|
123
|
+
end
|
124
|
+
|
125
|
+
desc 'migrate', 'Migrate database'
|
126
|
+
def migrate
|
127
|
+
system("rake db:migrate")
|
128
|
+
end
|
129
|
+
|
130
|
+
desc 'console', 'Use ruby console'
|
131
|
+
def console
|
132
|
+
system("rails c")
|
133
|
+
end
|
134
|
+
|
135
|
+
desc "add module NAME attr:type attr:type", "Create a new keppler module"
|
136
|
+
subcommand "add", Add
|
137
|
+
|
138
|
+
desc "delete module NAME attr:type attr:type", "Delete a keppler module"
|
139
|
+
subcommand "delete", Delete
|
11
140
|
end
|
12
141
|
end
|