Add frontend stub
This commit is contained in:
parent
038fbc43f1
commit
283863c390
15 changed files with 10407 additions and 5 deletions
|
@ -1,15 +1,13 @@
|
||||||
root = true
|
root = true
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
indent_style = tab
|
indent_style = space
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
|
||||||
[*.py]
|
|
||||||
max_line_length = 99
|
max_line_length = 99
|
||||||
|
|
||||||
[*.{yaml,yml,py}]
|
[*.json]
|
||||||
indent_style = space
|
indent_size = 2
|
||||||
|
|
0
maubot/management/api/__init__.py
Normal file
0
maubot/management/api/__init__.py
Normal file
70
maubot/management/frontend/.eslintrc.json
Normal file
70
maubot/management/frontend/.eslintrc.json
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
{
|
||||||
|
"extends": "react-app",
|
||||||
|
"plugins": [
|
||||||
|
"import"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"indent": ["error", 4, {
|
||||||
|
"ignoredNodes": [
|
||||||
|
"JSXAttribute",
|
||||||
|
"JSXSpreadAttribute"
|
||||||
|
],
|
||||||
|
"FunctionDeclaration": {"parameters": "first"},
|
||||||
|
"FunctionExpression": {"parameters": "first"},
|
||||||
|
"CallExpression": {"arguments": "first"},
|
||||||
|
"ArrayExpression": "first",
|
||||||
|
"ObjectExpression": "first",
|
||||||
|
"ImportDeclaration": "first"
|
||||||
|
}],
|
||||||
|
"react/jsx-indent-props": ["error", "first"],
|
||||||
|
"object-curly-newline": ["error", {
|
||||||
|
"consistent": true
|
||||||
|
}],
|
||||||
|
"object-curly-spacing": ["error", "always", {
|
||||||
|
"arraysInObjects": false,
|
||||||
|
"objectsInObjects": false
|
||||||
|
}],
|
||||||
|
"array-bracket-spacing": ["error", "never"],
|
||||||
|
"one-var": ["error", {
|
||||||
|
"initialized": "never",
|
||||||
|
"uninitialized": "always"
|
||||||
|
}],
|
||||||
|
"one-var-declaration-per-line": ["error", "initializations"],
|
||||||
|
"quotes": ["error", "double"],
|
||||||
|
"semi": ["error", "never"],
|
||||||
|
"comma-dangle": ["error", "always-multiline"],
|
||||||
|
"max-len": ["warn", 100],
|
||||||
|
"camelcase": ["error", {
|
||||||
|
"properties": "always"
|
||||||
|
}],
|
||||||
|
"space-before-function-paren": ["error", {
|
||||||
|
"anonymous": "never",
|
||||||
|
"named": "never",
|
||||||
|
"asyncArrow": "always"
|
||||||
|
}],
|
||||||
|
"func-style": ["warn", "declaration", {"allowArrowFunctions": true}],
|
||||||
|
"id-length": ["warn", {"max": 40, "exceptions": ["i", "j", "x", "y", "_"]}],
|
||||||
|
"arrow-body-style": ["error", "as-needed"],
|
||||||
|
"new-cap": ["warn", {
|
||||||
|
"newIsCap": true,
|
||||||
|
"capIsNew": true
|
||||||
|
}],
|
||||||
|
"no-empty": ["error", {
|
||||||
|
"allowEmptyCatch": true
|
||||||
|
}],
|
||||||
|
"eol-last": ["error", "always"],
|
||||||
|
"no-console": "off",
|
||||||
|
"import/no-nodejs-modules": "error",
|
||||||
|
"import/order": ["warn", {
|
||||||
|
"groups": [
|
||||||
|
"builtin",
|
||||||
|
"external",
|
||||||
|
"internal",
|
||||||
|
"parent",
|
||||||
|
"sibling",
|
||||||
|
"index"
|
||||||
|
],
|
||||||
|
"newlines-between": "never"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
5
maubot/management/frontend/.gitignore
vendored
Normal file
5
maubot/management/frontend/.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
/node_modules
|
||||||
|
/build
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
25
maubot/management/frontend/package.json
Normal file
25
maubot/management/frontend/package.json
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"name": "maubot-manager",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"node-sass": "^4.9.4",
|
||||||
|
"react": "^16.6.0",
|
||||||
|
"react-dom": "^16.6.0",
|
||||||
|
"react-scripts": "2.0.5"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "react-scripts start",
|
||||||
|
"build": "react-scripts build",
|
||||||
|
"test": "react-scripts test",
|
||||||
|
"eject": "react-scripts eject"
|
||||||
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"last 5 firefox versions",
|
||||||
|
"last 3 and_ff versions",
|
||||||
|
"last 5 chrome versions",
|
||||||
|
"last 3 and_chr versions",
|
||||||
|
"last 2 safari versions",
|
||||||
|
"last 2 ios_saf versions"
|
||||||
|
]
|
||||||
|
}
|
BIN
maubot/management/frontend/public/favicon.ico
Normal file
BIN
maubot/management/frontend/public/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
maubot/management/frontend/public/favicon.png
Normal file
BIN
maubot/management/frontend/public/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
34
maubot/management/frontend/public/index.html
Normal file
34
maubot/management/frontend/public/index.html
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<!--
|
||||||
|
maubot - A plugin-based Matrix bot system.
|
||||||
|
Copyright (C) 2018 Tulir Asokan
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="theme-color" content="#50D367">
|
||||||
|
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
|
||||||
|
<title>Maubot Manager</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<noscript>
|
||||||
|
You need to enable JavaScript to run this app.
|
||||||
|
</noscript>
|
||||||
|
<div id="root"></div>
|
||||||
|
</body>
|
||||||
|
</html>
|
15
maubot/management/frontend/public/manifest.json
Normal file
15
maubot/management/frontend/public/manifest.json
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"short_name": "Maubot",
|
||||||
|
"name": "Maubot Manager",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "favicon.ico",
|
||||||
|
"sizes": "64x64 48x48 32x32 24x24 16x16",
|
||||||
|
"type": "image/x-icon"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start_url": ".",
|
||||||
|
"display": "standalone",
|
||||||
|
"theme_color": "#50D367",
|
||||||
|
"background_color": "#FAFAFA"
|
||||||
|
}
|
33
maubot/management/frontend/src/MaubotManager.js
Normal file
33
maubot/management/frontend/src/MaubotManager.js
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
// maubot - A plugin-based Matrix bot system.
|
||||||
|
// Copyright (C) 2018 Tulir Asokan
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
import React, { Component } from "react"
|
||||||
|
|
||||||
|
class MaubotManager extends Component {
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className="maubot-manager">
|
||||||
|
<header>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default MaubotManager
|
21
maubot/management/frontend/src/index.js
Normal file
21
maubot/management/frontend/src/index.js
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
// maubot - A plugin-based Matrix bot system.
|
||||||
|
// Copyright (C) 2018 Tulir Asokan
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
import React from "react"
|
||||||
|
import ReactDOM from "react-dom"
|
||||||
|
import "./style/base"
|
||||||
|
import MaubotManager from "./MaubotManager"
|
||||||
|
|
||||||
|
ReactDOM.render(<MaubotManager/>, document.getElementById("root"))
|
53
maubot/management/frontend/src/style/base/body.sass
Normal file
53
maubot/management/frontend/src/style/base/body.sass
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
// maubot - A plugin-based Matrix bot system.
|
||||||
|
// Copyright (C) 2018 Tulir Asokan
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
body
|
||||||
|
font-family: $font-stack
|
||||||
|
margin: 0
|
||||||
|
padding: 0
|
||||||
|
font-size: 16px
|
||||||
|
background-color: $background-color
|
||||||
|
|
||||||
|
#root
|
||||||
|
position: fixed
|
||||||
|
top: 0
|
||||||
|
bottom: 0
|
||||||
|
right: 0
|
||||||
|
left: 0
|
||||||
|
|
||||||
|
//.lindeb
|
||||||
|
> header
|
||||||
|
position: absolute
|
||||||
|
top: 0
|
||||||
|
height: $header-height
|
||||||
|
left: 0
|
||||||
|
right: 0
|
||||||
|
|
||||||
|
> main
|
||||||
|
position: absolute
|
||||||
|
top: $header-height
|
||||||
|
bottom: 0
|
||||||
|
left: 0
|
||||||
|
right: 0
|
||||||
|
|
||||||
|
text-align: center
|
||||||
|
|
||||||
|
> .lindeb-content
|
||||||
|
text-align: left
|
||||||
|
display: inline-block
|
||||||
|
width: 100%
|
||||||
|
max-width: $max-width
|
||||||
|
box-sizing: border-box
|
||||||
|
padding: 0 1rem
|
28
maubot/management/frontend/src/style/base/vars.sass
Normal file
28
maubot/management/frontend/src/style/base/vars.sass
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
// maubot - A plugin-based Matrix bot system.
|
||||||
|
// Copyright (C) 2018 Tulir Asokan
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
$main-color: darken(#50D367, 10%)
|
||||||
|
$dark-color: darken($main-color, 10%)
|
||||||
|
$light-color: lighten($main-color, 10%)
|
||||||
|
$alt-color: darken(#47B9D7, 10%)
|
||||||
|
$dark-alt-color: darken($alt-color, 10%)
|
||||||
|
$border-color: #CCC
|
||||||
|
$error-color: #D35067
|
||||||
|
$text-color: #212121
|
||||||
|
$background-color: #FAFAFA
|
||||||
|
$inverted-text-color: $background-color
|
||||||
|
$font-stack: sans-serif
|
||||||
|
$max-width: 42.5rem
|
||||||
|
$header-height: 3.5rem
|
17
maubot/management/frontend/src/style/index.sass
Normal file
17
maubot/management/frontend/src/style/index.sass
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// maubot - A plugin-based Matrix bot system.
|
||||||
|
// Copyright (C) 2018 Tulir Asokan
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
@import base/vars
|
||||||
|
@import base/body
|
10103
maubot/management/frontend/yarn.lock
Normal file
10103
maubot/management/frontend/yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue