From e08ae7b3319cefe388f1d62a862629761828df48 Mon Sep 17 00:00:00 2001 From: Ivymaster Date: Fri, 24 Jul 2026 09:26:05 +0200 Subject: [PATCH] Add extraction of header component from tempus component --- public/js/components/Tempus/Header.js | 109 ++++++++++++++++++++++++++ public/js/components/Tempus/Tempus.js | 95 +++------------------- 2 files changed, 120 insertions(+), 84 deletions(-) create mode 100644 public/js/components/Tempus/Header.js diff --git a/public/js/components/Tempus/Header.js b/public/js/components/Tempus/Header.js new file mode 100644 index 000000000..7109932fa --- /dev/null +++ b/public/js/components/Tempus/Header.js @@ -0,0 +1,109 @@ +import CoreSearchbar from "../searchbar/searchbar.js"; +import NavLanguage from "../navigation/Language.js"; + +export default { + name: "TempusHeader", + components: { + CoreSearchbar, + NavLanguage, + }, + props: { + tempusRoot: String, + avatarUrl: String, + logoutUrl: String, + searchbaroptions: { + type: Object, + required: true, + }, + searchfunction: { + type: Function, + required: true, + }, + }, + emits: ["focus-searchbar"], + methods: { + focusSearchbar() { + this.$refs.searchbar?.$refs?.input?.focus(); + this.$emit("focus-searchbar"); + }, + }, + template: /* html */ ` + + `, +}; diff --git a/public/js/components/Tempus/Tempus.js b/public/js/components/Tempus/Tempus.js index f6effc5c6..0b83340b2 100644 --- a/public/js/components/Tempus/Tempus.js +++ b/public/js/components/Tempus/Tempus.js @@ -14,8 +14,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -import CoreSearchbar from "../searchbar/searchbar.js"; -import NavLanguage from "../navigation/Language.js"; import VerticalSplit from "../verticalsplit/verticalsplit.js"; import FhcCalendar from "../Calendar/Tempus.js"; import FhcCoursepicker from "./Coursepicker.js"; @@ -47,11 +45,11 @@ import HistoryModal from "./HistoryModal.js"; import ResourcesAssignmentModal from "./ResourcesAssignmentModal.js"; import TagsAssignmentModal from "./TagsAssignmentModal.js"; import { getTempusSearchbarOptions } from "./Filters/searchbarOptions.js"; +import TempusHeader from "./Header.js"; export default { name: "Tempus", components: { - CoreSearchbar, VerticalSplit, FhcCalendar, FhcCoursepicker, @@ -61,7 +59,7 @@ export default { ParkingSlot, AppConfig, AppMenu, - NavLanguage, + TempusHeader, BsModal, StvVerband, StvStudiensemester, @@ -810,7 +808,7 @@ export default { this.hoveredEvent = null; }, focusSearchbar() { - this.$refs.searchbar?.$refs?.input.focus(); + this.$refs.header?.focusSearchbar(); }, }, watch: { @@ -910,85 +908,14 @@ export default { data-cy="tempus" > - +