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"> <script setup="setup">
import { ref } from 'vue' const nastavitveStore = useNastavitveStore()
const { izbraniJezik } = storeToRefs(nastavitveStore)
const { etherpadUrl, etherpadPrefix } = useRuntimeConfig().public const { etherpadUrl, etherpadPrefix } = useRuntimeConfig().public
@ -14,7 +15,7 @@ const embed = ref(null)
onMounted(() => { onMounted(() => {
// Ce ni revisionId propertyja, se random generira. // Ce ni revisionId propertyja, se random generira.
const uuid = props.revisionId ? props.revisionId : crypto.randomUUID() 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 embed.value.src = padUrl
}) })

View File

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

View File

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

View File

@ -16,8 +16,13 @@ export const useUi = () => ({
poskrolaj: (sekcija, timeout = 50) => { poskrolaj: (sekcija, timeout = 50) => {
setTimeout(() => { setTimeout(() => {
if (sekcija) { if (sekcija) {
console.log('skrolam na', sekcija)
const top = sekcija.getBoundingClientRect().top 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) }, timeout)
} }

View File

@ -7,5 +7,9 @@
"Dodaj nov pojem": "Neues konzept hinzufügen", "Dodaj nov pojem": "Neues konzept hinzufügen",
"Uredi": "Bearbeiten", "Uredi": "Bearbeiten",
"Predlagaj": "Vorschlag", "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.", "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", "Dodaj nov pojem": "Add new concept",
"Uredi": "Edit", "Uredi": "Edit",
"Predlagaj": "Suggest", "Predlagaj": "Propose",
"Zapri": "Close" "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", "Dodaj nov pojem": "Añadir nuevo concepto",
"Uredi": "Editar", "Uredi": "Editar",
"Predlagaj": "Sugerencias", "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.", "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", "Dodaj nov pojem": "Dodajte novi koncept",
"Zapri": "Zatvori", "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' file: '~/pages/manifest/pojem.vue'
}, { }, {
name: 'pojem_uredi', name: 'pojem_uredi',
path: '/manifest/:pojemid/uredi/:guid', path: '/manifest/:pojemid/uredi',
file: '~/pages/manifest/pojem.vue' file: '~/pages/manifest/pojem.vue'
}, { }, {
name: 'pojem_dodaj', name: 'pojem_dodaj',
path: '/manifest/dodaj/:guid', path: '/manifest/dodaj/:guid?',
file: '~/pages/manifest/dodaj.vue' file: '~/pages/manifest/dodaj.vue'
}) })
} }

View File

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