v1.2.0 - [bugfix] Fix a bug where markup [containers] weren't 100% high by default which caused some problems with slide layout. - [internal] Rewrite most web interface JavaScript files and clean them up. - [docs] Add JSDoc documentation to web interface JavaScript. - [docs] Improve documentation about Docker and about reverse proxy config. - [feature] Implement support for passwordless users. - [feature] Implement a bootstrap page for automating passwordless logins. - [bugfix] Fix a bug where non-admin users couldn't change passwords. v1.1.1 - [feature] Enable multiarch Docker image builds in the CI pipepline. Images are now built for AMD64, ARMv6, ARMv7 and ARM64. v1.1.0 - [internal] Separate private and public files in the directory tree to naturally prevent access to private files. (PR #56) - [feature] Implement [bgimg] and [bgcolor] markup tags for styling slide backgrounds. (issue #75) - [feature] Implement buttons for manual slide navigation in display. - [internal] Mostly rewrite the API system - [internal] Use PHP autoloading and namespaces instead of direct file includes. - [internal] Improve various classes and PHP files to make them more object oriented. - [internal] Implement a testing framework with PHPUnit and write tests for all API endpoints. - [bugfix] Fix various bugs in the backend that were discovered while writing tests. - [build] Make the build system more modular. - [build] Write separate interactive and CLI versions of the apache2-debian target. (apache2-debian-interactive and apache2-debian) - [build] Various improvements to the build system. - [docs] Generate documentation with Doxygen. - [internal] Implement HTTP cache support for slide asset fetching endpoints. (issue #53) - [bugfix] Fix a bug where uploading/removing slide assets was allowed even when the slide was not locked. (issue #81) - [bugfix] Fix a bug where a slide could be deleted even when it was not locked. (issue #80) - [bugfix] Fix a bug where an error was thrown when changing queues if an unsaved slide was open. (#86) - [feature] Implement a data migration system for simplifying upgrades between different versions of LibreSignage. - [bugfix] Fix outdated information in documentation. v1.0.3 - [bugfix] Fix a bug where slide markup error indicators weren't cleared if the slide with the errors was removed. (issue #97) - [bugfix] Attempt to fix a bug that caused a memory leak on the display page. (issue #101) v1.0.2 - [bugfix] Apply a workaround for docker-library/php#865 which broke LibreSignage Docker image builds. - [bugfix] Use rsvg-convert instead of ImageMagick's convert due to problems with convert crashing. - [bugfix] Fix a bug that caused display users logged in with a (permament) display session to be logged out after a certain amount of time. v1.0.1 - [bugfix] Fix a bug where using forward slashes in slide markup caused exceptions. (issue #66) - [bugfix] Fix a bug where passing a NULL exception to error_handle() caused a fatal exception in some cases. (issue #61) - [feature] Tag new Docker releases with the 'latest' tag. - [bugfix] Fix standalone checks in the API interface module. - [bugfix] Fix incompatible pandoc version in Travis CI. (issue #58) - [feature] Implement the INITCHK_WARN make option for ignoring errors from initialization checks. - [bugfix] Fix a bug where User::load() didn't properly check usernames. v1.0.0 - [internal] Modularize and improve the build system. - [feature] Implement an improved configuration file loader that supports loading configuration from multiple files. - [feature] Implement functionality for building LibreSignage Docker images. - [bugfix] Fix a bug that prevented removing slide assets that didn't have a thumbnail. - [internal] Improve display animation performance by optimizing CSS and JavaScript. Browsers are now also hinted to use GPU acceleration for rendering the display. - [bugfix] Fix a missing class definition that caused problems when uploading files. - [bugfix] Fix a bug where the editor media uploader popup didn't close when the (X) button was clicked if an uploade had previously failed. - [feature] Allow space characters in upload filenames. - [bugfix] Implement automatic slide lock cleanup on logout. - [feature] Rewrite the web interface to use a Model, View, Controller architecture. Various JavaScript components used in the interface were also rewritten in the process. - [feature] Create a LibreSignage logo and use it throughout the web interface. - [bugfix] Fix a bug where creating more slides than what's allowed by the slide quota caused invalid slides to be left in slide queues. (issue #34) - [feature] Add a muted parameter to the [video] markup tag. - [internal] Implement EventData to pass data and hook functions to event handlers. - [bugfix] Properly copy assets when duplicating slides (issue #33). - [internal] Remove non-working API unit tests. - [feature] Redirect users to the originally requested URL after login. (issue #41) - [feature] Check build dependency versions when building. - [feature] Implement a startup splash screen for the display page. - [feature] Implement automatic deployment of nightly builds to Docker Hub from Travis CI. - [internal] Speed up build scripts by changing how 'find' is used. - [bugfix] Fix a bug where cloning a slide with no thumbnail resulted in an error. (issue #33) - [bugfix] Fix 'Upload' button placement in the slide media uploader popup. - [bugfix] Fix various bugs where doubleclicking controls caused JS errors in the web interface. - [bugfix] Properly disable the 'Save' button after clearing password inputs in the user settings page. - [bugfix] Fix a bug where certain filetypes couldn't be uploaded in the slide media uploader. v0.2.2 - [bugfix] Fix a bug that prevented removing slide assets that didn't have a thumbnail. - [bugfix] Fix dialogs not appearing correctly on the documentation pages. - [bugfix] Fix a bug where adding media to user-created slides didn't work. (#27) - [feature] Implement a new tag [font] in the markup transpiler for changing fonts in slides. (#28) - [bugfix] Add a missing class definition that caused problems when uploading files. - [bugfix] Fix a bug where the editor media uploader popup didn't close if the (X) button was clicked after an upload had failed. - [feature] Allow space characters in upload filenames. - [bugfix] Implement automatic slide lock cleanup on logout. v0.2.1 - [bugfix] Fix a bug where the timeline didn't update after the selected queue was changed. - [bugfix] Fix a server-side bug that prevented user creation from the user manager. v0.2.0 - [feature] Implement keyboard shortcuts for the editor. - [feature] Make it possible to preserve instance data when reinstalling. - [feature] Implement a live slide preview in the editor. - [internal] Self host font files. (I actually don't particularly like including binary files in the GIT tree but I don't know of a better way so the font files are now included in the tree.) - [internal] Use SCSS instead of plain CSS for the stylesheets. - [internal] Import Bootstrap straight into the _default.scss file instead of including it in the HTML tag. - [internal] Process CSS using PostCSS /w Autoprefixer. - [bugfix] Fix a major security issue where the contents of the 'data/' directory were accessible by requesting the different files with eg. a web browser. Even directory listings were enabled. - [feature] Completely rewrite the markup transpiler system to improve its error detecting and reporting capabilities. The rewrite also introduced many other improvements. The transpiler now uses the familiar lexer-parser-evaluator architecture that most compilers use. - [feature] Improve markup error reporting in the editor UI. Erroneous code lines are now highlighted in the editor input. - [bugfix] Confirm before changing the queue if an unsaved slide is being edited in the editor (#17). - [bugfix] Prevent creating duplicate queues in the editor. - [bugfix] Don't show unstyled slide previews to users in the editor by making sure the necessary CSS is loaded before showing content. - [bugfix] Fix a bug resulting in spurious slide changes on the display page. - [improve] Make the login and user manager pages more mobile friendly. - [feature] Implement a Quick Help view in the editor. - [Internal] Implement a new way of exporting PHP object data by using a class called Exportable. - [feature] Implement slide locking to prevent simultaneous editing of slides (issue #18). - [internal] Rewrite most of the PHP session handling code. Implement a new class called Session for handling & storing session data. - [internal] Implement a simple assertion system in JavaScript. - [internal] Implement file uploading via the API system. - [feature] Implement media storage & uploading in the backend and editor. - [feature] Implement embedding video in slides using [video] tags.