speeddial icon/positioning; textarea styles; fixtermin phrase; wip inverting fixtermin bool logic to avoid double negative semantics

This commit is contained in:
Johann Hoffmann
2025-11-07 14:19:17 +01:00
parent a61d5b1d62
commit cef0046acd
6 changed files with 48 additions and 36 deletions
@@ -358,11 +358,8 @@ export const AbgabeMitarbeiterDetail = {
return 'position: static !important;'
},
getSpeedDialWrapperStyle() {
// fullscreen -> position wrapper fixed in right bottom corner of viewport/screen
if(this.isFullscreen) return 'position: fixed; z-index: 9999; bottom: 24px; right: 24px;'
// non fullscreen -> wrapper is positioned on right bottom corner of modal, wherever that is
return 'position: absolute; z-index: 9999; bottom: -28px; right: -28px;'
return 'position: absolute; z-index: 9999; left: 0px; bottom: 0.5rem;'
},
getTooltipVerspaetet() {
return {
@@ -510,7 +507,7 @@ export const AbgabeMitarbeiterDetail = {
<div class="row mt-2">
<div class="col-4 col-md-3 fw-bold">{{ $capitalize( $p.t('abgabetool/c4abgabekurzbz') )}}</div>
<div class="col-8 col-md-9">
<Textarea style="margin-bottom: 4px;" v-model="newTermin.kurzbz" rows="1" :cols=" isMobile ? 30 : 60"></Textarea>
<Textarea style="margin-bottom: 4px;" v-model="newTermin.kurzbz" rows="1" class="w-100"></Textarea>
</div>
</div>
</div>
@@ -521,17 +518,17 @@ export const AbgabeMitarbeiterDetail = {
</bs-modal>
<div v-if="projektarbeit">
<div id="speedDialWrapper" :style="getSpeedDialWrapperStyle">
<SpeedDial
:style="getSpeedDialStyle"
:model="speedDialItems"
direction="up"
:radius="80"
type="linear"
buttonClass="p-button-rounded p-button-lg p-button-primary"
:tooltipOptions="{ position: 'left' }"
/>
</div>
<!-- <div id="speedDialWrapper" :style="getSpeedDialWrapperStyle">-->
<!-- <SpeedDial-->
<!-- :style="getSpeedDialStyle"-->
<!-- :model="speedDialItems" -->
<!-- direction="up"-->
<!-- :radius="80"-->
<!-- type="linear"-->
<!-- buttonClass="p-button-rounded p-button-lg p-button-primary"-->
<!-- :tooltipOptions="{ position: 'left' }"-->
<!-- />-->
<!-- </div>-->
<h5>{{$capitalize( $p.t('abgabetool/c4abgabeMitarbeiterbereich') )}}</h5>
@@ -541,8 +538,8 @@ export const AbgabeMitarbeiterDetail = {
<p> {{getProjektarbeitTitel}}</p>
<p v-if="projektarbeit?.zweitbegutachter"> {{projektarbeit?.zweitbegutachter}}</p>
</div>
<div v-if="!isMobile" class="col-3"></div>
<div :class="isMobile ? 'col-6' : 'col-3'">
<div class="col-6 d-flex justify-content-end align-items-start">
<!-- <div id="speedDialWrapper" :style="getSpeedDialWrapperStyle">-->
<SpeedDial
:model="speedDialItems"
direction="left"
@@ -550,7 +547,22 @@ export const AbgabeMitarbeiterDetail = {
type="linear"
buttonClass="p-button-rounded p-button-lg p-button-primary"
:tooltipOptions="{ position: 'down' }"
/>
>
<template #icon>
<i class="fa-solid fa-bars"></i>
</template>
</SpeedDial>
<!-- </div>-->
</div>
</div>
<div class="row" style="margin-bottom: 12px;">
<div class="col-auto">
<button type="button" class="btn btn-primary" @click="openCreateNewAbgabeModal">
<i class="fa-solid fa-plus"></i>
{{$capitalize( $p.t('abgabetool/c4newAbgabetermin') )}}
</button>
</div>
</div>
<Accordion :multiple="true" :activeIndex="getActiveIndexTabArray">
@@ -577,7 +589,7 @@ export const AbgabeMitarbeiterDetail = {
</div>
</template>
<div class="row mt-2" v-if="assistenzMode">
<div class="col-4 col-md-3 fw-bold">{{$p.t('abgabetool/c4fixterminv2')}}</div>
<div class="col-4 col-md-3 fw-bold">{{$p.t('abgabetool/c4fixterminv3')}}</div>
<div class="col-8 col-md-9">
<Checkbox
v-model="termin.fixtermin"
@@ -641,14 +653,14 @@ export const AbgabeMitarbeiterDetail = {
<div class="row mt-2" v-if="termin.bezeichnung?.benotbar">
<div class="col-4 col-md-3 fw-bold">{{$capitalize( $p.t('abgabetool/c4notizQualGatev2') )}}</div>
<div class="col-8 col-md-9">
<Textarea style="margin-bottom: 4px;" v-model="termin.beurteilungsnotiz" rows="1" :cols=" isMobile ? 30 : 90" :disabled="!termin.allowedToSave"></Textarea>
<Textarea style="margin-bottom: 4px;" v-model="termin.beurteilungsnotiz" rows="1" class="w-100" :disabled="!termin.allowedToSave"></Textarea>
</div>
</div>
<div class="row mt-2">
<div class="col-4 col-md-3 fw-bold">{{$capitalize( $p.t('abgabetool/c4abgabekurzbz') )}}</div>
<div class="col-8 col-md-9">
<Textarea style="margin-bottom: 4px;" v-model="termin.kurzbz" rows="1" :cols=" isMobile ? 30 : 90" :disabled="!termin.allowedToSave"></Textarea>
<Textarea style="margin-bottom: 4px;" v-model="termin.kurzbz" class="w-100" rows="1" :disabled="!termin.allowedToSave"></Textarea>
</div>
</div>
<div class="row mt-2">
@@ -389,7 +389,7 @@ export const AbgabeStudentDetail = {
</div>
</template>
<!-- <div class="row">-->
<!-- <div class="col-4 col-md-3 fw-bold">{{$p.t('abgabetool/c4fixterminv2')}}</div>-->
<!-- <div class="col-4 col-md-3 fw-bold">{{$p.t('abgabetool/c4fixterminv3')}}</div>-->
<!-- <div class="col-8 col-md-9">-->
<!-- <Checkbox -->
<!-- disabled-->
@@ -435,14 +435,14 @@ export const AbgabeStudentDetail = {
<div class="row mt-2" v-if="termin.paabgabetyp_kurzbz === 'qualgate1' || termin.paabgabetyp_kurzbz === 'qualgate2'">
<div class="col-4 col-md-3 fw-bold">{{$capitalize( $p.t('abgabetool/c4notizQualGatev2') )}}</div>
<div class="col-8 col-md-9">
<Textarea style="margin-bottom: 4px;" v-model="termin.beurteilungsnotiz" rows="1" :cols=" isMobile ? 30 : 90" disabled></Textarea>
<Textarea style="margin-bottom: 4px;" v-model="termin.beurteilungsnotiz" rows="1" class="w-100" disabled></Textarea>
</div>
</div>
<div v-if="termin.kurzbz && termin.kurzbz.length > 0" class="row mt-2">
<div class="col-4 col-md-3 fw-bold">{{$capitalize( $p.t('abgabetool/c4abgabekurzbz') )}}</div>
<div class="col-8 col-md-9">
<Textarea style="margin-bottom: 4px;" v-model="termin.kurzbz" rows="1" :cols=" isMobile ? 25 : 90" :disabled="true"></Textarea>
<Textarea style="margin-bottom: 4px;" v-model="termin.kurzbz" rows="1" class="w-100" :disabled="true"></Textarea>
</div>
</div>
@@ -551,21 +551,21 @@ export const AbgabeStudentDetail = {
<div class="row mb-3 align-items-start">
<div class="row">{{$capitalize( $p.t('abgabetool/c4schlagwoerterGer') )}}</div>
<div class="row">
<Textarea v-model="form.schlagwoerter"></Textarea>
<Textarea v-model="form.schlagwoerter" class="w-100"></Textarea>
</div>
</div>
<div class="row mb-3 align-items-start">
<div class="row">{{$capitalize( $p.t('abgabetool/c4schlagwoerterEng') )}}</div>
<div class="row">
<Textarea v-model="form.schlagwoerter_en"></Textarea>
<Textarea v-model="form.schlagwoerter_en" class="w-100"></Textarea>
</div>
</div>
<div class="row mb-3 align-items-start">
<div class="row">{{$capitalize( $p.t('abgabetool/c4abstractGer') )}}</div>
<div class="row">
<Textarea v-model="form.abstract" rows="10" maxlength="5000"></Textarea>
<Textarea v-model="form.abstract" rows="10" maxlength="5000" class="w-100"></Textarea>
<p>{{ form.abstract?.length ? form.abstract.length : 0 }} / 5000 characters</p>
</div>
</div>
@@ -573,7 +573,7 @@ export const AbgabeStudentDetail = {
<div class="row mb-3 align-items-start">
<div class="row">{{$capitalize( $p.t('abgabetool/c4abstractEng') )}}</div>
<div class="row">
<Textarea v-model="form.abstract_en" rows="10" maxlength="5000"></Textarea>
<Textarea v-model="form.abstract_en" rows="10" maxlength="5000" class="w-100"></Textarea>
<p>{{ form.abstract_en?.length ? form.abstract_en.length : 0 }} / 5000 characters</p>
</div>
</div>
@@ -851,7 +851,7 @@ export const AbgabetoolAssistenz = {
<template v-slot:default>
<div class="row">
<div class="col-1 d-flex justify-content-center align-items-center">
{{$p.t('abgabetool/c4fixterminv2')}}
{{$p.t('abgabetool/c4fixterminv3')}}
</div>
<div class="col-3 d-flex justify-content-center align-items-center">
{{$capitalize($p.t('abgabetool/c4zieldatum'))}}
@@ -894,7 +894,7 @@ export const AbgabetoolAssistenz = {
</Dropdown>
</div>
<div class="col-5 d-flex justify-content-center align-items-center">
<Textarea style="margin-bottom: 4px;" v-model="serienTermin.kurzbz" rows="1" cols="40"></Textarea>
<Textarea style="margin-bottom: 4px;" v-model="serienTermin.kurzbz" rows="1" class="w-100"></Textarea>
</div>
</div>
@@ -450,7 +450,7 @@ export const AbgabetoolMitarbeiter = {
</Dropdown>
</div>
<div class="col-6 d-flex justify-content-center align-items-center">
<Textarea style="margin-bottom: 4px;" v-model="serienTermin.kurzbz" rows="1" cols="40"></Textarea>
<Textarea style="margin-bottom: 4px;" v-model="serienTermin.kurzbz" rows="1" class="w-100"></Textarea>
</div>
</div>
@@ -33,7 +33,7 @@ export const DeadlineOverview = {
placeholder: this.$p.t('global/noDataAvailable'),
columns: [
{title: Vue.computed(() => this.$p.t('abgabetool/c4zieldatum')), field: 'datum', formatter: this.centeredTextFormatter, widthGrow: 1, tooltip: false},
{title: Vue.computed(() => this.$p.t('abgabetool/c4fixterminv2')), field: 'fixterminstring', formatter: this.centeredTextFormatter, widthGrow: 1, tooltip: false},
{title: Vue.computed(() => this.$p.t('abgabetool/c4fixterminv3')), field: 'fixterminstring', formatter: this.centeredTextFormatter, widthGrow: 1, tooltip: false},
{title: Vue.computed(() => this.$p.t('abgabetool/c4abgabetypv2')), field: 'typ_bezeichnung', formatter: this.centeredTextFormatter, widthGrow: 1},
{title: Vue.computed(() => this.$p.t('abgabetool/c4abgabekurzbz')), field: 'kurzbz', formatter: this.centeredTextFormatter, widthGrow: 3},
{title: Vue.computed(() => this.$p.t('person/studentIn')), field: 'student', formatter: this.centeredTextFormatter, widthGrow: 2},
+3 -3
View File
@@ -42120,18 +42120,18 @@ array(
array(
'app' => 'core',
'category' => 'abgabetool',
'phrase' => 'c4fixterminv2',
'phrase' => 'c4fixterminv3',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Fixtermin",
'text' => "kein Nachreichen möglich",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Fixed Deadline",
'text' => "no late submission possible",
'description' => '',
'insertvon' => 'system'
)