|
@ -0,0 +1,78 @@ |
|
|
|
|
|
"use strict"; |
|
|
|
|
|
|
|
|
|
|
|
jQuery( document ).ready(function( $ ) { |
|
|
|
|
|
|
|
|
|
|
|
if($('#search-input').length) { |
|
|
|
|
|
|
|
|
|
|
|
$('#search-input').focus(); |
|
|
|
|
|
|
|
|
|
|
|
Vue.transition('slide', { |
|
|
|
|
|
enterClass: 'slideInDown', |
|
|
|
|
|
leaveClass: 'fadeOutUp' |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
$('.searchresults').css('display', 'block'); |
|
|
|
|
|
|
|
|
|
|
|
var vueHeader = new Vue({ |
|
|
|
|
|
el: '#header-container', |
|
|
|
|
|
data: { |
|
|
|
|
|
searchq: '', |
|
|
|
|
|
searchres: [], |
|
|
|
|
|
searchsuggest: [], |
|
|
|
|
|
searchload: 0, |
|
|
|
|
|
searchactive: false, |
|
|
|
|
|
searchmoveidx: 0, |
|
|
|
|
|
searchmovekey: '', |
|
|
|
|
|
searchmovearr: [] |
|
|
|
|
|
}, |
|
|
|
|
|
watch: { |
|
|
|
|
|
searchq: (val, oldVal) => { |
|
|
|
|
|
searchmoveidx: 0; |
|
|
|
|
|
if(val.length >= 3) { |
|
|
|
|
|
vueHeader.searchactive = true; |
|
|
|
|
|
vueHeader.searchload++; |
|
|
|
|
|
socket.emit('search', { terms: val }, (data) => { |
|
|
|
|
|
vueHeader.searchres = data.match; |
|
|
|
|
|
vueHeader.searchsuggest = data.suggest; |
|
|
|
|
|
if(vueHeader.searchload > 0) { vueHeader.searchload--; } |
|
|
|
|
|
}); |
|
|
|
|
|
} else { |
|
|
|
|
|
vueHeader.searchactive = false; |
|
|
|
|
|
vueHeader.searchres = []; |
|
|
|
|
|
vueHeader.searchsuggest = []; |
|
|
|
|
|
vueHeader.searchload = 0; |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
searchmoveidx: (val, oldVal) => { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
methods: { |
|
|
|
|
|
useSuggestion: (sug) => { |
|
|
|
|
|
vueHeader.searchq = sug; |
|
|
|
|
|
}, |
|
|
|
|
|
closeSearch: () => { |
|
|
|
|
|
vueHeader.searchq = ''; |
|
|
|
|
|
vueHeader.searchactive = false; |
|
|
|
|
|
}, |
|
|
|
|
|
moveSelectSearch: () => { |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
moveDownSearch: () => { |
|
|
|
|
|
if(vueHeader.searchmoveidx < vueHeader.searchmovearr) { |
|
|
|
|
|
vueHeader.searchmoveidx++; |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
moveUpSearch: () => { |
|
|
|
|
|
if(vueHeader.searchmoveidx > 0) { |
|
|
|
|
|
vueHeader.searchmoveidx--; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
$('main').on('click', vueHeader.closeSearch); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}); |