Fix most glaring bugs and vulnerabilities

This commit is contained in:
Luka Romih
2023-05-08 23:25:25 +02:00
parent 9867875ef2
commit d0e53fee3b
144 changed files with 2231 additions and 2981 deletions
@@ -7,7 +7,7 @@ mixin sideNavigation(metaData)
src="/images/burger-menu-button-icon.svg"
alt="Meni"
)
span#nav-title.nav-title= 'Svetovalnica'
span#nav-title.nav-title= t('Svetovalnica')
#mobile-right-holder
nav
ul.admin-nav-content.slidable.z-20.scroller-style
@@ -70,7 +70,7 @@
type="checkbox"
)
label.ps-2.align-middle.rememberloginlabel.text-header-description-gray.pe-2(
for="login-remember-me"
for="login-remember"
)= t('Zapomni si prijavo')
.col-5.pt-2.d-flex-and-align-end.pe-0
a#forgotten-password.ms-auto.forgotten-password.gray1-text.no-text-decoration.align-middle(
@@ -58,18 +58,18 @@ mixin main-navigation-right(languageToolbarPresent=false, menuTextPresent=false,
a.dropdown-item.ps-0.pb-2.navigation-text-color(
href="/nastavitve-racuna"
)
.row
.col-3
img(src="/images/cog.svg" alt="")
.col-9
.d-flex.flex-row
.d-flex.flex-shrink-1.flex-grow-0
img.pe-2(src="/images/cog.svg" alt="")
.d-flex.flex-grow-1
span.text-header-description-gray.d-block= t('Nastavitve')
li.pb-0.mb-0.ps-3
form(action="/users/logout" method="post")
button.profile-menu-button
.row
.col-3
img(src="/images/log-out.svg" alt="")
.col-9
button.profile-menu-button.pb-2.pt-1
.d-flex.flex-row
.d-flex.flex-shrink-1.flex-grow-0
img.pe-2(src="/images/log-out.svg" alt="")
.d-flex.flex-grow-1
span.text-header-description-gray.d-block= t('Odjava')
else
button#login-static-backdrop-button.col-sm.nav-entry.no-border.no-bg(
@@ -15,7 +15,7 @@ mixin consultancySM(adminFields=false)
)
//- option.d-none(value="-1")= ' '
each domain in allPrimaryDomains
option(value=domain.id selected=domain.selected) #{ domain.nameSl }
option(value=domain.id selected=domain.selected)= domain.name
span.advanced-input-label
//- span.advanced-input-label Področje
//- img#area-img(src="/images/chevron-down-darker.svg" alt="")
@@ -23,7 +23,7 @@
//- input#src-lang-input.box-sizing-content.bg-transparent
select#src-lang-select.select-src-lang-field(multiple="multiple")
each language in sourceLanguages
option(value=language.id selected=language.selected) #{ language.nameSl }
option(value=language.id selected=language.selected)= language.name
span.advanced-input-label
//- span.advanced-input-label Jezik iskanja
//- img#src-lang-img(src="/images/chevron-down-darker.svg" alt="")
@@ -35,7 +35,7 @@
//- input#dest-lang-input.box-sizing-content.bg-transparent
select#dest-lang-select.select-dest-lang-field(multiple="multiple")
each language in targetLanguages
option(value=language.id selected=language.selected) #{ language.nameSl }
option(value=language.id selected=language.selected)= language.name
span.advanced-input-label
//- span.advanced-input-label Ciljni jezik
//- img#dest-lang-img(src="/images/chevron-down-darker.svg" alt="")
@@ -62,7 +62,7 @@
multiple="multiple"
)
each domain in allPrimaryDomains
option(value=domain.id selected=domain.selected) #{ domain.nameSl }
option(value=domain.id selected=domain.selected)= domain.name
span.advanced-input-label
//- span.advanced-input-label Področje
//- img#area-img(src="/images/chevron-down-darker.svg" alt="")
@@ -78,7 +78,7 @@
multiple="multiple"
)
each dictionary in allDictionaryNames
option(value=dictionary.id selected=dictionary.selected) #{ dictionary.nameSl }
option(value=dictionary.id selected=dictionary.selected)= dictionary.name
span.advanced-input-label
//- span.advanced-input-label Slovar
//- img#dict-img(src="/images/chevron-down-darker.svg" alt="")
@@ -91,7 +91,7 @@
//- input#source-input.box-sizing-content.bg-transparent
select#src-select.select-source-field(multiple="multiple")
each portal in portals
option(value=portal.code selected=portal.selected) #{ portal.name }
option(value=portal.code selected=portal.selected)= portal.name
span.advanced-input-label
//- span.advanced-input-label Vir
//- img#source-img(src="/images/chevron-down-darker.svg" alt="")
@@ -2,7 +2,7 @@ mixin result-item(headword, entry, isLast=false)
-
const foreignEntries = entry.foreignEntries ? entry.foreignEntries : []
const synonyms = entry.synonyms?entry.synonyms:[]
const domain = entry.primaryDomain&&entry.primaryDomain.nameSl?entry.primaryDomain.nameSl:""
const domain = entry.primaryDomain?entry.primaryDomain[`name${capitalize(determinedLanguage)}`]:""
const slovenianDefinitionExists = !!entry.definition
let foreignDefinitionExists = !!entry.foreignEntries && entry.foreignEntries.length > 0
let checkAllForeignDefinitions = false
@@ -92,7 +92,7 @@ mixin result-item(headword, entry, isLast=false)
.results-sources.d-flex.flex-shrink-1.justify-content-end.align-items-center
.results-dict.d-flex.justify-content-end.align-items-center.me-2.px-2(
data-bs-toggle="tooltip"
title=`${entry.dictionary.nameSl}`
title=`${entry.dictionary[`name${capitalize(determinedLanguage)}`]}`
) #{ entry.dictionary.nameSlShort }
.results-portal.d-flex.justify-content-end.align-items-center.te(
data-bs-toggle="tooltip"
@@ -22,7 +22,7 @@ section.filter-modal-root
span.d-flex.flex-grow-1.align-content-center
a#ccf.clear-filter-modal-section(href="#")
img(src="/images/square-minus.svg" alt="")
span.ps-2 POČISTI FILTRE
span.ps-2= t('POČISTI FILTRE')
.modal-body.pb-2
ul#modal-list.nav-modal-section-content.mb-0.pb-0
// Added dynamically...
@@ -31,8 +31,6 @@ section.filter-modal-root
button.btn.btn-light.border.border-dark.close(
type="button"
data-bs-dismiss="modal"
)
| Zapri
)= t('Zapri')
.justify-content-end
button#sf-modal-button.btn.btn-primary.use(type="button")
| Uporabi
button#sf-modal-button.btn.btn-primary.use(type="button")= t('Uporabi')
@@ -1,12 +1,12 @@
p Pozdravljeni,
case type
when 'status'
p oseba: #[b #{ changerEmail }] je spremenila stanje vašega slovarja: #[b #{ nameSl }].
p oseba: #[b #{ changerEmail }] je spremenila stanje vašega slovarja: #[b #{ name }].
when 'unpublish'
p oseba: #[b #{ changerEmail }] je spremenila status slovarja #[b #{ nameSl }], ki ni več objavljen.
p oseba: #[b #{ changerEmail }] je spremenila status slovarja #[b #{ name }], ki ni več objavljen.
when 'delete'
p slovar: #[b #{ nameSl }] ima manjše število gesel kot je nastavljeno.
p slovar: #[b #{ name }] ima manjše število gesel kot je nastavljeno.
when 'publish-approval'
p slovar #[b #{ nameSl }] je bil dan v stanje preverjanja. Prosimo, da ga odprete/zaprete.
p slovar #[b #{ name }] je bil dan v stanje preverjanja. Prosimo, da ga odprete/zaprete.
when 'publish-no-approval'
p slovar #[b #{ nameSl }] je bil objavljen.
p slovar #[b #{ name }] je bil objavljen.
@@ -0,0 +1,2 @@
p Dear #{ username },
p you have successfully changed the e-mail address used for your Slovenian Terminology Portal user account.
@@ -0,0 +1,2 @@
p Pozdravljeni #{ username },
p to sporočilo ste prejeli, ker ste na Slovenskem terminološkem portalu uspešno spremenili elektronski naslov.
@@ -0,0 +1,4 @@
p Dear #{ username },
p you have received this message because you want to change the e-mail address used for your Slovenian Terminology Portal account.
p To change the e-mail address, please confirm that this is your new e-mail address. The link will be valid for 7 days.
a(href=changeEmailLink) I confirm my e-mail address
@@ -0,0 +1,4 @@
p Pozdravljeni #{ username },
p to sporočilo ste prejeli, ker na Slovenskem terminološkem portalu želite spremeniti elektronski naslov.
p Za spremembo naslova potrebujete le še potrditi, da je to res vaš novi elektronski naslov. Povezava je veljavna 7 dni.
a(href=changeEmailLink) Potrjujem svoj naslov
@@ -0,0 +1,2 @@
p Dear #{ username },
p you have changed the password for your Slovenian Terminology Portal user account.
@@ -0,0 +1,2 @@
p Pozdravljeni #{ username },
p to sporočilo ste prejeli, ker ste na Slovenskem terminološkem portalu spremenili geslo.
@@ -0,0 +1,2 @@
p Dear #{ username },
p you have successfully reset the password for your Slovenian Terminology Portal user account.
@@ -0,0 +1,2 @@
p Pozdravljeni #{ username },
p to sporočilo ste prejeli, ker ste na Slovenskem terminološkem portalu uspešno ponastavili geslo.
@@ -0,0 +1,4 @@
p Dear #{ username },
p you have received this message because you want to change the password for the Slovenian Terminology Portal user account connected to this e-mail address.
p To reset the password, click the link below. The link will be valid for 1 day.
a(href=resetPasswordLink) Password reset
@@ -0,0 +1,4 @@
p Pozdravljeni #{ username },
p to sporočilo ste prejeli, ker na Slovenskem terminološkem portalu želite ponastaviti geslo uporabniškega računa s tem elektronskim naslovom.
p Za ponastavitev sledite spodnji povezavi. Povezava je veljavna 1 dan.
a(href=resetPasswordLink) Ponastavitev gesla
@@ -1,29 +0,0 @@
//- TODO MARK FOR DELETION
h1 Dokumenti za luščenje #{ id }
h2 Seznam datotek
ul#files-list
each document in extractionDocuments
li DATOTEKA - Ime: #[span.filename= document.filename], velikost: #{ document.size }, datum: #{ new Date(document.timeModified).toLocaleDateString('sl-SL') } #[a.delete-file(href="#") BRIŠI]
h2 Dodaj nov(e) datoteke(e)
form#upload-files(method="post" enctype="multipart/form-data")
input(type="hidden" name="extractionId" value=id)
label Datoteka(e):
input(
type="file"
name="extractionFile"
accept=".txt, .doc, .docx, .pdf"
multiple
)
a(href=`../${id}`) Nazaj
p Obestila:
ul#messages
script(
nonce=cspNonce
src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"
)
script(nonce=cspNonce src="/javascripts/extraction-poc-files-edit.js")
-128
View File
@@ -1,128 +0,0 @@
h1 Luščenje #{ id } - uredi
form(method="post")
div
label Ime:
input(name="name" value=extraction.name)
div
label Glavno področje:
select(name="domain")
option
each domain in allPrimaryDomains
option(value=domain.id selected=domain.id === extraction.domainId)= domain.nameSl
div
label Vrsta dokumenta:
select.pick-multiple(name="documentType" multiple)
option
option(value=101 selected=extraction.documentType.includes(101)) Izvirni znanstveni članek
option(value=102 selected=extraction.documentType.includes(102)) Pregledni znanstveni članek
option(value=103 selected=extraction.documentType.includes(103)) Kratki znanstveni prispevek
option(value=104 selected=extraction.documentType.includes(104)) Strokovni članek
option(value=105 selected=extraction.documentType.includes(105)) Poljudni članek
option(value=106 selected=extraction.documentType.includes(106)) Objavljeni znanstveni prispevek na konferenci (vabljeno predavanje)
option(value=107 selected=extraction.documentType.includes(107)) Objavljeni strokovni prispevek na konferenci (vabljeno predavanje)
option(value=108 selected=extraction.documentType.includes(108)) Objavljeni znanstveni prispevek na konferenci
option(value=109 selected=extraction.documentType.includes(109)) Objavljeni strokovni prispevek na konferenci
option(value=110 selected=extraction.documentType.includes(110)) Objavljeni povzetek znanstvenega prispevka na konferenci (vabljeno predavanje)
option(value=112 selected=extraction.documentType.includes(112)) Objavljeni povzetek znanstvenega prispevka na konferenci
option(value=113 selected=extraction.documentType.includes(113)) Objavljeni povzetek strokovnega prispevka na konferenci
option(value=116 selected=extraction.documentType.includes(116)) Samostojni znanstveni sestavek ali poglavje v monografski publikaciji
option(value=117 selected=extraction.documentType.includes(117)) Samostojni strokovni sestavek ali poglavje v monografski publikaciji
option(value=118 selected=extraction.documentType.includes(118)) Geslo sestavek v enciklopediji, leksikonu, slovarju...
option(value=119 selected=extraction.documentType.includes(119)) Recenzija, prikaz knjige, kritika
option(value=120 selected=extraction.documentType.includes(120)) Predgovor, spremna beseda
option(value=121 selected=extraction.documentType.includes(121)) Polemika, diskusijski prispevek
option(value=122 selected=extraction.documentType.includes(122)) Intervju
option(value=123 selected=extraction.documentType.includes(123)) Umetniški sestavek
option(value=124 selected=extraction.documentType.includes(124)) Bibliografija, kazalo ipd.
option(value=125 selected=extraction.documentType.includes(125)) Drugi članki ali sestavki
option(value=201 selected=extraction.documentType.includes(201)) Znanstvena monografija
option(value=202 selected=extraction.documentType.includes(202)) Strokovna monografija
option(value=203 selected=extraction.documentType.includes(203)) Univerzitetni, visokošolski ali višješolski učbenik z recenzijo
option(value=204 selected=extraction.documentType.includes(204)) Srednješolski, osnovnošolski ali drugi učbenik z recenzijo
option(value=205 selected=extraction.documentType.includes(205)) Video in druga učna gradiva
option(value=206 selected=extraction.documentType.includes(206)) Enciklopedija, slovar, leksikon, priročnik, atlas, zemljevid
option(value=207 selected=extraction.documentType.includes(207)) Bibliografija
option(value=208 selected=extraction.documentType.includes(208)) Doktorska disertacija
option(value=209 selected=extraction.documentType.includes(209)) Magistrsko delo
option(value=210 selected=extraction.documentType.includes(210)) Specialistično delo
option(value=211 selected=extraction.documentType.includes(211)) Diplomsko delo
option(value=212 selected=extraction.documentType.includes(212)) Končno poročilo o rezultatih raziskav
option(value=213 selected=extraction.documentType.includes(213)) Elaborat, predštudija, študija
option(value=214 selected=extraction.documentType.includes(214)) Projektna dokumentacija (idejni projekt, izvedbeni projekt)
option(value=215 selected=extraction.documentType.includes(215)) Izvedensko mnenje, arbitražna odločba
option(value=216 selected=extraction.documentType.includes(216)) Umetniško delo
option(value=217 selected=extraction.documentType.includes(217)) Katalog razstave
option(value=218 selected=extraction.documentType.includes(218)) Raziskovalni ali dokumentarni film, zvočni ali video posnetek
option(value=219 selected=extraction.documentType.includes(219)) Radijska ali televizijska oddaja
option(value=220 selected=extraction.documentType.includes(220)) Raziskovalni podatki
option(value=221 selected=extraction.documentType.includes(221)) Programska oprema
option(value=222 selected=extraction.documentType.includes(222)) Nova sorta
option(value=223 selected=extraction.documentType.includes(223)) Patentna prijava
option(value=224 selected=extraction.documentType.includes(224)) Patent
option(value=225 selected=extraction.documentType.includes(225)) Druge monografije in druga zaključena dela
option(value=227 selected=extraction.documentType.includes(227)) Znanstveni terminološki slovar, enciklopedija ali tematski leksikon
option(value=230 selected=extraction.documentType.includes(230)) Zbornik strokovnih ali nerecenziranih znanstvenih prispevkov na konferenci
option(value=231 selected=extraction.documentType.includes(231)) Zbornik recenziranih znanstvenih prispevkov na mednarodni ali tuji konferenci
option(value=232 selected=extraction.documentType.includes(232)) Zbornik recenziranih znanstvenih prispevkov na domači konferenci
option(value=310 selected=extraction.documentType.includes(310)) Umetniška poustvaritev
option(value=311 selected=extraction.documentType.includes(311)) Radijski ali TV dogodek
option(value=312 selected=extraction.documentType.includes(312)) Razstava
option(value=313 selected=extraction.documentType.includes(313)) Organiziranje znanstvenih in strokovnih sestankov
option(value=314 selected=extraction.documentType.includes(314)) Predavanje na tuji univerzi
option(value=315 selected=extraction.documentType.includes(315)) Prispevek na konferenci brez natisa
option(value=316 selected=extraction.documentType.includes(316)) Vabljeno predavanje na konferenci brez natisa
option(value=320 selected=extraction.documentType.includes(320)) Druga dela
option(value=325 selected=extraction.documentType.includes(325)) Druga izvedena dela
div
label Leto:
select.enter-multiple(name="year" multiple style="width: 500px")
each year in extraction.year
option(value=year selected)= year
div
label Ključne besede:
select.enter-multiple(name="keywords" multiple style="width: 500px")
each keyword in extraction.keywords
option(value=keyword selected)= keyword
h2 Stop termini:
ul
each file in stopTermsFiles
li DATOTEKA - Ime: #[span.filename= file.filename], velikost: #{ file.size }, datum: #{ new Date(file.timeModified).toLocaleDateString('sl-SL') }
a#edit-stop-terms(href=`${id}/stop-termini`) Uredi
br
br
button#search-btn Najdi
#search-result
br
br
a(href="../poc") Nazaj
p Obestila:
ul#messages
link(
href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css"
rel="stylesheet"
integrity="sha256-zaSoHBhwFdle0scfGEFUCwggPN7F+ip9XRglo8IWb4w="
crossorigin="anonymous"
)
script(
nonce=cspNonce
src="https://code.jquery.com/jquery-3.6.0.slim.min.js"
integrity="sha256-u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI="
crossorigin="anonymous"
)
script(
nonce=cspNonce
src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"
integrity="sha256-9yRP/2EFlblE92vzCA10469Ctd0jT48HnmmMw5rJZrA="
crossorigin="anonymous"
)
script(
nonce=cspNonce
src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"
)
script(nonce=cspNonce src="/javascripts/extraction-poc-oss-edit.js")
-20
View File
@@ -1,20 +0,0 @@
h1 Luščenje #{ id } - uredi
form(method="post")
label Ime:
input(name="name" value=extraction.name)
button Potrdi
h2 Lastni dokumenti:
ul
each document in extractionDocuments
li DATOTEKA - Ime: #[span.filename= document.filename], velikost: #{ document.size }, datum: #{ new Date(document.timeModified).toLocaleDateString('sl-SL') }
a(href=`${id}/besedila`) Uredi
h2 Stop termini:
ul
each file in stopTermsFiles
li DATOTEKA - Ime: #[span.filename= file.filename], velikost: #{ file.size }, datum: #{ new Date(file.timeModified).toLocaleDateString('sl-SL') }
a(href=`${id}/stop-termini`) Uredi
br
a(href="../poc") Nazaj
-44
View File
@@ -1,44 +0,0 @@
h1 Luščenje
form(method="post")
input(type="hidden" name="extractionType" value="own")
p Luščenje iz lastnih besedil
= ' '
button Dodaj
form(method="post")
input(type="hidden" name="extractionType" value="oss")
p Luščenje iz OSS besedil
= ' '
button Dodaj
h2 Seznam obstoječih luščenj
ul#extraction-list
each e in extractions
li(data-id=e.id)
| #{ e.name } (STATUS: #[span.extraction-status= e.status]) (
if e.status === 'new'
a(href=`poc/${e.id}`) Uredi
if e.status !== 'in progress'
button.btn-delete Izbriši
if e.canBegin
button.btn-begin Začni
if e.status === 'finished' || e.status === 'failed'
button.btn-duplicate Podvoji
if e.status === 'finished'
a(href=`poc/${e.id}/kandidati`) Terminološki kandidati [#{ e.termCandidatesCount }]
if e.status === 'finished' && e.corpusId
a(href=`poc/korpus/${e.corpusId}` target="_blank") Uporabniški korpus
if e.status === 'finished' && e.ossParams
a(
href="https://www.clarin.si/ske/#dashboard?corpname=oss"
target="_blank"
) Korpus KAS+
| ) (ZAČETEK: #[span.extraction-time-started= e.timeStarted ? e.timeStarted.toLocaleString('sl-SI') : 'ni še bilo začeto'],
| KONEC: #[span.extraction-time-finished= e.timeFinished ? e.timeFinished.toLocaleString('sl-SI') : 'ni še bilo končano'])
script(
nonce=cspNonce
src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"
)
script(nonce=cspNonce src="/javascripts/extraction-poc-list.js")
@@ -1,22 +0,0 @@
h1 Stop termini za luščenje #{ id }
h2 Seznam datotek
ul#files-list
each file in stopTermsFiles
li DATOTEKA - Ime: #[span.filename= file.filename], velikost: #{ file.size }, datum: #{ new Date(file.timeModified).toLocaleDateString('sl-SL') } #[a.delete-file(href="#") BRIŠI]
h2 Dodaj nov(e) datoteke(e)
form#upload-files(method="post" enctype="multipart/form-data")
input(type="hidden" name="extractionId" value=id)
label Datoteka(e):
input(type="file" name="extractionFile" accept=".txt" multiple)
a(href=`../${id}`) Nazaj
p Obestila:
ul#messages
script(
nonce=cspNonce
src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"
)
script(nonce=cspNonce src="/javascripts/extraction-poc-files-edit.js")
@@ -1,23 +0,0 @@
h1 Terminološki kandidati
include /utilities/pager
+pager
ul#page-results
each termCandidate, index in firstPageOfTermCandidates
li [#{ index + 1 }] #{ JSON.stringify(termCandidate) }
form(action=`/api/v1/extraction/${extractionId}/term-candidates-export`)
p Izvozi termine od številke
input(type="number" name="from")
p do številke
input(type="number" name="to")
button Izvozi
script#variables-transport-script(nonce=cspNonce).
const termCandidates = !{ termCandidatesJson }.terminoloski_kandidati;
const hitsPerPage = #{ hitsPerPage };
const numberOfAllPages = #{ numberOfAllPages };
document.getElementById('variables-transport-script').remove();
script(nonce=cspNonce src="/javascripts/extraction-poc-term-candidates.js")
+7
View File
@@ -100,6 +100,13 @@ html(lang=language)
crossorigin="anonymous"
)
if flashInfo.length
include /utilities/modal-response
+responseModal("flash-modal", t("Razumem"), "understand-btn", flashInfo[0])
script(nonce=cspNonce).
const flashModal = new bootstrap.Modal(document.getElementById('flash-modal'));
flashModal.toggle();
if inDevEnv
script(nonce=cspNonce) window.inDevEnv = true
script(nonce=cspNonce src="/javascripts/globals.js")
+3 -3
View File
@@ -70,14 +70,14 @@ block body
#input-row.row
.col-sm-3
.subject-name
label.input-name-txt= ('PODPODROČJE')
label.input-name-txt= t('PODPODROČJE')
input#area-input.form-control(type="text")
.col-sm-3
.subject-name
label.input-name-txt= ('ANGLEŠKI PREVOD')
label.input-name-txt= t('ANGLEŠKI PREVOD')
input#translation-input.form-control(type="text")
.col.d-flex.align-items-end.mt-2
button#add-area.btn.btn-primary(type="submit" disabled)= ('Dodaj')
button#add-area.btn.btn-primary(type="submit" disabled)= t('Dodaj')
include /common/footer
include /utilities/modal-alert
@@ -43,7 +43,7 @@ block body
.d-flex.align-content-center.mb-0.me-3.mt-2.mt-sm-0
a.btn.p-0.image-link(
type="link"
href=`/admin/povezava/${link.id}/urejanje`
href=`/admin/povezave/${link.id}/urejanje`
)
img(src="/images/u_edit-alt.svg" alt="Uredi")
span.normal-gray.ms-1= t('Uredi')
@@ -95,7 +95,7 @@ block body
.d-flex.align-content-center.mb-0.me-3.mt-2.mt-sm-0
a.btn.p-0.image-link(
type="link"
href=`/admin/povezava/${link.id}/urejanje`
href=`/admin/povezave/${link.id}/urejanje`
)
img(src="/images/u_edit-alt.svg" alt="Uredi")
span.normal-gray.ms-1= t('Uredi')
@@ -12,8 +12,7 @@ block body
+sideNavigation(d)
include /utilities/dictionaries-main-panel-header
//- TODO I18n
- const c = { sideMenu: true, h2: dictionary.nameSl, h1: t('Osnovni podatki'), description: t('Izpolnite polja in na kratko opišite vsebino terminološkega slovarja.'), helpLink: { linkHref: '/pomoc#help-edit-dict', linkText: t('Več ...') }, buttons: [{ type: 'disabled', content: t('Shrani'), form: 'admin-description' }] }
- const c = { sideMenu: true, h2: dictionary[`name${capitalize(determinedLanguage)}`], h1: t('Osnovni podatki'), description: t('Izpolnite polja in na kratko opišite vsebino terminološkega slovarja.'), helpLink: { linkHref: '/pomoc#help-edit-dict', linkText: t('Več ...') }, buttons: [{ type: 'disabled', content: t('Shrani'), form: 'admin-description' }] }
+mainHeader(c)
include /utilities/dictionary-description-mixin
+dictionary-description(dictionary.id)
@@ -12,8 +12,7 @@ block body
+sideNavigation(d)
include /utilities/dictionaries-main-panel-header
//- TODO I18n
- const c = { sideMenu: true, h2: dictionary.nameSl, h1: t('Struktura slovarskega sestavka'), description: t('V tem razdelku lahko določite elemente slovarskega sestavka. Z izbiro elementov se vam prikazuje podoba slovarskega sestavka. Izbiro lahko tudi med urejanjem vsebine kadarkoli spremenite.'), helpLink: { linkHref: '/pomoc#help-structure-dict', linkText: t('Več ...') }, buttons: [{ type: 'disabled', content: t('Shrani'), form: 'form-dictionary-structure' }] }
- const c = { sideMenu: true, h2: dictionary[`name${capitalize(determinedLanguage)}`], h1: t('Struktura slovarskega sestavka'), description: t('V tem razdelku lahko določite elemente slovarskega sestavka. Z izbiro elementov se vam prikazuje podoba slovarskega sestavka. Izbiro lahko tudi med urejanjem vsebine kadarkoli spremenite.'), helpLink: { linkHref: '/pomoc#help-structure-dict', linkText: t('Več ...') }, buttons: [{ type: 'disabled', content: t('Shrani'), form: 'form-dictionary-structure' }] }
+mainHeader(c)
.content-hold-prerequisites
#offset-main.main-container
@@ -12,7 +12,7 @@ block body
+sideNavigation(d)
include /utilities/dictionaries-main-panel-header
- const c = { sideMenu: true, h2: dictionary.nameSl, h1: t('Uporabniki'), description: t('V tem razdelku lahko določite uporabniške vloge posameznega uporabnika in urejate njegove podatke.'), buttons: [{ type: 'disabled', content: t('Shrani'), form: 'admin-dictionary-users' }] }
- const c = { sideMenu: true, h2: dictionary.name, h1: t('Uporabniki'), description: t('V tem razdelku lahko določite uporabniške vloge posameznega uporabnika in urejate njegove podatke.'), buttons: [{ type: 'disabled', content: t('Shrani'), form: 'admin-dictionary-users' }] }
+mainHeader(c)
.content-hold-prerequisites
#offset-main.main-container.mt-1
+1 -1
View File
@@ -36,7 +36,7 @@ block body
tr
td= result.userName
td= result.email
td= result.status
td= t(`userStatus${result.status}`)
td
a.image-link(
type="link"
@@ -79,7 +79,7 @@ block body
option(
value=domain.id
selected=domain.id === entry.domainPrimaryId
)= domain.nameSl
)= domain.name
#invalid-section.invalid-feedback-selection.hidden-section.mt-3 #{ t('Nimate izbranega področja CERIF.') }
//- .col-sm.d-flex.align-items-center
span.d-md-inline.d-block.smaller-gray-info.ms-xxl-3.ms-md-3 Področje, v katero sodi opisani terminološki problem
+5 -2
View File
@@ -96,7 +96,7 @@ block body
)
option(value=-1)
each domain in allPrimaryDomains
option(value=domain.id)= domain.nameSl
option(value=domain.id)= domain.name
#invalid-section.invalid-feedback-selection.hidden-section.mt-3 #{ t('Nimate izbranega področja CERIF.') }
.col-sm.d-flex.align-items-center
span.d-md-inline.d-block.smaller-gray-info.ms-xxl-3.ms-md-3 #{ t('Področje, v katero sodi opisani terminološki problem.') }
@@ -133,5 +133,8 @@ block body
include /utilities/modal-response
+responseModal("begin-response", t("Razumem"), "understand-btn", isOwnConsultancyEnabled?t("Hvala za poslano vprašanje, ki je bilo posredovano svetovalcem terminološkega portala. Odgovor boste prejeli na e-naslov, ki ste ga navedli ob registraciji."):t("Hvala za poslano vprašanje, ki je bilo posredovano v Terminološko svetovalnico ZRC SAZU. Odgovor boste prejeli na e-naslov, ki ste ga navedli ob registraciji."))
else
p #{ t('Za zastavljanje terminoloških vprašanj morate biti prijavljeni.') }
.consultancy-container
.text-center.mt-5
.pt-3
p #{ t('Za zastavljanje terminoloških vprašanj morate biti prijavljeni.') }
include /common/footer
-50
View File
@@ -1,50 +0,0 @@
//- TODO MARK FOR DELETION
doctype html
html(lang="sl")
head
meta(charset="UTF-8")
meta(http-equiv="X-UA-Compatible" content="IE=edge")
meta(name="viewport" content="width=device-width, initial-scale=1.0")
title Paginacija - POC
body
h1 Demo konceptualna zasnova paginacije (muštr)
//- Id krovnega elementa je v realnem primeru lahko poljuben, saj ga podaš funkciji initPagination (v demo-paginacija.js).
//- UPDATE: initPagination sedaj lahko sprejme tudi array idjev (tukaj: pagination-top in pagination-bottom)
//- Interna struktura mora ostati enaka (imena elementov, njihove klase, imena, vrednosti).
//- Lahko pa v gumbe dodaš slike itd., če je potrebno, ali dodatne klase na njih, če je potrebno zaradi oblikovanja.
//- Oblikovanja tu namenoma nisem dodajal, da je demo čim enostavnejši. Oblikovati ga morata vidva oz. prvi, ki bo to delal.
//- Če kaj ne bo jasno, me raje vprašaj.
#pagination-top
button.first-page(disabled) <<
button.previous-page(disabled) <
form
input(name="page" value="1")
span= ' / '
span.pages-total= numberOfAllPages
button.next-page(disabled=numberOfAllPages === 1) >
button.last-page(disabled=numberOfAllPages === 1) >>
ul#page-results
each result in results
li Zanimiva vrednost: #[b= result.zanimivo]. Totalno nezanimivo: #{ result.nezanimivo1 } in #{ result.nezanimivo2 }
#pagination-bottom
button.first-page(disabled) <<
button.previous-page(disabled) <
form
input(name="page" value="1")
span= ' / '
span.pages-total= numberOfAllPages
button.next-page(disabled=numberOfAllPages === 1) >
button.last-page(disabled=numberOfAllPages === 1) >>
//- V realnem primeru:
//- Ne uvoziš axiosa, ker je že v layout.pug
//- Ne uvoziš skripte demo-paginacija.js, ker inicializacijsko kodo po njenem zgledu uporabiš v skripti, ki jo ta stan že uporablja.
script(
nonce=cspNonce
src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"
)
script(nonce=cspNonce src="/javascripts/demo-paginacija.js")
@@ -1,7 +1,7 @@
extends /layout
block pageSpecificScipts
script(nonce=cspNonce src="/javascripts/dictionaries.js")
script(nonce=cspNonce src="/javascripts/admin.js")
block body
section#fixed-top-section
@@ -12,8 +12,7 @@ block body
- const d = { activeLvl1: 'attributes', activeLvl2: 'description' }
+sideNavigation(d)
include /utilities/dictionaries-main-panel-header
//- TODO I18n
- const c = { sideMenu: true, h2: dictionary.nameSl, h1: t('Osnovni podatki'), description: t('Izpolnite polja in na kratko opišite vsebino terminološkega slovarja.'), helpLink: { linkHref: '/pomoc#help-edit-dict', linkText: t('Več ...') }, buttons: [{ type: 'disabled', content: t('Shrani'), form: 'form-dictionary-description' }] }
- const c = { sideMenu: true, h2: dictionary[`name${capitalize(determinedLanguage)}`], h1: t('Osnovni podatki'), description: t('Izpolnite polja in na kratko opišite vsebino terminološkega slovarja.'), helpLink: { linkHref: '/pomoc#help-edit-dict', linkText: t('Več ...') }, buttons: [{ type: 'disabled', content: t('Shrani'), form: 'admin-description' }] }
+mainHeader(c)
include /utilities/dictionary-description-mixin
+dictionary-description
@@ -22,7 +22,7 @@ block body
href="/"
)
img.align-middle(src="/images/chevrons-left.svg")
span.ms-2.text-header-description-gray.fw-700 Nazaj
span.ms-2.text-header-description-gray.fw-700= t('Nazaj')
.d-flex.justify-content-between.flex-md-nowrap.flex-wrap
.header-container-left-side.d-flex
.header-container-divider-left
+1 -1
View File
@@ -27,7 +27,7 @@ block body
class=index ? 'container-fluid dictionary-content mt-4 pb-2 pt-1' : 'container-fluid dictionary-content mt-3 pb-2 pt-1'
)
//- TODO I18n
p.dictionary-title.mb-2.mt-2.ms-2= dictionary.nameSl
p.dictionary-title.mb-2.mt-2.ms-2= dictionary.name
hr.me-2.mt-0.ms-2.mb-4
.container-fluid
.d-sm-flex
+1 -1
View File
@@ -11,7 +11,7 @@ block body
include /common/side-menu-fake
+sideNavigationFake
include /utilities/dictionaries-main-panel-header
- const c = {sideMenu:false, h2: t('Urejanje'), h1: t('Nov slovar'), description: t('Izpolnite polja in na kratko opišite vsebino terminološkega slovarja.'), helpLink: { linkHref: '/pomoc#help-editor', linkText: 'Več ...' }, buttons: [{ type: 'cancel', content: 'Prekliči', classAtr:"btn btn-secondary header-btn-secondary link-back" },{ type: 'button', content: t('Ustvari'), form: 'form-dictionary-new' }] }
- const c = {sideMenu:false, h2: t('Urejanje'), h1: t('Nov slovar'), description: t('Izpolnite polja in na kratko opišite vsebino terminološkega slovarja.'), helpLink: { linkHref: '/pomoc#help-editor', linkText: t('Več ...') }, buttons: [{ type: 'cancel', content: t('Prekliči'), classAtr:"btn btn-secondary header-btn-secondary link-back" },{ type: 'button', content: t('Ustvari'), form: 'form-dictionary-new' }] }
+mainHeader(c)
.content-hold-prerequisites
#offset-main.container-fluid.mt-4.ps-sm-3
@@ -12,7 +12,7 @@ block body
+sideNavigation(d)
include /utilities/dictionaries-main-panel-header
- const c = { sideMenu: true, h2: dictionary.nameSl, h1: t('Struktura slovarskega sestavka'), description: t('V tem razdelku lahko določite elemente slovarskega sestavka. Z izbiro elementov se vam prikazuje podoba slovarskega sestavka. Izbiro lahko tudi med urejanjem vsebine kadarkoli spremenite.'), helpLink: { linkHref: '/pomoc#help-structure-dict', linkText: t('Več ...') }, buttons: [{ type: 'disabled', content: t('Shrani'), form: 'form-dictionary-structure' }] }
- const c = { sideMenu: true, h2: dictionary[`name${capitalize(determinedLanguage)}`], h1: t('Struktura slovarskega sestavka'), description: t('V tem razdelku lahko določite elemente slovarskega sestavka. Z izbiro elementov se vam prikazuje podoba slovarskega sestavka. Izbiro lahko tudi med urejanjem vsebine kadarkoli spremenite.'), helpLink: { linkHref: '/pomoc#help-structure-dict', linkText: t('Več ...') }, buttons: [{ type: 'disabled', content: t('Shrani'), form: 'form-dictionary-structure' }] }
+mainHeader(c)
.content-hold-prerequisites
#offset-main.main-container
+1 -2
View File
@@ -12,8 +12,7 @@ block body
+sideNavigation(d)
include /utilities/dictionaries-main-panel-header
//- TODO I18n
- const c = { sideMenu: true, h2: dictionary.nameSl, h1: t('Uporabniki'), description: t('Registrirani uporabniki lahko dobijo različne vloge na portalu. Kot administrator jim lahko dodelite tudi vlogo skrbnika slovarjev in/ali skrbnika svetovalnice.'), buttons: [{ type: 'disabled', content: t('Shrani'), form: 'admin-dictionary-users' }] }
- const c = { sideMenu: true, h2: dictionary.name, h1: t('Uporabniki'), description: t('Registrirani uporabniki lahko dobijo različne vloge na portalu. Kot administrator jim lahko dodelite tudi vlogo skrbnika slovarjev in/ali skrbnika svetovalnice.'), buttons: [{ type: 'disabled', content: t('Shrani'), form: 'admin-dictionary-users' }] }
+mainHeader(c)
.content-hold-prerequisites
#offset-main.main-container.mt-1
+6 -242
View File
@@ -40,7 +40,7 @@ block body
option(
value=domain.id
selected=domain.id === extraction.domainId
)= domain.nameSl
)= domain.name
.col-sm.d-flex.align-items-center
span.d-md-inline.d-block.smaller-gray-info.ms-xxl-3.ms-md-3= t('Izberite področje iz seznama področij, da zmanjšate obseg besedil, iz katerih bo potekalo luščenje.')
@@ -53,248 +53,12 @@ block body
name="documentType"
multiple
)
//- TODO i18n - Angleški šifrant, baza, itd.?
option
option(
value=101
selected=extraction.documentType.includes(101)
) Izvirni znanstveni članek
option(
value=102
selected=extraction.documentType.includes(102)
) Pregledni znanstveni članek
option(
value=103
selected=extraction.documentType.includes(103)
) Kratki znanstveni prispevek
option(
value=104
selected=extraction.documentType.includes(104)
) Strokovni članek
option(
value=105
selected=extraction.documentType.includes(105)
) Poljudni članek
option(
value=106
selected=extraction.documentType.includes(106)
) Objavljeni znanstveni prispevek na konferenci (vabljeno predavanje)
option(
value=107
selected=extraction.documentType.includes(107)
) Objavljeni strokovni prispevek na konferenci (vabljeno predavanje)
option(
value=108
selected=extraction.documentType.includes(108)
) Objavljeni znanstveni prispevek na konferenci
option(
value=109
selected=extraction.documentType.includes(109)
) Objavljeni strokovni prispevek na konferenci
option(
value=110
selected=extraction.documentType.includes(110)
) Objavljeni povzetek znanstvenega prispevka na konferenci (vabljeno predavanje)
option(
value=112
selected=extraction.documentType.includes(112)
) Objavljeni povzetek znanstvenega prispevka na konferenci
option(
value=113
selected=extraction.documentType.includes(113)
) Objavljeni povzetek strokovnega prispevka na konferenci
option(
value=116
selected=extraction.documentType.includes(116)
) Samostojni znanstveni sestavek ali poglavje v monografski publikaciji
option(
value=117
selected=extraction.documentType.includes(117)
) Samostojni strokovni sestavek ali poglavje v monografski publikaciji
option(
value=118
selected=extraction.documentType.includes(118)
) Geslo sestavek v enciklopediji, leksikonu, slovarju...
option(
value=119
selected=extraction.documentType.includes(119)
) Recenzija, prikaz knjige, kritika
option(
value=120
selected=extraction.documentType.includes(120)
) Predgovor, spremna beseda
option(
value=121
selected=extraction.documentType.includes(121)
) Polemika, diskusijski prispevek
option(
value=122
selected=extraction.documentType.includes(122)
) Intervju
option(
value=123
selected=extraction.documentType.includes(123)
) Umetniški sestavek
option(
value=124
selected=extraction.documentType.includes(124)
) Bibliografija, kazalo ipd.
option(
value=125
selected=extraction.documentType.includes(125)
) Drugi članki ali sestavki
option(
value=201
selected=extraction.documentType.includes(201)
) Znanstvena monografija
option(
value=202
selected=extraction.documentType.includes(202)
) Strokovna monografija
option(
value=203
selected=extraction.documentType.includes(203)
) Univerzitetni, visokošolski ali višješolski učbenik z recenzijo
option(
value=204
selected=extraction.documentType.includes(204)
) Srednješolski, osnovnošolski ali drugi učbenik z recenzijo
option(
value=205
selected=extraction.documentType.includes(205)
) Video in druga učna gradiva
option(
value=206
selected=extraction.documentType.includes(206)
) Enciklopedija, slovar, leksikon, priročnik, atlas, zemljevid
option(
value=207
selected=extraction.documentType.includes(207)
) Bibliografija
option(
value=208
selected=extraction.documentType.includes(208)
) Doktorska disertacija
option(
value=209
selected=extraction.documentType.includes(209)
) Magistrsko delo
option(
value=210
selected=extraction.documentType.includes(210)
) Specialistično delo
option(
value=211
selected=extraction.documentType.includes(211)
) Diplomsko delo
option(
value=212
selected=extraction.documentType.includes(212)
) Končno poročilo o rezultatih raziskav
option(
value=213
selected=extraction.documentType.includes(213)
) Elaborat, predštudija, študija
option(
value=214
selected=extraction.documentType.includes(214)
) Projektna dokumentacija (idejni projekt, izvedbeni projekt)
option(
value=215
selected=extraction.documentType.includes(215)
) Izvedensko mnenje, arbitražna odločba
option(
value=216
selected=extraction.documentType.includes(216)
) Umetniško delo
option(
value=217
selected=extraction.documentType.includes(217)
) Katalog razstave
option(
value=218
selected=extraction.documentType.includes(218)
) Raziskovalni ali dokumentarni film, zvočni ali video posnetek
option(
value=219
selected=extraction.documentType.includes(219)
) Radijska ali televizijska oddaja
option(
value=220
selected=extraction.documentType.includes(220)
) Raziskovalni podatki
option(
value=221
selected=extraction.documentType.includes(221)
) Programska oprema
option(
value=222
selected=extraction.documentType.includes(222)
) Nova sorta
option(
value=223
selected=extraction.documentType.includes(223)
) Patentna prijava
option(
value=224
selected=extraction.documentType.includes(224)
) Patent
option(
value=225
selected=extraction.documentType.includes(225)
) Druge monografije in druga zaključena dela
option(
value=227
selected=extraction.documentType.includes(227)
) Znanstveni terminološki slovar, enciklopedija ali tematski leksikon
option(
value=230
selected=extraction.documentType.includes(230)
) Zbornik strokovnih ali nerecenziranih znanstvenih prispevkov na konferenci
option(
value=231
selected=extraction.documentType.includes(231)
) Zbornik recenziranih znanstvenih prispevkov na mednarodni ali tuji konferenci
option(
value=232
selected=extraction.documentType.includes(232)
) Zbornik recenziranih znanstvenih prispevkov na domači konferenci
option(
value=310
selected=extraction.documentType.includes(310)
) Umetniška poustvaritev
option(
value=311
selected=extraction.documentType.includes(311)
) Radijski ali TV dogodek
option(
value=312
selected=extraction.documentType.includes(312)
) Razstava
option(
value=313
selected=extraction.documentType.includes(313)
) Organiziranje znanstvenih in strokovnih sestankov
option(
value=314
selected=extraction.documentType.includes(314)
) Predavanje na tuji univerzi
option(
value=315
selected=extraction.documentType.includes(315)
) Prispevek na konferenci brez natisa
option(
value=316
selected=extraction.documentType.includes(316)
) Vabljeno predavanje na konferenci brez natisa
option(
value=320
selected=extraction.documentType.includes(320)
) Druga dela
option(
value=325
selected=extraction.documentType.includes(325)
) Druga izvedena dela
each type in ossDocumentTypes
option(
value=type.id
selected=extraction.documentType.includes(type.id)
)= type.name
.col-sm.d-flex.align-items-center
span.d-md-inline.d-block.smaller-gray-info.ms-xxl-3.ms-md-3= t('Izberite vrsto dokumenta iz seznama, npr. članek, diplomsko delo.')
@@ -1,8 +0,0 @@
// DEMO??
//- TODO MARK FOR DELETION
extends /layout
block body
.help-content-container(style="margin: 0.5rem")
include help-pug-demo
-190
View File
@@ -1,190 +0,0 @@
//- TODO MARK FOR DELETION
h2 Iskanje
p bold #[b adasdasda]
p bold+ #[b dasdas#[sup 1] dasd#[sub 2]]
p italic #[i sddasd]
p italic+ #[i dadsasda#[sup 1] dsada#[sub 2]]
p bold+italic #[b #[i sdasd]]
p bold+italic+ #[b #[i dsda#[sup 1] sddasd#[sub 2]]]
p Xxxxx #[a(href="https://www.amebis.si/" target="_blank") Amebis]
p Xxxxx #[a(href="https://www.amebis.si/") Amebis (v istem zavihku)]
p adasda #[b #[a(href="https://www.amebis.si/" target="_blank") Amebis]]
p as #[i #[a(href="https://www.amebis.si/" target="_blank") Amebis]]
p adada #[b #[i #[a(href="https://www.amebis.si/" target="_blank") Amebis]]]
p Xxxxx #[a(href="https://www.amebis.si/" target="_blank") Amebis] asd as das da sd as da s d a sd as d a s d as
//- To je komentar, ki se ne interpretira.
//- Vrstica se lahko v pug sintaksi lomi na sledeč način, vendar pozor:
//- Lom v sintaksi je namenjen preglednejši sintaksi, NE prevede pa se v lom, temveč v presledek,
//- zato je lom v sintaksi smiselno narediti namesto presledka v želenem besedilu.
| #[b dasdas#[sup 1] dasd#[sub 2]] a sdasdasd asd asd as das d a sd a sd a s d a s d a s d a sd #[b adasdasda]
| d asddsda #[i sddasd] adada #[i dadsasda#[sup 1] dsada#[sub 2]] sd dsad adasda #[b #[a(href="https://www.amebis.si/" target="_blank") Amebis]]
| dsasd aas da d a dasdas d a #[b #[i sdasd]] a sda sd a s #[b #[i dsda#[sup 1] sddasd#[sub 2]]] adada dadsasda dsada.
p Xxxxx
//- Če pretiravam v lomih za namen demonstracije učinka na rezultat (lomi --> presledki).
| asd
| as
| das
//- Konec pretiravanja.
//- Dolžina vrstice pug sintakse naj bo taka, da bo čimbolj pregledna (npr. ne daljša od 150 znakov).
//- Dolžina končne vrstice bo dinamična in se bo avtomatsko prilagajala trenutni širini brskalnika ter drugim dejavnikom.
| da sd as da s d a sd as d a s d as #[i #[a(href="https://www.amebis.si/" target="_blank") Amebis]] dasdasdasd a sdasdasd
| asd asd as das d a sd a sd a s d a s d a s d a sd adasdasda d asddsda sddasd adada #[b #[i #[a(href="https://www.amebis.si/" target="_blank") Amebis]]]
| dadsasda dsada sd dsad.
p Naštevanje:
ul
li ena
li dva
ul
li ena2
li dva2 - as dlaskldkalskjd lakls jldkj laksldjklaskj dlkajslkjd lakjs lkj dlkj lakjs lkj lkj lkj lkdjlakjs lkdj aklsd l
li tri2
li tri
//- Če bi kje želeli večji razmak, kot običajno, lahko uporabimo enega ali več "br" elementov.
br
br
br
br
br
ol
li ena - asdasdnba sdasd as dlakskdlaks dlakskjdlkjalksj lkdj lka lsklk dlak slkj dlkaj lkj slkj dl alksjdl akslkj lkj dlkj alk lsk ldkj als dkj
li dva
ol
li ena
li dva
li tri
li tri
p Tabela:
table
tr
th
th 1
th 2
th 3
tr
td #[i a]
td a1
td a2
td a3
tr
td #[i b]
td b1
td
td b3
p Slika:
//- Za prikaz slike potrebujemo tudi izvorno sliko.
//- Tu uporabim sliko poimenovano "help-amebis-logo-pug-demo.png".
//- Vsebina polja "alt" se uporabi, ko slika ni na voljo ali za slepe uporabnike, ki slike ne vidijo.
//- Ta vsebina mora torej podati vso informacijo, tako, da bi lahko z njo v celoti nadomestili sliko,
//- saj jo slepi/slabovidni uporabniki slišijo na mestu, kjer je za ostale umeščena slika.
img(src="/images/help-amebis-logo-pug-demo.png", alt="Demo Amebisov logo")
figure
img(src="/images/help-amebis-logo-pug-demo.png", alt="Demo Amebisov logo")
figcaption Podnapis
p Konec.
h3 Osnovno iskanje
p xxxxx
h3 Napredno iskanje
p xxxxx
h2 Luščenje
p xxxxx
h3 Specializirani korpusi
p xxxxx
h3 Lastni uporabniški korpus
p xxxxx
h3 Korpus OSS
p xxxxx
h3 Področja
p xxxxx
h3 Terminološki kandidati
p xxxxx
h2 Urejanje
p xxxxx
h3 Nov slovar
p xxxxx
h3 Urejanje lastnosti slovarja
p xxxxx
h3 Uporabniki
p xxxxx
h3 Struktura slovarskega sestavka
p xxxxx
h3 Komentiranje
p xxxxx
h3 Urejanje vsebine slovarja
p xxxxx
h3 Uvoz podatkov
p xxxxx
h3 Dodajanje novih slovarskih sestavkov
p xxxxx
h4 Zaglavje
p xxxxx
h4 Področne oznake
p xxxxx
h4 Pojasnilo
p xxxxx
h4 Definicija
p xxxxx
h4 Sinonimi
p xxxxx
h4 Povezave
p xxxxx
h4 Tuji jeziki (elementi)
p xxxxx
h4 Zgodovina urejanja
p xxxxx
h4 Komentarji
p xxxxx
h2 Svetovanje
p xxxxx
h3 Pošiljanje vprašanj
p xxxxx
h3 Terminološka načela
p xxxxx
h3 Povezava
p xxxxx
h3 Objava odgovorov
p xxxxx
h2 Administracija
p xxxxx
@@ -16,7 +16,7 @@ block body
.content-hold-prerequisites
#offset-main.main-container.mt-2
form.needs-validation(method="post" novalidate)
form#profileForm.needs-validation(method="post" novalidate)
div
.subject-name
label.input-name-txt(for="password-old") #{ t('STARO GESLO') }
@@ -24,7 +24,7 @@ block body
.col-sm-6.align-items-center
input#password-old.name-input.form-control.d-inline(
type="password"
name="password-old"
name="passwordOld"
value=""
)
.invalid-feedback #{ t('Napačno geslo.') }
@@ -39,7 +39,7 @@ block body
.col-sm-6
input#password-new.name-input.form-control.d-inline(
type="password"
name="password-new"
name="passwordNew"
minLength="1"
value=""
)
@@ -55,7 +55,7 @@ block body
.col-sm-6
input#password-repeat.name-input.form-control.d-inline(
type="password"
name="password-repeat"
name="passwordNewRepeat"
minLength="1"
value=""
)
@@ -92,3 +92,5 @@ block body
span.ps-2.text-white #{ t('IZBRIŠI') }
include /common/footer
include /utilities/modal-alert
include /utilities/modal-info
+modalInfo
@@ -7,31 +7,31 @@ mixin sideNavigation(sideNavigationData)
src="/images/burger-menu-button-icon.svg"
alt=t('Meni')
)
span.nav-title #{ t('Moj Profil') }
span.nav-title #{ t('Moj Račun') }
#mobile-right-holder
nav
ul.admin-nav-content.slidable.scroller-style
li(
li.p-0(
class=sideNavigationData.selection === 'change-profile-data' ? 'focused-menu' : 'admin-nav-item'
)
a.active(href="/moj-racun")
a.p-2.active(href="/moj-racun")
img(src="/images/user-gray.svg" alt=t('Basic'))
p #{ t('Osnovni podatki') }
li(
li.p-0(
class=sideNavigationData.selection === 'change-profile-password' ? 'focused-menu' : 'admin-nav-item'
)
a.active(href="/spremeni-geslo")
a.p-2.active(href="/spremeni-geslo")
img(src="/images/lock-gray.svg" alt=t('Settings'))
p #{ t('Spremeni geslo') }
li(
li.p-0(
class=sideNavigationData.selection === 'change-profile-settings' ? 'focused-menu' : 'admin-nav-item'
)
a.active(href="/nastavitve-racuna")
a.p-2.active(href="/nastavitve-racuna")
img(src="/images/cog.svg" alt=t('Settings'))
p #{ t('Nastavitve') }
li(
li.p-0(
class=sideNavigationData.selection === 'delete-profile' ? 'focused-menu' : 'admin-nav-item'
)
a.active(href="/izbrisi-racun")
a.p-2.active(href="/izbrisi-racun")
img(src="/images/user-x.svg" alt=t('Delete profile'))
p #{ t('Izbriši račun') }
+8 -8
View File
@@ -35,12 +35,12 @@ block body
.mt-4
.subject-name
label.input-name-txt(for="profile-name") #{ t('IME') }
label.input-name-txt(for="profile-first-name") #{ t('IME') }
.row
.col-sm-6
input#profile-name.name-input.form-control.d-inline(
input#profile-first-name.name-input.form-control.d-inline(
type="text"
name="name"
name="firstName"
minLength="1"
value=user.firstName
)
@@ -51,12 +51,12 @@ block body
.mt-4
.subject-name
label.input-name-txt(for="profile-surname") #{ t('PRIIMEK') }
label.input-name-txt(for="profile-last-name") #{ t('PRIIMEK') }
.row
.col-sm-6
input#profile-surname.name-input.form-control.d-inline(
input#profile-last-name.name-input.form-control.d-inline(
type="text"
name="surname"
name="lastName"
minLength="1"
value=user.lastName
)
@@ -67,10 +67,10 @@ block body
.mt-4
.subject-name
label.input-name-txt(for="profile-surname") #{ t('ELEKTRONSKI NASLOV') }
label.input-name-txt(for="profile-email") #{ t('ELEKTRONSKI NASLOV') }
.row
.col-sm-6
input#profile-surname.name-input.form-control.d-inline(
input#profile-email.name-input.form-control.d-inline(
type="text"
name="email"
minLength="1"
@@ -9,7 +9,7 @@ block body
+main-navigation(false)
include /utilities/generic-main-panel-header
- let c
if (isValidToken)
if (isTokenValid)
- c = { h1: t('Ponastavi geslo'), description: t('Vnesite novo geslo. Ko ga potrdite, se boste v vaš uporabniški račun lahko spet prijavili z novim geslom.') }
else
- c = { h1: t('Obvestilo'), description: '' }
@@ -19,12 +19,13 @@ block body
#offset-main.container-fluid.mt-4.errc.px-0
.p-squeeze-lg
.rpm-corr
if (isValidToken)
if (isTokenValid)
// h1.navigation-text-color.mt-3 Ponastavi Geslo
form#reset-and-redirect.max-512px(
action="/reset-password"
method="POST"
)
input#token(type="hidden" value=token)
input#reset-password.mb-3.form-control(
type="password"
placeholder=t('Geslo')
@@ -33,10 +34,10 @@ block body
type="password"
placeholder=t('Ponovi Geslo')
)
p#reset-password-error.error-text.mb-1
.d-flex.justify-content-between
button#cancel-btn.btn.btn-secondary.h-40px(type="button") #{ t('Prekliči') }
a.btn.btn-secondary.h-40px(href="/") #{ t('Prekliči') }
button#reset-password-btn.btn.btn-primary.h-40px(type="submit") #{ t('Potrdi') }
input#token.d-none(value=token)
else
//h1.navigation-text-color.mt-3 Obvestilo
p #{ t('Povezava ni (več) veljavna. Prosimo, da ponovno zahtevate ponastavitev gesla.') }
@@ -7,7 +7,7 @@ mixin topHeaderContent(headerContent)
href=headerContent.hrefurl
)
img.align-middle(src="/images/chevrons-left.svg")
span.ms-2.text-header-description-gray.fw-700 Nazaj
span.ms-2.text-header-description-gray.fw-700= t('Nazaj')
.row.w-100.mx-0
.col-sm-8.g-0
.header-container-divider-left.pt-1
+2 -2
View File
@@ -254,7 +254,7 @@ form#form-edit-content.needs-validatio.mt-2(
each language, index in languages
hr(class=index ? 'hr-languages' : 'd-none')
.language.px-3(data-langauge-id=language.id)
span.bold-blue-text= language.nameSl
span.bold-blue-text= language.name
input(
type="hidden"
name=`foreign[${language.id}][code]`
@@ -300,7 +300,7 @@ form#form-edit-content.needs-validatio.mt-2(
span.d-md-inline.d-block.name-info-txt.mt-3.mt-sm-0= t('Dodajte tujejezične ustreznike, ki se za opisani pojem tudi uporabljajo v tujem jeziku.')
else
.language.px-3
span.bold-blue-text= languages.nameSl
span.bold-blue-text= languages.name
.subject-name.d-flex.flex-column.mt-2
label.input-name-txt.mt-2(for="foreign-term")= t('TERMINI')
.row
@@ -168,7 +168,7 @@ mixin dictionary-description(dictionaryId)
option(
value=domain.id
selected=domain.id === dictionary.domainPrimary
)= domain.nameSl
)= domain.name
#invalid-section.invalid-feedback-selection.hidden-section.mt-3= t('Nimate izbranega področja CERIF.')
.col-sm.d-flex.align-items-center
span.d-md-inline.d-block.smaller-gray-info.ms-xxl-3.ms-md-3= t('Izberite področje svojega terminološkega slovarja na seznamu področij.')
@@ -184,9 +184,9 @@ mixin dictionary-description(dictionaryId)
)
each domain in allSecondaryDomains
if associatedSecondaryDomains.some(associatedDomain => associatedDomain.id === domain.id)
option(value=domain.id selected)= domain.nameSl
option(value=domain.id selected)= domain[`name${capitalize(determinedLanguage)}`]
else
option(value=domain.id)= domain.nameSl
option(value=domain.id)= domain[`name${capitalize(determinedLanguage)}`]
.col-sm.d-flex.align-items-center
span.d-md-inline.d-block.smaller-gray-info.ms-xxl-3.ms-md-3= t('Podpodročje.')
@@ -12,7 +12,7 @@ mixin dictionary-extraction-import
option(value=el.id)= el.name
.col-sm.d-flex.align-items-center
span.name-info-txt.ms-lg-3.mt-2.mt-lg-0= t('Izberite enega od rezultatov luščenja s seznama.')
.list-terminology-candidates.mt-4.me-2
.list-terminology-candidates.mt-4.me-2.d-none
.d-flex.w-100.justify-content-between
.d-flex.align-items-center
span.info-text-for-button= t('Seznam terminoloških kandidatov')
@@ -82,7 +82,7 @@ mixin dictionaryMainInput(data)
//- TODO I18n
option(value="" hidden disabled selected)= t('Izberite področje')
each domain in allPrimaryDomains
option(value=domain.id)= domain.nameSl
option(value=domain.id)= domain.name
#invalid-section.invalid-feedback-selection.hidden-section.mt-3= t('Niste izbrali glavnega področja.')
.col-sm.d-flex.align-items-center
span.d-md-inline.d-block.name-info-txt.ms-xxl-3.ms-md-3.mt-3.mt-sm-0= t('Področje.')
@@ -98,7 +98,7 @@ mixin dictionaryMainInput(data)
)
//- TODO I18n
each domain in allSecondaryDomains
option(value=domain.id)= domain.nameSl
option(value=domain.id)= domain[`name${capitalize(determinedLanguage)}`]
.col-sm.d-flex.align-items-center
span.d-md-inline.d-block.name-info-txt.ms-xxl-3.ms-md-3.mt-3.mt-sm-0= t('Vpišite podpodročje glavnega področja, ki ste ga izbrali. Če podpodročja ni med naborom, izberite polje Novo podpodročje.')
@@ -336,17 +336,16 @@ block input-structure
if dictionary
if dictionary.hasForeignLanguages
.col-sm-6.select-languages
//- TODO I18n
select#languages-input.without-addition(
name="language"
multiple
required
)
each language in associatedLanguages
option(value=language.id selected)= language.nameSl
option(value=language.id selected)= language.name
each language in allLanguages
if !associatedLanguages.some(associated => associated.id === language.id)
option(value=language.id)= language.nameSl
option(value=language.id)= language.name
else
.col-sm-6.select-languages
select#languages-input.without-addition(
@@ -356,7 +355,7 @@ block input-structure
required
)
each language in allLanguages
option(value=language.id)= language.nameSl
option(value=language.id)= language.name
else
.col-sm-6.select-languages
select#languages-input.form-control.without-addition(
@@ -365,7 +364,7 @@ block input-structure
required
)
each language in allLanguages
option(value=language.id)= language.nameSl
option(value=language.id)= language.name
.col-sm.d-flex.align-items-center
span.d-md-inline.d-block.name-info-txt.ms-xxl-3.ms-md-3.mt-3.mt-sm-0= t('Izberite vse tuje jezike, ki jih bo terminološki slovar vseboval.')
#invalid-language-section.invalid-feedback-selection.hidden-section.mt-3
@@ -66,7 +66,7 @@ mixin entryPreview
each entry, index in entryData.foreign_entries
hr(class=index ? 'd-none' : '')
.preview-foreign-language
span.smaller-black-info.text-break!= entry.name_sl
span.smaller-black-info.text-break!= entry.name
if (structure.hasForeignLanguages && entry.term && entry.term.join(", ").length)
.preview-foreign-terms.mt-1.d-flex.align-items-start.row
.d-sm-block.col-sm-4.preview-column-width
+2 -2
View File
@@ -66,11 +66,11 @@
if (structure.hasForeignLanguages)
.preview-languages-container.mt-2
if (languages.length)
hr.language-line
hr.start-line
each language, index in languages
.preview-one-language.d-none
.preview-foreign-language
span.smaller-black-info= language.nameSl
span.smaller-black-info= language.name
.preview-foreign-terms.mt-1.d-flex.align-items-baseline.row
.d-sm-block.col-sm-4.preview-column-width
span.smaller-gray-info= t('TERMIN:')
+27
View File
@@ -0,0 +1,27 @@
mixin modalInfo(id="info-modal", text=t(''), title=t('Obvestilo'), btnText=t('Zapri'))
.modal.fade(
id=id
tabindex="-1"
aria-labelledby="modal-alert-label"
aria-hidden="true"
)
.modal-dialog.modal-lg
.modal-content
.modal-header
h5#modal-info-label.modal-title.modal-title-blue #{ title }
button.btn-close(
type="button"
data-bs-dismiss="modal"
aria-label="Close"
)
.modal-body.d-flex.align-items-center
.d-flex.modal-alert.me-3
img(src="/images/alert-circle-big.svg")
.d-flex.modal-alert-content
p#info-text.normal-gray #{ text }
.modal-footer.d-flex.justify-content-center.align-items-center
button#modal-fp-info-close.btn.btn-primary(
type="button"
data-bs-dismiss="modal"
) #{ btnText }
@@ -1,22 +1,22 @@
#reset-pass-info.modal.fade(
tabindex="-1"
aria-labelledby="modal-alert-label"
aria-labelledby="modal-fpi-label"
aria-hidden="true"
)
.modal-dialog.modal-lg
.modal-content
.modal-header
h5#modal-alert-label.modal-title.modal-title-blue #{ t('Obvestilo') }
h5#modal-fpi-label.modal-title.modal-title-blue #{ t('Obvestilo') }
button.btn-close(
type="button"
data-bs-dismiss="modal"
aria-label="Close"
)
.modal-body.d-flex.align-items-center
.d-flex.modal-alert.me-3
.d-flex.modal-fpi.me-3
img(src="/images/alert-circle-modal.svg")
.d-flex.modal-alert-content
p#alert-text.normal-gray #{ t('Na vaš elektronski naslov smo vam posredovali povezavo za ponastavitev gesla. Prosimo preverite svoj elektronski predal.') }
.d-flex.modal-fpi-content
p#fpi-text.normal-gray #{ t('Na vaš elektronski naslov smo vam posredovali povezavo za ponastavitev gesla. Prosimo preverite svoj elektronski predal.') }
.modal-footer.d-flex.justify-content-center.align-items-center
button#modal-fp-info-close.btn.btn-primary(
@@ -16,7 +16,7 @@
.d-flex.modal-alert.me-3
img(src="/images/alert-circle-modal.svg")
.d-flex.modal-alert-content
p#alert-text.normal-gray #{ t('Uspešno ste ponastavili svoje geslo.') }
p#fpi-text.normal-gray #{ t('Uspešno ste ponastavili svoje geslo.') }
.modal-footer.d-flex.justify-content-center.align-items-center
button#modal-fp-info-close.btn.btn-primary(
@@ -6,7 +6,7 @@
.modal-dialog.modal-lg
.modal-content
.modal-header
h5#modal-alert-label.modal-title.modal-title-blue #{ t('Pozabljeno geslo') }
h5#modal-fp-label.modal-title.modal-title-blue #{ t('Pozabljeno geslo') }
button.btn-close(
type="button"
data-bs-dismiss="modal"
@@ -43,10 +43,10 @@ mixin result_detail(data)
li.text-gray-1.fw-500 #{ t('Jeziki') }
.text-header-description-gray.fw-400= data.languages
if data.time_modified
li.text-gray-1.fw-500 Spremenjen
li.text-gray-1.fw-500 #{ t('Spremenjen') }
.text-header-description-gray.fw-400= data.time_modified
if data.count_entries
li.text-gray-1.fw-500 Število slovarskih sestavkov
li.text-gray-1.fw-500 #{ t('Število slovarskih sestavkov') }
.text-header-description-gray.fw-400= data.count_entries
if data.issn
li.text-gray-1.fw-500 #{ t('ISSN') }