cm-admin 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []