diff --git a/application/helpers/hlp_header_helper.php b/application/helpers/hlp_header_helper.php index 53a5f5ba3..eb2cd9f85 100644 --- a/application/helpers/hlp_header_helper.php +++ b/application/helpers/hlp_header_helper.php @@ -111,7 +111,8 @@ function generateJSDataStorageObject($indexPage, $calledPath, $calledMethod) 'theme' => [ 'name'=>$ci->config->item('theme_name'), 'modes'=>$ci->config->item('theme_modes'), - ] + ], + 'domain' => DOMAIN ); $toPrint = "\n"; diff --git a/application/views/Studentenverwaltung.php b/application/views/Studentenverwaltung.php index 8dd2dd93d..c1a55c6bf 100644 --- a/application/views/Studentenverwaltung.php +++ b/application/views/Studentenverwaltung.php @@ -62,6 +62,7 @@ $configArray = [ logout-url="= site_url('Cis/Auth/logout'); ?>" :permissions="= htmlspecialchars(json_encode($permissions)); ?>" :config="= htmlspecialchars(json_encode($configArray)); ?>" + auth-uid="= getAuthUID()?>" > diff --git a/public/js/components/Stv/Studentenverwaltung.js b/public/js/components/Stv/Studentenverwaltung.js index a926bb858..f22aa2d45 100644 --- a/public/js/components/Stv/Studentenverwaltung.js +++ b/public/js/components/Stv/Studentenverwaltung.js @@ -54,7 +54,8 @@ export default { cisRoot: String, avatarUrl: String, logoutUrl: String, - activeAddons: String // semicolon separated list of active addons + activeAddons: String, // semicolon separated list of active addons + authUid: String }, provide() { return { @@ -88,6 +89,7 @@ export default { hasZGVMasterPermission: this.permissions['student/editMakkZgv'], hasZGVDoctorPermission: this.permissions['student/editDokZgv'], hasBismeldenPermission: this.permissions['student/editBismelden'], + authUid: this.authUid } }, diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontaktieren.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontaktieren.js index ef61ef1b9..6d89d6b12 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Kontaktieren.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontaktieren.js @@ -1,6 +1,14 @@ -import { splitMailsHelper } from "../../../../helpers/EmailHelpers.js" +import { splitMailsHelper } from "../../../../helpers/EmailHelpers.js"; +import { splitMailLinks } from "../../../../helpers/EmailHelpers.js"; +import FormInput from "../../../Form/Input.js"; +import FormForm from "../../../Form/Form.js"; + export default { name: "Kontaktieren", + components: { + FormInput, + FormForm + }, computed: { internMails() { if (this.modelValue.mail_intern) @@ -21,38 +29,150 @@ export default { props: { modelValue: Object }, - + inject: { + authUid: { + from: 'authUid', + required: true + }, + }, + data(){ + return { + mailLinks: [], + mailLinksClicked: [], + showMailDialog: false, + showDivKomp: false, + showDivKompLocalStorageId: 'studvw-contact-showDivKomp' + } + }, + activated() { + const showDivCompLocalStorage = window.localStorage.getItem(this.showDivKompLocalStorageId); + this.showDivKomp = (showDivCompLocalStorage === 'true') ? true : false; + }, methods: { internMail(event) { if (this.internMails.length) { - splitMailsHelper(this.internMails, event, null, null, this.$fhcAlert, this.$p) + splitMailsHelper(this.internMails, event, null, null, this.$fhcAlert, this.$p, this.authUid) } }, privateMail(event) { if (this.privateMails.length) { - splitMailsHelper(this.privateMails, event, null,null, this.$fhcAlert, this.$p) + splitMailsHelper(this.privateMails, event, null, null, this.$fhcAlert, this.$p, this.authUid) } + }, + createMailLinks(event, mailGroup){ + let recipients = mailGroup == 'private' ? this.privateMails : this.internMails; + this.mailLinks = splitMailLinks( + recipients, + "", + event.ctrlKey || event.metaKey, + this.authUid + ); + this.mailLinksClicked = []; + + this.showMailDialog = true; + }, + handleMailLink(link, index){ + this.mailLinksClicked.push(index); + window.open(link, '_blank', 'noopener'); + }, + reset(){ + this.showMailDialog = false; + }, + onSwitchChange(){ + window.localStorage.setItem(this.showDivKompLocalStorageId, this.showDivKomp); } }, template: ` -
{{$p.t('stv', 'zuvieleEMails')}}
+ + +