3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-07-11 04:57:19 +00:00

Merge branch 'ZeppelinBot:master' into chore(basic-config)-rename-plugin

This commit is contained in:
zay 2023-06-05 22:04:01 +01:00 committed by GitHub
commit 9578668636
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
591 changed files with 25054 additions and 8203 deletions

9
dashboard/.eslintrc.js Normal file
View file

@ -0,0 +1,9 @@
module.exports = {
extends: ["../.eslintrc.js"],
rules: {
"@typescript-eslint/no-unused-vars": 0,
"no-self-assign": 0,
"no-empty": 0,
"@typescript-eslint/no-var-requires": 0,
},
};

View file

@ -45,10 +45,10 @@
<MarkdownBlock :content="data.info.usageGuide" class="content" />
</div>
<!-- Command list -->
<div v-if="data.commands.length">
<h3 id="commands" class="text-2xl">Commands</h3>
<div v-for="command in data.commands"
<!-- Message Command list -->
<div v-if="data.messageCommands && data.messageCommands.length">
<h3 id="commands" class="text-2xl">Message commands</h3>
<div v-for="command in (data.messageCommands || [])"
class="command mb-4"
v-bind:ref="getCommandSlug(command)" v-bind:class="{target: targetCommandId === getCommandSlug(command)}">
<h4 class="text-xl font-semibold mb-0">
@ -309,8 +309,9 @@
},
hasUsageInfo() {
if (!this.data) return true;
if (this.data.commands.length) return true;
if (this.data.info.usageGuide) return true;
if (this.data.messageCommands?.length) return true;
if (this.data.slashCommands?.length) return true;
if (this.data.info?.usageGuide) return true;
return false;
},
}),

View file

@ -4,11 +4,11 @@ import Vue from "vue";
import hljs from "highlight.js/lib/highlight.js";
import hljsYaml from "highlight.js/lib/languages/yaml.js";
import VueHighlightJS from "vue-highlightjs";
import "highlight.js/styles/ocean.css";
import VueHighlightJS from "vue-highlightjs";
import { RootStore } from "./store";
import { router } from "./routes";
import { RootStore } from "./store";
import "./directives/trim-indents";

View file

@ -1,5 +1,5 @@
import Vue from "vue";
import VueRouter, { RouteConfig } from "vue-router";
import VueRouter from "vue-router";
import { authGuard, authRedirectGuard, loginCallbackGuard } from "./auth";
Vue.use(VueRouter);

View file

@ -1,5 +1,5 @@
import { get, post } from "../api";
import { ActionTree, Module } from "vuex";
import { Module } from "vuex";
import { post } from "../api";
import { AuthState, IntervalType, RootState } from "./types";
// Refresh auth every 15 minutes

View file

@ -1,5 +1,5 @@
import { get } from "../api";
import { Module } from "vuex";
import { get } from "../api";
import { DocsState, RootState } from "./types";
export const DocsStore: Module<DocsState, RootState> = {
@ -34,8 +34,8 @@ export const DocsStore: Module<DocsState, RootState> = {
if (state.plugins[name]) return;
const data = await get(`docs/plugins/${name}`);
if (data && data.commands) {
data.commands.sort((a, b) => {
if (data && data.messageCommands) {
data.messageCommands.sort((a, b) => {
const aName = (Array.isArray(a.trigger) ? a.trigger[0] : a.trigger).toLowerCase();
const bName = (Array.isArray(b.trigger) ? b.trigger[0] : b.trigger).toLowerCase();
if (aName > bName) return 1;

View file

@ -1,8 +1,7 @@
import { get, post } from "../api";
import { Module } from "vuex";
import { GuildState, LoadStatus, RootState } from "./types";
import { ApiPermissions } from "@shared/apiPermissions";
import Vue from "vue";
import { Module } from "vuex";
import { get, post } from "../api";
import { GuildState, LoadStatus, RootState } from "./types";
export const GuildStore: Module<GuildState, RootState> = {
namespaced: true,

View file

@ -3,10 +3,10 @@ import Vuex, { Store } from "vuex";
Vue.use(Vuex);
import { RootState } from "./types";
import { AuthStore } from "./auth";
import { GuildStore } from "./guilds";
import { DocsStore } from "./docs";
import { GuildStore } from "./guilds";
import { RootState } from "./types";
export const RootStore = new Vuex.Store<RootState>({
modules: {

View file

@ -1,5 +1,5 @@
import { get, post } from "../api";
import { Module } from "vuex";
import { get } from "../api";
import { RootState, StaffState } from "./types";
export const StaffStore: Module<StaffState, RootState> = {

View file

@ -54,7 +54,8 @@ export interface ThinDocsPlugin {
}
export interface DocsPlugin extends ThinDocsPlugin {
commands: any[];
messageCommands: any[];
slashCommands: any[];
defaultOptions: any;
configSchema?: string;
info: {

View file

@ -3,6 +3,7 @@ const VueLoaderPlugin = require("vue-loader/lib/plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const DotenvPlugin = require("dotenv-webpack");
const merge = require("webpack-merge");
const webpack = require("webpack");
const targetDir = path.normalize(path.join(__dirname, "dist"));
@ -162,6 +163,8 @@ let config = {
},
};
if (process.env.NODE_ENV === "web") config.plugins.push(new webpack.EnvironmentPlugin(["NODE_ENV", "API_URL"]));
if (process.env.NODE_ENV === "production") {
config = merge(config, {
mode: "production",