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.
- checksums.yaml +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/README.md +66 -0
- data/Rakefile +6 -0
- data/bin/console +13 -0
- data/bin/setup +8 -0
- data/cm_admin.gemspec +44 -0
- data/lib/.DS_Store +0 -0
- data/lib/cm_admin.rb +6 -0
- data/lib/cm_admin/version.rb +3 -0
- data/lib/generators/cm_admin/USAGE +8 -0
- data/lib/generators/cm_admin/install_generator.rb +28 -0
- data/lib/generators/cm_admin/templates/assets/images/same-logo.png +0 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/_variable.scss +11 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/alignment.scss +111 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/application.css.scss +30 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/devise.scss +98 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/form.scss +131 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/products.scss +21 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/scaffold.scss +241 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/table.scss +90 -0
- data/lib/generators/cm_admin/templates/assets/stylesheets/user.scss +25 -0
- data/lib/generators/cm_admin/templates/layouts/_navbar.html.slim +9 -0
- data/lib/generators/cm_admin/templates/layouts/_side_navbar.html.slim +16 -0
- data/lib/generators/cm_admin/templates/layouts/application.html.slim +25 -0
- data/lib/generators/cm_admin/templates/layouts/initializer.rb +2 -0
- data/lib/generators/cm_admin/templates/views/_filters.html.slim +0 -0
- data/lib/generators/cm_admin/templates/views/_form.erb +38 -0
- data/lib/generators/cm_admin/templates/views/_table.erb +14 -0
- data/lib/generators/cm_admin/templates/views/index.erb +11 -0
- data/lib/generators/cm_admin/templates/views/show.erb +8 -0
- data/lib/generators/cm_admin/view_generator.rb +57 -0
- 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,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
|
File without changes
|
@@ -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,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: []
|