This commit is contained in:
Troplo 2021-04-07 23:08:04 +10:00
parent 308ae85b0e
commit ebc4c938ff
31 changed files with 12320 additions and 133 deletions

10
.eslintrc.js Normal file
View File

@ -0,0 +1,10 @@
module.exports = {
"rules": {
"no-mixed-spaces-and-tabs": 0,
},
"parserOptions": {
"sourceType": "module",
"parser": "babel-eslint",
"ecmaVersion": 6
},
}

7
.gitignore vendored
View File

@ -21,3 +21,10 @@ pnpm-debug.log*
*.njsproj *.njsproj
*.sln *.sln
*.sw? *.sw?
# MetadataService files
*.lmetadata
*.metadata
# Yarn and NPM
.yarn

View File

@ -1,3 +0,0 @@
/*
Soon
*/

View File

@ -17,6 +17,7 @@
"crypto-random-string": "^3.3.0", "crypto-random-string": "^3.3.0",
"dotenv-webpack": "^6.0.0", "dotenv-webpack": "^6.0.0",
"lodash.throttle": "^4.1.1", "lodash.throttle": "^4.1.1",
"moment": "^2.29.1",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"socket.io": "^3.1.0", "socket.io": "^3.1.0",
"tiptap": "^1.32.0", "tiptap": "^1.32.0",
@ -36,7 +37,6 @@
"devDependencies": { "devDependencies": {
"@intlify/vue-i18n-loader": "^1.0.0", "@intlify/vue-i18n-loader": "^1.0.0",
"@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0", "@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0", "@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0", "@vue/cli-service": "~4.5.0",

View File

@ -7,7 +7,9 @@
<Footer /> <Footer />
</div> </div>
</template> </template>
<style>
@import './assets/css/kaverti.css';
</style>
<script> <script>
import Navbar from "./components/Navbar"; import Navbar from "./components/Navbar";
import Footer from "./components/Footer"; import Footer from "./components/Footer";

View File

@ -1,6 +1,17 @@
#app {
display: flex !important;
flex-direction: column !important;
min-height: 100vh !important
}
main {
flex: 1 !important
}
.large-icon { .large-icon {
font-size: 60px; font-size: 60px;
} }
.vertical { .vertical {
margin: 0; margin: 0;
position: absolute; position: absolute;

View File

@ -0,0 +1,3 @@
/*
Soon
*/

View File

@ -49,7 +49,7 @@
</span> </span>
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
export default { export default {
name: 'UserBadges', name: 'UserBadges',

View File

@ -77,7 +77,7 @@
</div> </div>
</template> </template>
<script> <script>
import AjaxErrorHandler from '../../assets/js/errorHandler' import AjaxErrorHandler from '.././assets/js/errorHandler'
export default { export default {
name: 'locale-changer', name: 'locale-changer',
data () { data () {

View File

@ -302,7 +302,7 @@
<b-navbar-item @click="toggleBrokenRoute(true)">{{$t('navbar.dev.brokenRoute')}}</b-navbar-item> <b-navbar-item @click="toggleBrokenRoute(true)">{{$t('navbar.dev.brokenRoute')}}</b-navbar-item>
</div> </div>
</div> </div>
<div v-if="$store.state.debug" class="navbar-item has-dropdown is-hoverable is-info"> <div class="navbar-item has-dropdown is-hoverable is-info">
<a class="navbar-link"> <a class="navbar-link">
<p>{{$t('navbar.more.title')}}</p> <p>{{$t('navbar.more.title')}}</p>
</a> </a>
@ -369,7 +369,7 @@
</nav> </nav>
</template> </template>
<script> <script>
import AjaxErrorHandler from '../../assets/js/errorHandler' import AjaxErrorHandler from '.././assets/js/errorHandler'
import axios from "axios"; import axios from "axios";
export default { export default {
data() { data() {

View File

@ -179,7 +179,7 @@ const router = new VueRouter({
routes routes
}); });
router.beforeResolve((to, next) => { router.beforeResolve((to, from, next) => {
if (to.name) { if (to.name) {
NProgress.start(); NProgress.start();
} }

View File

@ -70,7 +70,7 @@
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
export default { export default {
name: 'MarketplaceCreate', name: 'MarketplaceCreate',

View File

@ -42,7 +42,7 @@
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
export default { export default {
name: "Avatar", name: "Avatar",

View File

@ -164,7 +164,7 @@
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
import { Editor, EditorContent, EditorMenuBar } from 'tiptap' import { Editor, EditorContent, EditorMenuBar } from 'tiptap'
import { import {
Blockquote, Blockquote,

View File

@ -7,19 +7,11 @@
<router-link to="/forums/create"> <router-link to="/forums/create">
<b-button type="is-info">Create Thread</b-button> <b-button type="is-info">Create Thread</b-button>
</router-link> </router-link>
<br /> <br /><br />
<b-menu> <b-menu>
<b-menu-list label="Categories"> <b-menu-list label="Categories">
<router-link to="/forums/ALL"> <b-menu-item label="All" tag="router-link" to="/forums/all" :active="selectedCategory === 'ALL'"></b-menu-item> <b-menu-item :label="category.name" v-for="(category, $index) in categories" :active="selectedCategory === category.value"
<b-menu-item label="All"></b-menu-item> :key="'category-link-' + $index" tag="router-link" :to="'/forums/' + category.value"></b-menu-item>
</router-link>
<router-link
v-for="(category, $index) in categories"
:key="'category-link-' + $index"
:to="'/forums/' + category.value"
>
<b-menu-item :label="category.name"></b-menu-item>
</router-link>
</b-menu-list> </b-menu-list>
</b-menu> </b-menu>
</div> </div>
@ -106,7 +98,7 @@
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
import NoItems from "../components/NoItems"; import NoItems from "../components/NoItems";
export default { export default {
name: "Forums", name: "Forums",

View File

@ -47,7 +47,7 @@
</main> </main>
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
import NoItems from "../components/NoItems" import NoItems from "../components/NoItems"
export default { export default {
name: 'Friends', name: 'Friends',

View File

@ -1,8 +1,9 @@
<template> <template>
<div id="home"> <div id="home">
<section class="section" v-if="$store.state.user.username"> <section class="section" v-if="$store.state.user.username">
<div class="container">
<div class="columns is-centered"> <div class="columns is-centered">
<div class="column is-3"> <div class="column is-4">
<div class="title"> <div class="title">
{{ $store.state.user.username }} {{ $store.state.user.username }}
</div> </div>
@ -48,7 +49,7 @@
<div class="media-content"> <div class="media-content">
<div class="content"> <div class="content">
<p> <p>
<strong>{{ post.fromUser.username }}</strong> <strong>{{ post.fromUser.username }}</strong>&nbsp;
<small>{{ post.createdAt | formatDate() }}</small> <small>{{ post.createdAt | formatDate() }}</small>
<br> <br>
{{ post.plainText }} {{ post.plainText }}
@ -64,8 +65,9 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</section> </section>
<section class="section hero is-info is-large is-fullheight-with-navbar" v-if="!store.state.user.username"> <section class="section hero is-info is-large is-fullheight-with-navbar" v-if="!$store.state.user.username">
<div class="hero-body"> <div class="hero-body">
<div class="container has-text-centered"> <div class="container has-text-centered">
<div class="title"> <div class="title">
@ -81,7 +83,7 @@
</div> </div>
</div> </div>
</section> </section>
<section class="section hero is-white is-medium" v-if="!store.state.user.username"> <section class="section hero is-white is-medium" v-if="!$store.state.user.username">
<div class="hero-body"> <div class="hero-body">
<div class="container has-text-centered"> <div class="container has-text-centered">
<div class="title"> <div class="title">
@ -169,7 +171,7 @@
<script> <script>
import NoItems from "@/components/NoItems"; import NoItems from "@/components/NoItems";
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
export default { export default {
name: 'Home', name: 'Home',

View File

@ -135,7 +135,7 @@
</main> </main>
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
import NoItems from "../components/NoItems" import NoItems from "../components/NoItems"
import Pagination from "../components/Pagination" import Pagination from "../components/Pagination"
export default { export default {

View File

@ -79,7 +79,7 @@
</main> </main>
</template> </template>
<script> <script>
import AjaxErrorHandler from '../../assets/js/errorHandler' import AjaxErrorHandler from '.././assets/js/errorHandler'
export default { export default {
name: 'MarketplaceItem', name: 'MarketplaceItem',
data() { data() {

View File

@ -1,102 +1,129 @@
<template> <template>
<main class="section"> <div id="teams">
<div class="columns is-multiline" v-if="!loading"> <section class="section">
<div v-if="!teams.length" class="column"> <div class="container">
<br> <div class="columns is-centered is-multiline" v-if="!loading">
<NoItems :connection="true" type="users"> <div v-if="!teams.length" class="column">
</NoItems> <br />
</div> <NoItems :connection="true" type="users"> </NoItems>
<Pagination </div>
class='columns is-multiline' <Pagination
v-if='teams.length' class="columns is-multiline"
:loading='loading' v-if="teams.length"
:paginate="paginate" :loading="loading"
:wait="wait" :paginate="paginate"
@loadNext='getTeams(false)' :wait="wait"
> @loadNext="getTeams(false)"
<div class="column is-3" v-for='(team) in teams' :key='"team-" + team.id'> >
<div class="box"> <div
<h1 class="title">{{team.username}}&nbsp;<Badges :username="team.username" :verified="team.verified" :noPlus="true"></Badges></h1> class="column is-3"
<img :src="'/api/v1/teams/view/' + team.username + '/picture'" width="64" length="64"><br> v-for="user in teams"
<b-button tag="router-link" :to='"/u/" + team.username' class="is-centered is-info">View Profile</b-button> :key="'user-' + user.id"
>
<div class="box">
<h1 class="title">
{{ user.username }}&nbsp;<Badges
:verified="user.verified"
></Badges>
</h1>
<img
:src="
'https://cdn.kaverti.com/user/avatars/full/' +
user.picture +
'.png'
"
/><br />
<b-button
tag="router-link"
:to="'/u/' + user.username"
class="is-centered is-info"
>View Team</b-button
>
</div>
</div>
</Pagination>
</div>
<div class="columns is-multiline" v-if="loading">
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div> </div>
</div> </div>
</Pagination>
</div>
<div class="columns is-multiline" v-if="loading">
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div> </div>
<div class="column is-4"> </section>
<div class="box"> </div>
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div> <div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div> <div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div> <div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div> <div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
<div class="column is-4">
<div class="box">
<h1 class="title">
<b-skeleton></b-skeleton>
</h1>
<b-skeleton height="100px"></b-skeleton>
</div>
</div>
</div>
</main>
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
import Badges from "../components/Badges" import Badges from "../components/Badges"
import NoItems from "../components/NoItems" import NoItems from "../components/NoItems"
import Pagination from "../components/Pagination" import Pagination from "../components/Pagination"

View File

@ -43,7 +43,7 @@
</main> </main>
</template> </template>
<script> <script>
import AjaxErrorHandler from '../../assets/js/errorHandler'; import AjaxErrorHandler from '.././assets/js/errorHandler';
import NoItems from '../components/NoItems' import NoItems from '../components/NoItems'
export default { export default {
name: 'Transactions', name: 'Transactions',

View File

@ -154,7 +154,7 @@
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
import Badges from "../components/Badges"; import Badges from "../components/Badges";
import NoItems from "../components/NoItems"; import NoItems from "../components/NoItems";

View File

@ -19,7 +19,7 @@
</main> </main>
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
import NoItems from "../components/NoItems" import NoItems from "../components/NoItems"
export default { export default {
name: 'UserAwards', name: 'UserAwards',

View File

@ -15,7 +15,7 @@
</main> </main>
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
export default { export default {
name: 'UserFriends', name: 'UserFriends',

View File

@ -17,7 +17,7 @@
</main> </main>
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
import NoItems from "../components/NoItems" import NoItems from "../components/NoItems"
export default { export default {

View File

@ -31,7 +31,7 @@
</template> </template>
<script> <script>
import AjaxErrorHandler from '../../assets/js/errorHandler' import AjaxErrorHandler from '.././assets/js/errorHandler'
import ThreadPost from '../components/Post' import ThreadPost from '../components/Post'
export default { export default {

View File

@ -128,7 +128,7 @@
</template> </template>
<script> <script>
import AjaxErrorHandler from "../../assets/js/errorHandler"; import AjaxErrorHandler from ".././assets/js/errorHandler";
import Badges from "../components/Badges"; import Badges from "../components/Badges";
import NoItems from "../components/NoItems"; import NoItems from "../components/NoItems";
import Pagination from "../components/Pagination"; import Pagination from "../components/Pagination";

12136
yarn.lock Normal file

File diff suppressed because it is too large Load Diff