Skip to content
Snippets Groups Projects
Verified Commit 79769de3 authored by BARBIER Marc's avatar BARBIER Marc
Browse files

added normalize support

parent d391fde5
No related branches found
No related tags found
No related merge requests found
/* eslint-env node */ /* eslint-env node */
require("@rushstack/eslint-patch/modern-module-resolution"); require("@rushstack/eslint-patch/modern-module-resolution")
module.exports = { module.exports = {
"root": true, "root": true,
"parser": "@typescript-eslint/parser",
"extends": [ "extends": [
"plugin:vue/vue3-essential", "plugin:vue/vue3-essential",
"eslint:recommended", "eslint:recommended",
"@vue/eslint-config-typescript/recommended" "@vue/eslint-config-typescript/recommended",
"plugin:vue/recommended"
], ],
"env": { "env": {
"vue/setup-compiler-macros": true "vue/setup-compiler-macros": true
...@@ -15,7 +17,8 @@ module.exports = { ...@@ -15,7 +17,8 @@ module.exports = {
"rules": { "rules": {
"indent": ["error", "tab", { "SwitchCase": 1 }], "indent": ["error", "tab", { "SwitchCase": 1 }],
"no-mixed-spaces-and-tabs": "error", "no-mixed-spaces-and-tabs": "error",
"vue/multi-word-component-names": ["error", { "ignores": [ "Login", "Index" ] }] "vue/multi-word-component-names": ["error", { "ignores": [ "Login", "Index" ] }],
"semi": ["error", "never"],
}, },
"ignorePatterns": [ "public/js/bootstrap.*" ] "ignorePatterns": [ "public/js/bootstrap.*" ]
......
...@@ -20,6 +20,7 @@ export default defineComponent({ ...@@ -20,6 +20,7 @@ export default defineComponent({
PAAValues: null as string[] | null, PAAValues: null as string[] | null,
PAAwindow: null as number | null, PAAwindow: null as number | null,
discretizedColumns: null as string[] | null, discretizedColumns: null as string[] | null,
selectedNormalizeColumns: [] as string[],
bins: null as number | null, bins: null as number | null,
useDensity: false, useDensity: false,
columns: [] as string[], columns: [] as string[],
...@@ -93,6 +94,7 @@ export default defineComponent({ ...@@ -93,6 +94,7 @@ export default defineComponent({
form.append('id', ''+localStorage.getItem('datasetId')) form.append('id', ''+localStorage.getItem('datasetId'))
await fetch('http://localhost:8080/rest/transform/make-windows', { method: 'POST', body: form }) await fetch('http://localhost:8080/rest/transform/make-windows', { method: 'POST', body: form })
await switchToNewestProject(this) await switchToNewestProject(this)
localStorage.setItem('hasWindows', 'true')
}, },
async runSQL(e: Event) { async runSQL(e: Event) {
...@@ -102,6 +104,17 @@ export default defineComponent({ ...@@ -102,6 +104,17 @@ export default defineComponent({
form.append('id', '' + localStorage.getItem('datasetId')) form.append('id', '' + localStorage.getItem('datasetId'))
await fetch('http://localhost:8080/rest/transform/run-sql-query', { method: 'POST', body: form }) await fetch('http://localhost:8080/rest/transform/run-sql-query', { method: 'POST', body: form })
await switchToNewestProject(this) await switchToNewestProject(this)
},
async normalize(e: Event) {
e.preventDefault()
//@ts-expect-error the target is a form
const form = new FormData(e.target)
form.append('id', '' + localStorage.getItem('datasetId'))
form.append('columns', this.selectedNormalizeColumns.join(','))
form.append('transforms', 'normalize')
await fetch('http://localhost:8080/rest/transform/transform-columns/', { method: 'POST', body: form })
await switchToNewestProject(this)
} }
}, },
}) })
...@@ -179,9 +179,24 @@ ...@@ -179,9 +179,24 @@
<div id="collapseExtra" class="accordion-collapse collapse show" aria-labelledby="headingOne"> <div id="collapseExtra" class="accordion-collapse collapse show" aria-labelledby="headingOne">
<div class="accordion-body"> <div class="accordion-body">
<form @submit="runSQL"> <form @submit="runSQL">
<label>SQL</label>
<textarea type="text" name="query" class="form-control" rows="3" :value="`SELECT ${columns.join(', ')} <textarea type="text" name="query" class="form-control" rows="3" :value="`SELECT ${columns.join(', ')}
FROM file FROM file
ORDER BY step`"></textarea> ORDER BY step`"></textarea>
<br>
<input type="submit" class="btn btn-primary" value="Run">
</form>
<hr>
<form @submit="normalize">
<label>normalize</label>
<Multiselect
mode="tags"
v-model="selectedNormalizeColumns"
:options="columns"
/>
<br>
<input type="submit" class="btn btn-primary" value="Run"> <input type="submit" class="btn btn-primary" value="Run">
</form> </form>
</div> </div>
......
...@@ -12,6 +12,10 @@ export default defineComponent({ ...@@ -12,6 +12,10 @@ export default defineComponent({
computed: { computed: {
isDatasetSelected() { isDatasetSelected() {
return localStorage.getItem('datasetId') !== null return localStorage.getItem('datasetId') !== null
} },
hasWindows() {
return localStorage.getItem('hasWindows') === 'true'
},
}, },
}) })
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
</div> </div>
<div class="container-fluid"> <div class="container-fluid">
<ul class="navbar-nav mr-auto"> <ul class="navbar-nav mr-auto">
<!-- set the right one active automagically -->
<li class="nav-item"> <li class="nav-item">
<router-link v-if="$route.fullPath === '/'" class="nav-link active" to="/">Datasets</router-link> <router-link v-if="$route.fullPath === '/'" class="nav-link active" to="/">Datasets</router-link>
<router-link v-else class="nav-link" to="/">Datasets</router-link> <router-link v-else class="nav-link" to="/">Datasets</router-link>
...@@ -24,7 +23,7 @@ ...@@ -24,7 +23,7 @@
</li> </li>
<li class="nav-item"> <li class="nav-item">
<router-link v-if="$route.fullPath === '/mine'" class="nav-link active" to="/mine">Data Mining</router-link> <router-link v-if="$route.fullPath === '/mine'" class="nav-link active" to="/mine">Data Mining</router-link>
<router-link v-else-if="isDatasetSelected" class="nav-link" to="/mine">Data Mining</router-link> <router-link v-else-if="isDatasetSelected && hasWindows" class="nav-link" to="/mine">Data Mining</router-link>
<router-link v-else class="nav-link disabled" to="/mine">Data Mining</router-link> <router-link v-else class="nav-link disabled" to="/mine">Data Mining</router-link>
</li> </li>
<li class="nav-item"> <li class="nav-item">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment