Skip to content
Snippets Groups Projects
Commit 905cae14 authored by LHOUTELLIER Mael's avatar LHOUTELLIER Mael
Browse files

Feature/requests

parent d850c85e
No related branches found
No related tags found
1 merge request!15Feature/requests
> 1%
last 2 versions
not dead
.env 0 → 100644
VUE_APP_URL_API_SKYPATTERN=http://localhost:8081
VUE_APP_URL_DOCUMENTATION=https://gitlab.imt-atlantique.fr/fila1_skypatterns_lga
VUE_APP_URL_SOURCES=https://gitlab.imt-atlantique.fr/fila1_skypatterns_lga
VUE_APP_URL_ABOUT=https://gitlab.imt-atlantique.fr/fila1_skypatterns_lga
\ No newline at end of file
module.exports = {
root: true,
env: {
node: true,
jest: true,
},
extends: ['plugin:vue/essential', '@vue/prettier'],
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'warn',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'warn',
'prefer-const': 2,
'no-var': 2,
},
parserOptions: {
parser: '@babel/eslint-parser',
},
}
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
Header set Access-Control-Allow-Origin '*'
Header set Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header set Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTION"
\ No newline at end of file
{
"trailingComma": "all",
"tabWidth": 2,
"semi": false,
"singleQuote": true,
"htmlWhitespaceSensitivity:": "ignore",
"printWidth": 200,
"endOfLine": "auto"
}
# WebApp Skypattern
# skypatterns
WebApp skypattern
\ No newline at end of file
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
module.exports = {
presets: ["@vue/cli-plugin-babel/preset"],
};
This diff is collapsed.
{
"name": "skypatterns",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.21.1",
"chart.js": "^2.9.4",
"core-js": "^3.6.5",
"dotenv": "^10.0.0",
"splitpanes": "^2.3.6",
"vue": "^2.6.11",
"vue-axios-cors": "^1.0.1",
"vue-chartjs": "^3.5.1",
"vue-router": "^3.2.0",
"vuetify": "^2.4.0",
"vuex": "^3.4.0"
},
"devDependencies": {
"@babel/core": "^7.14.3",
"@babel/eslint-parser": "^7.14.4",
"@typescript-eslint/eslint-plugin": "^4.18.0",
"@typescript-eslint/parser": "^4.18.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-typescript": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/eslint-config-typescript": "^7.0.0",
"eslint": "^6.8.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^6.2.2",
"prettier": "^2.2.1",
"sass": "^1.32.0",
"sass-loader": "^10.0.0",
"typescript": "~4.1.5",
"vue-cli-plugin-vuetify": "~2.4.0",
"vue-template-compiler": "^2.6.11",
"vuetify-loader": "^1.7.0"
}
}
public/favicon.ico

4.19 KiB

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
<template>
<v-app>
<TopBar />
<v-main>
<router-view />
</v-main>
<Footer />
</v-app>
</template>
<script lang="ts">
import Vue from 'vue'
import TopBar from '@/components/TopBar.vue'
import Footer from '@/components/Footer.vue'
export default Vue.extend({
name: 'App',
components: { TopBar, Footer },
})
</script>
src/assets/logo.png

6.69 KiB

<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 87.5 100"><defs><style>.cls-1{fill:#1697f6;}.cls-2{fill:#7bc6ff;}.cls-3{fill:#1867c0;}.cls-4{fill:#aeddff;}</style></defs><title>Artboard 46</title><polyline class="cls-1" points="43.75 0 23.31 0 43.75 48.32"/><polygon class="cls-2" points="43.75 62.5 43.75 100 0 14.58 22.92 14.58 43.75 62.5"/><polyline class="cls-3" points="43.75 0 64.19 0 43.75 48.32"/><polygon class="cls-4" points="64.58 14.58 87.5 14.58 43.75 100 43.75 62.5 64.58 14.58"/></svg>
.v-main {
padding-top: 25px !important;
}
<template>
<v-footer dark padless fixed height="50px">
<v-col text tile class="blue accent-3 white--text text-center"> {{ new Date().getFullYear() }} — IMT </v-col>
<v-btn text tile :href="sources" target="_blank"><v-icon>mdi-gitlab</v-icon></v-btn>
</v-footer>
</template>
<script>
export default {
name: 'Footer',
data() {
return {
sources: process.env.VUE_APP_URL_SOURCES,
}
},
}
</script>
<style lang="scss"></style>
<script>
import { Radar } from 'vue-chartjs'
export default {
extends: Radar,
props: {
labels: { type: Array, default: () => [] },
datasets: { type: Array, default: () => [{ label: '', data: [] }] },
},
data() {
return {
chartData: {
labels: this.labels,
datasets: this.datasets,
},
options: {
responsive: true,
maintainAspectRatio: true,
layout: {
padding: 20,
},
legend: { display: true },
scale: {
ticks: {
maxTicksLimit: 3,
display: true,
showLabelBackdrop: false,
},
},
elements: {
point: {
radius: 3,
borderWidth: 0,
},
line: {
borderWidth: 1,
borderColor: 'rgba(255, 255, 255, 0.1)',
spanGaps: true,
},
},
},
}
},
watch: {
datasets: function () {
this.$data._chart.destroy()
this.chartData = { labels: this.labels, datasets: this.datasets }
this.renderChart(this.chartData, this.options)
},
},
methods: {
Update() {
this.$data._chart.resize()
},
},
mounted() {
this.renderChart(this.chartData, this.options)
//console.log(this.$data._chart.options)
},
}
</script>
<template>
<div class="split-container">
<splitpanes class="default-theme" @resize="Resizing">
<pane :size="side">
<slot name="left"></slot>
</pane>
<pane>
<slot name="right"></slot>
</pane>
</splitpanes>
</div>
</template>
<script>
import { Splitpanes, Pane } from 'splitpanes'
import 'splitpanes/dist/splitpanes.css'
export default {
name: 'SplitPane',
components: { Splitpanes, Pane },
props: {
side: { type: Number, default: 50 },
onResize: { type: Function, default: () => {} },
},
methods: {
Resizing(event) {
this.paneSize = event[0].size
this.onResize()
},
},
}
</script>
<style lang="scss">
.split-container {
padding: 0px;
margin: 0px;
height: 100%;
}
</style>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment