summaryrefslogtreecommitdiffstats
path: root/modules-available
Commit message (Collapse)AuthorAgeFilesLines
* [locationinfo] Revert HisInOne calendar workaroundHEADmasterSimon Rettberg2026-01-282-71/+7Star
| | | | | | The hack introduced in 87686da817dfd349c9f89a01065f799408e29f10 to work around HisInOne returning incomplete data in ical files is obsolete, now that HisInOne seems to have fixed this bug.
* [serversetup-bwlp-ipxe] Fix: Don't clear screen between menusSimon Rettberg2026-01-281-2/+4
|
* [locationinfo] Tweak panel list layoutSimon Rettberg2026-01-201-6/+6
|
* [locationinfo] Add panel query API, add option to mark panels as publicSimon Rettberg2026-01-2010-7/+74
| | | | | | This adds the option to query a JSON of all available info panels. In addition, info panels can be marked as public/private, and only public panels will be returned in the JSON.
* [exams] Add check and warning for colliding examsSimon Rettberg2026-01-154-4/+69
| | | | | If two (or more) exams share at least one location and their start/end times overlap, display a warning to the user.
* [dozmod] Disable checkboxes *after* submitSimon Rettberg2025-12-191-1/+1
| | | | | Apparetly checkboxes with property disabled won't get serialized/submitted by jquery.
* [dozmod] Show expire time in expired image listSimon Rettberg2025-12-154-7/+12
| | | | Also disable checkboxes after submitting deletion request
* Add tests using PHPUnitSimon Rettberg2025-12-127-12/+27
| | | | | | | Tests generated by Junie AI. Might not have the best possible quality but at least we got something, and if it turns out to be complete rubbish, we can just throw it out again without any issues, as this is independent of the actual code base.
* [exams] Fix incorrect count() clauseSimon Rettberg2025-12-041-2/+2
| | | | Again found by tests created by Junie AI
* [locations] Fix falsy checksSimon Rettberg2025-12-031-6/+6
| | | | Thanks Junie AI
* [roomplanner] Fix snap-to-grid behaviorSimon Rettberg2025-11-141-12/+29
| | | | | | | | Problem found by AI, yay to our AI overlords: - Different rounding methods used in getCellPositionFromPixels vs. grid option passed to draggable component - Wrong casing used for gridRow and gridCol in one place
* [roomplanner] Add some phpdocSimon Rettberg2025-11-141-1/+17
|
* [webinterface] acme: Move harica firstSimon Rettberg2025-11-071-1/+1
|
* [webinterface] acme: Remove buypass, update harica URLSimon Rettberg2025-11-071-2/+1Star
|
* [sysconfig] Shibauth: Add option to require entitlement(s) for loginSimon Rettberg2025-08-205-10/+47
| | | | To be implemented on client-side.
* [locationinfo] Fix undefined array key accessSimon Rettberg2025-08-131-0/+1
|
* [systemstatus] Remove debug messageSimon Rettberg2025-08-131-1/+0Star
|
* [webinterface] Switch type to acme only after successfully requesting certSimon Rettberg2025-08-132-5/+11
|
* [sysconfig] Minor cleanup, response code overrides for auditSimon Rettberg2025-08-132-19/+23
|
* [eventlog] Add button to create event filterSimon Rettberg2025-08-131-0/+6
|
* [baseconfig] Add button to create filter ruleSimon Rettberg2025-08-121-1/+4
|
* [baseconfig] Fix commentsSimon Rettberg2025-08-121-2/+2
|
* [webinterface] Add support for HARICA and custom URLsSimon Rettberg2025-08-127-8/+80
|
* [locationinfo] Update HisInOne title cleanup regexSimon Rettberg2025-08-071-1/+1
|
* [locationinfo] Overhaul caching and prefetching of calendarsSimon Rettberg2025-08-079-105/+145
| | | | | | | | | Prefetching of calendars now happens asynchronously in the background, for all calendars that are still being displayed somewhere, and where a certain age threshold is reached. This avoids slow and seemingly hanging requests for updated calendar data, and for panels that are often requested ad-hoc by users it increases chances that the calendar can be served from cache.
* [syslog] Improve POSTs for audit loggingSimon Rettberg2025-08-074-24/+29
|
* [exams] Remove db error checks, add POST redirect, response codeSimon Rettberg2025-08-071-19/+17Star
| | | | | | | | - Error checks for DB queries are pointless; the DB functions call an error handler by default and do not return - Add a redirect if any of the handlers in doPreprocess return and we're in a POST request as a safety measure - Fix virtual HTTP response code when editing lecture
* [session] audit: Use paginationSimon Rettberg2025-08-052-5/+9
|
* [session] Show pointer when over audit payload dataSimon Rettberg2025-08-041-1/+1
| | | | Indicate the text can be clicked to view in a popup.
* A few more HTTP code audit log fixupsSimon Rettberg2025-08-046-5/+12
|
* Implicitly nullable types are deprecated in PHP 8.3, make explicitSimon Rettberg2025-08-0123-41/+38Star
|
* [minilinux] show -> action for POST actionsSimon Rettberg2025-07-312-2/+2
|
* [locationinfo] Don't fetch ALL calendars when using cacheSimon Rettberg2025-07-311-2/+6
|
* [locationinfo] Make sure older browsers work by using proper JavaScriptSimon Rettberg2025-07-256-77/+98
| | | | | Not funny made-up words like async and let and random keyboard smashing of the "." key.
* [roomplanner] Add type annotations, change falsable -> nullableSimon Rettberg2025-07-248-74/+67Star
|
* [minilinux/rebootcontrol/statistics] Refactor to better suit audit loggingSimon Rettberg2025-07-246-27/+54
|
* [locationinfo] Fix saving DEFAULT panel name; bail out if timeout exceededSimon Rettberg2025-07-242-1/+3
|
* [roomplanner] Initialize with empty roomplan if none existsSimon Rettberg2025-07-241-0/+3
|
* [locations] Fix inverted logic bugSimon Rettberg2025-07-241-1/+1
|
* [session] Add audit log viewSimon Rettberg2025-07-2311-19/+171
| | | | Basic 1st version :)
* [baseconfig_bwlp/syslog] Update translationsSimon Rettberg2025-07-216-0/+8
|
* [baseconfig_bwlp] Add SLX_PHYSICAL_SCREENSimon Rettberg2025-07-211-0/+6
|
* [locationinfo] Parametrize panel type configurationSimon Rettberg2025-07-1813-941/+531Star
| | | | | | | | | | | | | | | | | Avoids a lot of copy and paste and duplicate work in php and html part, for example explicitly handling every config variable for a specific panel when displaying the config dialog, when saving the config, and when loading the config for displaying the panel. This also parametrizes enums, limits and ranges, so dropdowns can be rendered automatically, validity of selected option can be checked, and putting numeric settings into bounds all happens generically. Edit dialog for DEFAULT panel is still completely custom, as it has too much special sauce going on with the room config overrides. URL-panel is half-half, but SUMMARY and UPCOMING are entirely generic now.
* [locationinfo] Add UPCOMING panel typeSimon Rettberg2025-07-1421-427/+1390
|
* [locationinfo] Remove debug spamSimon Rettberg2025-07-141-1/+0Star
|
* [locations] Location::getLocations(): Add "checked" string for convenienceSimon Rettberg2025-07-081-0/+2
|
* [locations] Cleanup Location classSimon Rettberg2025-07-0722-307/+291Star
| | | | | | | | | | There was a mess of functions which mostly, but not quite, did the same things. Get rid of a couple of them and fix call sites to use alternative ones that also fit the job. While at it, add phpdoc and comments to the remaining functions, trying to clarify what they were designed for. Lastly, the return type of functions that retrieve a location id has been changed from false|int to ?int (nullable types are just nicer).
* [locations] Copy permissions to children when deleting locationSimon Rettberg2025-07-041-6/+21
| | | | | | When deleting a location without recusively deleting its children too, copy all the permissions assigned to the location in question to all its child locations.
* [locationinfo] Work around HisInOne returning incomplete iCal filesSimon Rettberg2025-07-013-13/+81
| | | | | | | | | | | | | | While the HisInOne help text says: Die Permalinks zu Raumbelegungsplänen und Veranstaltungen enthalten den Semesterbezug (currentTimeId oder periodId). Bei Bedarf entfernen Sie diese Einschränkung inklusive "&" vorne und aller Zeichen dahinter. This is evidently not true. Requesting the iCal URL without the periodId leaves out random courses/events/lectures, and event requesting with the current periodId might not give you the full results as displayed by the web interface. Add crude brute-force approach that will request multiple periodIds and merge all the lectures found.
* [locationinfo] icalparser: Undo the entity encoding before returning iCal dataSimon Rettberg2025-07-011-0/+12
|