datatable.directory codebase
https://datatable.directory/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.2 KiB
77 lines
2.2 KiB
/**
|
|
* First we will load all of this project's JavaScript dependencies which
|
|
* includes Vue and other libraries. It is a great starting point when
|
|
* building robust, powerful web applications using Vue and Laravel.
|
|
*/
|
|
|
|
require('./bootstrap')
|
|
let url_slug = require('./url-slug')
|
|
|
|
$(function () {
|
|
$('[data-toggle="tooltip"]').tooltip({
|
|
container: 'body'
|
|
})
|
|
|
|
// auto hide flash alerts
|
|
let $notifs = $('div.alert').not('.alert-important').addClass('fadeout')
|
|
setTimeout(() => {
|
|
$notifs.addClass('fade')
|
|
setTimeout(() => {
|
|
$notifs.addClass('hidden')
|
|
}, 500)
|
|
}, 2500)
|
|
|
|
// toggle collapse when clicked outside link, without drag
|
|
$('.block-collapse')
|
|
.on('mousedown', (e) => {
|
|
let $bc = $(e.target).closest('.block-collapse')
|
|
$bc.data('mx', e.screenX);
|
|
$bc.data('my', e.screenY);
|
|
})
|
|
.on('mouseup', (e) => {
|
|
if (e.target.nodeName === 'A') return
|
|
let $bc = $(e.target).closest('.block-collapse')
|
|
if (typeof $bc.data('mx') !== 'undefined') {
|
|
let x0 = +$bc.data('mx');
|
|
let y0 = +$bc.data('my');
|
|
if (Math.abs(x0 - e.screenX) > 5 || Math.abs(y0 - e.screenY) > 5) {
|
|
// drag
|
|
} else {
|
|
$(e.target).closest('.block-collapse').toggleClass('reveal')
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
// auto-alias
|
|
$(document).on('input keypress paste keyup', 'input[data-autoalias]', function () {
|
|
const $this = $(this)
|
|
const target_name = $this.data('autoalias')
|
|
const delimiter = $this.data('aa-delimiter') || '_'
|
|
|
|
const new_alias = url_slug($this.val(), {'delimiter': delimiter})
|
|
|
|
const $target = $(`input[name="${target_name}"]`)
|
|
const lastset = $target.data('aa-last-set-val')
|
|
|
|
// 1. pick up, or 2. continue
|
|
if (new_alias === $target.val() || lastset === $target.val()) {
|
|
$target.val(new_alias)
|
|
$target.data('aa-last-set-val', new_alias)
|
|
}
|
|
})
|
|
|
|
//
|
|
// window.Vue = require('vue');
|
|
//
|
|
// /**
|
|
// * Next, we will create a fresh Vue application instance and attach it to
|
|
// * the page. Then, you may begin adding components to this application
|
|
// * or customize the JavaScript scaffolding to fit your unique needs.
|
|
// */
|
|
//
|
|
// Vue.component('example-component', require('./components/ExampleComponent.vue'));
|
|
//
|
|
// const app = new Vue({
|
|
// el: '#app'
|
|
// });
|
|
|