trestle 0.8.13 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.babelrc +5 -0
- data/.browserslistrc +1 -0
- data/.gitattributes +1 -0
- data/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/Gemfile +2 -0
- data/app/assets/bundle/trestle/bundle.css +0 -0
- data/app/assets/bundle/trestle/bundle.js +0 -0
- data/app/assets/bundle/trestle/fa-brands-400.eot +0 -0
- data/app/assets/bundle/trestle/fa-brands-400.svg +0 -0
- data/app/assets/bundle/trestle/fa-brands-400.ttf +0 -0
- data/app/assets/bundle/trestle/fa-brands-400.woff +0 -0
- data/app/assets/bundle/trestle/fa-brands-400.woff2 +0 -0
- data/app/assets/bundle/trestle/fa-regular-400.eot +0 -0
- data/app/assets/bundle/trestle/fa-regular-400.svg +0 -0
- data/app/assets/bundle/trestle/fa-regular-400.ttf +0 -0
- data/app/assets/bundle/trestle/fa-regular-400.woff +0 -0
- data/app/assets/bundle/trestle/fa-regular-400.woff2 +0 -0
- data/app/assets/bundle/trestle/fa-solid-900.eot +0 -0
- data/app/assets/bundle/trestle/fa-solid-900.svg +0 -0
- data/app/assets/bundle/trestle/fa-solid-900.ttf +0 -0
- data/app/assets/bundle/trestle/fa-solid-900.woff +0 -0
- data/app/assets/bundle/trestle/fa-solid-900.woff2 +0 -0
- data/app/assets/bundle/trestle/flatpickr/ar.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/at.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/az.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/be.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/bg.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/bn.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/bs.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/cat.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/cs.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/cy.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/da.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/de.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/default.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/eo.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/es.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/et.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/fa.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/fi.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/fo.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/fr.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/ga.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/gr.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/he.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/hi.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/hr.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/hu.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/id.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/is.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/it.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/ja.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/ka.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/km.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/ko.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/kz.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/lt.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/lv.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/mk.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/mn.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/ms.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/my.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/nl.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/no.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/pa.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/pl.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/pt.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/ro.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/ru.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/si.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/sk.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/sl.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/sq.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/sr-cyr.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/sr.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/sv.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/th.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/tr.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/uk.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/vn.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/zh-tw.js +0 -0
- data/app/assets/bundle/trestle/flatpickr/zh.js +0 -0
- data/app/assets/javascripts/trestle/admin.js +1 -23
- data/app/assets/stylesheets/trestle/_custom.css +6 -0
- data/app/assets/stylesheets/trestle/admin.css +2 -0
- data/app/assets/stylesheets/trestle/custom.css +1 -0
- data/app/assets/stylesheets/trestle/icons/_font-awesome.css.erb +40 -0
- data/app/helpers/trestle/card_helper.rb +23 -0
- data/app/helpers/trestle/form_helper.rb +14 -1
- data/app/helpers/trestle/grid_helper.rb +11 -2
- data/app/helpers/trestle/navigation_helper.rb +4 -3
- data/app/helpers/trestle/status_helper.rb +2 -2
- data/app/views/kaminari/trestle/_first_page.html.erb +6 -2
- data/app/views/kaminari/trestle/_gap.html.erb +2 -2
- data/app/views/kaminari/trestle/_last_page.html.erb +6 -2
- data/app/views/kaminari/trestle/_page.html.erb +2 -2
- data/app/views/layouts/trestle/admin.html.erb +3 -1
- data/app/views/trestle/application/_dialog.html.erb +1 -1
- data/app/views/trestle/application/_tabs.html.erb +5 -5
- data/app/views/trestle/flash/_flash.html.erb +2 -2
- data/app/views/trestle/resource/_scopes.html.erb +1 -1
- data/app/views/trestle/resource/index.html.erb +1 -1
- data/app/views/trestle/shared/_sidebar.html.erb +5 -8
- data/app/views/trestle/shared/_title.html.erb +5 -5
- data/config/locales/en.yml +4 -0
- data/frontend/css/_support.scss +1 -0
- data/frontend/css/components/_alerts.scss +113 -0
- data/{app/assets/stylesheets/trestle → frontend/css}/components/_avatar.scss +4 -1
- data/frontend/css/components/_background.scss +48 -0
- data/frontend/css/components/_breadcrumbs.scss +40 -0
- data/{app/assets/stylesheets/trestle → frontend/css}/components/_buttons.scss +57 -39
- data/frontend/css/components/_color-vars.scss +10 -0
- data/frontend/css/components/_custom-forms.scss +35 -0
- data/{app/assets/stylesheets/trestle → frontend/css}/components/_datepicker.scss +42 -19
- data/{app/assets/stylesheets/trestle → frontend/css}/components/_dropdown.scss +4 -20
- data/frontend/css/components/_fields.scss +32 -0
- data/frontend/css/components/_magnific-popup.scss +36 -0
- data/frontend/css/components/_media-grid.scss +103 -0
- data/frontend/css/components/_modal.scss +113 -0
- data/{app/assets/stylesheets/trestle → frontend/css}/components/_pagination.scss +6 -6
- data/frontend/css/components/_popover.scss +4 -0
- data/frontend/css/components/_scopes.scss +55 -0
- data/frontend/css/components/_select.scss +66 -0
- data/{app/assets/stylesheets/trestle → frontend/css}/components/_sort.scss +4 -5
- data/{app/assets/stylesheets/trestle → frontend/css}/components/_table.scss +18 -7
- data/frontend/css/components/_tabs.scss +74 -0
- data/frontend/css/components/_tags.scss +25 -0
- data/{app/assets/stylesheets/trestle → frontend/css}/components/_timestamp.scss +1 -1
- data/frontend/css/components/_toolbars.scss +54 -0
- data/frontend/css/components/_turbolinks.scss +3 -0
- data/frontend/css/core/_dependencies.scss +5 -0
- data/{app/assets/stylesheets/trestle → frontend/css}/core/_mixins.scss +16 -14
- data/frontend/css/core/_typography.scss +55 -0
- data/frontend/css/icons/_fontawesome.scss +18 -0
- data/frontend/css/index.scss +51 -0
- data/{app/assets/stylesheets/trestle/core/_layout.scss → frontend/css/layout/_base.scss} +3 -32
- data/{app/assets/stylesheets/trestle/components → frontend/css/layout}/_content.scss +44 -18
- data/frontend/css/layout/_footer.scss +19 -0
- data/frontend/css/layout/_header.scss +27 -0
- data/{app/assets/stylesheets/trestle/components → frontend/css/layout}/_navigation.scss +21 -21
- data/frontend/css/layout/_sidebar.scss +258 -0
- data/frontend/css/support/_sprockets.scss +14 -0
- data/frontend/css/support/_webpack.scss +14 -0
- data/frontend/css/variables/_bootstrap.scss +174 -0
- data/frontend/css/variables/_trestle.scss +108 -0
- data/frontend/images/bright-squares.png +0 -0
- data/frontend/index.js +5 -0
- data/frontend/js/components/confirmation.js +30 -0
- data/frontend/js/components/datepicker.js +69 -0
- data/frontend/js/components/dialog.js +138 -0
- data/frontend/js/components/file.js +7 -0
- data/frontend/js/components/form.js +91 -0
- data/frontend/js/components/gallery.js +33 -0
- data/frontend/js/components/select.js +18 -0
- data/frontend/js/components/sidebar.js +78 -0
- data/frontend/js/components/table.js +30 -0
- data/frontend/js/components/tabs.js +59 -0
- data/frontend/js/components/tooltips.js +25 -0
- data/frontend/js/core/contexts.js +17 -0
- data/frontend/js/core/cookie.js +28 -0
- data/{app/assets/javascripts/trestle/core/_events.js → frontend/js/core/events.js} +27 -20
- data/{app/assets/javascripts/trestle/core/_l10n.js → frontend/js/core/i18n.js} +12 -11
- data/frontend/js/core/turbolinks.js +3 -0
- data/{app/assets/javascripts/trestle/core/_visit.js → frontend/js/core/visit.js} +10 -4
- data/frontend/js/index.js +61 -0
- data/{app/assets/stylesheets/trestle/_variables.scss → frontend/theme/trestle/_theme.scss} +0 -0
- data/{app/assets/stylesheets/trestle/_custom.scss → frontend/theme/trestle/_variables.scss} +1 -1
- data/frontend/theme/trestle/theme.scss +29 -0
- data/frontend/theme/trestle/theme/_defaults.scss +152 -0
- data/frontend/theme/trestle/theme/_functions.scss +44 -0
- data/frontend/theme/trestle/theme/_variables.scss +15 -0
- data/frontend/theme/trestle/theme/bootstrap/_alert.scss +19 -0
- data/frontend/theme/trestle/theme/bootstrap/_badge.scss +25 -0
- data/frontend/theme/trestle/theme/bootstrap/_buttons.scss +90 -0
- data/frontend/theme/trestle/theme/bootstrap/_color-vars.scss +11 -0
- data/frontend/theme/trestle/theme/bootstrap/_custom-forms.scss +93 -0
- data/frontend/theme/trestle/theme/bootstrap/_dropdown.scss +6 -0
- data/frontend/theme/trestle/theme/bootstrap/_forms.scss +6 -0
- data/frontend/theme/trestle/theme/bootstrap/_links.scss +7 -0
- data/frontend/theme/trestle/theme/bootstrap/_list-group.scss +31 -0
- data/frontend/theme/trestle/theme/bootstrap/_nav.scss +6 -0
- data/frontend/theme/trestle/theme/bootstrap/_pagination.scss +18 -0
- data/frontend/theme/trestle/theme/bootstrap/_progress.scss +3 -0
- data/frontend/theme/trestle/theme/bootstrap/_tables.scss +41 -0
- data/frontend/theme/trestle/theme/bootstrap/_utilities.scss +3 -0
- data/frontend/theme/trestle/theme/bootstrap/utilities/_background.scss +17 -0
- data/frontend/theme/trestle/theme/bootstrap/utilities/_borders.scss +5 -0
- data/frontend/theme/trestle/theme/bootstrap/utilities/_text.scss +18 -0
- data/frontend/theme/trestle/theme/trestle/_background.scss +61 -0
- data/frontend/theme/trestle/theme/trestle/_datepicker.scss +58 -0
- data/frontend/theme/trestle/theme/trestle/_headers.scss +4 -0
- data/frontend/theme/trestle/theme/trestle/_navbar.scss +15 -0
- data/frontend/theme/trestle/theme/trestle/_navigation.scss +5 -0
- data/frontend/theme/trestle/theme/trestle/_select2.scss +22 -0
- data/frontend/theme/trestle/theme/trestle/_tags.scss +12 -0
- data/frontend/theme/trestle/theme/trestle/_turbolinks.scss +3 -0
- data/lib/generators/trestle/install/install_generator.rb +3 -3
- data/lib/generators/trestle/install/templates/_theme.scss +13 -0
- data/lib/trestle.rb +0 -3
- data/lib/trestle/admin.rb +5 -1
- data/lib/trestle/configuration.rb +3 -0
- data/lib/trestle/engine.rb +12 -4
- data/lib/trestle/form/field.rb +26 -6
- data/lib/trestle/form/fields.rb +3 -0
- data/lib/trestle/form/fields/check_box.rb +12 -11
- data/lib/trestle/form/fields/check_box_helpers.rb +46 -0
- data/lib/trestle/form/fields/collection_check_boxes.rb +15 -5
- data/lib/trestle/form/fields/collection_radio_buttons.rb +15 -5
- data/lib/trestle/form/fields/date_picker.rb +1 -1
- data/lib/trestle/form/fields/file_field.rb +20 -1
- data/lib/trestle/form/fields/form_control.rb +4 -4
- data/lib/trestle/form/fields/form_group.rb +10 -7
- data/lib/trestle/form/fields/radio_button.rb +14 -7
- data/lib/trestle/form/fields/radio_button_helpers.rb +38 -0
- data/lib/trestle/form/fields/range_field.rb +10 -0
- data/lib/trestle/form/renderer.rb +1 -1
- data/lib/trestle/model_name.rb +4 -1
- data/lib/trestle/navigation/item.rb +1 -1
- data/lib/trestle/resource.rb +4 -0
- data/lib/trestle/toolbar/menu.rb +5 -2
- data/lib/trestle/version.rb +1 -1
- data/package.json +48 -0
- data/trestle.gemspec +5 -18
- data/webpack.config.js +103 -0
- data/yarn.lock +5962 -0
- metadata +188 -276
- data/.bowerrc +0 -6
- data/app/assets/images/trestle/textures/billie-holiday.png +0 -0
- data/app/assets/images/trestle/textures/bright-squares.png +0 -0
- data/app/assets/javascripts/trestle/components/_confirmation.js +0 -40
- data/app/assets/javascripts/trestle/components/_datepicker.js +0 -41
- data/app/assets/javascripts/trestle/components/_dialog.js +0 -136
- data/app/assets/javascripts/trestle/components/_errors.js +0 -11
- data/app/assets/javascripts/trestle/components/_form.js +0 -75
- data/app/assets/javascripts/trestle/components/_gallery.js +0 -27
- data/app/assets/javascripts/trestle/components/_select.js +0 -11
- data/app/assets/javascripts/trestle/components/_sidebar.js +0 -77
- data/app/assets/javascripts/trestle/components/_table.js +0 -21
- data/app/assets/javascripts/trestle/components/_tabs.js +0 -25
- data/app/assets/javascripts/trestle/components/_tooltips.js +0 -19
- data/app/assets/javascripts/trestle/core/_contexts.js +0 -13
- data/app/assets/javascripts/trestle/core/_cookies.js +0 -24
- data/app/assets/stylesheets/trestle/_support.scss +0 -9
- data/app/assets/stylesheets/trestle/admin.scss +0 -20
- data/app/assets/stylesheets/trestle/components/_alerts.scss +0 -87
- data/app/assets/stylesheets/trestle/components/_breadcrumbs.scss +0 -26
- data/app/assets/stylesheets/trestle/components/_confirmation.scss +0 -20
- data/app/assets/stylesheets/trestle/components/_fields.scss +0 -50
- data/app/assets/stylesheets/trestle/components/_flex-grid.scss +0 -16
- data/app/assets/stylesheets/trestle/components/_gallery.scss +0 -19
- data/app/assets/stylesheets/trestle/components/_header.scss +0 -16
- data/app/assets/stylesheets/trestle/components/_input-group.scss +0 -36
- data/app/assets/stylesheets/trestle/components/_media-grid.scss +0 -83
- data/app/assets/stylesheets/trestle/components/_modal.scss +0 -108
- data/app/assets/stylesheets/trestle/components/_popover.scss +0 -8
- data/app/assets/stylesheets/trestle/components/_scopes.scss +0 -50
- data/app/assets/stylesheets/trestle/components/_sidebar.scss +0 -236
- data/app/assets/stylesheets/trestle/components/_tabs.scss +0 -85
- data/app/assets/stylesheets/trestle/components/_tags.scss +0 -64
- data/app/assets/stylesheets/trestle/components/_toolbars.scss +0 -55
- data/app/assets/stylesheets/trestle/components/_turbolinks.scss +0 -3
- data/app/assets/stylesheets/trestle/components/_wells.scss +0 -47
- data/app/assets/stylesheets/trestle/core/_defaults.scss +0 -99
- data/app/assets/stylesheets/trestle/core/_typography.scss +0 -73
- data/app/helpers/trestle/panel_helper.rb +0 -24
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/bower.json +0 -15
- data/gemfiles/rails-4.2.gemfile +0 -16
- data/gemfiles/rails-5.0.gemfile +0 -16
- data/gemfiles/rails-5.1.gemfile +0 -16
- data/gemfiles/rails-5.2.gemfile +0 -16
- data/gemfiles/rails-edge.gemfile +0 -19
- data/lib/generators/trestle/install/templates/_variables.scss +0 -10
- data/vendor/assets/bower_components/trestle/bootstrap-confirmation2/bootstrap-confirmation.js +0 -455
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -288
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap-sprockets.js +0 -12
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap.js +0 -2377
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/affix.js +0 -162
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/alert.js +0 -94
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/button.js +0 -125
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/carousel.js +0 -237
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/collapse.js +0 -212
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/dropdown.js +0 -165
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/modal.js +0 -339
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/popover.js +0 -108
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/scrollspy.js +0 -172
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/tab.js +0 -155
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js +0 -520
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/javascripts/bootstrap/transition.js +0 -59
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/_bootstrap-compass.scss +0 -9
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/_bootstrap-mincer.scss +0 -19
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/_bootstrap-sprockets.scss +0 -9
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/_bootstrap.scss +0 -56
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_alerts.scss +0 -73
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_badges.scss +0 -68
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_breadcrumbs.scss +0 -28
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_button-groups.scss +0 -244
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_buttons.scss +0 -168
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_carousel.scss +0 -270
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_close.scss +0 -36
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_code.scss +0 -69
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_component-animations.scss +0 -37
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_dropdowns.scss +0 -216
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_forms.scss +0 -617
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_glyphicons.scss +0 -307
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_grid.scss +0 -84
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_input-groups.scss +0 -171
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_jumbotron.scss +0 -54
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_labels.scss +0 -66
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_list-group.scss +0 -130
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_media.scss +0 -66
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_mixins.scss +0 -40
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_modals.scss +0 -150
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_navbar.scss +0 -662
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_navs.scss +0 -242
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_normalize.scss +0 -424
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_pager.scss +0 -54
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_pagination.scss +0 -89
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_panels.scss +0 -271
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_popovers.scss +0 -131
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_print.scss +0 -101
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_progress-bars.scss +0 -87
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_responsive-embed.scss +0 -35
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_responsive-utilities.scss +0 -179
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_scaffolding.scss +0 -161
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_tables.scss +0 -234
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_theme.scss +0 -291
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_thumbnails.scss +0 -38
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_tooltip.scss +0 -101
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_type.scss +0 -298
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_utilities.scss +0 -55
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_variables.scss +0 -874
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/_wells.scss +0 -29
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_alerts.scss +0 -14
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -12
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_border-radius.scss +0 -18
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_buttons.scss +0 -65
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_center-block.scss +0 -7
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_clearfix.scss +0 -22
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_forms.scss +0 -88
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_gradients.scss +0 -58
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -81
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_grid.scss +0 -122
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_hide-text.scss +0 -21
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_image.scss +0 -33
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_labels.scss +0 -12
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_list-group.scss +0 -32
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +0 -9
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_opacity.scss +0 -8
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_pagination.scss +0 -24
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_panels.scss +0 -24
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_progress-bar.scss +0 -10
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +0 -8
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_reset-text.scss +0 -18
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_resize.scss +0 -6
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +0 -21
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_size.scss +0 -10
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +0 -9
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -28
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -12
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +0 -8
- data/vendor/assets/bower_components/trestle/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +0 -222
- data/vendor/assets/bower_components/trestle/flatpickr/dist/flatpickr.css +0 -848
- data/vendor/assets/bower_components/trestle/flatpickr/dist/flatpickr.js +0 -2351
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/ar.js +0 -14
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/bg.js +0 -14
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/bn.js +0 -14
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/cat.js +0 -34
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/cs.js +0 -20
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/cy.js +0 -36
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/da.js +0 -18
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/de.js +0 -21
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/eo.js +0 -26
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/es.js +0 -20
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/et.js +0 -26
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/fa.js +0 -18
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/fi.js +0 -20
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/fr.js +0 -27
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/gr.js +0 -29
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/he.js +0 -14
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/hi.js +0 -14
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/hr.js +0 -17
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/hu.js +0 -25
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/id.js +0 -20
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/index.js +0 -97
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/it.js +0 -25
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/ja.js +0 -14
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/ko.js +0 -18
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/lt.js +0 -25
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/lv.js +0 -16
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/mk.js +0 -19
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/ms.js +0 -20
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/my.js +0 -20
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/nl.js +0 -27
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/no.js +0 -24
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/pa.js +0 -14
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/pl.js +0 -18
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/pt.js +0 -17
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/ro.js +0 -21
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/ru.js +0 -16
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/si.js +0 -15
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/sk.js +0 -21
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/sl.js +0 -21
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/sq.js +0 -14
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/sr.js +0 -19
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/sv.js +0 -21
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/th.js +0 -24
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/tr.js +0 -16
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/uk.js +0 -16
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/vn.js +0 -17
- data/vendor/assets/bower_components/trestle/flatpickr/dist/l10n/zh.js +0 -20
- data/vendor/assets/bower_components/trestle/font-awesome/fonts/FontAwesome.otf +0 -0
- data/vendor/assets/bower_components/trestle/font-awesome/fonts/fontawesome-webfont.eot +0 -0
- data/vendor/assets/bower_components/trestle/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
- data/vendor/assets/bower_components/trestle/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/bower_components/trestle/font-awesome/fonts/fontawesome-webfont.woff +0 -0
- data/vendor/assets/bower_components/trestle/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_animated.scss +0 -34
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_bordered-pulled.scss +0 -25
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_core.scss +0 -12
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_fixed-width.scss +0 -6
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_icons.scss +0 -789
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_larger.scss +0 -13
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_list.scss +0 -19
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_mixins.scss +0 -60
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_path.scss +0 -15
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_rotated-flipped.scss +0 -20
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_screen-reader.scss +0 -5
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_stacked.scss +0 -20
- data/vendor/assets/bower_components/trestle/font-awesome/scss/_variables.scss +0 -800
- data/vendor/assets/bower_components/trestle/font-awesome/scss/font-awesome.scss +0 -18
- data/vendor/assets/bower_components/trestle/ionicons/fonts/ionicons.eot +0 -0
- data/vendor/assets/bower_components/trestle/ionicons/fonts/ionicons.svg +0 -2230
- data/vendor/assets/bower_components/trestle/ionicons/fonts/ionicons.ttf +0 -0
- data/vendor/assets/bower_components/trestle/ionicons/fonts/ionicons.woff +0 -0
- data/vendor/assets/bower_components/trestle/ionicons/scss/_ionicons-font.scss +0 -27
- data/vendor/assets/bower_components/trestle/ionicons/scss/_ionicons-icons.scss +0 -1473
- data/vendor/assets/bower_components/trestle/ionicons/scss/_ionicons-variables.scss +0 -741
- data/vendor/assets/bower_components/trestle/ionicons/scss/ionicons.scss +0 -15
- data/vendor/assets/bower_components/trestle/jquery-ujs/src/rails.js +0 -555
- data/vendor/assets/bower_components/trestle/jquery/dist/jquery.js +0 -10253
- data/vendor/assets/bower_components/trestle/magnific-popup/dist/jquery.magnific-popup.js +0 -1860
- data/vendor/assets/bower_components/trestle/magnific-popup/dist/magnific-popup.css +0 -351
- data/vendor/assets/bower_components/trestle/select2-bootstrap-theme/src/select2-bootstrap.scss +0 -826
- data/vendor/assets/bower_components/trestle/select2/dist/css/select2.css +0 -484
- data/vendor/assets/bower_components/trestle/select2/dist/js/select2.full.js +0 -6457
- data/vendor/assets/javascripts/trestle/bootstrap-confirmation.js +0 -1
- data/vendor/assets/javascripts/trestle/bootstrap.js +0 -1
- data/vendor/assets/javascripts/trestle/flatpickr.js.erb +0 -7
- data/vendor/assets/javascripts/trestle/jquery.js +0 -1
- data/vendor/assets/javascripts/trestle/jquery_ujs.js +0 -1
- data/vendor/assets/javascripts/trestle/magnific-popup.js +0 -1
- data/vendor/assets/javascripts/trestle/select2.js +0 -1
- data/vendor/assets/stylesheets/trestle/bootstrap.scss +0 -4
- data/vendor/assets/stylesheets/trestle/flatpickr.scss +0 -1
- data/vendor/assets/stylesheets/trestle/font-awesome.scss +0 -26
- data/vendor/assets/stylesheets/trestle/ionicons.scss +0 -32
- data/vendor/assets/stylesheets/trestle/magnific-popup.scss +0 -13
- data/vendor/assets/stylesheets/trestle/select2.scss +0 -2
@@ -0,0 +1,108 @@
|
|
1
|
+
// Default theme
|
2
|
+
|
3
|
+
$theme-bg: theme-color("primary");
|
4
|
+
$error-bg: theme-color("danger");
|
5
|
+
|
6
|
+
|
7
|
+
// Header
|
8
|
+
|
9
|
+
$header-bg: white;
|
10
|
+
$header-color: #333333;
|
11
|
+
|
12
|
+
$header-height: 50px;
|
13
|
+
|
14
|
+
|
15
|
+
// Footer
|
16
|
+
|
17
|
+
$footer-bg: #f9f9f9;
|
18
|
+
$footer-color: #888888;
|
19
|
+
|
20
|
+
|
21
|
+
// Sidebar
|
22
|
+
|
23
|
+
$sidebar-bg: #222222;
|
24
|
+
$sidebar-hover-bg: #1a1a1a;
|
25
|
+
$sidebar-active-bg: #393939;
|
26
|
+
$sidebar-active-border: 4px;
|
27
|
+
|
28
|
+
$sidebar-link-color: #919191;
|
29
|
+
$sidebar-group-color: #595959;
|
30
|
+
|
31
|
+
$sidebar-toggle-bg: rgba(black, 0.25);
|
32
|
+
$sidebar-toggle-color: rgba(white, 0.5);
|
33
|
+
|
34
|
+
$sidebar-mobile-toggle-bg: transparent;
|
35
|
+
$sidebar-mobile-toggle-color: white;
|
36
|
+
$sidebar-mobile-toggle-border: 1px solid rgba($sidebar-mobile-toggle-color, 0.15);
|
37
|
+
|
38
|
+
$sidebar-mobile-toggle-active-bg: rgba($sidebar-mobile-toggle-color, 0.1);
|
39
|
+
$sidebar-mobile-toggle-active-border: $sidebar-mobile-toggle-border;
|
40
|
+
|
41
|
+
$sidebar-mobile-toggle-icon-bg: str-replace(url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$sidebar-mobile-toggle-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"), "#", "%23");
|
42
|
+
|
43
|
+
$sidebar-width: 250px;
|
44
|
+
$sidebar-width-collapsed: 54px;
|
45
|
+
|
46
|
+
$sidebar-transition-duration: 250ms;
|
47
|
+
|
48
|
+
$sidebar-font-size-scale: 0.925;
|
49
|
+
|
50
|
+
|
51
|
+
// Content
|
52
|
+
|
53
|
+
$content-header-bg: #fafafa;
|
54
|
+
$content-sidebar-bg: #f9f9f9;
|
55
|
+
|
56
|
+
$content-sidebar-width: 285px;
|
57
|
+
|
58
|
+
$main-content-header-bg: $content-sidebar-bg;
|
59
|
+
$main-content-header-padding: 12px 20px;
|
60
|
+
$main-content-header-border: 1px solid rgba(black, 0.1);
|
61
|
+
|
62
|
+
$main-content-footer-bg: $content-sidebar-bg;
|
63
|
+
$main-content-footer-padding: 12px 20px;
|
64
|
+
$main-content-footer-border: 1px solid rgba(black, 0.1);
|
65
|
+
|
66
|
+
|
67
|
+
// Tags
|
68
|
+
|
69
|
+
$tag-color: white;
|
70
|
+
$tag-bg: lighten(theme-color("primary"), 10%);
|
71
|
+
$tag-border: theme-color("primary");
|
72
|
+
|
73
|
+
$tag-hover-color: white;
|
74
|
+
$tag-hover-bg: theme-color("primary");
|
75
|
+
$tag-hover-border: darken(theme-color("primary"), 10%);
|
76
|
+
|
77
|
+
|
78
|
+
// Scopes
|
79
|
+
|
80
|
+
$scope-padding: 0.25rem 0.5rem;
|
81
|
+
|
82
|
+
$scope-color: rgba(black, 0.3);
|
83
|
+
$scope-bg: rgba(black, 0.025);
|
84
|
+
|
85
|
+
$scope-label-color: rgba(black, 0.4);
|
86
|
+
|
87
|
+
$scope-hover-color: rgba(black, 0.3);
|
88
|
+
$scope-hover-bg: rgba(black, 0.05);
|
89
|
+
|
90
|
+
$scope-active-color: white;
|
91
|
+
$scope-active-bg: rgba(black, 0.25);
|
92
|
+
|
93
|
+
|
94
|
+
// Alerts
|
95
|
+
|
96
|
+
$alert-success-bg: #7ac47a;
|
97
|
+
$alert-success-color: white;
|
98
|
+
$alert-success-border: #66bb66;
|
99
|
+
|
100
|
+
$alert-danger-bg: #de7471;
|
101
|
+
$alert-danger-color: white;
|
102
|
+
$alert-danger-border: #d85956;
|
103
|
+
|
104
|
+
|
105
|
+
// Modals
|
106
|
+
|
107
|
+
$modal-header-bg: $theme-bg;
|
108
|
+
$modal-footer-bg: $content-sidebar-bg;
|
Binary file
|
data/frontend/index.js
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
3
|
+
import { init } from '../core/events'
|
4
|
+
import { i18n } from '../core/i18n'
|
5
|
+
|
6
|
+
init(function (root) {
|
7
|
+
const DEFAULTS = {
|
8
|
+
singleton: true,
|
9
|
+
popout: true,
|
10
|
+
title: i18n['trestle.confirmation.title'] || 'Are you sure?',
|
11
|
+
btnOkClass: 'btn btn-sm btn-primary',
|
12
|
+
btnOkLabel: i18n['trestle.confirmation.ok'] || 'OK',
|
13
|
+
btnCancelClass: 'btn btn-sm btn-light',
|
14
|
+
btnCancelLabel: i18n['trestle.confirmation.cancel'] || 'Cancel',
|
15
|
+
copyAttributes: 'href target data-remote data-method data-url data-params data-type'
|
16
|
+
}
|
17
|
+
|
18
|
+
const CONFIRM = { ...DEFAULTS,
|
19
|
+
rootSelector: '[data-toggle="confirm"]'
|
20
|
+
}
|
21
|
+
|
22
|
+
const DELETE = { ...DEFAULTS,
|
23
|
+
rootSelector: '[data-toggle="confirm-delete"]',
|
24
|
+
btnOkClass: 'btn btn-sm btn-danger',
|
25
|
+
btnOkLabel: i18n['trestle.confirmation.delete'] || 'Delete'
|
26
|
+
}
|
27
|
+
|
28
|
+
$(root).find('[data-toggle="confirm"]').confirmation(CONFIRM)
|
29
|
+
$(root).find('[data-toggle="confirm-delete"]').confirmation(DELETE)
|
30
|
+
})
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
3
|
+
import { init } from '../core/events'
|
4
|
+
import { i18n } from '../core/i18n'
|
5
|
+
|
6
|
+
function setupDatePicker (selectedDates, dateStr, instance) {
|
7
|
+
addClearButton(instance)
|
8
|
+
enableDirectEntry(instance)
|
9
|
+
}
|
10
|
+
|
11
|
+
function addClearButton (instance) {
|
12
|
+
const $input = $(instance.input)
|
13
|
+
|
14
|
+
if ($input.data('allow-clear')) {
|
15
|
+
$('<a href="#">')
|
16
|
+
.on('click', function (e) {
|
17
|
+
e.preventDefault()
|
18
|
+
|
19
|
+
const isDisabled = $input.is(':disabled') || $input.hasClass('disabled')
|
20
|
+
|
21
|
+
if (!isDisabled) {
|
22
|
+
instance.clear()
|
23
|
+
}
|
24
|
+
})
|
25
|
+
.addClass('clear-datepicker')
|
26
|
+
.insertBefore(instance.altInput)
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
function enableDirectEntry (instance) {
|
31
|
+
const $altInput = $(instance.altInput)
|
32
|
+
|
33
|
+
$altInput.on('input', function (e) {
|
34
|
+
const value = $altInput.val()
|
35
|
+
|
36
|
+
const parsedDate = instance.parseDate(value, instance.config.altFormat)
|
37
|
+
const formattedDate = instance.formatDate(parsedDate, instance.config.altFormat)
|
38
|
+
|
39
|
+
if (value === formattedDate) {
|
40
|
+
instance.setDate(value, true, instance.config.altFormat)
|
41
|
+
}
|
42
|
+
})
|
43
|
+
}
|
44
|
+
|
45
|
+
init(function (root) {
|
46
|
+
$(root).find('input[type="date"][data-picker="true"]').flatpickr({
|
47
|
+
allowInput: true,
|
48
|
+
altInput: true,
|
49
|
+
altFormat: i18n['admin.datepicker.formats.date'] || 'm/d/Y',
|
50
|
+
onReady: setupDatePicker
|
51
|
+
})
|
52
|
+
|
53
|
+
$(root).find('input[type="datetime"][data-picker="true"], input[type="datetime-local"][data-picker="true"]').flatpickr({
|
54
|
+
enableTime: true,
|
55
|
+
allowInput: true,
|
56
|
+
altInput: true,
|
57
|
+
altFormat: i18n['admin.datepicker.formats.datetime'] || 'm/d/Y h:i K',
|
58
|
+
onReady: setupDatePicker
|
59
|
+
})
|
60
|
+
|
61
|
+
$(root).find('input[type="time"][data-picker="true"]').flatpickr({
|
62
|
+
enableTime: true,
|
63
|
+
noCalendar: true,
|
64
|
+
allowInput: true,
|
65
|
+
altInput: true,
|
66
|
+
altFormat: i18n['admin.datepicker.formats.time'] || 'h:i K',
|
67
|
+
onReady: setupDatePicker
|
68
|
+
})
|
69
|
+
})
|
@@ -0,0 +1,138 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
3
|
+
import { i18n } from '../core/i18n'
|
4
|
+
import { triggerInit } from '../core/events'
|
5
|
+
|
6
|
+
const TEMPLATE = `
|
7
|
+
<div class="modal fade" tabindex="-1" role="dialog">
|
8
|
+
<div class="modal-dialog" role="document">
|
9
|
+
<div class="modal-content" data-context>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
`
|
14
|
+
|
15
|
+
function createElement () {
|
16
|
+
const $el = $(TEMPLATE).appendTo('body')
|
17
|
+
|
18
|
+
$el.modal({ show: false })
|
19
|
+
|
20
|
+
// Remove dialog elements once hidden
|
21
|
+
$el.on('hidden.bs.modal', function () {
|
22
|
+
$el.remove()
|
23
|
+
})
|
24
|
+
|
25
|
+
// Restore the next visible modal to the foreground
|
26
|
+
$el.on('hide.bs.modal', function () {
|
27
|
+
$el.prevAll('.modal.in').last().removeClass('background')
|
28
|
+
})
|
29
|
+
|
30
|
+
// Set X-Trestle-Dialog header on AJAX requests initiated from the dialog
|
31
|
+
$el.on('ajax:beforeSend', '[data-remote]', function (e) {
|
32
|
+
const xhr = e.detail[0]
|
33
|
+
xhr.setRequestHeader('X-Trestle-Dialog', true)
|
34
|
+
})
|
35
|
+
|
36
|
+
return $el
|
37
|
+
}
|
38
|
+
|
39
|
+
export function showError (title, errorText) {
|
40
|
+
const dialog = new Dialog({ modalClass: 'modal-lg' })
|
41
|
+
|
42
|
+
dialog.showError(title, $('<pre>').addClass('exception').text(errorText))
|
43
|
+
dialog.show()
|
44
|
+
|
45
|
+
return dialog
|
46
|
+
}
|
47
|
+
|
48
|
+
export default class Dialog {
|
49
|
+
constructor (options = {}) {
|
50
|
+
this.options = options
|
51
|
+
this.$el = createElement()
|
52
|
+
|
53
|
+
if (options.modalClass) {
|
54
|
+
this.$el.find('.modal-dialog').addClass(options.modalClass)
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
load (url, callback) {
|
59
|
+
this.show()
|
60
|
+
this.setLoading(true)
|
61
|
+
|
62
|
+
$.ajax({
|
63
|
+
url: url,
|
64
|
+
dataType: 'html',
|
65
|
+
headers: {
|
66
|
+
'X-Trestle-Dialog': true
|
67
|
+
},
|
68
|
+
complete: () => {
|
69
|
+
this.setLoading(false)
|
70
|
+
},
|
71
|
+
success: (content) => {
|
72
|
+
this.setContent(content)
|
73
|
+
|
74
|
+
if (callback) {
|
75
|
+
callback.apply(this)
|
76
|
+
}
|
77
|
+
},
|
78
|
+
error: (xhr, status, error) => {
|
79
|
+
const errorMessage = i18n['trestle.dialog.error'] || 'The request could not be completed.'
|
80
|
+
|
81
|
+
const title = error || errorMessage
|
82
|
+
const content = $('<p>').text(errorMessage)
|
83
|
+
|
84
|
+
this.showError(title, content)
|
85
|
+
}
|
86
|
+
})
|
87
|
+
}
|
88
|
+
|
89
|
+
setLoading (loading) {
|
90
|
+
this.$el.toggleClass('loading', loading)
|
91
|
+
}
|
92
|
+
|
93
|
+
setContent (content) {
|
94
|
+
this.$el.find('.modal-content').html(content)
|
95
|
+
triggerInit(this.$el)
|
96
|
+
}
|
97
|
+
|
98
|
+
showError (title, content) {
|
99
|
+
this.$el.addClass('error')
|
100
|
+
|
101
|
+
this.setContent(`
|
102
|
+
<div class="modal-header">
|
103
|
+
<h4 class="modal-title">${title}</h4>
|
104
|
+
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
105
|
+
</div>
|
106
|
+
|
107
|
+
<div class="modal-body">
|
108
|
+
${content.prop('outerHTML')}
|
109
|
+
</div>
|
110
|
+
|
111
|
+
<div class="modal-footer">
|
112
|
+
<button type="button" class="btn btn-light" data-dismiss="modal" aria-label="OK">${i18n['admin.buttons.ok'] || 'OK'}</button>
|
113
|
+
</div>`)
|
114
|
+
}
|
115
|
+
|
116
|
+
show () {
|
117
|
+
this.$el.modal('show')
|
118
|
+
|
119
|
+
// Background any existing visible modals
|
120
|
+
this.$el.prevAll('.modal.in').addClass('background')
|
121
|
+
}
|
122
|
+
|
123
|
+
hide () {
|
124
|
+
this.$el.modal('hide')
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
$(document).on('click', '[data-behavior="dialog"]', function (e) {
|
129
|
+
e.preventDefault()
|
130
|
+
|
131
|
+
const url = $(this).data('url') || $(this).attr('href')
|
132
|
+
|
133
|
+
const dialog = new Dialog({
|
134
|
+
modalClass: $(this).data('dialog-class')
|
135
|
+
})
|
136
|
+
|
137
|
+
dialog.load(url)
|
138
|
+
})
|
@@ -0,0 +1,91 @@
|
|
1
|
+
/* global history */
|
2
|
+
|
3
|
+
import $ from 'jquery'
|
4
|
+
|
5
|
+
import { init, triggerInit } from '../core/events'
|
6
|
+
import { refreshMainContext } from '../core/contexts'
|
7
|
+
|
8
|
+
import { focusActiveTab } from './tabs'
|
9
|
+
import { showError } from './dialog'
|
10
|
+
|
11
|
+
const FORM_SELECTOR = 'form[data-behavior="trestle-form"]'
|
12
|
+
|
13
|
+
// Prevent enter key from submitting the form
|
14
|
+
$(document).on('keypress', `${FORM_SELECTOR} :input:not(textarea):not([type=submit])`, function (e) {
|
15
|
+
if (e.keyCode === 13) {
|
16
|
+
e.preventDefault()
|
17
|
+
}
|
18
|
+
})
|
19
|
+
|
20
|
+
init(function (root) {
|
21
|
+
const $form = $(root).find(FORM_SELECTOR)
|
22
|
+
|
23
|
+
$form
|
24
|
+
.on('ajax:send', function (e) {
|
25
|
+
// Disable submit buttons
|
26
|
+
$(this).find(':submit').prop('disabled', true)
|
27
|
+
|
28
|
+
// Set loading status on button that triggered submission
|
29
|
+
const button = $(this).data('trestle:submitButton')
|
30
|
+
if (button) { $(button).addClass('loading') }
|
31
|
+
})
|
32
|
+
.on('ajax:complete', function (e) {
|
33
|
+
const xhr = e.detail[0]
|
34
|
+
|
35
|
+
// Reset submit buttons
|
36
|
+
$(this).find(':submit').prop('disabled', false).removeClass('loading')
|
37
|
+
$(this).removeData('trestle:submitButton')
|
38
|
+
|
39
|
+
const contentType = (xhr.getResponseHeader('Content-Type') || '').split(';')[0]
|
40
|
+
|
41
|
+
if (contentType === 'text/html') {
|
42
|
+
if (/<html/i.test(xhr.responseText)) {
|
43
|
+
// Response is a full HTML page, likely an error page. Render within an iframe.
|
44
|
+
const $context = $(this).closest('[data-context]')
|
45
|
+
const iframe = $('<iframe>').addClass('error-iframe').get(0)
|
46
|
+
$context.html(iframe)
|
47
|
+
|
48
|
+
iframe.contentWindow.document.documentElement.innerHTML = xhr.responseText
|
49
|
+
} else {
|
50
|
+
// Find the parent context and replace content
|
51
|
+
const $context = $(this).closest('[data-context]')
|
52
|
+
$context.html(xhr.responseText)
|
53
|
+
|
54
|
+
// Initialize replaced elements within the context
|
55
|
+
triggerInit($context)
|
56
|
+
|
57
|
+
// Focus the correct tab
|
58
|
+
focusActiveTab()
|
59
|
+
}
|
60
|
+
} else if (contentType === 'text/plain') {
|
61
|
+
// Assume an error response
|
62
|
+
const title = `${xhr.status} (${xhr.statusText})`
|
63
|
+
showError(title, xhr.responseText)
|
64
|
+
}
|
65
|
+
})
|
66
|
+
.on('ajax:success', function (e) {
|
67
|
+
const xhr = e.detail[2]
|
68
|
+
|
69
|
+
const $context = $(this).closest('[data-context]')
|
70
|
+
let location = xhr.getResponseHeader('X-Trestle-Location')
|
71
|
+
|
72
|
+
if (location) {
|
73
|
+
// Retain current active tab
|
74
|
+
location = location + document.location.hash
|
75
|
+
|
76
|
+
// Update the URL in the browser and context
|
77
|
+
history.replaceState({}, '', location)
|
78
|
+
$context.data('context', location)
|
79
|
+
}
|
80
|
+
|
81
|
+
// Refresh the main context
|
82
|
+
if (!$context.hasClass('app-main')) {
|
83
|
+
refreshMainContext()
|
84
|
+
}
|
85
|
+
})
|
86
|
+
|
87
|
+
$form.find(':submit').click(function () {
|
88
|
+
// Save this as the button that triggered the form
|
89
|
+
$(this).closest('form').data('trestle:submitButton', this)
|
90
|
+
})
|
91
|
+
})
|