summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add tests using PHPUnitHEADmasterSimon Rettberg3 hours52-16/+3245
| | | | | | | 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 Rettberg8 days1-2/+2
| | | | Again found by tests created by Junie AI
* [locations] Fix falsy checksSimon Rettberg9 days1-6/+6
| | | | Thanks Junie AI
* [inc/IpUtil] Fix bug in CIDR verificationSimon Rettberg2025-11-261-2/+2
|
* [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
|
* JS: Reorganize script to lower number of ready listenersSimon Rettberg2025-08-071-91/+91
|
* Ignore KG2-specific filesSimon Rettberg2025-08-072-1/+8
|
* api/cron: Add log line when job finished successfullySimon Rettberg2025-08-071-1/+2
|
* [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-0131-57/+54Star
|
* [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-2312-22/+175
| | | | 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-1814-943/+540Star
| | | | | | | | | | | | | | | | | 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-1424-427/+1458
|
* [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-0723-309/+292Star
| | | | | | | | | | 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
|
* [serversetup-bwlp-ipxe] Remove unused functionSimon Rettberg2025-05-261-5/+0Star
|
* [serversetup-bwlp-ipxe] Set menu timeout to 1 second in exam modeSimon Rettberg2025-05-261-1/+6
|
* [syslog/eventlog] Allow creating filter rule based on client log entrySimon Rettberg2025-05-224-26/+59
|