Some of these changes will only be available on newly-created playlists, or when existing ones are updated or re-saved.
It is possible to create actions that open (and close) new browser windows that point to a specific web address (URL).
In the Design screen, select an object (image, text, shape) on the canvas. In the property panel, enter a URL in the "URL" field.
Note: these objects, along with the URL property set, must be included in the "Layer Start."
Available actions for these objects will include Open and Close, which controls the opening and closing of a new browser window showing the URL. These can be chosen from the "Action type" dropdown box in the Actions tab, and then dragged to the appropriate event boxes.
It is now possible to export/import projects between instances. When a project is open in the Design screen, use the Project > Export menu item. This will build a zip file which includes all project data, as well as any image or audio resources used.
Use the Project > Import menu item to import a previously exported project zip file. The project will be imported under the same name, and any resources will be added to the local filesystem.
Note: if resource files already exist with the same name, the will be overwritten with the imported ones.
Only resources with images and audio will be added to the Library. Resources in the project based on simple elements or shapes - like stars, rectangles, lines - will not be added to the library. This is due to projects using the properties of resource objects to create unique instances when they are used; rather than referencing a 'shared' object in the library.
Audio can be played in a similar way to existing visual actions like animations and visiblity.
First, upload sound files using the Library in the same way image resources would be added. Create a new Audio resource type (using the button with the sound icon), and selecting the uploaded sound file. Save this as a resource.
In the Design screen, find audio objects in the Library tab, and click Use. They will appear on the stage as regular objects with a speaker icon. These can be hidden by setting the opacity to 0.
Note: these objects must also be included in the "Layer Start."
Available actions for sound objects are Play and Stop, which will control playback of the sound object in a similar way to visual objects that can be shown and hidden. These can be chosen from the "Action type" dropdown box in the Actions tab, and then dragged to the appropriate event boxes.
When in presentation mode from a Playlist, the playback of audio can either be done from the playlist page itself, or the individual screen that the audio object gets added to.
Note: By default, audio will play from the Playlist page. To have it play on screens, make sure the screen pages are loaded first, before toggling the playback device preference. This is useful when operating the playlist from a mobile device, for example.
When viewing a project using the Player feature (v1.14.0), the audio will be played from the page where the navigation is operated from. This is either from the Player welcome page or from the screens using the navigation widget overlay.
Layers and their child objects can be exported from the Layers menu. This will produce a block of encoded text which can be copied, pasted, saved or transported, and allows the layer and its child objects to imported into another project.
In future releases, this functionality will be expanded to include associated events and actions.
Exported layers can be imported into the same project, or a different project on the same Living Lab instance.
Note: Importing the layer into another Living lab instance may result in inconsistencies or missing links to any local Library resources if used in the source project.
require_auth config is false.events table in the SQLite database.The Living Lab project can now be built as a standalone runtime using pkg.
To build Living Lab, run npm run pkg-win or npm run pkg-mac from the src directory.
The runtimes will be built into the respective platform directories in ../pkg/.
When installed with the Living Lab project, the sqlite3 module installs a driver for the
given platform at install-time. This can't be bundled in the pkg process and must be
copied manually to the pkg platform directory.
The file will be here: src\node_modules\sqlite3\lib\binding\{platform}\node_sqlite3.node
When the standalone Living Lab is ran, it will use config and data folders that are in
the same level as the executable. For example:
|-- pkg
|-- data
|-- config
|-- living-lab.exe
|-- node_sqlite3.node
The player "project" page contains a placeholder to display documentation, controlled by the presence of specifically-named files in Markdown format.
The following file locations are checked, in order:
data/doc/(project-name).mddata/doc/living-lab.md(project-name) is an example, and would be replaced by the name in the URL of the player.
Do not include brackets in the document filename.
The first file found will be displayed. If none are found, no documentation will be displayed.
The footer logos are sourced from the config/logos.json file. This specifies the name,
image file, title and optional URL.
By default, all logos will be shown. To customise the logos that are displayed edit
the config/config.json file, adding the following key:
...
"logos": ["nclacuk", "northumbria"]
...
The logos key should be a JSON array of logo names as specified in the logos.json file.
In the example, only the two logos named "nclacuk" and "northumbria" would be displayed.
The config/config.json file must be updated with the single_instance boolean property
to specify whether the single instance feature should be enabled or not (see config.example.json).
When enabled, only one Design Screen page can be opened at the same time. If more than one page is opened, subsequent Design Screen pages will display an error message and the page will not work. Subsequent screens also disconnect from the websocket server to prevent it from sending and processing further messages.
The config/config.json file must be updated with the auto_save boolean property
to specify whether the autosave feature should be enabled or not (see config.example.json).
When enabled, any open project in the Design screen will be automatically saved when either 1) the page is hidden (e.g. the tab is no longer active) or 2) no user activity is detected for two seconds.
This version includes a number of changes to the way the project is structured as well as several new features.
package.json for dependencies and scripts.Passport.Express as the web server.config/config.json).Gulp for processing frontend CSS assets.Dependencies for the project are now specified here. Run npm install --production to
install them.
It is now possible to run npm start to run the main Living Lab Node server, which is a
shortcut for running node server.js.
Simple username/password authentication has been added with the support of Passport.
This is optional, and can be turned on or off by setting the config property require_auth
in config.json.
Users are configured in config/users.json. Copy config/users.example.json to
config/users.json and adjust accordingly. User passwords will be securely hashed when
the Node server is restarted.
nodeio.js has been renamed to server.js.
data: Runtime and user-supplied data and files are now in the data folder:
|-- data
|-- playlists
|-- resources
|-- livlab.sqlite
config: This folder contains the config files for the project. Example files included.
public: This folder is for static files served by Express.
Express as the web serverThe main pages are now handled as Routes in Express, rather than being static files. Any
bookmarked URLs to the pages will no longer work - the base name is the same - just remove
the .html suffix.
E.g. /present.html is now located at /present.
The config/config.json file stores several parameters for running the project.
db_path Path to the SQLite database file, relative to the project root (server.js)http_port The TCP port number to run the main web server on.socket_port The TCP port number to run the SocketIO web server on.
If this is the same as http_port, then SocketIO will be attached to the Express
server. This is recommended - the separation isn't fully supported on all pages yet.require_auth: Specify whether to use and require authentication (config/users.json)secret: If using authentication, this secret is used by Passport for sessions.The design for the homepage and playlists file has been updated with new branding.
Gulp is used to process the LESS stylesheets into minified CSS. The gulpfile.js file
describes the tasks.
The built CSS files are included, but if they need to be built, ensure the devDependencies
are installed, then run gulp.
When each screen page is loaded, the name is displayed for about five seconds.
The Identify Screens button on the dashboard page will instruct all open screens to show this message again.