Merge branch 'master' into mail-obvescanje

pull/42/head
Lio Novelli 2024-03-17 20:41:12 +01:00
commit 25bd29bdc5
52 changed files with 921 additions and 601 deletions

View File

@ -24,6 +24,7 @@
"drupal/core-project-message": "^10.0",
"drupal/core-recommended": "^10.0",
"drupal/diff": "^1.1",
"drupal/core-recommended": "^10.2.4",
"drupal/gin": "^3.0@RC",
"drupal/gin_toolbar": "^1.0@RC",
"drupal/jsonapi_menu_items": "^1.2",
@ -31,7 +32,7 @@
"drupal/single_content_sync": "^1.3",
"drupal/token": "^1.12",
"drupal/yaml_content": "^1.0@dev",
"drush/drush": "^11.4"
"drush/drush": "^12"
},
"conflict": {
"drupal/drupal": "*"

1273
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -16,5 +16,6 @@ required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
settings:
allowed_formats: { }
field_type: text_long

View File

@ -11,5 +11,6 @@ _core:
default_config_hash: Tdhz-aDHfDoV1Ul9umtItxGTrjkFzoNAkDw8FWXjYA0
id: media.media_library
label: 'Media library'
description: ''
targetEntityType: media
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: flXhTcp55yLcyy7ZLOhPGKGZobZQJdkAFVWV3LseiuI
id: user.register
label: Register
description: ''
targetEntityType: user
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- block
id: block.token
label: Token
description: ''
targetEntityType: block
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: 4tedlMuvQjDOdvHdw86_e-2Rt78aR7TGFMfOK8Ejppg
id: block_content.full
label: Full
description: ''
targetEntityType: block_content
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- block_content
id: block_content.token
label: Token
description: ''
targetEntityType: block_content
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: K7eNlfU7NEUajz01wItywZklr2oaPgL6s1_97fmDXLA
id: comment.full
label: 'Full comment'
description: ''
targetEntityType: comment
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- comment
id: comment.token
label: Token
description: ''
targetEntityType: comment
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- content_moderation
id: content_moderation_state.token
label: Token
description: ''
targetEntityType: content_moderation_state
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- file
id: file.token
label: Token
description: ''
targetEntityType: file
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: 6NBUEuGmlkClK8Fb76tSMMpO2eZ4LWCBdbUk4z7CuP0
id: media.full
label: 'Full content'
description: ''
targetEntityType: media
cache: true

View File

@ -11,5 +11,6 @@ _core:
default_config_hash: Tdhz-aDHfDoV1Ul9umtItxGTrjkFzoNAkDw8FWXjYA0
id: media.media_library
label: 'Media library'
description: ''
targetEntityType: media
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- media
id: media.token
label: Token
description: ''
targetEntityType: media
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- menu_link_content
id: menu_link_content.token
label: Token
description: ''
targetEntityType: menu_link_content
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: ElrtInxGjZd7GaapJ5O9n-ugi2hG2IxFivtgn0tHOsk
id: node.full
label: 'Full content'
description: ''
targetEntityType: node
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: vlYzr-rp2f9NMp-Qlr4sFjlqRq-90mco5-afLNGwCrU
id: node.rss
label: RSS
description: ''
targetEntityType: node
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: fVFfJv_GzBRE-wpRHbfD5a3VjnhbEOXG6lvRd3uaccY
id: node.search_index
label: 'Search index'
description: ''
targetEntityType: node
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: 6GCOQ-jP2RbdbHA5YWQ6bT8CfGbqrBYKOSC_XY4E3ZM
id: node.search_result
label: 'Search result highlighting input'
description: ''
targetEntityType: node
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: Mz9qWr1kUYK0mjRAGDsr5XS6PvtZ24en_7ndt-pyWe4
id: node.teaser
label: Teaser
description: ''
targetEntityType: node
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- node
id: node.token
label: Token
description: ''
targetEntityType: node
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- path_alias
id: path_alias.token
label: Token
description: ''
targetEntityType: path_alias
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: '-PPKjsNQPvoIDjOuUAvlLocYD976MNjb9Zpgyz5_BWE'
id: taxonomy_term.full
label: 'Taxonomy term page'
description: ''
targetEntityType: taxonomy_term
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- taxonomy
id: taxonomy_term.token
label: Token
description: ''
targetEntityType: taxonomy_term
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: 71CSAr_LNPcgu6D6jI4INl1KATkahmeyUFBETAWya8g
id: user.compact
label: Compact
description: ''
targetEntityType: user
cache: true

View File

@ -8,5 +8,6 @@ _core:
default_config_hash: mQIF_foYjmnVSr9MpcD4CTaJE_FpO1AyDd_DskztGhM
id: user.full
label: 'User account'
description: ''
targetEntityType: user
cache: true

View File

@ -6,5 +6,6 @@ dependencies:
- user
id: user.token
label: Token
description: ''
targetEntityType: user
cache: true

View File

@ -22,4 +22,5 @@ default_value_callback: ''
settings:
display_summary: false
required_summary: false
allowed_formats: { }
field_type: text_with_summary

View File

@ -19,5 +19,6 @@ required: true
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
settings:
allowed_formats: { }
field_type: text_long

View File

@ -22,4 +22,5 @@ default_value_callback: ''
settings:
display_summary: true
required_summary: false
allowed_formats: { }
field_type: text_with_summary

View File

@ -20,4 +20,5 @@ default_value_callback: ''
settings:
display_summary: true
required_summary: false
allowed_formats: { }
field_type: text_with_summary

View File

@ -22,4 +22,5 @@ default_value_callback: ''
settings:
display_summary: true
required_summary: false
allowed_formats: { }
field_type: text_with_summary

View File

@ -0,0 +1,7 @@
filename_sanitization:
transliterate: false
replace_whitespace: false
replace_non_alphanumeric: false
deduplicate_separators: false
lowercase: false
replacement_character: '-'

View File

@ -8,6 +8,12 @@ name: 'Plain text'
format: plain_text
weight: 10
filters:
filter_autop:
id: filter_autop
provider: filter
status: true
weight: 0
settings: { }
filter_html_escape:
id: filter_html_escape
provider: filter
@ -21,9 +27,3 @@ filters:
weight: 0
settings:
filter_url_length: 72
filter_autop:
id: filter_autop
provider: filter
status: true
weight: 0
settings: { }

View File

@ -1,6 +1,6 @@
_core:
default_config_hash: PlWtVQXY5oKYZqCMPXh6SPamXagn5BoZqgAI8EY9WsY
icon_base_uri: 'public://media-icons/generic'
iframe_domain: ''
iframe_domain: null
oembed_providers_url: 'https://oembed.com/providers.json'
standalone_url: false

View File

@ -2,3 +2,10 @@ _core:
default_config_hash: rYgt7uhPafP2ngaN_ZUPFuyI4KdE0zU868zLNSlzKoE
interface:
default: php_mail
mailer_dsn:
scheme: sendmail
host: default
user: null
password: null
port: null
options: { }

View File

@ -14,4 +14,3 @@ fast_404:
js:
preprocess: true
gzip: true
stale_file_threshold: 2592000

View File

@ -12,5 +12,5 @@ features:
node_user_picture: false
logo:
path: ''
url: ''
url: null
use_default: true

View File

@ -4,7 +4,7 @@ check:
disabled_extensions: false
interval_days: 7
fetch:
url: ''
url: null
max_attempts: 2
timeout: 30
notification:

View File

@ -0,0 +1,45 @@
display_extenders: { }
sql_signature: false
ui:
show:
additional_queries: false
advanced_column: false
default_display: false
performance_statistics: false
preview_information: true
sql_query:
enabled: false
where: above
display_embed: false
always_live_preview: true
exposed_filter_any_label: old_any
field_rewrite_elements:
div: DIV
span: SPAN
h1: H1
h2: H2
h3: H3
h4: H4
h5: H5
h6: H6
p: P
header: HEADER
footer: FOOTER
article: ARTICLE
section: SECTION
aside: ASIDE
details: DETAILS
blockquote: BLOCKQUOTE
figure: FIGURE
address: ADDRESS
code: CODE
pre: PRE
var: VAR
samp: SAMP
kbd: KBD
strong: STRONG
em: EM
del: DEL
ins: INS
q: Q
s: S

View File

@ -43,6 +43,9 @@ display:
id: title
table: node_field_data
field: title
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: title
plugin_id: field
@ -50,15 +53,57 @@ display:
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: string
settings:
link_to_entity: true
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
type:
id: type
table: node_field_data

View File

@ -915,7 +915,6 @@ display:
default_argument_type: fixed
default_argument_options:
argument: ''
default_argument_skip_url: false
summary_options:
base_path: ''
count: true
@ -1206,7 +1205,6 @@ display:
default_argument_type: fixed
default_argument_options:
argument: ''
default_argument_skip_url: false
summary_options:
base_path: ''
count: true

View File

@ -108,7 +108,6 @@ display:
default_argument_type: fixed
default_argument_options:
argument: ''
default_argument_skip_url: false
summary_options:
base_path: ''
count: true

View File

@ -83,6 +83,7 @@
background: none;
text-decoration: underline;
width: fit-content;
z-index: 100;
}
footer {

View File

@ -1,8 +1,12 @@
<script setup="setup">
const route = useRoute()
const pot = computed(() => route.path)
const naManifestu = computed(() => route.path.indexOf('/manifest') === 0)
const { baseUrl } = useRuntimeConfig().public
</script>
<template>
@ -19,7 +23,7 @@ const naManifestu = computed(() => route.path.indexOf('/manifest') === 0)
</NuxtLink>
</li>
<li>
<NuxtLink to="https://yugofuturism.kompot.si/user" target="_blank">
<NuxtLink :to="baseUrl + '/user'" class="posivljen" target="_blank">
admin
</NuxtLink>
</li>
@ -108,6 +112,10 @@ ul {
width: 100%;
}
.posivljen {
opacity: 0.5;
}
@media screen and (max-width: 768px) {
.meni {
display: flex;

View File

@ -3,6 +3,8 @@
import { stripHtml } from 'string-strip-html'
const { etherFetch } = useEtherpadApi()
const { poskrolaj } = useUi()
const store = usePojmiStore()
const route = useRoute()
@ -40,10 +42,15 @@ onMounted(() => {
// Link na editiranje pojma? Poskrolaj nanj + odpri editiranje
if (route.params.guid === revisionId.value) {
urejanje.value = true
setTimeout(() => obrazec.value.scrollIntoView({ behavior: 'smooth' }), 50)
} else {
// Sicer samo poskrolaj na pojem
setTimeout(() => container.value.parentNode.scrollIntoView({ behavior: 'smooth' }), 50)
poskrolaj(container.value.parentNode)
}
})
onUpdated(() => {
if (route.params.guid === revisionId.value) {
poskrolaj(obrazec.value)
}
})
@ -56,11 +63,13 @@ onMounted(() => {
<h2>{{ naslov }}</h2>
<div class="tekst" v-html="pojem.tekst" />
</div>
<div class="obrazec" ref="obrazec">
<PojemForm v-if="urejanje"
ref="obrazec"
:revisionId="revisionId"
:pojem="pojem"
:onZapri="() => { urejanje = false; store.naloziPojme() }" />
</div>
</section>
</template>
@ -81,9 +90,12 @@ onMounted(() => {
}
form.pojem {
width: 100%;
}
.obrazec {
width: calc(50% - 32px);
margin-left: 32px;
gap: 1rem;
float: right;
}
@ -100,7 +112,14 @@ onMounted(() => {
width: 100%;
}
.obrazec {
width: 100%;
margin-left: 0;
}
form.pojem {
min-height: 70vh;
width: 100%;
margin-left: 0;
min-height: 70vh;
}

View File

@ -78,6 +78,10 @@ const etherNalozen = ev => {
</template>
<style>
form {
gap: 1rem;
}
.etherpad-textarea {
width: 100%;
flex-grow: 1;

View File

@ -1,3 +1,4 @@
// @TODO preimenuj v api.js, dodaj helperje se za json fetch / naš api
export const useEtherpadApi = () => {
const { baseUrl } = useRuntimeConfig().public
const etherpadApiUrl = `${baseUrl}/etherpad-api`

View File

@ -0,0 +1,12 @@
/* uporabne zadeve za vmesnik */
export const useUi = () => ({
poskrolaj: (sekcija, timeout = 50) => {
setTimeout(() => {
console.log('UI SKROL!', sekcija)
if (sekcija && sekcija.scrollIntoView) {
sekcija.scrollIntoView({ behavior: 'smooth' })
}
}, timeout)
}
})

View File

@ -1,8 +1,9 @@
<script setup="setup">
const { getRandomUUID } = useCrypto()
const { etherFetch } = useEtherpadApi()
const { poskrolaj } = useUi()
const { etherpadApiUrl } = useEtherpadApi()
const route = useRoute()
const revisionId = ref(null)
@ -12,17 +13,15 @@ revisionId.value = route.params.guid ? route.params.guid : getRandomUUID()
// Ustvari nov, prazen pad
// @TODO parameter za seranje linka?
const padId = revisionId.value
const resp = await $fetch(`${etherpadApiUrl}/createPad?padID=${padId}`)
const resp = await etherFetch('/createPad', {
padID: revisionId.value,
text: ''
})
const onZapri = () => { navigateTo('/manifest#skrol') }
onMounted(() => {
setTimeout(() => {
console.log('element?', obrazec.value)
debugger
obrazec.value.scrollIntoView({ behavior: 'smooth' })
}, 50)
poskrolaj(obrazec.value)
})
</script>

View File

@ -1,15 +1,16 @@
<script setup="setup">
const store = usePojmiStore()
const { poskrolaj } = useUi()
await store.naloziPojme()
const navodila = ref(null)
onMounted(() => {
if (location && location.hash == '#skrol') {
setTimeout(() => {
navodila.value.scrollIntoView({ behavior: 'smooth' })
}, 50)
poskrolaj(navodila.value)
}
})