mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-10-21 11:19:35 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3fb25869d | ||
|
|
e68634cf6f | ||
|
|
e3ed6066c2 | ||
|
|
39ea868f08 | ||
|
|
756b9b995d |
@@ -74,6 +74,9 @@ $config['tabs'] =
|
||||
],
|
||||
],
|
||||
],
|
||||
'hiddenFields' => [
|
||||
'uhrzeit'
|
||||
]
|
||||
],
|
||||
'exemptions' => [
|
||||
//if true, Anrechnungen can be added and edited in tab Anrechnungen
|
||||
|
||||
@@ -280,6 +280,47 @@ class LvMenu extends FHCAPI_Controller
|
||||
},
|
||||
$params
|
||||
);
|
||||
if (intval(substr($studiensemester_kurzbz, -2)) > 25 && $studiensemester_kurzbz !== "SS2026") {
|
||||
$menu = array_filter(
|
||||
$menu,
|
||||
function ($menuItem) {
|
||||
return $menuItem['id'] !== 'addon_lvevaluierung_menu_lvevaluierung';
|
||||
}
|
||||
);
|
||||
} else if (intval(substr($studiensemester_kurzbz, -2)) < 25) {
|
||||
$menu = array_filter(
|
||||
$menu,
|
||||
function ($menuItem) {
|
||||
return $menuItem['id'] !== 'extension_lvevaluierung_menu_initiierung';
|
||||
}
|
||||
);
|
||||
} else {
|
||||
$oldEval = current(array_filter(
|
||||
$menu,
|
||||
function ($menuItem) {
|
||||
return $menuItem['id'] === 'addon_lvevaluierung_menu_lvevaluierung';
|
||||
}
|
||||
));
|
||||
$newEval = current(array_filter(
|
||||
$menu,
|
||||
function ($menuItem) {
|
||||
return $menuItem['id'] === 'extension_lvevaluierung_menu_initiierung';
|
||||
}
|
||||
));
|
||||
if ($oldEval && $newEval) {
|
||||
$this->load->library('PhrasesLib');
|
||||
$p = $this->p;
|
||||
$menu = array_map(
|
||||
function ($menuItem) use ($p) {
|
||||
if ($menuItem['id'] === 'addon_lvevaluierung_menu_lvevaluierung') {
|
||||
$menuItem['name'] .= ' (' . $p->t('global', 'old') . ')';
|
||||
}
|
||||
return $menuItem;
|
||||
},
|
||||
$menu
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Menu sortieren
|
||||
// ##########################################################################################
|
||||
|
||||
@@ -315,6 +315,7 @@ class Abschlusspruefung extends FHCAPI_Controller
|
||||
'abschlussbeurteilung_kurzbz' => $formData['abschlussbeurteilung_kurzbz'],
|
||||
'datum' => $formData['datum'], //TODO(Manu) check if minute format like FAS
|
||||
'sponsion' => $formData['sponsion'],
|
||||
'uhrzeit' => $formData['uhrzeit'],
|
||||
'pruefer1' => $formData['pruefer1'],
|
||||
'pruefer2' => $formData['pruefer2'],
|
||||
'pruefer3' => $formData['pruefer3'],
|
||||
@@ -387,6 +388,7 @@ class Abschlusspruefung extends FHCAPI_Controller
|
||||
'abschlussbeurteilung_kurzbz' => $formData['abschlussbeurteilung_kurzbz'],
|
||||
'datum' => $datum,
|
||||
'sponsion' => $sponsion,
|
||||
'uhrzeit' => $formData['uhrzeit'],
|
||||
'pruefer1' => $pruefer1,
|
||||
'pruefer2' => $pruefer2,
|
||||
'pruefer3' => $pruefer3,
|
||||
|
||||
@@ -22,7 +22,7 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
pickerWidgets() {
|
||||
return this.widgets.filter(widget => widget.allowed).map(widget => ({ ...widget, permitted: true }));
|
||||
return this.widgets.filter(widget => widget.allowed);
|
||||
},
|
||||
sizeLimits() {
|
||||
return Object.fromEntries(this.widgets.map(({ setup, widget_id: type }) => {
|
||||
|
||||
@@ -6,16 +6,10 @@ export default {
|
||||
BsModal,
|
||||
WidgetIcon,
|
||||
},
|
||||
props: {
|
||||
widgets: {
|
||||
type: [ Array, null ],
|
||||
required: true
|
||||
},
|
||||
hiddenWidgets: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
props: [
|
||||
"widgets",
|
||||
"hiddenWidgets"
|
||||
],
|
||||
data: () => ({
|
||||
callbacks: {}
|
||||
}),
|
||||
|
||||
+23
-4
@@ -56,7 +56,8 @@ export default {
|
||||
anmerkung: null,
|
||||
protokoll: null,
|
||||
note: null,
|
||||
link: null
|
||||
link: null,
|
||||
uhrzeit: null
|
||||
},
|
||||
statusNew: true,
|
||||
arrTypen: [],
|
||||
@@ -310,6 +311,7 @@ export default {
|
||||
|
||||
this.formData.pruefungstyp_kurzbz = data.pruefungstyp_kurzbz;
|
||||
this.formData.datum = data.datum;
|
||||
this.formData.uhrzeit = data.uhrzeit;
|
||||
this.formData.sponsion = data.sponsion;
|
||||
this.formData.akadgrad_id = data.akadgrad_id;
|
||||
this.formData.pruefungsantritt_kurzbz = data.pruefungsantritt_kurzbz;
|
||||
@@ -411,6 +413,7 @@ export default {
|
||||
pruefer3_label: this.selectedPruefer3?.label || null,
|
||||
akadgrad_id: this.formData.akadgrad_id,
|
||||
datum: this.formData.datum,
|
||||
uhrzeit: this.formData.uhrzeit || null,
|
||||
sponsion: this.formData.sponsion
|
||||
};
|
||||
localStorage.setItem(STORAGE_KEY, JSON.stringify(stored));
|
||||
@@ -527,6 +530,7 @@ export default {
|
||||
this.formData.abschlussbeurteilung_kurzbz = null;
|
||||
this.formData.datum = null;
|
||||
this.formData.sponsion = null;
|
||||
this.formData.uhrzeit = null;
|
||||
this.formData.pruefer1 = null;
|
||||
this.formData.pruefer2 = null;
|
||||
this.formData.pruefer3 = null;
|
||||
@@ -620,7 +624,7 @@ export default {
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.$api
|
||||
@@ -715,7 +719,6 @@ export default {
|
||||
</template>
|
||||
|
||||
<form-form ref="formFinalExam" @submit.prevent>
|
||||
|
||||
<legend>{{this.$p.t('global','details')}}</legend>
|
||||
<p v-if="statusNew">[{{$p.t('ui', 'neu')}}]</p>
|
||||
|
||||
@@ -916,6 +919,22 @@ export default {
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div v-if="!config.hiddenFields?.includes('uhrzeit')" class="row mb-3">
|
||||
<form-input
|
||||
container-class="col-6 stv-details-uhrzeit"
|
||||
:label="$p.t('global', 'uhrzeit')"
|
||||
type="DatePicker"
|
||||
v-model="formData.uhrzeit"
|
||||
model-type="HH:mm:ss"
|
||||
time-picker
|
||||
text-input
|
||||
name="uhrzeit"
|
||||
:teleport="true"
|
||||
:cancel-text="$p.t('ui', 'abbrechen')"
|
||||
:select-text="$p.t('ui', 'ok')"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
container-class="col-6 stv-details-abschlusspruefung-sponsion"
|
||||
@@ -979,7 +998,7 @@ export default {
|
||||
:cisRoot="cisRoot"
|
||||
@linkGenerated="printDocument"
|
||||
></abschlusspruefung-dropdown>
|
||||
</Teleport>
|
||||
</Teleport>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
function loadCss(path) {
|
||||
if (!document.head) {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.addEventListener('load', () => loadCss(path).then(resolve).catch(reject));
|
||||
});
|
||||
}
|
||||
if (path.match(/^\/[^\/]/))
|
||||
path = FHC_JS_DATA_STORAGE_OBJECT.app_root.replace(/\/$/, "") + path;
|
||||
|
||||
if (document.querySelector('link[href="' + path + '"]'))
|
||||
return Promise.resolve();
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const link = document.createElement('link');
|
||||
link.rel = 'stylesheet';
|
||||
link.type = 'text/css';
|
||||
|
||||
link.onload = resolve;
|
||||
link.onerror = reject;
|
||||
|
||||
link.href = path;
|
||||
|
||||
document.head.append(link);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
export {
|
||||
loadCss,
|
||||
};
|
||||
|
||||
export default {
|
||||
loadCss,
|
||||
};
|
||||
@@ -62,7 +62,3 @@ function splitWordsInCamelCase(string) {
|
||||
splitWords.push(string.slice(lastUpperCaseLetterIndex));
|
||||
return splitWords;
|
||||
}
|
||||
|
||||
export function isString(str) {
|
||||
return typeof str === 'string' || str instanceof String;
|
||||
}
|
||||
|
||||
+20
-162
@@ -2153,46 +2153,6 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'ui',
|
||||
'phrase' => 'aborted_by_user',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Abbruch durch Benutzer',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Aborted by the user',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'ui',
|
||||
'phrase' => 'no_preview_available',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Keine Vorschau verfügbar',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'No preview available',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'anrechnung',
|
||||
@@ -67410,128 +67370,6 @@ I have been informed that I am under no obligation to consent to the transmissio
|
||||
)
|
||||
),
|
||||
// ### Phrases Dashboard Studstatus Widget END
|
||||
// ### Phrases Dashboard OpenProject Widget START
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'dashboard',
|
||||
'phrase' => 'widget_openproject_login',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'In OpenProject anmelden',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Login to OpenProject',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'dashboard',
|
||||
'phrase' => 'widget_openproject_title_listWpOpen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Offene WorkPackages',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Open WorkPackages',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'dashboard',
|
||||
'phrase' => 'widget_openproject_title_listWpOverdue',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Überfällige WorkPackages',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Overdue WorkPackages',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'dashboard',
|
||||
'phrase' => 'widget_openproject_title_listWpNew',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Neue WorkPackages',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'New WorkPackages',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'dashboard',
|
||||
'phrase' => 'widget_openproject_title_listMentioned',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Erwähnungen',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Mentions',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'dashboard',
|
||||
'phrase' => 'widget_openproject_select_endpoint',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Anzeigen:',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Show:',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
// ### Phrases Dashboard OpenProject Widget END
|
||||
//******************* CORE/reservierung
|
||||
array(
|
||||
'app' => 'core',
|
||||
@@ -68361,6 +68199,26 @@ I have been informed that I am under no obligation to consent to the transmissio
|
||||
)
|
||||
),
|
||||
// Zeitsperren Sancho Subjects end
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'global',
|
||||
'phrase' => 'old',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'alt',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'old',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user