Skip to content

Commit 2dbe1b8

Browse files
committed
URL from .env file
fix of issue with saving host templating of select host / picker.
1 parent 4e4f0cf commit 2dbe1b8

12 files changed

Lines changed: 255 additions & 44 deletions

File tree

.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
HELLO="hello world!"
2+
API="http://localhost:5000"

package-lock.json

Lines changed: 84 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@
5151
"@vue/vue3-jest": "^27.0.0-alpha.1",
5252
"babel-jest": "^27.0.6",
5353
"cypress": "^8.7.0",
54+
"dotenv": "^16.0.3",
55+
"dotenv-webpack": "^8.0.1",
5456
"eslint": "^7.32.0",
5557
"eslint-config-prettier": "^8.3.0",
5658
"eslint-plugin-prettier": "^4.0.0",

src/models/ApplicationState.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { Model } from 'pinia-orm'
2+
export default class ApplicationState extends Model {
3+
static entity = 'applicationState';
4+
static primaryKey = 'key';
5+
static fields() {
6+
return {
7+
key: this.string(''),
8+
value: this.string('')
9+
}
10+
}
11+
}

src/models/Host.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { Model } from 'pinia-orm'
1+
import { Model, useRepo } from 'pinia-orm'
2+
import ApplicationState from '@/models/ApplicationState';
23
import LinksType from '@/models/LinksType';
34
import FacilityType from '@/models/FacilityType';
45
import WmoRegion from '@/models/WmoRegion';
@@ -42,16 +43,16 @@ export default class Host extends Model {
4243
};
4344
};
4445
static saving (model) {
45-
console.log("saving host")
46-
console.log(model.id)
4746
};
4847
static saved (model) {
49-
// check whether we need to save to the database
50-
if( model._version === 1 && model._status_id === "tag:beta.opencdms.org,2023:/vocab/status/draft"){ // todo
48+
};
49+
static creating(model) {
50+
if( useRepo(ApplicationState).where('key','databaseReady').first() ){
5151
var to_save = to_geojson([model]);
52+
// update status
5253
to_save.map( (obj) => {
5354
var payload = JSON.stringify(obj);
54-
var url_ = "http://localhost:5000/collections/stations/items"
55+
var url_ = process.env.API + "/collections/stations/items"
5556
// PUT for update
5657
fetch(url_, {method:'OPTIONS'}).then( (response) => {console.log(response)});
5758
fetch(url_, {
@@ -66,10 +67,6 @@ export default class Host extends Model {
6667
});
6768
};
6869
};
69-
static creating(model) {
70-
console.log("creating host")
71-
console.log(model.id)
72-
};
7370
static created(model) {
7471
};
7572
static deleting(model) {};
@@ -81,7 +78,7 @@ export default class Host extends Model {
8178
console.log( to_save );
8279
to_save.map( (obj) => {
8380
var payload = JSON.stringify(obj);
84-
var url_ = "http://localhost:5000/collections/stations/items/" + obj.id
81+
var url_ = process.env.API + "/collections/stations/items/" + obj.id
8582
// PUT for update
8683
fetch(url_, {method:'OPTIONS'}).then( (response) => {console.log(response)});
8784
fetch(url_, {

src/router/index.js

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {loadData} from '@/utils/load-data.js';
66

77
// import models for pinia-orm
88
import {useRepo} from 'pinia-orm';
9+
import ApplicationState from '@/models/ApplicationState';
910
// referencee data
1011
import ClimateZone from '@/models/ClimateZone';
1112
import ControlSchedule from '@/models/ControlSchedule';
@@ -48,31 +49,32 @@ const router = createRouter({
4849
})
4950

5051
router.beforeEach( async () => {
51-
if( useRepo(ClimateZone).all().length === 0){await loadData('http://localhost:5000/vocabularies/climate_zone/items?f=csv', true).then( (result) => { useRepo(ClimateZone).save(result) })};
52-
if( useRepo(ControlSchedule).all().length === 0){await loadData('/data/reference-data/control_schedule.psv').then( (result) => { useRepo(ControlSchedule).save(result) })};
53-
if( useRepo(Exposure).all().length === 0){await loadData('http://localhost:5000/vocabularies/exposure/items?f=csv', true).then( (result) => { useRepo(Exposure).save(result) })};
54-
if( useRepo(FacilityType).all().length === 0){await loadData('http://localhost:5000/vocabularies/facility_type/items?f=csv', true).then( (result) => { useRepo(FacilityType).save(result) })};
55-
if( useRepo(FeatureType).all().length === 0){await loadData('http://localhost:5000/vocabularies/feature_type/items?f=csv', true).then( (result) => { useRepo(FeatureType).save(result) })};
56-
if( useRepo(MaintenanceSchedule).all().length === 0){await loadData('/data/reference-data/maintenance_schedule.psv').then( (result) => { useRepo(MaintenanceSchedule).save(result) })};
57-
if( useRepo(MediaType).all().length === 0){await loadData('http://localhost:5000/vocabularies/media_type/items?f=csv', true).then( (result) => { useRepo(MediaType).save(result) })};
58-
if( useRepo(ObservationType).all().length === 0){await loadData('http://localhost:5000/vocabularies/observation_type/items?f=csv', true).then( (result) => { useRepo(ObservationType).save(result) })};
59-
if( useRepo(ObservedProperty).all().length === 0){await loadData('http://localhost:5000/vocabularies/observed_property/items?f=csv', true).then( (result) => { useRepo(ObservedProperty).save(result) })};
60-
if( useRepo(ObservingMethod).all().length === 0){await loadData('http://localhost:5000/vocabularies/observing_method/items?f=csv', true).then( (result) => { useRepo(ObservingMethod).save(result) })};
61-
if( useRepo(ObservingProcedure).all().length === 0){await loadData('http://localhost:5000/vocabularies/observing_procedure/items?f=csv', true).then( (result) => { useRepo(ObservingProcedure).save(result) })};
62-
if( useRepo(Programme).all().length === 0){await loadData('http://localhost:5000/vocabularies/programme/items?f=csv', true).then( (result) => { useRepo(Programme).save(result) })};
63-
if( useRepo(ReferenceSurface).all().length === 0){await loadData('http://localhost:5000/vocabularies/reference_surface/items?f=csv', true).then( (result) => { useRepo(ReferenceSurface).save(result) })};
64-
if( useRepo(Season).all().length === 0){await loadData('http://localhost:5000/vocabularies/season/items?f=csv', true).then( (result) => { useRepo(Season).save(result) })};
65-
if( useRepo(SourceType).all().length === 0){await loadData('http://localhost:5000/vocabularies/source_type/items?f=csv', true).then( (result) => { useRepo(SourceType).save(result) })};
66-
if( useRepo(Status).all().length === 0){await loadData('http://localhost:5000/vocabularies/status/items?f=csv', true).then( (result) => { useRepo(Status).save(result) })};
67-
if( useRepo(SurfaceCover).all().length === 0){await loadData('http://localhost:5000/vocabularies/surface_cover/items?f=csv', true).then( (result) => { useRepo(SurfaceCover).save(result) })};
68-
if( useRepo(SurfaceRoughness).all().length === 0){await loadData('http://localhost:5000/vocabularies/surface_roughness/items?f=csv', true).then( (result) => { useRepo(SurfaceRoughness).save(result) })};
69-
if( useRepo(Territory).all().length === 0){await loadData('http://localhost:5000/vocabularies/territory/items?f=csv', true).then( (result) => { useRepo(Territory).save(result) })};
70-
if( useRepo(TimeZone).all().length === 0){await loadData('http://localhost:5000/vocabularies/time_zone/items?f=csv', true).then( (result) => { useRepo(TimeZone).save(result) })};
71-
if( useRepo(Topography).all().length === 0){await loadData('http://localhost:5000/vocabularies/topography/items?f=csv', true).then( (result) => { useRepo(Topography).save(result) })};
72-
if( useRepo(WmoRegion).all().length === 0){await loadData('http://localhost:5000/vocabularies/wmo_region/items?f=csv', true).then( (result) => { useRepo(WmoRegion).save(result) })};
73-
if( useRepo(User).all().length === 0){await loadData('http://localhost:5000/vocabularies/user/items?f=csv', true).then( (result) => { useRepo(User).save(result) })};
74-
if( useRepo(Host).all().length === 0){await loadData('http://localhost:5000/collections/stations/items?f=json', true).then( (result) => flatten_geojson(result.features) ).then( (result) => { useRepo(Host).save(result) })};
75-
if( useRepo(Feature).all().length === 0){await loadData('/data/features.psv').then( (result) => { useRepo(Feature).save(result) })};
52+
if( useRepo(ClimateZone).all().length === 0){await loadData(process.env.API + '/vocabularies/climate_zone/items?f=csv', true).then( (result) => { useRepo(ClimateZone).save(result) })};
53+
if( useRepo(ControlSchedule).all().length === 0){await loadData('/data/reference-data/control_schedule.psv').then( (result) => { useRepo(ControlSchedule).save(result) })}; // TODO
54+
if( useRepo(Exposure).all().length === 0){await loadData(process.env.API + '/vocabularies/exposure/items?f=csv', true).then( (result) => { useRepo(Exposure).save(result) })};
55+
if( useRepo(FacilityType).all().length === 0){await loadData(process.env.API + '/vocabularies/facility_type/items?f=csv', true).then( (result) => { useRepo(FacilityType).save(result) })};
56+
if( useRepo(FeatureType).all().length === 0){await loadData(process.env.API + '/vocabularies/feature_type/items?f=csv', true).then( (result) => { useRepo(FeatureType).save(result) })};
57+
if( useRepo(MaintenanceSchedule).all().length === 0){await loadData('/data/reference-data/maintenance_schedule.psv').then( (result) => { useRepo(MaintenanceSchedule).save(result) })}; // TODO
58+
if( useRepo(MediaType).all().length === 0){await loadData(process.env.API + '/vocabularies/media_type/items?f=csv', true).then( (result) => { useRepo(MediaType).save(result) })};
59+
if( useRepo(ObservationType).all().length === 0){await loadData(process.env.API + '/vocabularies/observation_type/items?f=csv', true).then( (result) => { useRepo(ObservationType).save(result) })};
60+
if( useRepo(ObservedProperty).all().length === 0){await loadData(process.env.API + '/vocabularies/observed_property/items?f=csv', true).then( (result) => { useRepo(ObservedProperty).save(result) })};
61+
if( useRepo(ObservingMethod).all().length === 0){await loadData(process.env.API + '/vocabularies/observing_method/items?f=csv', true).then( (result) => { useRepo(ObservingMethod).save(result) })};
62+
if( useRepo(ObservingProcedure).all().length === 0){await loadData(process.env.API + '/vocabularies/observing_procedure/items?f=csv', true).then( (result) => { useRepo(ObservingProcedure).save(result) })};
63+
if( useRepo(Programme).all().length === 0){await loadData(process.env.API + '/vocabularies/programme/items?f=csv', true).then( (result) => { useRepo(Programme).save(result) })};
64+
if( useRepo(ReferenceSurface).all().length === 0){await loadData(process.env.API + '/vocabularies/reference_surface/items?f=csv', true).then( (result) => { useRepo(ReferenceSurface).save(result) })};
65+
if( useRepo(Season).all().length === 0){await loadData(process.env.API + '/vocabularies/season/items?f=csv', true).then( (result) => { useRepo(Season).save(result) })};
66+
if( useRepo(SourceType).all().length === 0){await loadData(process.env.API + '/vocabularies/source_type/items?f=csv', true).then( (result) => { useRepo(SourceType).save(result) })};
67+
if( useRepo(Status).all().length === 0){await loadData(process.env.API + '/vocabularies/status/items?f=csv', true).then( (result) => { useRepo(Status).save(result) })};
68+
if( useRepo(SurfaceCover).all().length === 0){await loadData(process.env.API + '/vocabularies/surface_cover/items?f=csv', true).then( (result) => { useRepo(SurfaceCover).save(result) })};
69+
if( useRepo(SurfaceRoughness).all().length === 0){await loadData(process.env.API + '/vocabularies/surface_roughness/items?f=csv', true).then( (result) => { useRepo(SurfaceRoughness).save(result) })};
70+
if( useRepo(Territory).all().length === 0){await loadData(process.env.API + '/vocabularies/territory/items?f=csv', true).then( (result) => { useRepo(Territory).save(result) })};
71+
if( useRepo(TimeZone).all().length === 0){await loadData(process.env.API + '/vocabularies/time_zone/items?f=csv', true).then( (result) => { useRepo(TimeZone).save(result) })};
72+
if( useRepo(Topography).all().length === 0){await loadData(process.env.API + '/vocabularies/topography/items?f=csv', true).then( (result) => { useRepo(Topography).save(result) })};
73+
if( useRepo(WmoRegion).all().length === 0){await loadData(process.env.API + '/vocabularies/wmo_region/items?f=csv', true).then( (result) => { useRepo(WmoRegion).save(result) })};
74+
if( useRepo(User).all().length === 0){await loadData(process.env.API + '/vocabularies/user/items?f=csv', true).then( (result) => { useRepo(User).save(result) })};
75+
if( useRepo(Host).all().length === 0){await loadData(process.env.API + '/collections/stations/items?f=json', true).then( (result) => flatten_geojson(result.features) ).then( (result) => { useRepo(Host).save(result) })};
76+
if( useRepo(Feature).all().length === 0){await loadData('/data/features.psv').then( (result) => { useRepo(Feature).save(result) })}; // TODO
77+
useRepo(ApplicationState).save({ 'key': 'databaseReady', 'value': 'ready'})
7678
});
7779

7880
export default router

src/router/routes.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,11 @@ const routes = [
415415
name: 'test-geom',
416416
component: () => import(/* webpackChunkName: "dashboard" */ '@/views/map-picker-test.vue'),
417417
},
418+
{
419+
path: '/tests/select-host',
420+
name: 'test-select',
421+
component: () => import(/* webpackChunkName: "dashboard" */ '@/views/experimental/select-host.vue'),
422+
},
418423
{
419424
path: '/forms/deployment-media/create',
420425
name: 'deployment-media-form',
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<template>
2+
<v-container>
3+
<v-row>
4+
<select-host/>
5+
<select-observed-property/>
6+
<VueDatePicker range/>
7+
</v-row>
8+
<v-row>
9+
<v-card v-if='obsLoaded'>
10+
<v-card-title>Example line plot</v-card-title>
11+
<v-card-item><Line :data="chartData"/></v-card-item>
12+
</v-card>
13+
</v-row>
14+
</v-container>
15+
</template>
16+
17+
<script>
18+
import SelectHost from '@/web-components/pickers/select-host.vue';
19+
import SelectObservedProperty from '@/web-components/pickers/select-observed-property.vue';
20+
import SelectDate from '@/web-components/pickers/date-picker.vue';
21+
22+
import {VContainer, VRow} from 'vuetify/lib/components';
23+
24+
import {ref} from 'vue';
25+
26+
import VueDatePicker from '@vuepic/vue-datepicker';
27+
import '@vuepic/vue-datepicker/dist/main.css'
28+
29+
30+
export default {
31+
name: '',
32+
components: {
33+
SelectHost,
34+
SelectObservedProperty,
35+
SelectDate, VueDatePicker,
36+
VContainer, VRow
37+
},
38+
setup() {
39+
const date = ref();
40+
return {
41+
date
42+
}
43+
}
44+
};
45+
</script>

0 commit comments

Comments
 (0)