| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
| |
Add configuration options to specify screen rotation and languages the
browser will request from web servers via Accept-Language header.
|
| | |
|
| |
|
|
|
|
| |
We can now give a precise deadline until which the backend(s) will try
to update stale calendar data, and just return cached data for all the
entries where no time was left.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Mostly redundant checks, logic errors, dead code, etc.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Closes #3915
|
| | |
|
| |
|
|
| |
Enabled should be 'ON', not '1' (even though 1 works for now)
|
| |
|
|
|
|
|
|
|
| |
This is probably only accidentally enabled (from location), as
an info-panel is always idle and would then probably shutdown
frequently. It currently didn't happen because we already clear
the logout timeout, and the shutdown timeout only starts running
at the login screen. But we want to change that for when we use
autologin manually, or in case of an exam.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
* Auto-convert to utf8mb4_unicode_520_ci
* Use foreach instead of while to loop over results
* Drop useless statement caching
* Keep emulated prepares, as we sometimes loop over nested queries
|
| | |
|
| |
|
|
|
| |
We now have our own CA for the satellite server that's trusted by
clients, so this hack is not required anymore.
|
| |
|
|
|
| |
If locationid != fixedlocationid, something must be off, and we better
ignore that machine's position in the room.
|
| |
|
|
|
|
|
| |
Now we properly always convert time zone strings to DateTimeZone
instances before passing them to the DateTime(Immutable) constructor
as the second argument. The timeZoneStringToDateTimeZone() was made
idempotent, to simplify code using it.
|
| |
|
|
| |
Closes #3824
|
| | |
|
| | |
|
| |
|
|
| |
References #3790
|
| |
|
|
|
|
|
|
| |
This will be used (to be implemented client side) to diallow tty
switching from within the X session, as the exam mode currently already
does.
References #3793
|
| |
|
|
|
|
|
| |
Previously, we'd only deliver calendar data to the panel if the cache
timeout hasn't been reached yet. In case fetching fresh data from the
backend fails, go ahead and deliver the old cached data, no matter how
old it is.
|
| |
|
|
|
| |
- move openingtimes from infoscreen db to locations db
- read-only openingtimes in infoscreen
|
| |
|
|
|
|
|
|
|
| |
iCal downloads are much faster in more revent HisInOne versions, while
the SOAP API will make cobbling together a time table for a specific
room even more complicated in the next release (2020.12).
Switch to iCal for now and see how it goes.
TODO: Create a generic iCal backend module based on this.
|
| |
|
|
| |
Implemented for remoteaccess runmode for now
|
| | |
|