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,33 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
3
|
+
import { init } from '../core/events'
|
4
|
+
|
5
|
+
init(function (root) {
|
6
|
+
$(root).find('[data-behavior~="zoom"]').magnificPopup({
|
7
|
+
type: 'image',
|
8
|
+
closeOnContentClick: false,
|
9
|
+
closeBtnInside: false,
|
10
|
+
mainClass: 'mfp-with-zoom mfp-img-mobile',
|
11
|
+
zoom: {
|
12
|
+
enabled: true,
|
13
|
+
duration: 150
|
14
|
+
}
|
15
|
+
})
|
16
|
+
|
17
|
+
$(root).find('[data-behavior~="gallery"]').each(function () {
|
18
|
+
$(this).magnificPopup({
|
19
|
+
delegate: 'a',
|
20
|
+
type: 'image',
|
21
|
+
closeOnContentClick: false,
|
22
|
+
closeBtnInside: false,
|
23
|
+
mainClass: 'mfp-with-zoom mfp-img-mobile',
|
24
|
+
gallery: {
|
25
|
+
enabled: true
|
26
|
+
},
|
27
|
+
zoom: {
|
28
|
+
enabled: true,
|
29
|
+
duration: 150
|
30
|
+
}
|
31
|
+
})
|
32
|
+
})
|
33
|
+
})
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
3
|
+
import { init } from '../core/events'
|
4
|
+
|
5
|
+
// Use Bootstrap theme
|
6
|
+
$.fn.select2.defaults.set('theme', 'bootstrap')
|
7
|
+
|
8
|
+
// Copy all classes from select tag to replacement select field (.select2-selection)
|
9
|
+
$.fn.select2.defaults.set('containerCssClass', ':all:')
|
10
|
+
|
11
|
+
// Copy all classes excluding 'form-control'/'form-control-*' from select tag to dropdown container (.select2-dropdown)
|
12
|
+
$.fn.select2.defaults.set('dropdownCssClass', function (el) {
|
13
|
+
return el[0].className.replace(/\s*form-control(-\w+)?\s*/g, '')
|
14
|
+
})
|
15
|
+
|
16
|
+
init(function (root) {
|
17
|
+
$(root).find('select[data-enable-select2]').select2()
|
18
|
+
})
|
@@ -0,0 +1,78 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
3
|
+
import { ready } from '../core/events'
|
4
|
+
import cookie from '../core/cookie'
|
5
|
+
|
6
|
+
ready(function () {
|
7
|
+
const $body = $('body')
|
8
|
+
const $wrapper = $('.app-wrapper')
|
9
|
+
const $sidebar = $('.app-sidebar')
|
10
|
+
|
11
|
+
// Toggle mobile navigation using menu button
|
12
|
+
|
13
|
+
$sidebar.find('.navbar-toggler').on('click', function (e) {
|
14
|
+
e.preventDefault()
|
15
|
+
|
16
|
+
$wrapper.addClass('animate')
|
17
|
+
$body.toggleClass('mobile-nav-expanded')
|
18
|
+
})
|
19
|
+
|
20
|
+
$wrapper.on('transitionend webkitTransitionEnd', function () {
|
21
|
+
$(this).removeClass('animate')
|
22
|
+
})
|
23
|
+
|
24
|
+
// Interacting outside of the sidebar closes the navigation
|
25
|
+
|
26
|
+
$wrapper.on('click touchstart', function (e) {
|
27
|
+
let navExpanded = $('body').hasClass('mobile-nav-expanded')
|
28
|
+
|
29
|
+
let clickInHeader = $(e.target).closest('.app-header').length
|
30
|
+
let clickInSidebar = $(e.target).closest('.app-sidebar').length
|
31
|
+
|
32
|
+
if (navExpanded && !clickInHeader && !clickInSidebar) {
|
33
|
+
e.stopPropagation()
|
34
|
+
e.preventDefault()
|
35
|
+
|
36
|
+
$wrapper.addClass('animate')
|
37
|
+
$body.removeClass('mobile-nav-expanded')
|
38
|
+
}
|
39
|
+
})
|
40
|
+
|
41
|
+
// Toggle sidebar expand/collapse
|
42
|
+
|
43
|
+
$sidebar.find('.toggle-sidebar').on('click', function (e) {
|
44
|
+
e.preventDefault()
|
45
|
+
|
46
|
+
if ($body.hasClass('sidebar-expanded') || $body.hasClass('sidebar-collapsed')) {
|
47
|
+
$body.removeClass('sidebar-expanded').removeClass('sidebar-collapsed')
|
48
|
+
cookie.delete('trestle:sidebar')
|
49
|
+
} else if ($(document).width() >= 1200) {
|
50
|
+
$body.addClass('sidebar-collapsed')
|
51
|
+
cookie.set('trestle:sidebar', 'collapsed')
|
52
|
+
} else if ($(document).width() >= 768) {
|
53
|
+
$body.addClass('sidebar-expanded')
|
54
|
+
cookie.set('trestle:sidebar', 'expanded')
|
55
|
+
}
|
56
|
+
})
|
57
|
+
|
58
|
+
// Toggle navigation groups
|
59
|
+
|
60
|
+
$sidebar.find('.nav-header a').on('click', function (e) {
|
61
|
+
e.preventDefault()
|
62
|
+
|
63
|
+
$(this).closest('ul').toggleClass('collapsed')
|
64
|
+
|
65
|
+
let collapsed = $sidebar.find('.collapsed .nav-header a').map(function () {
|
66
|
+
return $(this).attr('href').replace(/^#/, '')
|
67
|
+
}).toArray()
|
68
|
+
|
69
|
+
cookie.set('trestle:navigation:collapsed', collapsed.join(','))
|
70
|
+
})
|
71
|
+
|
72
|
+
// Scroll sidebar to active item
|
73
|
+
|
74
|
+
let $active = $sidebar.find('.active')
|
75
|
+
if ($active.length) {
|
76
|
+
$sidebar.find('.app-sidebar-inner').scrollTop($active.offset().top - 100)
|
77
|
+
}
|
78
|
+
})
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
3
|
+
import visit from '../core/visit'
|
4
|
+
|
5
|
+
// Allow clicking on any part of a table row to follow either the table's data-url
|
6
|
+
// or the first link within the row (that is not in the actions column).
|
7
|
+
$(document).on('click', 'tr[data-url]:not([data-behavior="dialog"])', function (e) {
|
8
|
+
let row = $(e.currentTarget)
|
9
|
+
|
10
|
+
let url
|
11
|
+
|
12
|
+
if (row.data('url') === 'auto') {
|
13
|
+
url = row.find('td:not(.actions) a:first').attr('href')
|
14
|
+
} else {
|
15
|
+
url = row.data('url')
|
16
|
+
}
|
17
|
+
|
18
|
+
if (url) {
|
19
|
+
if (e.metaKey || e.ctrlKey) {
|
20
|
+
window.open(url, '_blank')
|
21
|
+
} else {
|
22
|
+
visit(url)
|
23
|
+
}
|
24
|
+
}
|
25
|
+
})
|
26
|
+
|
27
|
+
// Ignore the above event handler when clicking directly on a link or input element
|
28
|
+
$(document).on('click', 'tr[data-url] a, tr[data-url] input', function (e) {
|
29
|
+
e.stopPropagation()
|
30
|
+
})
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/* global history, location */
|
2
|
+
|
3
|
+
import $ from 'jquery'
|
4
|
+
|
5
|
+
import { init, ready } from '../core/events'
|
6
|
+
|
7
|
+
const TAB_SELECTOR = 'a[data-toggle="tab"]'
|
8
|
+
const TAB_PANE_SELECTOR = '.tab-pane'
|
9
|
+
const ERROR_SELECTOR = '.is-invalid:not([type="hidden"])'
|
10
|
+
|
11
|
+
// Save active tab to URL hash
|
12
|
+
init(function (root) {
|
13
|
+
$(root).find(TAB_SELECTOR).on('shown.bs.tab', function (e) {
|
14
|
+
const hash = $(this).attr('href')
|
15
|
+
const withinModal = $(this).closest('.modal').length > 0
|
16
|
+
|
17
|
+
if (hash.substr(0, 1) === '#' && !withinModal) {
|
18
|
+
history.replaceState({ turbolinks: {} }, '', '#!' + hash.substr(1))
|
19
|
+
}
|
20
|
+
})
|
21
|
+
})
|
22
|
+
|
23
|
+
// Restore active tab when loading
|
24
|
+
ready(function () {
|
25
|
+
focusActiveTab()
|
26
|
+
})
|
27
|
+
|
28
|
+
// Add error count to tabs
|
29
|
+
init(function (root) {
|
30
|
+
$(root).find(TAB_PANE_SELECTOR).each(function () {
|
31
|
+
const errorCount = $(this).find(ERROR_SELECTOR).length
|
32
|
+
|
33
|
+
if (errorCount > 0) {
|
34
|
+
const badge = $('<span>').addClass('badge badge-danger badge-pill').text(errorCount)
|
35
|
+
const id = $(this).attr('id')
|
36
|
+
const selector = `${TAB_SELECTOR}[href='#${id}']`
|
37
|
+
|
38
|
+
$(selector).append(badge)
|
39
|
+
}
|
40
|
+
})
|
41
|
+
})
|
42
|
+
|
43
|
+
export function focusTab (id) {
|
44
|
+
const selector = `${TAB_SELECTOR}[href='#${id}']`
|
45
|
+
$(selector).tab('show')
|
46
|
+
}
|
47
|
+
|
48
|
+
export function focusActiveTab () {
|
49
|
+
if (location.hash.substr(0, 2) === '#!') {
|
50
|
+
// Focus on active tab from URL
|
51
|
+
focusTab(location.hash.substr(2))
|
52
|
+
} else {
|
53
|
+
const $errorTabs = $(`${TAB_PANE_SELECTOR}:has(${ERROR_SELECTOR})`)
|
54
|
+
|
55
|
+
if ($errorTabs.length) {
|
56
|
+
focusTab($errorTabs.first().attr('id'))
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
3
|
+
import { init, ready } from '../core/events'
|
4
|
+
|
5
|
+
// Enable general tooltips and popovers
|
6
|
+
init(function (root) {
|
7
|
+
$(root).find('[data-toggle="tooltip"]').tooltip()
|
8
|
+
$(root).find('[data-toggle="popover"]').popover()
|
9
|
+
})
|
10
|
+
|
11
|
+
// Enable navigation tooltips for non-touch devices
|
12
|
+
if (!('ontouchstart' in window)) {
|
13
|
+
ready(function () {
|
14
|
+
$(document).tooltip({
|
15
|
+
selector: '.app-nav a',
|
16
|
+
trigger: 'hover',
|
17
|
+
placement: 'right',
|
18
|
+
boundary: 'window',
|
19
|
+
template: '<div class="tooltip nav-tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
|
20
|
+
title: function () {
|
21
|
+
return $(this).find('.nav-label').text()
|
22
|
+
}
|
23
|
+
})
|
24
|
+
})
|
25
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
3
|
+
import { triggerInit } from './events'
|
4
|
+
|
5
|
+
export function refreshContext ($context) {
|
6
|
+
const url = $context.data('context')
|
7
|
+
|
8
|
+
$.get(url, function (data) {
|
9
|
+
$context.html(data)
|
10
|
+
triggerInit($context)
|
11
|
+
})
|
12
|
+
}
|
13
|
+
|
14
|
+
export function refreshMainContext () {
|
15
|
+
const $context = $('.app-main[data-context]')
|
16
|
+
refreshContext($context)
|
17
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
export function getCookie (name) {
|
2
|
+
name += '='
|
3
|
+
|
4
|
+
var cookies = document.cookie.split(/;\s*/)
|
5
|
+
|
6
|
+
for (let i = cookies.length - 1; i >= 0; i--) {
|
7
|
+
if (!cookies[i].indexOf(name)) {
|
8
|
+
var value = cookies[i].replace(name, '')
|
9
|
+
return decodeURIComponent(value)
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
return ''
|
14
|
+
}
|
15
|
+
|
16
|
+
export function setCookie (name, value) {
|
17
|
+
document.cookie = `${name}=${encodeURIComponent(value)}; path=/`
|
18
|
+
}
|
19
|
+
|
20
|
+
export function deleteCookie (name) {
|
21
|
+
document.cookie = `${name}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`
|
22
|
+
}
|
23
|
+
|
24
|
+
export default {
|
25
|
+
get: getCookie,
|
26
|
+
set: setCookie,
|
27
|
+
delete: deleteCookie
|
28
|
+
}
|
@@ -1,39 +1,46 @@
|
|
1
|
+
import $ from 'jquery'
|
2
|
+
|
1
3
|
// The ready function sets up a callback to run on each page load.
|
2
4
|
//
|
3
5
|
// Trestle.ready(function() {
|
4
6
|
// ...
|
5
7
|
// });
|
6
8
|
//
|
7
|
-
|
8
|
-
|
9
|
-
|
9
|
+
const readyCallbacks = $.Callbacks('unique')
|
10
|
+
export function ready (callback) {
|
11
|
+
readyCallbacks.add(callback)
|
12
|
+
}
|
13
|
+
|
14
|
+
export function triggerReady (root) {
|
15
|
+
readyCallbacks.fire(root)
|
16
|
+
}
|
10
17
|
|
11
18
|
// The init function sets up a callback to run on each page load, as well as when elements are added to the page
|
12
19
|
// dynamically (e.g. via a modal). It is used to initialize dynamic elements such as date pickers, although it is
|
13
20
|
// preferable if they can be set up using event delegation on the document element.
|
14
21
|
//
|
15
|
-
// The callback is triggered with the applicable root/container element as the
|
22
|
+
// The callback is triggered with the applicable root/container element as the argument.
|
16
23
|
//
|
17
|
-
// Trestle.init(function(
|
24
|
+
// Trestle.init(function(root) {
|
18
25
|
// $(root).find('...');
|
19
26
|
// });
|
20
27
|
//
|
21
|
-
|
22
|
-
|
23
|
-
|
28
|
+
const initCallbacks = $.Callbacks('unique')
|
29
|
+
export function init (callback) {
|
30
|
+
initCallbacks.add(callback)
|
31
|
+
}
|
32
|
+
|
33
|
+
export function triggerInit (root) {
|
34
|
+
// Pass root as both parameters for backwards compatibility
|
35
|
+
initCallbacks.fire(root, root)
|
36
|
+
}
|
24
37
|
|
25
38
|
// Initialize all elements within the document on page load.
|
26
|
-
|
27
|
-
|
28
|
-
})
|
39
|
+
ready(function () {
|
40
|
+
triggerInit(document)
|
41
|
+
})
|
29
42
|
|
30
43
|
// Trigger the page load events.
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
});
|
35
|
-
} else {
|
36
|
-
$(document).ready(function() {
|
37
|
-
$(Trestle).trigger("load");
|
38
|
-
});
|
39
|
-
}
|
44
|
+
$(document).on('ready turbolinks:load', function () {
|
45
|
+
triggerReady()
|
46
|
+
})
|
@@ -1,23 +1,24 @@
|
|
1
|
-
|
1
|
+
import flatpickr from 'flatpickr'
|
2
|
+
|
3
|
+
// Container for i18n translations
|
4
|
+
export const i18n = {}
|
2
5
|
|
3
6
|
// Some of Flatpickr's locale names differ from Rails. This maps the Rails I18n locale to their Flatpickr equivalent.
|
4
|
-
|
7
|
+
const FlatpickrLocaleConversions = { ca: 'cat', el: 'gr', nb: 'no', vi: 'vn' }
|
5
8
|
|
6
9
|
// Sets up localization for Trestle and its dependencies, in particular Flatpickr.
|
7
10
|
// This method accepts a list of locales in descending order of priority.
|
8
11
|
//
|
9
|
-
// Trestle.localize('es-MX', 'es', 'en')
|
12
|
+
// Trestle.localize('es-MX', 'es', 'en')
|
10
13
|
//
|
11
|
-
|
14
|
+
export function localize () {
|
12
15
|
for (var i = 0; i < arguments.length; ++i) {
|
13
|
-
var locale = arguments[i]
|
14
|
-
var flatpickrLocale = FlatpickrLocaleConversions[locale] || locale
|
16
|
+
var locale = arguments[i]
|
17
|
+
var flatpickrLocale = FlatpickrLocaleConversions[locale] || locale
|
15
18
|
|
16
19
|
if (flatpickr.l10ns[flatpickrLocale]) {
|
17
|
-
flatpickr.localize(flatpickr.l10ns[flatpickrLocale])
|
18
|
-
break
|
20
|
+
flatpickr.localize(flatpickr.l10ns[flatpickrLocale])
|
21
|
+
break
|
19
22
|
}
|
20
23
|
}
|
21
|
-
}
|
22
|
-
|
23
|
-
})();
|
24
|
+
}
|
@@ -1,10 +1,16 @@
|
|
1
|
+
/* global Turbolinks */
|
2
|
+
|
3
|
+
import turbolinks from './turbolinks'
|
4
|
+
|
1
5
|
// The visit function is used to direct the user to the given URL. It is provided as an abstraction as the redirection
|
2
6
|
// is handled differently depending on whether or not Turbolinks is enabled.
|
3
7
|
//
|
4
8
|
// Trestle.visit("/admin/pages");
|
5
9
|
//
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
+
export default function (url) {
|
11
|
+
if (turbolinks) {
|
12
|
+
Turbolinks.visit(url)
|
13
|
+
} else {
|
14
|
+
document.location = url
|
15
|
+
}
|
10
16
|
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
// Dependencies
|
2
|
+
|
3
|
+
import 'jquery'
|
4
|
+
import Rails from '@rails/ujs'
|
5
|
+
|
6
|
+
import 'bootstrap'
|
7
|
+
import 'bootstrap-confirmation2'
|
8
|
+
|
9
|
+
import 'magnific-popup'
|
10
|
+
|
11
|
+
import 'flatpickr'
|
12
|
+
|
13
|
+
import 'select2/dist/js/select2.full'
|
14
|
+
|
15
|
+
// Core
|
16
|
+
|
17
|
+
import { refreshContext, refreshMainContext } from './core/contexts'
|
18
|
+
import cookie from './core/cookie'
|
19
|
+
import { init, ready, triggerInit, triggerReady } from './core/events'
|
20
|
+
import { i18n, localize } from './core/i18n'
|
21
|
+
import turbolinks from './core/turbolinks'
|
22
|
+
import visit from './core/visit'
|
23
|
+
|
24
|
+
// Components
|
25
|
+
|
26
|
+
import './components/confirmation'
|
27
|
+
import './components/datepicker'
|
28
|
+
import Dialog from './components/dialog'
|
29
|
+
import './components/file'
|
30
|
+
import './components/form'
|
31
|
+
import './components/gallery'
|
32
|
+
import './components/select'
|
33
|
+
import './components/sidebar'
|
34
|
+
import './components/table'
|
35
|
+
import { focusTab, focusActiveTab } from './components/tabs'
|
36
|
+
import './components/tooltips'
|
37
|
+
|
38
|
+
// Initialize
|
39
|
+
|
40
|
+
Rails.start()
|
41
|
+
|
42
|
+
// Export
|
43
|
+
|
44
|
+
const Trestle = {
|
45
|
+
refreshContext,
|
46
|
+
refreshMainContext,
|
47
|
+
cookie,
|
48
|
+
init,
|
49
|
+
ready,
|
50
|
+
triggerInit,
|
51
|
+
triggerReady,
|
52
|
+
i18n,
|
53
|
+
localize,
|
54
|
+
turbolinks,
|
55
|
+
visit,
|
56
|
+
Dialog,
|
57
|
+
focusTab,
|
58
|
+
focusActiveTab
|
59
|
+
}
|
60
|
+
|
61
|
+
export default Trestle
|