Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
tbf.ro
/
resources
/
js
/
components
/
partials
/
Information Server
MySQL :
OFF
Perl :
OFF
CURL :
ON
WGET :
OFF
PKEXEC :
OFF
Directive
Local Value
IP Address
89.40.16.97
System
Linux server.atelieruldeit.ro 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
User
tbf
PHP Version
7.3.33
Software
Apache
Doc root
Writable
close
Edit File :
Navbar.vue
| Size :
6.04
KB
Copy
<template> <div class="navbar-tbf"> <div class="container d-flex"> <div id="menuToggle"> <!-- <div class="button-action" @click="activeMenu('menu')"> <span></span> <span></span> <span></span> </div> --> <div id="menuMobile" v-bind:class="[active_menu == 'menu' ? 'active' : '']"> <div class="header"> <div class="close-menu" @click="hideMenu()"> <close></close> </div> </div> <div class="d-flex flex-column box-container"> <p>Meniu</p> <router-link @click.native="toggleMenu" :to="{path: '/cursuri' }">Toate cursurile</router-link> <!-- <router-link @click.native="toggleMenu" :to="{path: '/cursurile-mele' }">Cursurile mele</router-link> --> <router-link @click.native="toggleMenu" :to="{path: '/contul-meu' }">Contul meu</router-link> <!-- <div class="mini-hr"></div> --> <router-link @click.native="toggleMenu" :to="{path: '/termeni-si-conditii' }">Termeni si conditii</router-link> <!-- <router-link @click.native="toggleMenu" :to="{path: '/cookies' }">Cookies</router-link> --> <!-- <router-link @click.native="toggleMenu" :to="{path: '/politica-de-confidentialitate' }">Politica de confidentialitate</router-link> --> <router-link @click.native="toggleMenu" :to="{path: '/contact' }">Contact</router-link> <!-- <router-link @click.native="toggleMenu" :to="{path: '/date-personale' }">Date Personale</router-link> --> <a href="" @click.prevent="$auth.logout()">Deconectare</a> </div> </div> </div> <!-- <div id="searchToggle"> <div class="button-action" @click="activeMenu('search')"> <img src="/build/images/search.svg"> </div> <div id="searchMenu" v-bind:class="[active_menu == 'search' ? 'active' : '']"> <div class="header"> <div class="close-menu" @click="hideMenu()"> <close></close> </div> </div> <div class="d-flex flex-column box-container"> <input type="text" class="input-tbf-text" id="search_input" placeholder="Cauta topic: delegare, marketing, vanzari, antreprenoriat…" v-model="search_input"> <div class="list-courses-search"> <div class="item-course" v-for="course in filteredCourses" @click="viewCourse(course.slug)"> <span v-html="highlight(course.name, search_input)"></span> <div class="progress-bar-tbf"> <div class="completed-progress" :style="'width: 100%;'" v-if="course.percentage_completed == 0 && course.view_count >= 1"></div> <div class="completed-progress" :style="'width: '+ course.percentage_completed +'%;'" v-else></div> </div> </div> </div> </div> </div> </div> --> <div class="logo d-flex flex-column ml-auto"> <router-link :to="{path: '/' }"> <div class="text d-flex"> <div class="part">The Basic Fundamentals</div> <!-- <div class="part part-1">The</div> --> <!-- <div class="part part-2">Basic</div> --> <!-- <div class="part part-3">Fundamentals</div> --> </div> <div class="border-logo"></div> </router-link> </div> </div> <!-- <div class="box_gradient_top"></div> --> </div> </template> <script> import Close from "../icons/Close"; export default { data() { return { menuOpen: false, active_menu: '', search_input: '', list_tours: [] }; }, computed:{ filteredCourses(){ return this.list_tours.filter((course)=>{ return ( (course.name ? course.name.toLowerCase().includes(this.search_input.toLowerCase()) : false) || course.description.toLowerCase().includes(this.search_input.toLowerCase()) || (course.tags ? course.tags.toLowerCase().includes(this.search_input.toLowerCase()) : false)); }) } }, components: { Close }, async mounted() { // await this.getTours(); document.onkeydown = evt => { evt = evt || window.event; if (evt.keyCode == 27) { this.active_menu = '' this.search_input = '' setTimeout(function(){ document.getElementById("search_input").blur() }, 0); } if (evt.keyCode == 191) { this.active_menu = 'search' setTimeout(function(){ document.getElementById("search_input").focus() }, 0); } }; }, methods: { async getTours(){ await axios.post('search-courses') .then( ({data:{courses}}) => { this.list_tours = courses }) }, toggleMenu(){ this.active_menu = '' this.search_input = '' }, activeMenu(menu){ this.active_menu = menu if(menu == 'search'){ document.getElementById("search_input").focus() } }, hideMenu(){ this.active_menu = '' this.search_input = '' setTimeout(function(){ document.getElementById("search_input").blur() }, 0); }, viewCourse(slug){ this.active_menu = '' this.search_input = '' this.$router.push("/cursuri/" + slug); }, highlight(text, query){ String.prototype.replaceBetween = function(start, end, what) { return this.substring(0, start) + what + this.substring(end); }; if(query != ''){ var regex = new RegExp( query ,'ig'); var new_text = text var match = '' var match_obj = [] while ((match = regex.exec(text)) != null) { match_obj.push({ text_replace: text.substring(match.index, match.index+query.length), start_position: match.index, end_position: match.index+query.length }) } match_obj.reverse() if(match_obj.length){ match_obj.forEach(element => { new_text = new_text.replaceBetween(element.start_position, element.end_position, '<mark class="highlight">' + element.text_replace + '</mark>') }) } return new_text }else{ return text } } } }; </script>
Back