cm-admin 0.1.0

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 (34) hide show
  1. checksums.yaml +7 -0
  2. data/CODE_OF_CONDUCT.md +74 -0
  3. data/Gemfile +4 -0
  4. data/README.md +66 -0
  5. data/Rakefile +6 -0
  6. data/bin/console +13 -0
  7. data/bin/setup +8 -0
  8. data/cm_admin.gemspec +44 -0
  9. data/lib/.DS_Store +0 -0
  10. data/lib/cm_admin.rb +6 -0
  11. data/lib/cm_admin/version.rb +3 -0
  12. data/lib/generators/cm_admin/USAGE +8 -0
  13. data/lib/generators/cm_admin/install_generator.rb +28 -0
  14. data/lib/generators/cm_admin/templates/assets/images/same-logo.png +0 -0
  15. data/lib/generators/cm_admin/templates/assets/stylesheets/_variable.scss +11 -0
  16. data/lib/generators/cm_admin/templates/assets/stylesheets/alignment.scss +111 -0
  17. data/lib/generators/cm_admin/templates/assets/stylesheets/application.css.scss +30 -0
  18. data/lib/generators/cm_admin/templates/assets/stylesheets/devise.scss +98 -0
  19. data/lib/generators/cm_admin/templates/assets/stylesheets/form.scss +131 -0
  20. data/lib/generators/cm_admin/templates/assets/stylesheets/products.scss +21 -0
  21. data/lib/generators/cm_admin/templates/assets/stylesheets/scaffold.scss +241 -0
  22. data/lib/generators/cm_admin/templates/assets/stylesheets/table.scss +90 -0
  23. data/lib/generators/cm_admin/templates/assets/stylesheets/user.scss +25 -0
  24. data/lib/generators/cm_admin/templates/layouts/_navbar.html.slim +9 -0
  25. data/lib/generators/cm_admin/templates/layouts/_side_navbar.html.slim +16 -0
  26. data/lib/generators/cm_admin/templates/layouts/application.html.slim +25 -0
  27. data/lib/generators/cm_admin/templates/layouts/initializer.rb +2 -0
  28. data/lib/generators/cm_admin/templates/views/_filters.html.slim +0 -0
  29. data/lib/generators/cm_admin/templates/views/_form.erb +38 -0
  30. data/lib/generators/cm_admin/templates/views/_table.erb +14 -0
  31. data/lib/generators/cm_admin/templates/views/index.erb +11 -0
  32. data/lib/generators/cm_admin/templates/views/show.erb +8 -0
  33. data/lib/generators/cm_admin/view_generator.rb +57 -0
  34. metadata +117 -0
@@ -0,0 +1,90 @@
1
+ @import '_variable.scss';
2
+
3
+ .admin-table{
4
+ display: flex;
5
+ flex-flow: column;
6
+ width:95% !important;
7
+ background-color: $table-background;
8
+ margin: 0 auto;
9
+ margin-top: 20px;
10
+ border-radius: 10px;
11
+ margin-bottom: 20px;
12
+ }
13
+ .table-container{
14
+ position: relative;
15
+ height: 80%;
16
+ background-color: $table-background;
17
+ z-index: 1;
18
+ .table-hover{
19
+ width: 100%;
20
+ }
21
+ .table-div {
22
+ height: 100%;
23
+ overflow-y: auto;
24
+ }
25
+ .table-div::-webkit-scrollbar {
26
+ display: none;
27
+ }
28
+ .cm-pagination {
29
+ padding: 5px;
30
+ padding-bottom: 30px;
31
+ .footer-text {
32
+ font-size: 14px;
33
+ color: #000;
34
+ padding: 10px;
35
+ font-weight: bold;
36
+ border-radius: 0.3rem;
37
+ }
38
+ .next-page, .previous-page {
39
+ font-size: 20px;
40
+ padding: 10px 50px;
41
+ }
42
+ }
43
+ }
44
+
45
+ .heading-container, .container, .filter-container{
46
+ background-color: #fff;
47
+ width: 100% !important;
48
+ }
49
+
50
+ .filter-container {
51
+ .filters {
52
+ display: flex;
53
+ flex-direction: row;
54
+ overflow-x: visible;
55
+ margin-right: 20px;
56
+ padding-bottom: 10px;
57
+ .input-group {
58
+ margin: 10px 0px 0px 10px;
59
+ min-width: 300px;
60
+ .form-control:focus {
61
+ padding: 6px 12px;
62
+ background-image: none;
63
+ box-shadow: none;
64
+ border: 1px solid #d5d5d5;
65
+ }
66
+ .form-control {
67
+ box-shadow: none;
68
+ border: 1px solid #d5d5d5;
69
+ border-radius: 0;
70
+ color: #1A1D1F;
71
+ }
72
+
73
+ select.form-control {
74
+ border-radius: 0;
75
+ border: 1px solid #d5d5d5;
76
+ }
77
+ }
78
+ }
79
+ .filters::-webkit-scrollbar {
80
+ display: none;
81
+ }
82
+ }
83
+
84
+ .heading-container {
85
+ background-color: $background;
86
+ height: 60px;
87
+ .container-header {
88
+ padding: 20px 20px;
89
+ }
90
+ }
@@ -0,0 +1,25 @@
1
+ // Place all the styles related to the user controller here.
2
+ // They will automatically be included in application.css.
3
+ // You can use Sass (SCSS) here: https://sass-lang.com/
4
+ @import '_variable.scss';
5
+
6
+ .user-foreground{
7
+ background-color: $table-background !important;
8
+ width: 95% !important;
9
+ z-index: 1;
10
+ border-radius: 7px;
11
+ margin: 20px auto;
12
+ height: 60vh;
13
+ box-shadow: -1px 4px 12px -3px rgba(0,0,0,0.18);
14
+
15
+ .user-details{
16
+ display: grid;
17
+ position: relative;
18
+ grid-template-columns: 1fr 1fr;
19
+ width: 40%;
20
+ margin-top: 65px;
21
+
22
+ }
23
+
24
+ }
25
+
@@ -0,0 +1,9 @@
1
+ .heading-container
2
+ .row.container-header
3
+ .col-md-8
4
+ = yield :bread_crumb
5
+ .dropdown-icon
6
+ .dropbtn
7
+ p.text-light AM
8
+ .dropdown-content
9
+ p = link_to "Log out", '/sign-out', method: :delete
@@ -0,0 +1,16 @@
1
+ .side-navbar
2
+
3
+ .logo-section
4
+ .tw-logo = image_tag('same-logo.png', alt: 'logo image', width: '24px', height: '24px')
5
+
6
+
7
+ .nav-tabs-section
8
+ = link_to '/', class: 'nav-link'
9
+ .nav-item class="#{(controller_name == 'users') ? 'active' : ''}"
10
+ span.p-4.nav-heading.f14 Users
11
+
12
+
13
+ .sidenav-footer-section
14
+ = link_to '/sign-out', method: :delete, class: 'nav-link'
15
+ .nav-item
16
+ span.p-4.nav-heading.f14 Logout
@@ -0,0 +1,25 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title
5
+ | TishWish
6
+ = csrf_meta_tags
7
+ = csp_meta_tag
8
+ = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
9
+ = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'
10
+
11
+ body
12
+ - unless controller_path.include?('devise')
13
+ .layout-container
14
+ = render 'layouts/side_navbar'
15
+ .main
16
+ .main-container
17
+ = render 'layouts/navbar'
18
+ = yield
19
+ - else
20
+ .main
21
+ .heading
22
+ h3
23
+ span TishWish Admin Panel
24
+ .devise-form-container
25
+ = yield
@@ -0,0 +1,2 @@
1
+
2
+ # Add initialization content here
@@ -0,0 +1,38 @@
1
+ .form-container
2
+ = simple_form_for(@template,:url => admin_product_templates_path(@product), html: { class: "new product_template-form", autocomplete: "off" }) do |f|
3
+ = f.error_notification
4
+ .custom-validations.error-color
5
+ <% options[:column_names].each do |column_name| %>
6
+ <% column_name_arr = column_name.split(':') %>
7
+ <% case 'string'
8
+ when 'integer' %>
9
+ = f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
10
+ .<%= column_name_arr[0] %>.error-color.hidden
11
+ p Please fill height
12
+ <% when 'string' %>
13
+ = f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
14
+ .<%= column_name_arr[0] %>.error-color.hidden
15
+ p Please fill height
16
+ <% when 'select_multiple' %>
17
+ = f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
18
+ .<%= column_name_arr[0] %>.error-color.hidden
19
+ p Please fill height
20
+ <% when 'select_single' %>
21
+ = f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
22
+ .<%= column_name_arr[0] %>.error-color.hidden
23
+ p Please fill height
24
+ <% when 'checkbox' %>
25
+ = f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
26
+ .<%= column_name_arr[0] %>.error-color.hidden
27
+ p Please fill height
28
+ <% when 'datetime' %>
29
+ = f.input :<%= column_name_arr[0] %>, input_html: { data: {class_name: '<%= column_name_arr[0] %>'} }, wrapper: :form_string_custom, placeholder: '<%= column_name_arr[0] %>', required: true, error_message_html: {class: "<%= column_name_arr[0] %>"}
30
+ .<%= column_name_arr[0] %>.error-color.hidden
31
+ p Please fill height
32
+ <% when 'file' %>
33
+ = f.label :file, "Upload .pdf or .ai "
34
+ = f.file_field :file, input_html: {}
35
+ <% end %>
36
+ <% end %>
37
+
38
+ = f.button :submit, "Create new Template", class: "float-right", data: {class_name: 'product_template-form',path_name: "admin/products/#{@product.id}/templates", button_name: 'Create new template'}
@@ -0,0 +1,14 @@
1
+ table.table-hover
2
+ thead
3
+ tr.border-bottom.border-top
4
+ <% options[:column_names].each do |column_name| %>
5
+ th.p-3 <%= column_name.titleize %>
6
+ <% end %>
7
+ tbody
8
+ - @filtered_result.data.each do |<%= name.singularize %>|
9
+ tr.border-bottom
10
+ <% options[:column_names].each do |column_name| %>
11
+ td.p-3 = <%= name.singularize %>.<%= column_name %>
12
+ <% end %>
13
+
14
+ = cm_paginate(@filtered_result.facets)
@@ -0,0 +1,11 @@
1
+ - content_for :bread_crumb do
2
+ h6.text-light.breadcrumb-nav
3
+ = link_to "Home ", admin_<%= name %>_path
4
+ '/
5
+ span.active = link_to "<%= name.titleize %>", admin_<%= name %>_path
6
+
7
+ .admin-table
8
+ == render 'filters'
9
+
10
+ .table-container
11
+ == render 'table'
@@ -0,0 +1,8 @@
1
+ .container
2
+ h2 Coupon
3
+
4
+ .d-flex.flex-column
5
+ <% options[:column_names].each do |column_name| %>
6
+ .attribute.mr-4 <%= name.singularize.titleize %>
7
+ .value = @<%= name.singularize %>.<%= column_name %>
8
+ <% end %>
@@ -0,0 +1,57 @@
1
+ module CmAdmin
2
+ module ViewActionTemplate
3
+ def copy_index_files
4
+ template "views/index.erb", "app/views/admin/#{name}/index.html.slim"
5
+ template "views/_table.erb", "app/views/admin/#{name}/_table.html.slim"
6
+ copy_file "views/_filters.html.slim", "app/views/admin/#{name}/_filters.html.slim"
7
+ end
8
+
9
+ def copy_show_files
10
+ template "views/show.erb", "app/views/admin/#{name}/show.html.slim"
11
+ end
12
+
13
+ def copy_form_files
14
+ template "views/_form.erb", "app/views/admin/#{name}/_form.html.slim"
15
+ end
16
+ end
17
+
18
+ class ViewGenerator < Rails::Generators::NamedBase
19
+ include ViewActionTemplate
20
+ desc <<-DESC.strip_heredoc
21
+ Generate views for specific action of the model in admin
22
+ Use -c to specify which column names you want to be present on page.
23
+ Atleast one option is mandatory.
24
+ For example:
25
+ rails g cm_admin:view NAME page_type -c options
26
+ rails g cm_admin:view products form -c title:string price:integer
27
+ rails g cm_admin:view products index -c title price
28
+
29
+ NAME is the table name
30
+ page_type is the page you want to copy files. It can be the following
31
+ index, show, form.
32
+
33
+ This will create a files respectively at app/views/admin/#{name}/***.html.slim
34
+
35
+ DESC
36
+
37
+ source_root File.expand_path('templates', __dir__)
38
+
39
+ argument :page_type, required: true, default: nil,
40
+ desc: "The scope to copy views to"
41
+ class_option :column_names, aliases: "-c", type: :array,
42
+ desc: "Select specific columns in the files to be be added."
43
+
44
+ def create_new_file
45
+ if page_type == 'index'
46
+ copy_index_files
47
+ elsif page_type == 'form'
48
+ copy_form_files
49
+ elsif page_type == 'show'
50
+ copy_show_files
51
+ else
52
+ puts "Wrong page_type provided. It can be either index or show"
53
+ end
54
+ end
55
+
56
+ end
57
+ end
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cm-admin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Anbazhagan Palani
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-05-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description:
56
+ email:
57
+ - anbu@commutatus.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - CODE_OF_CONDUCT.md
63
+ - Gemfile
64
+ - README.md
65
+ - Rakefile
66
+ - bin/console
67
+ - bin/setup
68
+ - cm_admin.gemspec
69
+ - lib/.DS_Store
70
+ - lib/cm_admin.rb
71
+ - lib/cm_admin/version.rb
72
+ - lib/generators/cm_admin/USAGE
73
+ - lib/generators/cm_admin/install_generator.rb
74
+ - lib/generators/cm_admin/templates/assets/images/same-logo.png
75
+ - lib/generators/cm_admin/templates/assets/stylesheets/_variable.scss
76
+ - lib/generators/cm_admin/templates/assets/stylesheets/alignment.scss
77
+ - lib/generators/cm_admin/templates/assets/stylesheets/application.css.scss
78
+ - lib/generators/cm_admin/templates/assets/stylesheets/devise.scss
79
+ - lib/generators/cm_admin/templates/assets/stylesheets/form.scss
80
+ - lib/generators/cm_admin/templates/assets/stylesheets/products.scss
81
+ - lib/generators/cm_admin/templates/assets/stylesheets/scaffold.scss
82
+ - lib/generators/cm_admin/templates/assets/stylesheets/table.scss
83
+ - lib/generators/cm_admin/templates/assets/stylesheets/user.scss
84
+ - lib/generators/cm_admin/templates/layouts/_navbar.html.slim
85
+ - lib/generators/cm_admin/templates/layouts/_side_navbar.html.slim
86
+ - lib/generators/cm_admin/templates/layouts/application.html.slim
87
+ - lib/generators/cm_admin/templates/layouts/initializer.rb
88
+ - lib/generators/cm_admin/templates/views/_filters.html.slim
89
+ - lib/generators/cm_admin/templates/views/_form.erb
90
+ - lib/generators/cm_admin/templates/views/_table.erb
91
+ - lib/generators/cm_admin/templates/views/index.erb
92
+ - lib/generators/cm_admin/templates/views/show.erb
93
+ - lib/generators/cm_admin/view_generator.rb
94
+ homepage: https://github.com/commutatus/cm-admin
95
+ licenses:
96
+ - MIT
97
+ metadata: {}
98
+ post_install_message:
99
+ rdoc_options: []
100
+ require_paths:
101
+ - lib
102
+ required_ruby_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ requirements: []
113
+ rubygems_version: 3.0.3
114
+ signing_key:
115
+ specification_version: 4
116
+ summary: Setup basic requied components for admin management.
117
+ test_files: []