trestle 0.8.9 → 0.8.10
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 +4 -4
- data/app/assets/javascripts/trestle/components/_confirmation.js +31 -14
- data/app/assets/javascripts/trestle/components/_form.js +19 -15
- data/app/assets/javascripts/trestle/components/_tabs.js +1 -1
- data/app/assets/stylesheets/trestle/components/_breadcrumbs.scss +12 -0
- data/app/assets/stylesheets/trestle/components/_buttons.scss +102 -1
- data/app/assets/stylesheets/trestle/components/_content.scss +41 -21
- data/app/assets/stylesheets/trestle/components/_input-group.scss +8 -1
- data/app/assets/stylesheets/trestle/components/_modal.scss +3 -0
- data/app/assets/stylesheets/trestle/components/_pagination.scss +0 -3
- data/app/assets/stylesheets/trestle/components/_scopes.scss +11 -2
- data/app/assets/stylesheets/trestle/components/_table.scss +34 -10
- data/app/assets/stylesheets/trestle/components/_timestamp.scss +4 -1
- data/app/assets/stylesheets/trestle/components/_toolbars.scss +55 -0
- data/app/assets/stylesheets/trestle/core/_defaults.scss +13 -2
- data/app/assets/stylesheets/trestle/core/_mixins.scss +11 -0
- data/app/helpers/trestle/form_helper.rb +1 -5
- data/app/helpers/trestle/hook_helper.rb +10 -6
- data/app/helpers/trestle/timestamp_helper.rb +49 -7
- data/app/helpers/trestle/toolbars_helper.rb +34 -0
- data/app/views/layouts/trestle/admin.html.erb +2 -2
- data/app/views/trestle/application/_dialog.html.erb +8 -10
- data/app/views/trestle/application/_header.html.erb +22 -20
- data/app/views/trestle/resource/edit.html.erb +4 -6
- data/app/views/trestle/resource/index.html.erb +15 -6
- data/app/views/trestle/resource/new.html.erb +2 -2
- data/app/views/trestle/resource/show.html.erb +4 -6
- data/app/views/trestle/shared/_sidebar.html.erb +3 -1
- data/app/views/trestle/shared/_title.html.erb +14 -0
- data/config/locales/en.yml +2 -0
- data/config/locales/es-MX.yml +94 -0
- data/config/locales/es.yml +94 -0
- data/config/locales/lv.rb +18 -0
- data/config/locales/lv.yml +94 -0
- data/lib/generators/trestle/install/templates/trestle.rb.erb +12 -2
- data/lib/trestle.rb +2 -0
- data/lib/trestle/configuration.rb +9 -3
- data/lib/trestle/engine.rb +5 -3
- data/lib/trestle/form/fields/form_control.rb +14 -4
- data/lib/trestle/form/renderer.rb +2 -2
- data/lib/trestle/hook.rb +27 -0
- data/lib/trestle/table/actions_column.rb +31 -26
- data/lib/trestle/table/column.rb +1 -0
- data/lib/trestle/toolbar.rb +43 -0
- data/lib/trestle/toolbar/builder.rb +52 -0
- data/lib/trestle/toolbar/context.rb +39 -0
- data/lib/trestle/version.rb +1 -1
- metadata +13 -3
- data/app/helpers/trestle/title_helper.rb +0 -26
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 499a6802f0891311253e5a4999b494715ccdfa8d070bae35827268044fc5a7f8
         | 
| 4 | 
            +
              data.tar.gz: 5ac6a1b33a8b33ae636a7c948adc42d73212f6fba90b7ea71953a69b961f4723
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: aef9565030e42e5fe42dd0a0773c65b1eb35a41c743678a1799ae57df99e438f7d61c3cb74b905171ff844134176f9a1c95a21ff917e6e25e072b494d1d776bb
         | 
| 7 | 
            +
              data.tar.gz: 4971e16e2e693081c8ed4d20a53bf4ce980261e66c0370c208356eadd41877f411290a8c81f5e0e5a796e5cfa70ff17a2cb5ab7b5b74848e658806d99cb89646
         | 
| @@ -1,3 +1,29 @@ | |
| 1 | 
            +
            Trestle.confirmation = {};
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Trestle.confirmation.DEFAULTS = {
         | 
| 4 | 
            +
              rootSelector:   'body',
         | 
| 5 | 
            +
              singleton:      true,
         | 
| 6 | 
            +
              popout:         true,
         | 
| 7 | 
            +
              title:          Trestle.i18n['admin.confirmation.title'] || 'Are you sure?',
         | 
| 8 | 
            +
              btnOkIcon:      '',
         | 
| 9 | 
            +
              btnOkClass:     'btn-primary',
         | 
| 10 | 
            +
              btnOkLabel:     Trestle.i18n['admin.confirmation.ok'] || 'OK',
         | 
| 11 | 
            +
              btnCancelIcon:  '',
         | 
| 12 | 
            +
              btnCancelClass: 'btn-default',
         | 
| 13 | 
            +
              btnCancelLabel: Trestle.i18n['admin.confirmation.cancel'] || 'Cancel',
         | 
| 14 | 
            +
              copyAttributes: ''
         | 
| 15 | 
            +
            };
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            Trestle.confirmation.CONFIRM = $.extend({}, Trestle.confirmation.DEFAULTS, {
         | 
| 18 | 
            +
              selector: '[data-toggle="confirm"]'
         | 
| 19 | 
            +
            });
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            Trestle.confirmation.DELETE = $.extend({}, Trestle.confirmation.DEFAULTS, {
         | 
| 22 | 
            +
              selector:   '[data-toggle="confirm-delete"]',
         | 
| 23 | 
            +
              btnOkClass: 'btn-danger',
         | 
| 24 | 
            +
              btnOkLabel: Trestle.i18n['admin.confirmation.delete'] || 'Delete'
         | 
| 25 | 
            +
            });
         | 
| 26 | 
            +
             | 
| 1 27 | 
             
            Trestle.ready(function() {
         | 
| 2 28 | 
             
              // This must be bound to an element beneath document so
         | 
| 3 29 | 
             
              // that it is fired before any jquery_ujs events.
         | 
| @@ -6,18 +32,9 @@ Trestle.ready(function() { | |
| 6 32 | 
             
              // Ensure it is only initialized once
         | 
| 7 33 | 
             
              if (root.data('bs.confirmation')) return;
         | 
| 8 34 |  | 
| 9 | 
            -
               | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
                title:          Trestle.i18n['admin.confirmation.title'] || 'Are you sure?',
         | 
| 15 | 
            -
                btnOkIcon:      '',
         | 
| 16 | 
            -
                btnOkClass:     'btn-danger',
         | 
| 17 | 
            -
                btnOkLabel:     Trestle.i18n['admin.confirmation.delete'] || 'Delete',
         | 
| 18 | 
            -
                btnCancelIcon:  '',
         | 
| 19 | 
            -
                btnCancelClass: 'btn-default',
         | 
| 20 | 
            -
                btnCancelLabel: Trestle.i18n['admin.confirmation.cancel'] || 'Cancel',
         | 
| 21 | 
            -
                copyAttributes: ''
         | 
| 22 | 
            -
              });
         | 
| 35 | 
            +
              // Delete confirmation
         | 
| 36 | 
            +
              new $.fn.confirmation.Constructor(root, Trestle.confirmation.DELETE);
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              // General confirmation
         | 
| 39 | 
            +
              new $.fn.confirmation.Constructor(root, Trestle.confirmation.CONFIRM);
         | 
| 23 40 | 
             
            });
         | 
| @@ -9,13 +9,24 @@ Trestle.init(function(e, root) { | |
| 9 9 | 
             
              var form = $(root).find('form[data-behavior="trestle-form"]');
         | 
| 10 10 |  | 
| 11 11 | 
             
              form
         | 
| 12 | 
            +
                .on('ajax:send', function(e, xhr) {
         | 
| 13 | 
            +
                  // Disable submit buttons
         | 
| 14 | 
            +
                  $(this).find(':submit').prop('disabled', true);
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  // Set loading status on button that triggered submission
         | 
| 17 | 
            +
                  var button = $(this).data('trestle:submitButton');
         | 
| 18 | 
            +
                  if (button) { $(button).addClass('loading'); }
         | 
| 19 | 
            +
                })
         | 
| 12 20 | 
             
                .on('ajax:complete', function(e, xhr, status) {
         | 
| 13 | 
            -
                   | 
| 21 | 
            +
                  // Reset submit buttons
         | 
| 22 | 
            +
                  $(this).find(':submit').prop('disabled', false).removeClass('loading');
         | 
| 23 | 
            +
                  $(this).removeData('trestle:submitButton');
         | 
| 14 24 |  | 
| 15 | 
            -
                   | 
| 25 | 
            +
                  var contentType = xhr.getResponseHeader("Content-Type");
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                  if (contentType && contentType.split(";")[0] == "text/html") {
         | 
| 16 28 | 
             
                    if (/<html/i.test(xhr.responseText)) {
         | 
| 17 29 | 
             
                      // Response is a full HTML page, likely an error page. Render within an iframe.
         | 
| 18 | 
            -
             | 
| 19 30 | 
             
                      var context = $(this).closest('[data-context]');
         | 
| 20 31 | 
             
                      var iframe = $("<iframe>").addClass('error-iframe').get(0);
         | 
| 21 32 | 
             
                      context.html(iframe);
         | 
| @@ -36,9 +47,6 @@ Trestle.init(function(e, root) { | |
| 36 47 | 
             
                    // Assume an error response
         | 
| 37 48 | 
             
                    var title = xhr.status + " (" + xhr.statusText + ")";
         | 
| 38 49 | 
             
                    Trestle.Dialog.showError(title, xhr.responseText);
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                    // Reset submit button
         | 
| 41 | 
            -
                    form.find(':submit').prop('disabled', false).removeClass('loading');
         | 
| 42 50 | 
             
                  }
         | 
| 43 51 | 
             
                })
         | 
| 44 52 | 
             
                .on('ajax:success', function(e, data, status, xhr) {
         | 
| @@ -46,6 +54,9 @@ Trestle.init(function(e, root) { | |
| 46 54 | 
             
                  var location = xhr.getResponseHeader("X-Trestle-Location");
         | 
| 47 55 |  | 
| 48 56 | 
             
                  if (location) {
         | 
| 57 | 
            +
                    // Retain current active tab
         | 
| 58 | 
            +
                    location = location + document.location.hash;
         | 
| 59 | 
            +
             | 
| 49 60 | 
             
                    // Update the URL in the browser and context
         | 
| 50 61 | 
             
                    history.replaceState({}, "", location);
         | 
| 51 62 | 
             
                    context.data('context', location);
         | 
| @@ -57,15 +68,8 @@ Trestle.init(function(e, root) { | |
| 57 68 | 
             
                  }
         | 
| 58 69 | 
             
                });
         | 
| 59 70 |  | 
| 60 | 
            -
              // Loading indicator
         | 
| 61 71 | 
             
              form.find(':submit').click(function() {
         | 
| 62 | 
            -
                 | 
| 63 | 
            -
             | 
| 64 | 
            -
                // Delay to ensure form is still submitted
         | 
| 65 | 
            -
                setTimeout(function() {
         | 
| 66 | 
            -
                  if (form[0].checkValidity()) {
         | 
| 67 | 
            -
                    button.prop('disabled', true).addClass('loading');
         | 
| 68 | 
            -
                  }
         | 
| 69 | 
            -
                }, 1);
         | 
| 72 | 
            +
                // Save this as the button that triggered the form
         | 
| 73 | 
            +
                $(this).closest('form').data('trestle:submitButton', this);
         | 
| 70 74 | 
             
              });
         | 
| 71 75 | 
             
            });
         | 
| @@ -3,6 +3,14 @@ | |
| 3 3 | 
             
              background-color: transparent;
         | 
| 4 4 | 
             
              font-size: 12px;
         | 
| 5 5 |  | 
| 6 | 
            +
              > li + li:before {
         | 
| 7 | 
            +
                content: "/";
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                @include mobile {
         | 
| 10 | 
            +
                  padding: 0 2px;
         | 
| 11 | 
            +
                }
         | 
| 12 | 
            +
              }
         | 
| 13 | 
            +
             | 
| 6 14 | 
             
              .active, .active a {
         | 
| 7 15 | 
             
                font-weight: normal;
         | 
| 8 16 | 
             
                color: $breadcrumb-active-color;
         | 
| @@ -11,4 +19,8 @@ | |
| 11 19 | 
             
                  text-decoration: none;
         | 
| 12 20 | 
             
                }
         | 
| 13 21 | 
             
              }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              @include mobile {
         | 
| 24 | 
            +
                font-size: 11px;
         | 
| 25 | 
            +
              }
         | 
| 14 26 | 
             
            }
         | 
| @@ -1,5 +1,72 @@ | |
| 1 | 
            +
            @mixin button-child-visible($prefix, $selector) {
         | 
| 2 | 
            +
              &.#{$prefix}-visible-xs,
         | 
| 3 | 
            +
              &.#{$prefix}-visible-sm,
         | 
| 4 | 
            +
              &.#{$prefix}-visible-md,
         | 
| 5 | 
            +
              &.#{$prefix}-visible-lg {
         | 
| 6 | 
            +
                #{$selector} { display: none; }
         | 
| 7 | 
            +
              }
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              &.#{$prefix}-visible-xs {
         | 
| 10 | 
            +
                @media (max-width: $screen-xs-max) {
         | 
| 11 | 
            +
                  #{$selector} { display: inline-block; }
         | 
| 12 | 
            +
                  @content;
         | 
| 13 | 
            +
                }
         | 
| 14 | 
            +
              }
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              &.#{$prefix}-visible-sm {
         | 
| 17 | 
            +
                @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
         | 
| 18 | 
            +
                  #{$selector} { display: inline-block; }
         | 
| 19 | 
            +
                  @content;
         | 
| 20 | 
            +
                }
         | 
| 21 | 
            +
              }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              &.#{$prefix}-visible-md {
         | 
| 24 | 
            +
                @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
         | 
| 25 | 
            +
                  #{$selector} { display: inline-block; }
         | 
| 26 | 
            +
                  @content;
         | 
| 27 | 
            +
                }
         | 
| 28 | 
            +
              }
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              &.#{$prefix}-visible-lg {
         | 
| 31 | 
            +
                @media (min-width: $screen-lg-min) {
         | 
| 32 | 
            +
                  #{$selector} { display: inline-block; }
         | 
| 33 | 
            +
                  @content;
         | 
| 34 | 
            +
                }
         | 
| 35 | 
            +
              }
         | 
| 36 | 
            +
            }
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            @mixin button-child-hidden($prefix, $selector) {
         | 
| 39 | 
            +
              &.#{$prefix}-hidden-xs {
         | 
| 40 | 
            +
                @media (max-width: $screen-xs-max) {
         | 
| 41 | 
            +
                  #{$selector} { display: none; }
         | 
| 42 | 
            +
                  @content;
         | 
| 43 | 
            +
                }
         | 
| 44 | 
            +
              }
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              &.#{$prefix}-hidden-sm {
         | 
| 47 | 
            +
                @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
         | 
| 48 | 
            +
                  #{$selector} { display: none; }
         | 
| 49 | 
            +
                  @content;
         | 
| 50 | 
            +
                }
         | 
| 51 | 
            +
              }
         | 
| 52 | 
            +
             | 
| 53 | 
            +
              &.#{$prefix}-hidden-md {
         | 
| 54 | 
            +
                @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
         | 
| 55 | 
            +
                  #{$selector} { display: none; }
         | 
| 56 | 
            +
                  @content;
         | 
| 57 | 
            +
                }
         | 
| 58 | 
            +
              }
         | 
| 59 | 
            +
             | 
| 60 | 
            +
              &.#{$prefix}-hidden-lg {
         | 
| 61 | 
            +
                @media (min-width: $screen-lg-min) {
         | 
| 62 | 
            +
                  #{$selector} { display: none; }
         | 
| 63 | 
            +
                  @content;
         | 
| 64 | 
            +
                }
         | 
| 65 | 
            +
              }
         | 
| 66 | 
            +
            }
         | 
| 67 | 
            +
             | 
| 1 68 | 
             
            .btn {
         | 
| 2 | 
            -
              border:  | 
| 69 | 
            +
              border-width: 0;
         | 
| 3 70 | 
             
              box-shadow: none;
         | 
| 4 71 |  | 
| 5 72 | 
             
              &.loading {
         | 
| @@ -10,6 +77,34 @@ | |
| 10 77 | 
             
                  margin-right: 10px;
         | 
| 11 78 | 
             
                }
         | 
| 12 79 | 
             
              }
         | 
| 80 | 
            +
             | 
| 81 | 
            +
              > i + .btn-label {
         | 
| 82 | 
            +
                margin-left: 5px;
         | 
| 83 | 
            +
              }
         | 
| 84 | 
            +
             | 
| 85 | 
            +
              &.icon-visible-xs,
         | 
| 86 | 
            +
              &.icon-visible-sm,
         | 
| 87 | 
            +
              &.icon-visible-md,
         | 
| 88 | 
            +
              &.icon-visible-lg {
         | 
| 89 | 
            +
                > i + .btn-label {
         | 
| 90 | 
            +
                  margin-left: 0;
         | 
| 91 | 
            +
                }
         | 
| 92 | 
            +
              }
         | 
| 93 | 
            +
             | 
| 94 | 
            +
              @include button-child-visible('icon', '> i') {
         | 
| 95 | 
            +
                > i + .btn-label {
         | 
| 96 | 
            +
                  margin-left: 5px;
         | 
| 97 | 
            +
                }
         | 
| 98 | 
            +
              };
         | 
| 99 | 
            +
             | 
| 100 | 
            +
              @include button-child-hidden('icon', '> i') {
         | 
| 101 | 
            +
                > i + .btn-label {
         | 
| 102 | 
            +
                  margin-left: 0;
         | 
| 103 | 
            +
                }
         | 
| 104 | 
            +
              };
         | 
| 105 | 
            +
             | 
| 106 | 
            +
              @include button-child-visible('label', '> .btn-label');
         | 
| 107 | 
            +
              @include button-child-hidden('label', '> .btn-label');
         | 
| 13 108 | 
             
            }
         | 
| 14 109 |  | 
| 15 110 | 
             
            .btn-delete {
         | 
| @@ -20,3 +115,9 @@ | |
| 20 115 | 
             
                background: $btn-danger-bg;
         | 
| 21 116 | 
             
              }
         | 
| 22 117 | 
             
            }
         | 
| 118 | 
            +
             | 
| 119 | 
            +
            .btn-new-resource {
         | 
| 120 | 
            +
              .btn-label {
         | 
| 121 | 
            +
                @include sr-only;
         | 
| 122 | 
            +
              }
         | 
| 123 | 
            +
            }
         | 
| @@ -1,38 +1,32 @@ | |
| 1 1 | 
             
            .content-header {
         | 
| 2 | 
            -
               | 
| 2 | 
            +
              display: flex;
         | 
| 3 | 
            +
              justify-content: space-between;
         | 
| 4 | 
            +
             | 
| 3 5 | 
             
              background: $content-header-background;
         | 
| 4 | 
            -
              padding:  | 
| 6 | 
            +
              padding: 20px;
         | 
| 5 7 |  | 
| 6 8 | 
             
              h1 {
         | 
| 7 9 | 
             
                font-weight: 300;
         | 
| 10 | 
            +
                margin-top: 0;
         | 
| 8 11 | 
             
              }
         | 
| 9 12 |  | 
| 10 | 
            -
              . | 
| 11 | 
            -
                 | 
| 12 | 
            -
                clear: right;
         | 
| 13 | 
            +
              .breadcrumb {
         | 
| 14 | 
            +
                margin-bottom: 0;
         | 
| 13 15 | 
             
              }
         | 
| 14 16 |  | 
| 15 | 
            -
              . | 
| 16 | 
            -
                margin | 
| 17 | 
            +
              .content-header-title {
         | 
| 18 | 
            +
                margin: 5px 0;
         | 
| 19 | 
            +
              }
         | 
| 17 20 |  | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
                  font-size: 20px;
         | 
| 21 | 
            -
                  padding: 8px 16px;
         | 
| 22 | 
            -
                  border-radius: $border-radius-base;
         | 
| 23 | 
            -
                }
         | 
| 21 | 
            +
              .btn-toolbar {
         | 
| 22 | 
            +
                text-align: right;
         | 
| 24 23 | 
             
              }
         | 
| 25 24 |  | 
| 26 25 | 
             
              .secondary-toolbar {
         | 
| 27 26 | 
             
                margin-top: 8px;
         | 
| 28 27 |  | 
| 29 | 
            -
                 | 
| 30 | 
            -
                   | 
| 31 | 
            -
                  padding: 4px 10px;
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                  i {
         | 
| 34 | 
            -
                    font-size: 11px;
         | 
| 35 | 
            -
                  }
         | 
| 28 | 
            +
                @include mobile {
         | 
| 29 | 
            +
                  margin-top: 6px;
         | 
| 36 30 | 
             
                }
         | 
| 37 31 | 
             
              }
         | 
| 38 32 | 
             
            }
         | 
| @@ -59,6 +53,20 @@ | |
| 59 53 | 
             
              min-width: 0;
         | 
| 60 54 | 
             
            }
         | 
| 61 55 |  | 
| 56 | 
            +
            .main-content-header {
         | 
| 57 | 
            +
              margin: -20px -20px 20px !important;
         | 
| 58 | 
            +
              padding: $main-content-header-padding;
         | 
| 59 | 
            +
              background: $main-content-header-background;
         | 
| 60 | 
            +
              border-bottom: $main-content-header-border;
         | 
| 61 | 
            +
            }
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            .main-content-footer {
         | 
| 64 | 
            +
              margin: 20px -20px -20px !important;
         | 
| 65 | 
            +
              padding: $main-content-footer-padding;
         | 
| 66 | 
            +
              background: $main-content-footer-background;
         | 
| 67 | 
            +
              border-top: $main-content-footer-border;
         | 
| 68 | 
            +
            }
         | 
| 69 | 
            +
             | 
| 62 70 | 
             
            .main-content,
         | 
| 63 71 | 
             
            .main-content-sidebar,
         | 
| 64 72 | 
             
            .tab-pane {
         | 
| @@ -84,7 +92,7 @@ | |
| 84 92 |  | 
| 85 93 | 
             
            @include mobile {
         | 
| 86 94 | 
             
              .content-header {
         | 
| 87 | 
            -
                padding:  | 
| 95 | 
            +
                padding: 10px;
         | 
| 88 96 | 
             
              }
         | 
| 89 97 |  | 
| 90 98 | 
             
              .main-content-area {
         | 
| @@ -105,4 +113,16 @@ | |
| 105 113 | 
             
              .main-content-sidebar {
         | 
| 106 114 | 
             
                padding: 15px;
         | 
| 107 115 | 
             
              }
         | 
| 116 | 
            +
             | 
| 117 | 
            +
              .main-content-header {
         | 
| 118 | 
            +
                margin: -15px -15px 15px !important;
         | 
| 119 | 
            +
                padding-left: 15px;
         | 
| 120 | 
            +
                padding-right: 15px;
         | 
| 121 | 
            +
              }
         | 
| 122 | 
            +
             | 
| 123 | 
            +
              .main-content-footer {
         | 
| 124 | 
            +
                margin: 15px -15px -15px !important;
         | 
| 125 | 
            +
                padding-left: 15px;
         | 
| 126 | 
            +
                padding-right: 15px;
         | 
| 127 | 
            +
              }
         | 
| 108 128 | 
             
            }
         | 
| @@ -3,9 +3,17 @@ | |
| 3 3 | 
             
              @extend .nav-pills;
         | 
| 4 4 |  | 
| 5 5 | 
             
              display: flex;
         | 
| 6 | 
            +
              flex-wrap: wrap;
         | 
| 6 7 |  | 
| 7 | 
            -
               | 
| 8 | 
            -
             | 
| 8 | 
            +
              margin-top: -4px;
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              > li {
         | 
| 11 | 
            +
                margin-top: 4px;
         | 
| 12 | 
            +
                margin-right: 4px;
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                &:last-child {
         | 
| 15 | 
            +
                  margin-right: 0;
         | 
| 16 | 
            +
                }
         | 
| 9 17 | 
             
              }
         | 
| 10 18 |  | 
| 11 19 | 
             
              > li > a {
         | 
| @@ -14,6 +22,7 @@ | |
| 14 22 |  | 
| 15 23 | 
             
                font-size: 11px;
         | 
| 16 24 | 
             
                font-weight: normal;
         | 
| 25 | 
            +
                white-space: nowrap;
         | 
| 17 26 |  | 
| 18 27 | 
             
                border-radius: 15px;
         | 
| 19 28 | 
             
                padding: 2px 8px;
         |