URL do pojma preko guid namesto naslova

popravki-prevodi-urednikovanje
Jurij Podgoršek 2024-07-11 11:47:49 +02:00
parent ae6ce0426b
commit 6b4cd9d784
5 changed files with 16 additions and 17 deletions

View File

@ -12,10 +12,10 @@ const route = useRoute()
const { izbraniJezik } = storeToRefs(nastavitveStore)
const props = defineProps({
naslov: String
pojemid: String
})
if (props.naslov && !(props.naslov in store.pojmi)) {
if (props.pojemid && !(props.pojemid in store.pojmi)) {
await store.naloziPojme(izbraniJezik.value)
}
@ -23,7 +23,7 @@ watch(izbraniJezik, jezik => {
store.naloziPojme(jezik)
})
const pojem = computed(() => store.pojmi[props.naslov])
const pojem = computed(() => store.pojmi[props.pojemid])
const revisionId = computed(() => pojem.value ? pojem.value.id : null)
const urejanje = ref(false)
@ -68,7 +68,7 @@ onUpdated(() => {
<div v-if="!urejanje" class="gumb" @click="urediPojem">{{ $t('Uredi')}}</div>
<div v-if="pojem" class="pojem">
<h2>
{{ naslov }}
{{ pojem.naslov }}
<StrojniPrevod v-if="pojem.strojni_prevod" />
</h2>
<div class="tekst" v-html="pojem.tekst" />

View File

@ -27,11 +27,11 @@ export default defineNuxtConfig({
'pages:extend' (pages) {
pages.push({
name: 'pojem_poglej',
path: '/manifest/:naslov',
path: '/manifest/:pojemid',
file: '~/pages/manifest/pojem.vue'
}, {
name: 'pojem_uredi',
path: '/manifest/:naslov/uredi/:guid',
path: '/manifest/:pojemid/uredi/:guid',
file: '~/pages/manifest/pojem.vue'
}, {
name: 'pojem_dodaj',

View File

@ -4,7 +4,6 @@ const store = usePojmiStore()
const nastavitveStore = useNastavitveStore()
const { poskrolaj } = useUi()
const { getRandomUUID } = useCrypto()
const { izbraniJezik } = storeToRefs(nastavitveStore)
@ -22,17 +21,17 @@ onMounted(() => {
<template>
<h3 class="navodila" ref="navodila">{{ $t('Vsak lahko prispeva k vsebinam manifesta. Predlaga lahko nov pojem ali ureja, dopolni ali predela obstoječe.') }}</h3>
<NuxtLink class="gumb" :to="localePath({ name: 'pojem_dodaj', params: { guid: getRandomUUID() }})">
<NuxtLink class="gumb" :to="localePath({ name: 'pojem_dodaj' })">
{{ $t('Dodaj nov pojem') }}
</NuxtLink>
<NuxtLink
v-for="pojem in Object.keys(store.pojmi)"
:naslov="pojem"
:to="localePath({ name: 'pojem_poglej', params: { naslov: pojem }})"
v-for="pojem in Object.values(store.pojmi)"
:naslov="pojem.naslov"
:to="localePath({ name: 'pojem_poglej', params: { pojemid: pojem.id }})"
class="okvir">
<h2>
{{ pojem }}
<StrojniPrevod v-if="store.pojmi[pojem].strojni_prevod" />
{{ pojem.naslov }}
<StrojniPrevod v-if="pojem.strojni_prevod" />
</h2>
</NuxtLink>
</template>

View File

@ -1,13 +1,13 @@
<script setup="setup">
const { etherpadApiUrl } = useEtherpadApi()
const { naslov } = useRoute().params
const { pojemid } = useRoute().params
</script>
<template>
<div class="okvir">
<Pojem :naslov="naslov" />
<Pojem :pojemid="pojemid" />
</div>
<NuxtLink class="gumb" :to="localePath('manifest') + '#skrol'">

View File

@ -13,7 +13,7 @@ export const usePojmiStore = defineStore('pojmi', {
tekst: s.body ? s.body.processed : '',
media: s.fieldMedia,
strojni_prevod: s.fieldStrojniPrevod
}), 'naslov')
}), 'id')
},
async ustvariPojem(data) {
@ -28,7 +28,7 @@ export const usePojmiStore = defineStore('pojmi', {
body: JSON.stringify(data)
})
const resp = await req.json()
return req
}
}
})