rails_material_admin 0.1.5 → 0.1.9

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 (30) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -20
  3. data/app/helpers/admin_helper.rb +34 -0
  4. data/app/views/admin/sessions/new.html.slim +27 -24
  5. data/app/views/layouts/admin.html.slim +16 -5
  6. data/app/views/shared/_error_messages.html.slim +12 -7
  7. data/app/views/shared/_flash_messages.html.slim +14 -0
  8. data/app/views/shared/_header.html.slim +17 -13
  9. data/app/views/shared/_sidebar.html.slim +9 -8
  10. data/config/webpack/environment.js +5 -1
  11. data/lib/generators/crud/crud_generator.rb +4 -4
  12. data/lib/generators/material_admin/material_admin_generator.rb +16 -9
  13. data/lib/material_admin/version.rb +1 -1
  14. data/vendor/javascript/packs/admin.js +18 -12
  15. data/vendor/javascript/packs/admin_style.js +5 -3
  16. data/vendor/javascript/src/stylesheets/admin/shared/common.scss +39 -2
  17. data/vendor/javascript/src/stylesheets/admin/shared/override.scss +62 -0
  18. data/vendor/javascript/src/stylesheets/shared/override.scss +0 -4
  19. data/vendor/rails_material_admin/css/plugins/bootstrap.min.scss +6 -6
  20. data/vendor/rails_material_admin/css/style.scss +33462 -8272
  21. data/vendor/rails_material_admin/js/app.js +404 -0
  22. data/vendor/rails_material_admin/js/bootstrap.min.js +4 -4
  23. data/vendor/rails_material_admin/js/dashboard.js +15 -16
  24. data/vendor/rails_material_admin/js/perfect-scrollbar.jquery.min.js +1569 -0
  25. data/vendor/rails_material_admin/js/sidebarmenu.js +52 -337
  26. data/vendor/rails_material_admin/js/sweetalert2.min.js +2 -0
  27. data/vendor/rails_material_admin/material_admin.js +8 -7
  28. metadata +8 -6
  29. data/package.json +0 -23
  30. data/vendor/rails_material_admin/js/custom.js +0 -113
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: def943b26235c0d7ebb1d59a251e0a28a97d1f7d1f28d3d2a4952601c09c32b4
4
- data.tar.gz: 32c8887d4833da8c76537b56274ce0f5f778fdc86e3e65d542559fc5ce6caeb0
3
+ metadata.gz: e149cf1845f01081d80159c39143ed16a50d26bc5f91451f74258b2a107a415f
4
+ data.tar.gz: b40e938e32a9025500b2cd7934398ec428abdca35db677ccefa23292eef49e4c
5
5
  SHA512:
6
- metadata.gz: 22a3201843be3115853032c33861676e6bfdcb7b601eeecc22ca7011624958ebc053a09e4e12d8dcef8068057dc5d934e1b2cf6d156ac1677a22e9d5ebd2a060
7
- data.tar.gz: 49ae3a1a9b12ba766fc1ff23ef2a48deeaa2c8eff79ed69acd00bca0743d03d284e3dc8a8ba77547afce7cbe8ca99273cff9b535195904edac243e6855a7e891
6
+ metadata.gz: 50e463b925990f31db34e5034f977329a8be8d81ccd96bd9450f02140d0d052741958075aa858e2c00447ef0a0b9f225a259601c71024fab72c180df84f16017
7
+ data.tar.gz: ca4f286534ac41bb5350da901d240d93dfdb441cff226fcedd287a4bd256392f14cdf23240143d694d99f1d9ae02811f68fc1aeb13577a07369e75f0e2434378
data/README.md CHANGED
@@ -1,35 +1,25 @@
1
1
  # MaterialAdmin
2
2
  Use rails webpacker to bundle the material admin template.
3
3
 
4
- https://www.wrappixel.com/demos/admin-templates/material-pro/Documentation/document.html
4
+ https://wrappixel.com/demos/admin-templates/materialpro-bootstrap-latest/material-pro/src/material/ui-scrollspy.html#list-item-2
5
5
 
6
6
  Easily install and set up admin quickly
7
7
 
8
8
  ## Prerequisite
9
9
  - Need set up your db first
10
- - Used js libraries
11
- ```json
10
+
11
+ ```
12
+ // Gemfile
13
+ gem 'webpacker', '~> 5.0'
14
+
15
+
16
+ // package.json
12
17
  {
13
- "name": "MyProject",
14
- "private": true,
15
18
  "dependencies": {
16
- "@rails/webpacker": "5.1.1",
17
- "core-js": "3",
18
- "file-loader": "^6.0.0",
19
- "url-loader": "^4.1.0",
20
- "expose-loader": "^0.7.5",
21
- "resolve-url-loader": "^3.1.1",
22
- "jquery": "^3.5.1",
23
- "select2": "^4.0.13",
24
- "popper.js": "^1.16.1",
25
- "rails-ujs": "^5.2.4-2",
26
- "stimulus": "^1.1.1",
27
- "turbolinks": "^5.2.0",
28
- "datatables.net-bs4": "^1.10.21",
29
- "datatables.net-responsive-bs4": "^2.2.5"
19
+ "@rails/webpacker": "5.4.2",
30
20
  },
31
21
  "devDependencies": {
32
- "webpack-dev-server": "^3.11.0"
22
+ "webpack-dev-server": "^3.11.2"
33
23
  }
34
24
  }
35
25
  ```
@@ -17,4 +17,38 @@ module ApplicationHelper
17
17
  def sort_opt(model, column)
18
18
  { model: model, column: column }.to_json
19
19
  end
20
+
21
+ def sub_item_active?(sub_c_names = [])
22
+ class_names = 'sidebar-item'
23
+
24
+ if controller_name.in?(sub_c_names)
25
+ class_names += ' active'
26
+ end
27
+
28
+ class_names
29
+ end
30
+
31
+ def sidebar_item_classes(c_names, *a_names)
32
+ class_names = 'sidebar-item'
33
+
34
+ if a_names.any?
35
+ class_names += ' selected' if controller_name.in?(c_names) && action_name.in?(a_names)
36
+ else
37
+ class_names += ' selected' if controller_name.in? c_names
38
+ end
39
+
40
+ class_names
41
+ end
42
+
43
+ def sidebar_item_link_classes(c_names, *a_names)
44
+ class_names = 'sidebar-link waves-effect waves-dark sidebar-link'
45
+
46
+ if a_names.any?
47
+ class_names += ' active' if controller_name.in?(c_names) && action_name.in?(a_names)
48
+ else
49
+ class_names += ' active' if controller_name.in? c_names
50
+ end
51
+
52
+ class_names
53
+ end
20
54
  end
@@ -1,30 +1,33 @@
1
- section#wrapper
2
- .login-register
3
- .login-box.card
4
- .card-body
5
- = form_for resource,
6
- as: resource_name,
7
- url: session_path(resource_name),
8
- html: { class: 'form-horizontal form-material' } do |f|
1
+ .auth-wrapper.d-flex.no-block.justify-content-center.align-items-center
2
+ .auth-box.p-4.bg-white.rounded
3
+ #loginform
4
+ .logo
5
+ h3.box-title.mb-3 Sign In
9
6
 
10
- h3.box-title.m-b-20 Sign In
7
+ .row
8
+ .col-12
9
+ = form_for resource,
10
+ as: resource_name,
11
+ url: session_path(resource_name),
12
+ html: { class: 'form-horizontal mt-3 form-material', id: 'loginform' } do |f|
11
13
 
12
- .form-group
13
- .col-xs-12
14
- = f.email_field :email, autofocus: true, autocomplete: "email", class: 'form-control'
14
+ .form-group.mb-3
15
+ .col-xs-12
16
+ = f.email_field :email, autofocus: true, autocomplete: "email", class: 'form-control', placeholder: 'Email'
15
17
 
16
- .form-group
17
- .col-xs-12
18
- = f.password_field :password, autocomplete: "current-password", class: 'form-control'
18
+ .form-group.mb-4
19
+ .col-xs-12
20
+ = f.password_field :password, autocomplete: "current-password", class: 'form-control', placeholder: 'Password'
19
21
 
20
- - if devise_mapping.rememberable?
21
- .form-group
22
- .d-flex.no-block.align-items-center
23
- .checkbox.checkbox-primary.p-t-0
24
- = f.check_box :remember_me
25
- = f.label :remember_me
22
+ - if devise_mapping.rememberable?
23
+ .form-group
24
+ .d-flex
25
+ div class="checkbox checkbox-info pt-0"
26
+ input id="checkbox-signup" type="checkbox" class="material-inputs chk-col-indigo"
27
+ label for="checkbox-signup" Remember me
28
+
29
+ .form-group.text-center.mt-4.mb-3
30
+ .col-xs-12
31
+ = f.submit "Log in", class: 'btn btn-info d-block w-100 waves-effect waves-light'
26
32
 
27
- .form-group.text-center.m-t-20
28
- .col-xs-12
29
- = f.submit "Log in", class: 'btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light'
30
33
 
@@ -17,17 +17,28 @@ html xmlns:wb="http://open.weibo.com/wb"
17
17
  /! Preloader - style you can find in spinners.css
18
18
  // NOTE: Need fix for turbolinks.
19
19
  / .preloader
20
- / svg.circular viewbox=("25 25 50 50")
20
+ / svg.circular viewbox=("25 25 50 50")
21
21
  / circle.path cx="50" cy="50" fill="none" r="20" stroke-miterlimit="10" stroke-width="2" /
22
22
 
23
23
  /! Main wrapper - style you can find in pages.scss
24
- #main-wrapper
24
+ #main-wrapper[
25
+ data-theme="light"
26
+ data-layout="vertical"
27
+ data-navbarbg="skin1"
28
+ data-sidebartype="full"
29
+ data-sidebar-position="fixed"
30
+ data-header-position="fixed"
31
+ data-boxed-layout="full"
32
+ ]
25
33
  = render 'admin/shared/header'
26
34
  = render 'admin/shared/sidebar'
27
-
28
- .page-wrapper
35
+
36
+ .page-wrapper style="display: block;"
37
+ = yield :breadcrumb
38
+
29
39
  .container-fluid
30
- = yield :breadcrumb
40
+ = yield :error_messages
41
+
31
42
  .row
32
43
  = yield
33
44
 
@@ -1,8 +1,13 @@
1
- - if resource.errors.any?
1
+ - targets = Array(target).select { |ele| ele.errors.any? }
2
+
3
+ - if targets.any?
2
4
  #error_explanation
3
- h2
4
- = I18n.t("errors.messages.not_saved", count: resource.errors.count, resource: resource.class.model_name.human.downcase)
5
- ul
6
- - resource.errors.full_messages.each do |message|
7
- li
8
- = message
5
+ div [
6
+ class="alert customize-alert alert-dismissible alert-light-danger text-danger fade show"
7
+ role="alert"
8
+ ]
9
+ button.btn-close aria-label="Close" data-bs-dismiss="alert" type="button"
10
+
11
+ - targets.map(&:errors).map(&:messages).map(&:values).flatten.each do |message|
12
+ | #{message}
13
+
@@ -0,0 +1,14 @@
1
+ - if flash.any?
2
+ - flash.each do |name, msg|
3
+ - if [String, Array].include?(msg.class)
4
+ - message = msg.is_a?(Array) ? msg.join('<br>').html_safe : msg
5
+
6
+ div [
7
+ class="alert customize-alert alert-dismissible alert-light-#{name.to_s == 'notice' ? 'success' : 'danger'} text-danger fade show"
8
+ role="alert"
9
+ ]
10
+ button.btn-close aria-label="Close" data-bs-dismiss="alert" type="button"
11
+
12
+ .d-flex.align-items-center.font-weight-medium
13
+ i.text-danger.fill-white.feather-sm.me-2 data-feather="info" = message
14
+
@@ -1,9 +1,11 @@
1
1
  /! Topbar header - style you can find in pages.scss
2
- header.topbar
3
- nav.navbar.top-navbar.navbar-expand-md.navbar-light
4
- /! Logo
5
- .navbar-header
6
- a.navbar-brand href="/" tppabs="https://wrappixel.com/demos/admin-templates/material-pro/material/index.html"
2
+ header.topbar data-navbarbg="skin1"
3
+ nav.navbar.top-navbar.navbar-expand-md.navbar-dark
4
+ .navbar-header data-logobg='skin1'
5
+ a.nav-link.nav-toggler.d-block.d-md-none.text-muted.waves-effect.waves-dark href="javascript:void(0)"
6
+ i.mdi.mdi-menu
7
+
8
+ a.navbar-brand href="/admin" tppabs="https://wrappixel.com/demos/admin-templates/material-pro/material/index.html"
7
9
  /! Logo icon
8
10
  b
9
11
  /! You can put here icon as well // <i class="wi wi-sunset"></i> //
@@ -11,14 +13,16 @@ header.topbar
11
13
  / img.dark-logo alt="homepage" src="../assets/images/logo-icon.png" /
12
14
  /! Light Logo icon
13
15
  / img.light-logo alt="homepage" src="../assets/images/logo-light-icon.png" /
14
- / = image_tag nil, width: 45, class: 'light-logo'
15
- span.inline-block.ml10 Logo
16
- .navbar-collapse
17
- ul.navbar-nav.mr-auto.mt-md-0
18
- li.nav-item
19
- a.nav-link.nav-toggler.hidden-md-up.text-muted.waves-effect.waves-dark href="javascript:void(0)"
20
- i.mdi.mdi-menu
16
+ = image_tag asset_pack_path('media/images/logo-light-icon.png'), class: 'light-logo'
17
+ span.logo-text
18
+ .inline-block.ml10 Logo
19
+
20
+ a.topbartoggler.d-block.d-md-none.waves-effect.waves-light href="javascript:void(0)" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"
21
+ i.ti-more
22
+
23
+ .navbar-collapse.collapse data-navbarbg="skin1"
24
+ ul.navbar-nav.me-auto
21
25
  li.nav-item
22
- a.nav-link.sidebartoggler.hidden-sm-down.text-muted.waves-effect.waves-dark href="javascript:void(0)"
26
+ a.nav-link.sidebartoggler.d-none.d-md-block.waves-effect.waves-dark href="javascript:void(0)"
23
27
  i.ti-menu
24
28
 
@@ -1,15 +1,14 @@
1
1
  /! ==============================================================
2
2
  /! Left Sidebar - style you can find in sidebar.scss
3
3
  /! ==============================================================
4
- aside.left-sidebar
5
- /! Sidebar scroll
6
- .scroll-sidebar
7
- /! Sidebar navigation
4
+ aside.left-sidebar data-sidebarbg='skin6'
5
+ .scroll-sidebar.ps-container.ps-theme-default.ps-active-y
6
+ /! Sidebar scroll
8
7
  nav.sidebar-nav
9
- ul#sidebarnav
8
+ ul#sidebarnav.in
10
9
  / li.nav-small-cap Project title
11
- li
12
- = link_to '#' do
10
+ li class=sidebar_item_classes('users')
11
+ = link_to '#', class: sidebar_item_link_classes('users') do
13
12
  i.fa.fa-user
14
13
  span.hide-menu Menu
15
14
 
@@ -19,5 +18,7 @@ aside.left-sidebar
19
18
  / i.ti-settings
20
19
  / a.link data-toggle="tooltip" href="" title="Email"
21
20
  / i.mdi.mdi-gmail
22
- a.link data-toggle="tooltip" href=destroy_admin_session_path title="Logout" data-method="DELETE"
21
+ = link_to destroy_admin_session_path, title: 'Logout', method: :delete, data: { toggle: 'tooltip' } do
23
22
  i.mdi.mdi-power
23
+ / a.link data-toggle="tooltip" href=destroy_admin_session_path title="Logout" data-method="DELETE"
24
+
@@ -10,7 +10,11 @@ environment.loaders.append('expose-loader', {
10
10
  test: require.resolve('jquery'),
11
11
  use: [{
12
12
  loader: 'expose-loader',
13
- options: '$'
13
+ options: {
14
+ exposes: {
15
+ globalName: '$',
16
+ }
17
+ }
14
18
  }]
15
19
  })
16
20
 
@@ -71,6 +71,9 @@ class CrudGenerator < Rails::Generators::NamedBase
71
71
 
72
72
  create_file "#{Rails.root}/app/views/#{layout_name}/#{resource}/_form.html.slim" do
73
73
  <<~html
74
+ = content_for :error_messages do
75
+ = render 'admin/shared/error_messages', target: @#{name}
76
+
74
77
  .col-lg-12
75
78
  .card
76
79
  .card-body
@@ -108,9 +111,6 @@ class CrudGenerator < Rails::Generators::NamedBase
108
111
  # frozen_string_literal: true
109
112
 
110
113
  class #{layout_name.camelize}::#{resource.camelize}Controller < #{layout_name.camelize}::BaseController
111
-
112
- include DatatableDecorator
113
-
114
114
  def index
115
115
  respond_to do |format|
116
116
  format.html
@@ -144,7 +144,7 @@ class CrudGenerator < Rails::Generators::NamedBase
144
144
 
145
145
  @total_rows = #{resource}.count
146
146
 
147
- @rows = users.page(dt[:page]).per(dt[:per_page])
147
+ @rows = #{resource}.page(dt[:page]).per(dt[:per_page])
148
148
  @rows = @rows.order(search_obj[:order])
149
149
  end
150
150
  end
@@ -6,10 +6,14 @@ class MaterialAdminGenerator < Rails::Generators::NamedBase
6
6
  GEM_NAME = 'rails_material_admin'
7
7
  GEM_PATH = Gem.loaded_specs[GEM_NAME].full_gem_path
8
8
  JS_PKGS =
9
- 'datatables.net-bs4 datatables.net-responsive-bs4'\
9
+ 'datatables.net-bs5 datatables.net-responsive-bs5'\
10
10
  ' expose-loader file-loader url-loader resolve-url-loader'\
11
- ' rails-ujs stimulus turbolinks'\
12
- ' jquery popper.js select2'
11
+ ' @rails/ujs @rails/activestorage'\
12
+ ' stimulus turbolinks'\
13
+ ' jquery popper.js select2 @popperjs/core webpack-cli'
14
+ ESLINT_JS_PKGS =
15
+ 'eslint prettier eslint-plugin-prettier eslint-config-prettier'\
16
+ ' stylelint stylelint-config-prettier stylelint-config-recommended stylelint-scss'
13
17
 
14
18
  # TODO: Warning! Add reset project.
15
19
 
@@ -38,9 +42,9 @@ class MaterialAdminGenerator < Rails::Generators::NamedBase
38
42
 
39
43
  FileUtils.copy_entry("#{GEM_PATH}/vendor/#{GEM_NAME}", "#{webpacker_dir}/vendor/#{GEM_NAME}/")
40
44
 
41
- p 'Import package.json...'
45
+ # p 'Import package.json...'
42
46
 
43
- FileUtils.cp "#{GEM_PATH}/package.json", "#{Rails.root}/package.json"
47
+ # FileUtils.cp "#{GEM_PATH}/package.json", "#{Rails.root}/package.json"
44
48
 
45
49
  p 'Import js source files...'
46
50
 
@@ -59,6 +63,11 @@ class MaterialAdminGenerator < Rails::Generators::NamedBase
59
63
  )
60
64
  end
61
65
 
66
+ def yarn_install
67
+ system("yarn add #{JS_PKGS}")
68
+ system("yarn add #{ESLINT_JS_PKGS} --dev")
69
+ end
70
+
62
71
  def create_helper
63
72
  p "Create #{layout_name} layout helper..."
64
73
 
@@ -129,10 +138,6 @@ class MaterialAdminGenerator < Rails::Generators::NamedBase
129
138
  FileUtils.copy_entry("#{GEM_PATH}/app/views/shared", dest)
130
139
  end
131
140
 
132
- def yarn_install
133
- system("yarn add #{JS_PKGS}")
134
- end
135
-
136
141
  def create_base_controller
137
142
  p "Create base controller'"
138
143
 
@@ -143,6 +148,8 @@ class MaterialAdminGenerator < Rails::Generators::NamedBase
143
148
  class #{layout_name.camelize}::BaseController < ActionController::Base
144
149
  layout '#{layout_name}'
145
150
 
151
+ include DatatableDecorator
152
+
146
153
  before_action :authenticate_#{layout_name}!
147
154
  end
148
155
  dashboard_controller
@@ -1,3 +1,3 @@
1
1
  module MaterialAdmin
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.9'
3
3
  end
@@ -1,23 +1,29 @@
1
1
  import 'core-js/stable'
2
2
  import 'regenerator-runtime/runtime'
3
3
 
4
- import { Application } from "stimulus";
5
- import { definitionsFromContext } from "stimulus/webpack-helpers"
4
+ import { Application } from 'stimulus'
5
+ import { definitionsFromContext } from 'stimulus/webpack-helpers'
6
6
 
7
- import Rails from 'rails-ujs';
8
- import Turbolinks from 'turbolinks';
7
+ import Rails from '@rails/ujs'
8
+ import Turbolinks from 'turbolinks'
9
9
 
10
- import 'datatables.net';
11
- import 'datatables.net-responsive-bs4';
12
- import 'select2';
10
+ import 'datatables.net'
11
+ import 'datatables.net-responsive-bs5'
12
+ import 'select2'
13
13
 
14
- import '../vendor/material_admin/material_admin';
14
+ import '../vendor/rails_material_admin/material_admin'
15
15
 
16
- import '../src/javascripts/lib/utils_datatables.js';
17
- import '../src/javascripts/admin/common/scaffold.js';
16
+ import bootstrap from '../vendor/rails_material_admin/js/bootstrap.min'
17
+ window.bootstrap = bootstrap
18
18
 
19
- Rails.start();
20
- Turbolinks.start();
19
+ import Swal from '../vendor/rails_material_admin/js/sweetalert2.min'
20
+ window.Swal = Swal
21
+
22
+ import '../src/javascripts/lib/utils_datatables.js'
23
+ import '../src/javascripts/admin/common/scaffold.js'
24
+
25
+ Rails.start()
26
+ Turbolinks.start()
21
27
 
22
28
  const application = Application.start()
23
29
  // const context = require.context("../src/javascripts/admin/controllers/", true, /\.js$/)
@@ -1,5 +1,7 @@
1
- import '../../../node_modules/datatables.net-bs4/css/dataTables.bootstrap4.css';
2
- import '../vendor/material_admin/material_admin.scss';
1
+ import 'select2/dist/css/select2.css'
2
+
3
+ import '../../../node_modules/datatables.net-bs5/css/dataTables.bootstrap5.css';
4
+ import '../vendor/rails_material_admin/material_admin.scss';
3
5
  import '../src/stylesheets/shared/atom.scss';
4
- import '../src/stylesheets/shared/override.scss';
6
+ import '../src/stylesheets/admin/shared/override.scss';
5
7
  import '../src/stylesheets/admin/shared/common.scss';
@@ -13,11 +13,11 @@ ul#sidebarnav > li > a {
13
13
  }
14
14
 
15
15
  /* form */
16
- [type=checkbox] + label {
16
+ [type='checkbox'] + label {
17
17
  margin-right: 15px;
18
18
  }
19
19
 
20
- [type=radio] + label {
20
+ [type='radio'] + label {
21
21
  margin-right: 15px;
22
22
  }
23
23
 
@@ -32,3 +32,40 @@ form .form-body .form-group > label {
32
32
  margin-bottom: 14px;
33
33
  border-bottom: none;
34
34
  }
35
+
36
+
37
+ input[type='text'].form-control,
38
+ textarea.form-control {
39
+ &::-webkit-input-placeholder {
40
+ font-weight: 300;
41
+ }
42
+ &::-moz-placeholder {
43
+ font-weight: 300;
44
+ }
45
+ &:-ms-input-placeholder {
46
+ font-weight: 300;
47
+ }
48
+ &:-moz-placeholder {
49
+ font-weight: 300;
50
+ }
51
+ }
52
+
53
+ #error_explanation ul {
54
+ margin-bottom: 0;
55
+ }
56
+
57
+ .input-group-text {
58
+ .form-check {
59
+ margin-bottom: 0;
60
+ }
61
+
62
+ .form-check-label {
63
+ margin-bottom: 0;
64
+ }
65
+ }
66
+
67
+
68
+ /* table */
69
+ table.editable-table td.select-cell {
70
+ padding: 0;
71
+ }
@@ -0,0 +1,62 @@
1
+ html, body {
2
+ height: 100%;
3
+ }
4
+
5
+ .topbar .top-navbar .navbar-header .navbar-brand {
6
+ color: white;
7
+ }
8
+
9
+ // NOTE: If you want reduce the checkbox border
10
+ // [type='checkbox'] + label:before,
11
+ // [type='checkbox']:not(.filled-in) + label:after {
12
+ // border: 1px solid #ced4da;
13
+ // }
14
+
15
+ /* select2 */
16
+ .select2-container {
17
+ width: 100% !important;
18
+ }
19
+
20
+ .select2-container--default .select2-selection--multiple {
21
+ border: 1px solid #ced4da;
22
+ }
23
+
24
+ .select2-container--default.select2-container--focus .select2-selection--multiple,
25
+ .select2-container--default.select2-container--open.select2-container--below .select2-selection--single,
26
+ .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
27
+ border: 1px solid #ced4da;
28
+ color: #495057;
29
+ background-color: #fff;
30
+ border-color: #80bdff;
31
+ outline: 0;
32
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
33
+ }
34
+
35
+ .select2-container--default .select2-selection--multiple .select2-selection__rendered {
36
+ padding-left: 12px;
37
+ }
38
+
39
+ .select2-search__field {
40
+ color: #999;
41
+ font-weight: 300;
42
+ }
43
+
44
+ // Fix placeholder missing when select is initially hidden.
45
+ .select2-search--inline {
46
+ /*this will make the container disappear, making the child the one who sets the width of the element*/
47
+ display: contents;
48
+ }
49
+ .select2-search__field:placeholder-shown {
50
+ /*makes the placeholder to be 100% of the width while there are no options selected*/
51
+ width: 100% !important;
52
+ }
53
+
54
+
55
+ /* DataTable */
56
+ div.dataTables_wrapper div.dataTables_paginate {
57
+ margin-top: 8px;
58
+ }
59
+
60
+ .page-wrapper {
61
+ transition: none;
62
+ }
@@ -1,7 +1,3 @@
1
1
  html, body {
2
2
  height: 100%;
3
3
  }
4
-
5
- .topbar .top-navbar .navbar-header .navbar-brand {
6
- color: white;
7
- }