Dopolnitev prevodov, routing na guid

popravki-prevodi-urednikovanje
Jurij Podgoršek 2024-07-24 14:38:45 +02:00
parent 69e4e6bca2
commit 6a80ee7d13
10 changed files with 66 additions and 45 deletions

View File

@ -1,6 +1,7 @@
<script setup="setup">
import { ref } from 'vue'
const nastavitveStore = useNastavitveStore()
const { izbraniJezik } = storeToRefs(nastavitveStore)
const { etherpadUrl, etherpadPrefix } = useRuntimeConfig().public
@ -14,7 +15,7 @@ const embed = ref(null)
onMounted(() => {
// Ce ni revisionId propertyja, se random generira.
const uuid = props.revisionId ? props.revisionId : crypto.randomUUID()
const padUrl = `${etherpadUrl}/p/${etherpadPrefix}${uuid}?showChat=false&showLineNumbers=false&toc=false`
const padUrl = `${etherpadUrl}/p/${etherpadPrefix}${izbraniJezik.value}-${uuid}?showChat=false&showLineNumbers=false&toc=false`
embed.value.src = padUrl
})

View File

@ -11,6 +11,8 @@ const route = useRoute()
const { izbraniJezik } = storeToRefs(nastavitveStore)
const routeName = computed(() => route.name)
const props = defineProps({
pojemid: String
})
@ -20,6 +22,7 @@ if (props.pojemid && !(props.pojemid in store.pojmi)) {
}
watch(izbraniJezik, jezik => {
console.log('PONOVNO NALAGAM POJME!', jezik)
store.naloziPojme(jezik)
})
@ -34,7 +37,7 @@ const urediPojem = async () => {
// Ustvari pad s tekstom pojma, ce se ne obstaja
const tekstPojma = stripHtml(pojem.value.tekst).result
const resp = await etherFetch('/createPad', {
padID: revisionId.value,
padID: izbraniJezik.value + '-' + revisionId.value,
text: tekstPojma
})
urejanje.value = true
@ -46,12 +49,12 @@ onMounted(() => {
navigateTo(localePath('manifest') + '#skrol')
}
// Link na editiranje pojma? Poskrolaj nanj + odpri editiranje
if (route.params.guid === revisionId.value) {
urejanje.value = true
} else {
// Sicer samo poskrolaj na pojem
// Poskrolaj na pojem
poskrolaj(container.value.parentNode)
// Link na editiranje pojma? odpri editiranje
if (routeName.value.startsWith('pojem_uredi')) {
urediPojem()
}
})
@ -78,7 +81,7 @@ onUpdated(() => {
ref="obrazec"
:revisionId="revisionId"
:pojem="pojem"
:onZapri="() => { urejanje = false; store.naloziPojme() }" />
:onZapri="() => navigateTo(localePath({ name: 'pojem_poglej', params: { pojemid: revisionId }}))" />
</div>
</section>
</template>

View File

@ -1,8 +1,13 @@
<script setup="setup">
const { etherFetch } = useEtherpadApi()
const localePath = useLocalePath()
const { t } = useI18n()
const store = usePojmiStore()
const nastavitveStore = useNastavitveStore()
const izbraniJezik = computed(() => nastavitveStore.izbraniJezik)
const props = defineProps({
revisionId: String,
@ -16,43 +21,36 @@ let email = ref('')
const oddajPredlog = async data => {
// @TODO vsebina pada v tekst, testirat
if (!naslov.value) {
alert("Manjka naslov pojma!")
alert(t("Manjka naslov pojma!"))
return
}
const starNaslov = props.pojem.naslov
const resp = await etherFetch('/getText', { padID: props.revisionId })
const stvarjenje = store.ustvariPojem({
try {
const resp = await etherFetch('/getText', { padID: `${izbraniJezik.value}-${props.revisionId}` })
const stvarjenje = await store.ustvariPojem({
title: naslov.value,
email: email.value,
text: resp.data.text,
uuid: props.revisionId
})
console.log(stvarjenje)
alert("sprememba predlagana!")
stvarjenje.then(() => {
console.log('NOV NASLOV?', starNaslov, props.pojem.naslov)
if (starNaslov !== props.pojem.naslov) {
navigateTo(localePath({ name: 'pojem_poglej', params: { naslov: props.pojem.naslov }}))
}
uuid: props.revisionId,
language: izbraniJezik.value
})
alert(t("Sprememba predlagana!"))
props.onZapri()
} catch (error) {
alert(t('Napaka pri pošiljanju.'))
console.error(error)
}
}
// @TODO tole raje v pojmi.vue oz nov_pojem.vue - page!
const etherNalozen = ev => {
if (props.pojem.nov) {
navigateTo(localePath({ name: 'pojem_dodaj', params: { guid: revisionId }}), {
replace: true
})
navigateTo(localePath({ name: 'pojem_dodaj', params: { guid: revisionId }}))
} else {
navigateTo(localePath({ name: 'pojem_uredi', params: {
naslov: props.pojem.naslov,
guid: props.revisionId
}}), { replace: true })
pojemid: props.revisionId
}}))
}
//window.location.hash = props.revisionId
}

View File

@ -16,8 +16,13 @@ export const useUi = () => ({
poskrolaj: (sekcija, timeout = 50) => {
setTimeout(() => {
if (sekcija) {
console.log('skrolam na', sekcija)
const top = sekcija.getBoundingClientRect().top
getScrollParent(sekcija).scrollTo({ top, behavior: 'smooth' })
const parent = getScrollParent(sekcija)
if (parent && top > 0) {
console.log('scrolling to', top)
parent.scrollTo({ top })
}
}
}, timeout)
}

View File

@ -7,5 +7,9 @@
"Dodaj nov pojem": "Neues konzept hinzufügen",
"Uredi": "Bearbeiten",
"Predlagaj": "Vorschlag",
"Zapri": "Schließen"
"Zapri": "Schließen",
"Sprememba predlagana!": "Änderung vorgeschlagen!",
"Napaka pri pošiljanju.": "Fehler beim Senden von Vorschlägen.",
"Manjka naslov pojma!": "Der Titel des Konzepts fehlt!",
"strojni prevod": "übersetzung der maschine"
}

View File

@ -6,6 +6,10 @@
"Vsak lahko prispeva k vsebinam manifesta. Predlaga lahko nov pojem ali ureja, dopolni ali predela obstoječe.": "Anyone can add content to the manifesto. You can suggest a new concept or edit, amend or adjust an existing one.",
"Dodaj nov pojem": "Add new concept",
"Uredi": "Edit",
"Predlagaj": "Suggest",
"Zapri": "Close"
"Predlagaj": "Propose",
"Zapri": "Close",
"Sprememba predlagana!": "Change proposed!",
"Napaka pri pošiljanju.": "Error sending proposition.",
"Manjka naslov pojma!": "Concept title missing!",
"strojni prevod": "machine translation"
}

View File

@ -7,5 +7,9 @@
"Dodaj nov pojem": "Añadir nuevo concepto",
"Uredi": "Editar",
"Predlagaj": "Sugerencias",
"Zapri": "Cerca"
"Zapri": "Cerca",
"Sprememba predlagana!": "¡Cambio propuesto!",
"Napaka pri pošiljanju.": "Proposición de envío de errores.",
"Manjka naslov pojma!": "¡El título del concepto está desaparecido!",
"strojni prevod": "traducción automática"
}

View File

@ -5,5 +5,8 @@
"Vsak lahko prispeva k vsebinam manifesta. Predlaga lahko nov pojem ali ureja, dopolni ali predela obstoječe.": "Svatko može pridonijeti sadržaju manifesta. Predložiti može novi koncept ili urediti, dopuniti ili revidirati postojeće koncepte.",
"Dodaj nov pojem": "Dodajte novi koncept",
"Zapri": "Zatvori",
"Predlagaj": "Predloži"
"Predlagaj": "Predloži",
"Sprememba predlagana!": "Promjena predložena!",
"Napaka pri pošiljanju.": "Greška u slanju predloga.",
"Manjka naslov pojma!": "Naslov koncepta nedostaje!"
}

View File

@ -31,11 +31,11 @@ export default defineNuxtConfig({
file: '~/pages/manifest/pojem.vue'
}, {
name: 'pojem_uredi',
path: '/manifest/:pojemid/uredi/:guid',
path: '/manifest/:pojemid/uredi',
file: '~/pages/manifest/pojem.vue'
}, {
name: 'pojem_dodaj',
path: '/manifest/dodaj/:guid',
path: '/manifest/dodaj/:guid?',
file: '~/pages/manifest/dodaj.vue'
})
}

View File

@ -1,6 +1,5 @@
<script setup="setup">
const { etherpadApiUrl } = useEtherpadApi()
const { pojemid } = useRoute().params
</script>