lato_core 2.1.2 → 2.1.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/lato_core/application.js +18 -9
  3. data/app/assets/javascripts/lato_core/modules/CoreButton.js +38 -0
  4. data/app/assets/javascripts/lato_core/{initializers/Charts.js → modules/CoreChart.js} +12 -12
  5. data/app/assets/javascripts/lato_core/modules/CoreDatepicker.js +42 -0
  6. data/app/assets/javascripts/lato_core/modules/CoreEditor.js +27 -0
  7. data/app/assets/javascripts/lato_core/modules/CoreFlash.js +27 -0
  8. data/app/assets/javascripts/lato_core/modules/CoreFormValidator.js +110 -0
  9. data/app/assets/javascripts/lato_core/{initializers/Layout.js → modules/CoreLayout.js} +6 -5
  10. data/app/assets/javascripts/lato_core/modules/CoreMediapicker.js +140 -0
  11. data/app/assets/javascripts/lato_core/{interfaces/Modal.js → modules/CoreModal.js} +27 -2
  12. data/app/assets/javascripts/lato_core/modules/CoreSelect.js +110 -0
  13. data/app/assets/javascripts/lato_core/{initializers/inputs/SortableManager.js → modules/CoreSortableManager.js} +7 -6
  14. data/app/assets/javascripts/lato_core/modules/CoreTable.js +28 -0
  15. data/app/assets/stylesheets/lato_core/cells/inputs/_inputs.scss +1 -0
  16. data/app/assets/stylesheets/lato_core/cells/inputs/_multipleselect.scss +6 -0
  17. data/app/assets/stylesheets/lato_core/cells/widgets/_index.scss +9 -0
  18. data/app/cells/lato_core/inputs/dropzone/views/show.html.erb +24 -20
  19. data/app/cells/lato_core/inputs/multipleselect/cell.rb +52 -0
  20. data/app/cells/lato_core/inputs/multipleselect/views/show.html.erb +16 -0
  21. data/app/cells/lato_core/inputs/select/cell.rb +19 -1
  22. data/app/cells/lato_core/inputs/select/views/show.html.erb +10 -2
  23. data/app/cells/lato_core/widgets/index/cell.rb +1 -0
  24. data/app/cells/lato_core/widgets/index/views/partials/counter.html.erb +3 -0
  25. data/app/cells/lato_core/widgets/index/views/show.html.erb +2 -0
  26. data/app/controllers/lato_core/back/superusers_controller.rb +9 -9
  27. data/app/controllers/lato_core/doc/cells_inputs_controller.rb +28 -0
  28. data/app/views/lato_core/doc/cells_elements/button.html.erb +0 -4
  29. data/app/views/lato_core/doc/cells_elements/modal.html.erb +4 -4
  30. data/app/views/lato_core/doc/cells_inputs/multipleselect.html.erb +110 -0
  31. data/app/views/lato_core/doc/cells_inputs/select.html.erb +48 -2
  32. data/app/views/lato_core/doc/doc/index.html.erb +1 -0
  33. data/app/views/lato_core/doc/general/generators.html.erb +40 -0
  34. data/app/views/layouts/lato_core/partials/_logo.html.erb +7 -5
  35. data/config/languages/default.yml +2 -1
  36. data/config/languages/it.yml +2 -1
  37. data/config/routes/doc.rb +5 -0
  38. data/lib/generators/lato_core/crud_controller_generator.rb +35 -0
  39. data/lib/generators/lato_core/crud_generator.rb +31 -12
  40. data/lib/generators/lato_core/crud_views_generator.rb +52 -0
  41. data/lib/generators/lato_core/initializer_generator.rb +38 -28
  42. data/lib/generators/lato_core/scaffold_generator.rb +30 -0
  43. data/lib/generators/lato_core/templates/crud_controller/app/controllers/lato/crud_controller.rb +94 -0
  44. data/lib/generators/lato_core/templates/crud_views/app/views/lato/crud/edit.html.erb +24 -0
  45. data/lib/generators/lato_core/templates/crud_views/app/views/lato/crud/index.html.erb +35 -0
  46. data/lib/generators/lato_core/templates/crud_views/app/views/lato/crud/new.html.erb +24 -0
  47. data/lib/generators/lato_core/templates/crud_views/app/views/lato/crud/shared/_form.html.erb +42 -0
  48. data/lib/generators/lato_core/templates/crud_views/app/views/lato/crud/show.html.erb +22 -0
  49. data/lib/generators/lato_core/templates/{assets → initializer/assets}/images/logo.svg +0 -0
  50. data/lib/generators/lato_core/templates/{assets → initializer/assets}/javascripts/application.js +0 -0
  51. data/lib/generators/lato_core/templates/{assets → initializer/assets}/stylesheets/application.scss +0 -0
  52. data/lib/generators/lato_core/templates/{assets → initializer/assets}/stylesheets/theme.scss.erb +0 -0
  53. data/lib/generators/lato_core/templates/initializer/controllers/application_controller.rb +25 -0
  54. data/lib/generators/lato_core/templates/initializer/views/application/index.html.erb +20 -0
  55. data/lib/lato_core/interfaces/token.rb +4 -3
  56. data/lib/lato_core/version.rb +1 -1
  57. metadata +33 -16
  58. data/app/assets/javascripts/lato_core/initializers/Elements.js +0 -67
  59. data/app/assets/javascripts/lato_core/initializers/Inputs.js +0 -249
  60. data/app/assets/javascripts/lato_core/initializers/inputs/MultipleSelect.js +0 -0
  61. data/lib/generators/lato_core/templates/controllers/application_controller.rb +0 -13
  62. data/lib/generators/lato_core/templates/views/application/index.html.erb +0 -16
@@ -8,18 +8,37 @@ module LatoCore
8
8
 
9
9
  source_root File.expand_path('../templates', __FILE__)
10
10
 
11
- desc 'This function initialize your Rails project to get all crud files.'
12
- def create_crud_file
13
- # copy controller
14
- copy_file(
15
- 'controllers/crud_controller.rb',
16
- 'app/controllers/lato/crud_controller.rb'
17
- )
18
- # copy views
19
- directory(
20
- 'views/crud',
21
- 'app/views/lato/crud'
22
- )
11
+ argument :model_name, type: :string, default: 'Crud'
12
+
13
+ desc 'This function create a complete crud with Lato.'
14
+ def create_crud
15
+ set_utils_names
16
+
17
+ run_lato_crud_controller_generator
18
+ run_lato_crud_views_generator
19
+
20
+ update_route
21
+ end
22
+
23
+ private
24
+
25
+ def set_utils_names
26
+ @model_name = model_name
27
+ @singular_name = @model_name.underscore
28
+ @plural_name = @singular_name.pluralize
29
+ @controller_name = @plural_name.camelize
30
+ end
31
+
32
+ def run_lato_crud_controller_generator
33
+ generate 'lato_core:crud_controller', model_name
34
+ end
35
+
36
+ def run_lato_crud_views_generator
37
+ generate 'lato_core:crud_views', model_name
38
+ end
39
+
40
+ def update_route
41
+ route "namespace :lato { resources :#{@plural_name} }"
23
42
  end
24
43
 
25
44
  end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators/base'
4
+
5
+ module LatoCore
6
+ # CrudViewsGenerator.
7
+ class CrudViewsGenerator < Rails::Generators::Base
8
+
9
+ source_root File.expand_path('../templates/crud_views', __FILE__)
10
+
11
+ argument :model_name, type: :string, default: 'Crud'
12
+
13
+ desc 'This function create a complete crud controller with Lato.'
14
+ def create_crud
15
+ set_utils_names
16
+
17
+ manage_views
18
+ manage_shared_views
19
+ end
20
+
21
+ private
22
+
23
+ def set_utils_names
24
+ @model_name = model_name
25
+ @singular_name = @model_name.underscore
26
+ @plural_name = @singular_name.pluralize
27
+ @controller_name = @plural_name.camelize
28
+ end
29
+
30
+ def manage_views
31
+ # copy index
32
+ template('app/views/lato/crud/index.html.erb',
33
+ "app/views/lato/#{@plural_name}/index.html.erb")
34
+ # copy show
35
+ template('app/views/lato/crud/show.html.erb',
36
+ "app/views/lato/#{@plural_name}/show.html.erb")
37
+ # copy new
38
+ template('app/views/lato/crud/new.html.erb',
39
+ "app/views/lato/#{@plural_name}/new.html.erb")
40
+ # copy edit
41
+ template('app/views/lato/crud/edit.html.erb',
42
+ "app/views/lato/#{@plural_name}/edit.html.erb")
43
+ end
44
+
45
+ def manage_shared_views
46
+ # copy form
47
+ template('app/views/lato/crud/shared/_form.html.erb',
48
+ "app/views/lato/#{@plural_name}/shared/_form.html.erb")
49
+ end
50
+
51
+ end
52
+ end
@@ -6,40 +6,50 @@ module LatoCore
6
6
  # InitializerGenerator.
7
7
  class InitializerGenerator < Rails::Generators::Base
8
8
 
9
- source_root File.expand_path('../templates', __FILE__)
9
+ source_root File.expand_path('../templates/initializer', __FILE__)
10
10
 
11
11
  desc 'This function initialize your Rails project to support Lato.'
12
- def create_initializer_file
13
- # copy controller
14
- copy_file(
15
- 'controllers/application_controller.rb',
16
- 'app/controllers/lato/application_controller.rb'
17
- )
18
- # copy view
19
- copy_file(
20
- 'views/application/index.html.erb',
21
- 'app/views/lato/application/index.html.erb'
22
- )
12
+ def create_initializer
13
+ manage_controllers
14
+ manage_views
15
+ manage_assets_stylesheets
16
+ manage_assets_javascripts
17
+ manage_assets_images
18
+ end
19
+
20
+ private
21
+
22
+ def manage_controllers
23
+ # copy controllers
24
+ copy_file('controllers/application_controller.rb',
25
+ 'app/controllers/lato/application_controller.rb')
26
+ end
27
+
28
+ def manage_views
29
+ # copy views
30
+ copy_file('views/application/index.html.erb',
31
+ 'app/views/lato/application/index.html.erb')
32
+ end
33
+
34
+ def manage_assets_stylesheets
23
35
  # copy stylesheets theme file
24
- copy_file(
25
- 'assets/stylesheets/theme.scss.erb',
26
- 'app/assets/stylesheets/lato/theme.scss.erb'
27
- )
36
+ copy_file('assets/stylesheets/theme.scss.erb',
37
+ 'app/assets/stylesheets/lato/theme.scss.erb')
28
38
  # copy stylesheets application file
29
- copy_file(
30
- 'assets/stylesheets/application.scss',
31
- 'app/assets/stylesheets/lato/application.scss'
32
- )
39
+ copy_file('assets/stylesheets/application.scss',
40
+ 'app/assets/stylesheets/lato/application.scss')
41
+ end
42
+
43
+ def manage_assets_javascripts
33
44
  # copy javascripts application file
34
- copy_file(
35
- 'assets/javascripts/application.js',
36
- 'app/assets/javascripts/lato/application.js'
37
- )
45
+ copy_file('assets/javascripts/application.js',
46
+ 'app/assets/javascripts/lato/application.js')
47
+ end
48
+
49
+ def manage_assets_images
38
50
  # copy images logo file
39
- copy_file(
40
- 'assets/images/logo.svg',
41
- 'app/assets/images/lato/logo.svg'
42
- )
51
+ copy_file('assets/images/logo.svg',
52
+ 'app/assets/images/lato/logo.svg')
43
53
  end
44
54
 
45
55
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators/base'
4
+
5
+ module LatoCore
6
+ # ScaffoldGenerator.
7
+ class ScaffoldGenerator < Rails::Generators::Base
8
+
9
+ source_root File.expand_path('../templates', __FILE__)
10
+
11
+ argument :model_name, type: :string, default: 'Scaffold'
12
+
13
+ desc 'This function create a complete scaffold with Lato.'
14
+ def create_crud
15
+ run_model_generator
16
+ run_lato_crud_generator
17
+ end
18
+
19
+ private
20
+
21
+ def run_model_generator
22
+ generate 'model', model_name
23
+ end
24
+
25
+ def run_lato_crud_generator
26
+ generate 'lato_core:crud', model_name
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lato
4
+
5
+ # <%= @controller_name %>Controller.
6
+ class <%= @controller_name %>Controller < Lato::ApplicationController
7
+
8
+ before_action do
9
+ core__set_menu_active_item('<%= @singular_name %>')
10
+ end
11
+
12
+ def index
13
+ core__set_header_active_page_title('<%= @plural_name.humanize %>')
14
+ @<%= @plural_name %> = <%= @model_name %>.all
15
+ @widget_index_<%= @plural_name %> = core__widgets_index(
16
+ @<%= @plural_name %>,
17
+ search: 'name',
18
+ pagination: 10
19
+ )
20
+ end
21
+
22
+ def show
23
+ core__set_header_active_page_title('<%= @singular_name.humanize %>')
24
+ @<%= @singular_name %> = <%= @model_name %>.find_by(id: params[:id])
25
+ return unless check_<%= @singular_name %>_presence
26
+ end
27
+
28
+ def new
29
+ core__set_header_active_page_title('New <%= @singular_name.humanize %>')
30
+ @<%= @singular_name %> = <%= @model_name %>.new
31
+ end
32
+
33
+ def create
34
+ @<%= @singular_name %> = <%= @model_name %>.new(<%= @singular_name %>_params)
35
+
36
+ unless @<%= @singular_name %>.save
37
+ flash[:danger] = @<%= @singular_name %>.errors.full_messages.to_sentence
38
+ redirect_to new_lato_<%= @singular_name %>_path
39
+ return
40
+ end
41
+
42
+ flash[:success] = '<%= @singular_name.humanize %> created succesfully'
43
+ redirect_to lato_<%= @singular_name %>_path(@<%= @singular_name %>.id)
44
+ end
45
+
46
+ def edit
47
+ core__set_header_active_page_title('Edit <%= @singular_name.humanize %>')
48
+ @<%= @singular_name %> = <%= @model_name %>.find_by(id: params[:id])
49
+ return unless check_<%= @singular_name %>_presence
50
+ end
51
+
52
+ def update
53
+ @<%= @singular_name %> = <%= @model_name %>.find_by(id: params[:id])
54
+ return unless check_<%= @singular_name %>_presence
55
+
56
+ unless @<%= @singular_name %>.update(<%= @singular_name %>_params)
57
+ flash[:danger] = @<%= @singular_name %>.errors.full_messages.to_sentence
58
+ redirect_to edit_lato_<%= @singular_name %>_path(@<%= @singular_name %>.id)
59
+ return
60
+ end
61
+
62
+ flash[:success] = '<%= @singular_name.humanize %> updated succesfully'
63
+ redirect_to lato_<%= @singular_name %>_path(@<%= @singular_name %>.id)
64
+ end
65
+
66
+ def destroy
67
+ @<%= @singular_name %> = <%= @model_name %>.find_by(id: params[:id])
68
+ return unless check_<%= @singular_name %>_presence
69
+
70
+ unless @<%= @singular_name %>.destroy
71
+ flash[:danger] = @<%= @singular_name %>.errors.full_messages.to_sentence
72
+ redirect_to lato_<%= @singular_name %>_path(@<%= @singular_name %>.id)
73
+ return
74
+ end
75
+
76
+ flash[:success] = '<%= @singular_name.humanize %> destroyed succesfully'
77
+ redirect_to lato_<%= @singular_name %>s_path
78
+ end
79
+
80
+ private
81
+
82
+ def <%= @singular_name %>_params
83
+ params.require(:<%= @singular_name %>).permit(:name)
84
+ end
85
+
86
+ def check_<%= @singular_name %>_presence
87
+ return true if @<%= @singular_name %>
88
+ redirect_to lato_<%= @singular_name %>s_path
89
+ false
90
+ end
91
+
92
+ end
93
+
94
+ end
@@ -0,0 +1,24 @@
1
+ <%%
2
+ # initialize row
3
+ row = cell(:elements, :row).new
4
+
5
+ # initialize block
6
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
7
+
8
+ # initialize title
9
+ title = cell(:elements, :title).new(label: 'Edit <%= @singular_name.humanize %>', size: 2)
10
+ %>
11
+
12
+ <!-- MAIN CONTAINER -->
13
+ <%%=raw row.open %>
14
+
15
+ <%%=raw block.open %>
16
+
17
+ <%%=raw title %>
18
+
19
+ <%%= render 'lato/<%= @plural_name %>/shared/form', url: lato_<%= @singular_name %>_path(@<%= @singular_name %>.id), method: :put %>
20
+
21
+ <%%=raw block.close %>
22
+
23
+ <%%=raw row.close %>
24
+ <!-- / MAIN CONTAINER -->
@@ -0,0 +1,35 @@
1
+ <%%
2
+ # initialize row
3
+ row = cell(:elements, :row).new
4
+
5
+ # initialize block
6
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
7
+
8
+ # initialize index
9
+ index = cell(:widgets, :index).new(
10
+ records: @widget_index_<%= @plural_name %>,
11
+ index_url: lato_<%= @plural_name %>_path,
12
+ head: ['Id', 'Name'],
13
+ columns: [:id, :name],
14
+ search: true,
15
+ pagination: true,
16
+ actions: {
17
+ edit: true,
18
+ new: true,
19
+ delete: true,
20
+ show: true,
21
+ }
22
+ )
23
+ %>
24
+
25
+ <!-- MAIN CONTAINER -->
26
+ <%%=raw row.open %>
27
+
28
+ <%%=raw block.open %>
29
+
30
+ <%%=raw index %>
31
+
32
+ <%%=raw block.close %>
33
+
34
+ <%%=raw row.close %>
35
+ <!-- / MAIN CONTAINER -->
@@ -0,0 +1,24 @@
1
+ <%%
2
+ # initialize row
3
+ row = cell(:elements, :row).new
4
+
5
+ # initialize block
6
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
7
+
8
+ # initialize title
9
+ title = cell(:elements, :title).new(label: 'New <%= @singular_name.humanize %>', size: 2)
10
+ %>
11
+
12
+ <!-- MAIN CONTAINER -->
13
+ <%%=raw row.open %>
14
+
15
+ <%%=raw block.open %>
16
+
17
+ <%%=raw title %>
18
+
19
+ <%%= render 'lato/<%= @plural_name %>/shared/form', url: lato_<%= @plural_name %>_path, method: :post %>
20
+
21
+ <%%=raw block.close %>
22
+
23
+ <%%=raw row.close %>
24
+ <!-- / MAIN CONTAINER -->
@@ -0,0 +1,42 @@
1
+ <%%
2
+ # initialize row
3
+ row = cell(:elements, :row).new
4
+
5
+ # initialize form
6
+ form = cell(:inputs, :form).new(url: url, method: method)
7
+
8
+ # initialize input name
9
+ input_name = cell(:inputs, :text).new(
10
+ name: '<%= @singular_name %>[name]',
11
+ label: 'Name',
12
+ required: true,
13
+ class: 'md-12',
14
+ value: @<%= @singular_name %>.name
15
+ )
16
+
17
+ # initialize button save
18
+ button_save = cell(:elements, :button).new(
19
+ type: 'submit',
20
+ label: 'Save',
21
+ style: 'success',
22
+ icon: 'check'
23
+ )
24
+ %>
25
+
26
+ <!-- FORM CONTAINER -->
27
+ <%%=raw form.open %>
28
+
29
+ <%%=raw row.open %>
30
+
31
+ <%%=raw input_name %>
32
+
33
+ <%%=raw row.close %>
34
+
35
+ <div class="text-right">
36
+
37
+ <%%=raw button_save %>
38
+
39
+ </div>
40
+
41
+ <%%=raw form.close %>
42
+ <!-- / FORM CONTAINER -->
@@ -0,0 +1,22 @@
1
+ <%%
2
+ # initialize row
3
+ row = cell(:elements, :row).new
4
+
5
+ # initialize block
6
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
7
+
8
+ # initialize title
9
+ title = cell(:elements, :title).new(label: @<%= @singular_name %>.name, size: 2)
10
+ %>
11
+
12
+ <!-- MAIN CONTAINER -->
13
+ <%%=raw row.open %>
14
+
15
+ <%%=raw block.open %>
16
+
17
+ <%%=raw title %>
18
+
19
+ <%%=raw block.close %>
20
+
21
+ <%%=raw row.close %>
22
+ <!-- / MAIN CONTAINER -->