Skip to content

Commit

Permalink
work in progress
Browse files Browse the repository at this point in the history
  • Loading branch information
datKaMa committed Nov 13, 2024
1 parent 8730075 commit b98e780
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 18 deletions.
3 changes: 3 additions & 0 deletions packages/clients/snowbox/src/mapConfiguration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,9 @@ export const mapConfiguration = {
},
},
routing: {
selectableTravelModes: ['Car', 'hdv', 'bike', 'walking', 'wheelchair'],
selectablePreferences: ['recommended', 'fastest', 'shortest'],
displayPreference: true,
url: 'https://sg.geodatenzentrum.de/web_ors/v2/',
},
}
69 changes: 57 additions & 12 deletions packages/plugins/Routing/src/components/Routing.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,28 @@
</v-text-field>
<v-text-field :label="$t('common:plugins.routing.endLabel')">
</v-text-field>
<v-actions>
<v-btn>{{ $t('common:plugins.routing.resetButton') }} </v-btn>
</v-actions>
<v-btn @click="resetCoordinates"
>{{ $t('common:plugins.routing.resetButton') }}
</v-btn>
<v-select
v-model="selectedTravelModeItem"
clearable
label="common:plugins.routing.modeLabel"
:items="$t('common:plugins.routing.travelMode')"
:label="$t('common:plugins.routing.modeLabel')"
:items="translatedTravelModes"
item-value="key"
item-text="translatedKey"
></v-select>
<v-select
v-model="selectedPreferenceItem"
clearable
label="common:plugins.routing.preferenceLabel"
:items="$t('common:plugins.routing.preference')"
:label="$t('common:plugins.routing.preferenceLabel')"
:items="
// mapping in template to guarantee update on language change
preferenceOptionsFromMapConfig.map(({ value, text }) => ({
value,
text: $t(text),
}))
"
></v-select>
<!--
//TODO: values definieren - wo?
Expand All @@ -43,7 +53,7 @@

<script lang="ts">
import Vue from 'vue'
import { mapGetters, mapActions } from 'vuex'
import { mapGetters, mapActions, mapMutations } from 'vuex'
export default Vue.extend({
name: 'RoutingPlugin',
Expand All @@ -52,23 +62,58 @@ export default Vue.extend({
}),
computed: {
...mapGetters(['hasSmallDisplay']),
...mapGetters('plugin/routing', ['renderType']),
...mapGetters('plugin/routing', [
'renderType',
'travelModeOptionsFromMapConfig',
'preferenceOptionsFromMapConfig',
'selectableTravelModes',
'selectablePreferences',
]),
selectedTravelModeItem: {
get(): string {
return this.selectedTravelMode
},
set(value: string): void {
this.setSelectedTravelMode(value)
},
},
selectedPreferenceItem: {
get(): string {
return this.selectedPreference
},
set(value: string): void {
this.setSelectedPreference(value)
},
},
translatedTravelModes() {
return this.selectableTravelModes.map((item) => ({
...item,
translatedText: this.$t(item.localKey),
}))
},
},
mounted() {
this.setupModule()
},
methods: {
...mapActions('plugin/routing', ['setupModule']),
...mapActions('plugin/routing', ['setupModule', 'resetCoordinates']),
...mapMutations('plugin/routing', [
'setSelectedTravelMode',
'setSelectedPreference',
'resetCoordinates',
]),
},
})
</script>

<style>
.polar-plugin-routing-wrapper {
.polar-routing-menu {
display: flex;
flex-direction: row;
flex-direction: column;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
padding-left: 20px;
padding-right: 5px;
}
</style>
3 changes: 3 additions & 0 deletions packages/plugins/Routing/src/store/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ const actions: PolarActionTree<RoutingState, RoutingGetters> = {
setupModule({ rootGetters: { configuration, map }, commit, getters }) {

Check warning on line 5 in packages/plugins/Routing/src/store/actions.ts

View workflow job for this annotation

GitHub Actions / lint

'map' is defined but never used

Check warning on line 5 in packages/plugins/Routing/src/store/actions.ts

View workflow job for this annotation

GitHub Actions / lint

'commit' is defined but never used

Check warning on line 5 in packages/plugins/Routing/src/store/actions.ts

View workflow job for this annotation

GitHub Actions / lint

'getters' is defined but never used
console.error(configuration)
},
resetCoordinates(commit) {
commit('setRoute', [0.0, 0.0])
},
}

// TODO: implementieren: updateTravelMode, updateDisplayPreferredRoute, updatePreferredRoute, updateRouteTypesToAvoid
Expand Down
22 changes: 22 additions & 0 deletions packages/plugins/Routing/src/store/getters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,28 @@ const getters = {
? rootGetters.configuration.routing.renderType
: 'independent'
},
selectedTravelMode({ selectedTravelMode }, { selectableTravelModes }) {
return selectedTravelMode || selectableTravelModes[0]
},
selectedPreference({ selectedPreference }, { selectablePreferences }) {
return selectedPreference || selectablePreferences[0]
},
travelModeOptionsFromMapConfig: (
_,
__,
___,
rootGetters
): string[] | undefined => {
return rootGetters.configuration?.routing?.selectableTravelModes
},
preferenceOptionsFromMapConfig: (
_,
__,
___,
rootGetters
): string[] | undefined => {
return rootGetters.configuration?.routing?.selectablePreferences
},
}

export default getters
17 changes: 14 additions & 3 deletions packages/plugins/Routing/src/store/state.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,20 @@ import { RoutingState } from '../types'

export const getInitialState = (): RoutingState => ({
route: [],
travelMode: '',
displayPreferredRoute: false,
preferredRoute: '',
selectedTravelMode: '',
selectableTravelModes: [
{ key: 'Car', localKey: 'common:plugins.routing.travelMode.car' },
{ key: 'hdv', localKey: 'common:plugins.routing.travelMode.hdv' },
{ key: 'bike', localKey: 'common:plugins.routing.travelMode.bike' },
{ key: 'walking', localKey: 'common:plugins.routing.travelMode.walking' },
{
key: 'wheelchair',
localKey: 'common:plugins.routing.travelMode.wheelchair',
},
],
displayPreference: false,
selectedPreference: '',
selectablePreferences: ['recommended', 'fastest', 'shortest'],
displayRouteTypesToAvoid: false,
serviceID: '',
numberOfKeysToTriggerSearch: 3,
Expand Down
12 changes: 9 additions & 3 deletions packages/plugins/Routing/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ export interface FeatureIndexZip {

export interface RoutingState {
route: string[]
travelMode: string
displayPreferredRoute: boolean
preferredRoute: string
selectedTravelMode: string
selectableTravelModes: []
displayPreference: boolean
selectedPreference: string
selectablePreferences: string[]
displayRouteTypesToAvoid: boolean
serviceID: string
numberOfKeysToTriggerSearch: number
Expand All @@ -29,6 +31,10 @@ export interface RoutingState {

export interface RoutingGetters extends RoutingState {
route: string[]
selectedTravelMode: string
selectedPreference: string
travelModeOptions: string[]
preferenceOptions: string[]
}

// TODO: entscheiden, ob ich das brauche
Expand Down

0 comments on commit b98e780

Please sign in to comment.