123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import Vue from 'vue'
- import VueRouter from 'vue-router'
- import Vuex from 'vuex'
- import axios from 'axios'
- import VueAxios from 'vue-axios'
- import App from './App'
- import store from './store/index'
- import Index from './components/routes/Index'
- import Start from './components/routes/Start'
- import Category from './components/routes/Category'
- import Thread from './components/routes/Thread'
- import ThreadNew from './components/routes/ThreadNew'
- import User from './components/routes/User'
- import UserPosts from './components/routes/UserPosts'
- import UserThreads from './components/routes/UserThreads'
- import Admin from './components/routes/Admin'
- import AdminDashboard from './components/routes/AdminDashboard'
- import AdminUsers from './components/routes/AdminUsers'
- import AdminSettings from './components/routes/AdminSettings'
- let { onResize } = require('./assets/js/flexBoxGridCorrect.js')
- onResize('.index_categories', 'index_category');
- Vue.use(VueRouter)
- Vue.use(Vuex)
- Vue.use(VueAxios, axios)
- const router = new VueRouter({
- routes: [
- { path: '/', component: Index },
- { path: '/start', component: Start },
- { path: '/category/:category', component: Category },
- { path: '/thread/:slug/:id', component: Thread },
- { path: '/thread/new', component: ThreadNew },
- { path: '/user/:username', redirect: '/user/:username/posts', component: User, children: [
- { path: 'posts', component: UserPosts },
- { path: 'threads', component: UserThreads }
- ] },
- { path: '/admin', redirect: '/admin/dashboard', component: Admin, children: [
- { path: 'dashboard', component: AdminDashboard },
- { path: 'settings', component: AdminSettings },
- { path: 'users', component: AdminUsers }
- ] }
- ],
- mode: 'history'
- })
- Vue.filter('formatDate', function (value, format = '', join = ' ') {
- if(typeof value !== 'object') {
- value = new Date(value)
- }
- //Add leading zero if under 10
- function lz(num) {
- if(num < 10) {
- return '0' + num;
- } else {
- return '' + num;
- }
- }
- function formatSegment(segment) {
- if(segment === 'time') {
- return value.toTimeString().slice(0, 5);
- }
- if(segment === 'date') {
- return (
- lz(value.getDate()) + '/' +
- lz(value.getMonth() + 1) + '/' +
- value.getUTCFullYear()
- );
- }
- }
- return format.split('|').map(formatSegment).join(join);
- });
- Vue.filter('stripTags', function (value) {
- let div = document.createElement('div')
- div.innerHTML = value
- return div.textContent
- });
- Vue.filter('truncate', function (value, length) {
- if(value.length <= length) {
- return value
- } else {
- return value.slice(0, length) + '...'
- }
- });
- new Vue({
- el: '#app',
- template: '<App/>',
- store,
- components: { App },
- router
- })
|