Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
blocks:release-notes [2021-09-03 15:06]
admin V 5.3
blocks:release-notes [2024-04-17 10:52] (current)
admin Blocks 6.3.1
Line 1: Line 1:
 ====== Release Notes ====== ====== Release Notes ======
  
-These release notes list notable changes in each version of Blocks.+These release notes list notable changes in each version of Blocks. The latest version can be [[blocks:downloads|downloaded here]]. See the [[http://pixilab.se/outgoing/blocks/PIXILAB-Blocks.pdf|Blocks Manual]] for more details. 
 + 
 + 
 +=====PIXILAB Blocks 6.3.1===== 
 + 
 +Released on April 17, 2024, this version contains minor enhancements and bug fixes. 
 + 
 +===New Features=== 
 +  * **Behavior**: New Navigate behavior, for child navigation inside Book or similar. 
 +  * **Modbus**: Channels can now be named, then replacing the default "chXX" name. 
 +  * **Modbus**: New setting for maximum number of outstanding transactions. 
 +  * **Dynamic Text**: New 'freq' parameter controls time update frequency, in Hz. 
 +  * **Scripting**: Spot API adds fixedTagSet getter for statically assigned tags. 
 + 
 +===Improvements and Bug Fixes=== 
 +  * **Spot**: Spot requiring authentication failed to connect. 
 +  * **Property**: Enum properties now work as expected with Button and Indicator. 
 +  * **Controls**: Visual indication if a control fails due to insufficient user role. 
 +  * **Dynamic Text**: The 'fixed' parameter can be applied also to time value. 
 +  * **Media URL**: Apply any custom CSS class to wrapper only – not to inner element. 
 +  * **WATCHOUT**: getControlCues now always fetch data anew, bypassing current show cache. 
 +  * **CSS**: The 'pressed' class now also applied to Slider & Joystick (like Button). 
 +  * **Book**: Swipe to flip page now works also inside vertical Scroller. 
 + 
 +=====PIXILAB Blocks 6.3===== 
 + 
 +Released on February 20, 2024, this version brings numerous new features, enhancements and bug fixes. 
 + 
 +===New Features=== 
 +  * **Art-Net**: Art-net Recording and Playback, including synchronization. Requires license. 
 +  * **Display Spot**: Supports Samsung Smart Signage based on Tizen version 7. 
 +  * **WATCHOUT**: Can now control Dataton WATCHOUT version 7 production software. 
 +  * **Behaviors**: New behaviors; Blur, Brightness, Contrast, Grayscale, Hue, Saturation, Sepia. 
 +  * **Behaviors**: Fixed value applied for most behaviors if no property binding. 
 +  * **Integrations**: LTC Timecode (EBU/SMPTE) synchronization (driver + linux software). 
 +  * **Transition**: Adds "Custom CSS" transition type. 
 +  * **Tag Selector**: Block transition can be applied when switching tags. 
 +  * **Realm Variable**: Can now be set from the UI. 
 +  * **Block Caching**: Spot's own keyPress, keyCode and scannerInput properties now usable offline. 
 + 
 +===Minor Improvements and Bug Fixes=== 
 +  * **Behaviors**: Categorized into Appearance, Detection, Function and Transform. 
 +  * **Attractor**: Checkbox controlling whether Attractor activates when Spot becomes active. 
 +  * **Integrations**: RSS Feed support (feed script). 
 +  * **Offline**: Message shown briefly when about to start offline playback. 
 +  * **Scripting**: Properties support Enumerated data type. 
 +  * **Task**: An error in the first statement of a Task running on interval could cause a crash. 
 +  * **Indicator**: Incorrect state when bound to text with a blank match value. 
 +  * **WebBlock**: Allow direct Blocks API access also cross-origin. 
 +  * **Live Video**: Selects corresponding audio source if specifying USB capture index. 
 +  * **Live Video**: Better sound quality for USB capture on recent Chrome versions. 
 +  * **SimpleImage**: Fixed incorrect rotation for images taken with some Samsung phones. 
 +  * **Scripting**: The address and addressString Serial driver properties now work as expected. 
 +  * **Scripting**: Improved reliability of hot reloading (config watchFiles: true). 
 +  * **Scripting**: SimpleHTTP relax response mediatype detection to recognize rss+xml as xml. 
 + 
 + 
 +=====PIXILAB Blocks 6.2===== 
 + 
 +Released on November 24, 2023, this version brings numerous new features, enhancements and bug fixes. 
 + 
 +===New Features=== 
 +  * **Slideshow, Book**: Graphical "current position" indicators can now be enabled. 
 +  * **Behavior**: Set of classes applied by Classify can be dynamic, specified by property. 
 +  * **Locator**: Can now also be closed by explicit Button Action. 
 +  * **Live Video**: Added setting for favoring either fast or temporally accurate start. 
 +  * **Display Spot**: Added Transition Delay setting for switching blocks. 
 +  * **Display Spot**: New tagSet property (read-only), listing all applied tags. 
 +  * **Display Settings**: Added Note field for user comments. 
 +  * **Device Drivers**: New driver for controlling and synchronizing to AvStumpfl PIXERA. 
 + 
 +===Minor Improvements, Changes and Bug Fixes=== 
 +  * **Behavior**: Multiple Classify behaviors on same block now work additively. 
 +  * **Video**: Don't flash Pause symbol in Auto mode when used in slideshow or similar. 
 +  * **CSS Editor**: APPLY button restored. 
 +  * **Scripting**: New Spot setDefaultBlock() function specifying which block to cache. 
 +  * **Block Scheduler**: Copy/Paste now supported for layers and block entries. 
 +  * **Web Block**: Changing URL dynamically no longer affects browser history. 
 +  * **ArtNet**: Use config's defaultNetwork if nothing specified for artnet.bindToAddress. 
 +  * **ArtNet**: Made fixture Duplicate command work again. 
 +  * **Network Device**: Allow UDP receive-only drivers (without send-to address/port). 
 +  * **Synchronizer**: Fixed a time glitch when switching Synchronizers with a transition. 
 +  * **Synchronizer**: Expedite start of synchronization targets and improve accuracy. 
 +  * **MQTT Network Devices**: Now supports "retained" outgoing messages. 
 +  * **Child Replication**: Fixed missing data when returning from deeply nested content. 
 +  * **Tags**: CSS classes tag-XXX (matching current tag set) hoisted to #theDisplay element. 
 +  * **Tag Selector**: Editor background checkerboard brightness now configurable. 
 +  * **Serial drivers**: Could fail to send data after a Display Spot power cycle. 
 +  * **PIXILAB Player**: Identity based on first NIC's rather than live NIC's MAC addr. 
 +  * **Spot power**: Property feedback now indicates current state if wanted state never set. 
 +  * **Audio Media**: Incorrect placement of play button, making it hard to access. 
 +  * **Audio Media**: Failure to start synchronized playback from camera QR code on iOS. 
 +  * **SimpleImage**: Fixed a JPEG exif-rotated image cropping problem. 
 +  * **PIXILAB Player**: Improved reliability in configuring display/touch settings. 
 +  * **Scripting**: SimpleHTTP 401 error resolves with status and headers instead of rejection. 
 + 
 +:!: **NOTE**: The identity of PIXILAB Player is now based on the primary network interface's MAC address rather than the active interface's MAC address. The advantage of this method is that the identity of the player will remain the same even if you switch network interface (e.g., using both wired and wifi). However, if you previously used another network interface than the primary one, the player's identity may change when you update to Blocks 6.2, and you will then need to re-assign it. Players using a wired connection (with a single Ethernet jack) shouldn't see any need to re-assign their identity. Nor players that aren't based on our PIXILAB Player software, or where other means are used to identify the player. 
 + 
 +=====PIXILAB Blocks 6.1===== 
 + 
 +Released on August 25, 2023, this version brings numerous new features, enhancements and bug fixes. 
 + 
 +===New Features=== 
 +  * **Media Block**: Adds "Pause without Stopping" with associated "Auto-stop after" delay. 
 +  * **Attractor**: Adds "Auto-play on Active" checkbox (default is true, as before). 
 +  * **Attractor**: Now usable with single child, which remains visible when spot becomes passive. 
 +  * **Locator**: Adds "Linger after Play" setting. 
 +  * **Video**: Adds "Show Poster Image" checkbox, allowing the poster to be hidden. 
 +  * **Synchronizer**: Adds auto-play mode setting and configurable start-to-play delay. 
 +  * **Synchronizer**: Adds the ability to specify an explicit sync source property path. 
 +  * **Schedule**: Spot can inherit block from outer group if schedule is blank (enabled in Display Spot and Spot Group settings). 
 +  * **Schedule**: Copy/Paste supported by layers and entries. 
 +  * **Modbus**: Initial state of output channel can be specified. 
 +  * **Display Spot**: Adds a //keyCode// property, indicating pressed key (if enabled). 
 +  * **Drivers**: Added support for the the [[blocks:server:advanced_server_configuration:mqtt|MQTT]] IoT standard. 
 +  * **Drivers**: Added support for USB Serial port devices connected through PIXILAB Player. 
 +  * **Drivers**: Added name, fullName, driverName and deviceType getters to device drivers. 
 +  * **Parameters**: Can be defined (not just overridden) also on the Spot. 
 +  * **Parameters**: Contributed also by Referenced or Located blocks.  
 +  * **Parameters**: Can define multiple levels in Property Paths. 
 +  * **Parameters**: Built-in //ThisSpotPath//, holding the path to the current Spot. 
 +  * **Parameters**: Built-in //LocatedSpotPath//, holding path to Spot located by Locator. 
 +  * **WATCHOUT**: Added an "Enabled" checkbox, controlling whether Blocks will connect. 
 +  * **Scripting**: WATCHOUT adds //getControlCues// function, providing control cue data. 
 +  * **Scripting**: Added support for //named aggregates// (similar to //indexed properties// but named). 
 +  * **Custom Property Path**: Allows mix of literal, parameter and Relative.xxx in Child Replication. 
 + 
 + 
 +===Minor Improvements and Bug Fixes=== 
 +  * **Composition**: Auto-hide delay is now customizable. 
 +  * **CSS**: Improved built-in CSS editor. 
 +  * **Live Video**: Additional latency option favoring reliability over low latency. 
 +  * **Live Video**: Improved audio/video synchronization for long running streams.  
 +  * **QR Code**: Renders correctly on PIXILAB Player also when video is visible. 
 +  * **Configuration**: New "apiKeys" entry, specifying key name/value to validate requests. 
 +  * **Scripting**: SimpleHTTP can now also make DELETE requests.. 
 +  * **Scripting**: User script @resource methods can be protected using @apiKey decorator. 
 +  * **Scripting**: MobileSpot //getVisitor// function returns a Visitor given its ID. 
 +  * **Scripting**: MobileSpot //getAllVisitorIds// function returning all current Visitor IDs. 
 +  * **Scripting**: MobileSpot //hashedIdentityToPuid// function decoding hashed visitor ID. 
 +  * **Custom File Uploads**: Can be protected using api key named "upload"
 +  * **Camera**: Don't remove any custom CSS classes applied when taking photo. 
 +  * **Behavior**: Classify sometimes failed to apply class the second time a block appeared. 
 +  * **Editor**: Added "Server Connection Lost" information message. 
 +  * **Editor**: Clearer distinction of leaf vs trunk properties (now bolded) in property pickers. 
 +  * **Editor**: Editor preview of an Attractor was always black. 
 +  * **Task**: Triggering on "Becomes True" could trigger also on other changes (e.g., from 15 to 16 – potentially a breaking change). 
 +  * **Button**: Back button didn't work after navigating using button in Stack Block panel. 
 +  * **Spot Settings**: Color of "Fade through Color" transition wasn't preserved. 
 +  * **Display Spot**: Separate per-window ID if using the display=XXX URL query parameter (potentially a breaking change). 
 +  * **Spot**: Improved reconnection reliability after network/wifi connection loss. 
 +  * **WATCHOUT Spot**: Obeys block assigned through enclosing group/scheduler. 
 +  * **Scripting**: An @id-decorated Record field's value can now be changed. 
 +  * **Scripting**: Subscribing to not-yet-existing indexed item didn't update once available. 
 +  * **Scripting**: Reading a non-existing Record field now returns undefined instead of NPE. 
 +  * **Scripting**: SimpleFile, et al, may also access /auth directory (like /public, but requires login). 
 +  * **Scripting**: Fixed a rare Promise leak. 
 +  * **Licensing**: Cloud license auto-updated once every night. 
 +  * **Visitor Spot**: Actively disconnect/connect when web page or device enters/exists standby. 
 +  * **Parameters**: Now work properly also in partial binding for block replication. 
 + 
 +=====PIXILAB Blocks 6.0.3===== 
 + 
 +Released on May 3, 2023, this version contains minor bug fixes only. 
 + 
 +  * **Synchronizer**: Improved reliability/performance when starting to play long video files. 
 +  * **Offline**: Apply custom display and audio settings also when offline. 
 + 
 +=====PIXILAB Blocks 6.0.2===== 
 + 
 +Released on April 6, 2023, this version brings various bug fixes and minor enhancements. 
 + 
 +===New Features=== 
 +  * **Volume Behavior**: Adds Scale Factor setting (defaults to 1). 
 +  * **Volume Behavior**: If no property path then apply just the Scale Factor. 
 + 
 +===Minor Improvements and Bug Fixes=== 
 +  * **Buttons/Controls**: Position text correctly once all fonts are loaded. 
 +  * **3D**: Spin animation no longer interferes with object manipulation. 
 +  * **Appears/Disappears Behavior**: Fixed a rare bug.  
 +  * **MediaURL**: Remove any loading indicator once audio starts playing 
 +  * **Thumbnails**: Could fail to update JPEG thumbnails under Windows. 
 +  * **Synchronizer**: Synchronized audio could occasionally fail to start on iOS. 
 + 
 +=====PIXILAB Blocks 6.0.1===== 
 + 
 +Released on March 3, 2023, this version brings various bug fixes and minor enhancements. 
 + 
 +===New Features=== 
 +  * **Scripting**: The 'image' event also published by MobileSpot. 
 +  * **Block Scheduler**: Added checkbox to show/hide layers below the selected layer. 
 +  * **Media Block**: Option to never show play/progress UI, not even while paused. 
 + 
 + 
 +===Minor Improvements and Bug Fixes=== 
 +  * **Block Caching**: Various reliability improvements. 
 +  * **Block Scheduler**: UI and bug fixes. 
 +  * **Synchronizer**: Slave tracks master also while paused. 
 +  * **Locator**: Button to locate other Spot didn't work from inside a located block. 
 +  * **Spot volume**: Property didn't work in some complex cases. 
 +  * **Reveal behavior**: Fixed a bug that could cause this behavior to fail, 
 +  * **Spot playing**: Property now works also when using video with native controls. 
 +  * **Book with Feed**: First page didn't render once feed was loaded. 
 +  * **Reliability**: Spot properties didn't always re-connect after network connection drop. 
 +  * **Performance**: Allow for more general and longer browser caching of media files. 
 +  * **Scripting**: Fixed insert/delete bug in dynamic lists causing incorrect display 
 +  * **Scripting**: Fixed exception if missing size or cropping for SimpleImage.derive(). 
 +  * **Scripting**: SimpleImage.info() width & height account for EXIF rotation. 
 +  * **Scripting**: SimpleImage consider EXIF flipping when cropping an image. 
 +  * **Scripting**: Made rest/script/invoke/xxx requests with no extra URL data work again. 
 + 
 + 
 + 
 +=====PIXILAB Blocks 6===== 
 + 
 +Released on Dec 14, 2022, this version brings significant new features as well as numerous minor enhancements. 
 + 
 +===New Features=== 
 +  * **[[blocks:advanced_scripting:visitor_identity_tracking|Visitor Data Collection]]**:  Collected data influences experience and provides statistics. 
 +  * **Visitor Spot**:  Track and interact with individual visitors. 
 +  * **Dynamic Data**:  Now possible to add/update/remove/rearrange indexed property lists. 
 +  * **Dynamic Data**:  List mutations tracked live by slideshow, book, scroller and grid. 
 +  * **Camera**:  New block type for taking photos, uploading to Blocks. 
 +  * **QR Scanner**:  New block type for scanning QR codes using camera. 
 +  * **QR Block**:  Adds new Border option, and is now a premium block type. 
 +  * **Joystick**:  Two-dimensional "slider" useful for pan/tilt control. 
 +  * **Locator**:  Use NFC tags for location awareness on iOS and Android. 
 +  * **Live Video**:  Local capture supports multiple sources. 
 +  * **3D Block**:  New "Illumination Factor" controls lighting (brightness) of the model. 
 +  * **3D Block**:  New Show Shadows option, casting shadows on model from key light. 
 +  * **Parameters**:  New "Edit parameters" command on the Edit menu. 
 + 
 +===Minor Improvements, Changes and Bug Fixes=== 
 +  * **Task**: Shift-click play symbol to start regardless of condition. 
 +  * **Display Spot**: Setting the time property no longer affects playing state. 
 +  * **Visitor Spot**: Customizable "home screen" icon (specified in config file). 
 +  * **Synchronizer**: Avoid skips on iOS/Safari 15, caused by reduced timing precision. 
 +  * **Synchronizer**: Local Synchronization works also on Visitor Spot. 
 +  * **Video/Audio**: Don't show pause/play button if media stops briefly. 
 +  * **Behaviors**: Can be named (useful with multiple behaviors of same type). 
 +  * **Behaviors**: Mute, Opacity and Rotate have basic functionality without binding. 
 +  * **QR Scanner**: Improved scanning speed and reliability. 
 +  * **Web Block**: Sandboxed to prevent web pages from navigating out of Blocks. 
 +  * **Editor**: block-group=XXX URL constrains block creation to group XXX. 
 +  * **Scripting**: Custom GET endpoints supported by @resource() decorator. 
 +  * **Scripting**: Navigation event in Visitor Spot with Data Collection enabled. 
 +  * **Scripting**: Feed scripts can now expose and access properties. 
 +  * **Scripting**: Supports GET requests in User scripts custom endpoints. 
 +  * **Scripting**: Sender's IP address included with received UDP data. 
 + 
 +====PIXILAB Player==== 
 +  * Block Caching minimizes data traffic and supports offline use. 
 +  * Watchdog restarts the browser, should it crash or stop responding for whatever reason. 
 +====Licensing==== 
 +New cloud-based license available, removing the need for a USB dongle. 
 + 
 +====Server images (Linux)==== 
 +  * **Server** Updated to latest Ubuntu LTS version. 
 +  * **Server**: Uses nginx reverse proxy for increased performance. 
 +  * **Server**: Includes Let's Encrypt certbot for HTTPS certificate automation. 
 +  * **Virtualization**: Official support for virtual servers based on OVA image. 
 + 
 + 
 +=====PIXILAB Blocks 5.6.1===== 
 + 
 +Released on May 24, 2022. 
 + 
 +===New Features=== 
 +  * **Block Scheduler**: Exposes the current block as a property. 
 +  * **Block Scheduler**: Shows ghosted entries on layers below current. 
 +  * **Display Spot**: New Information tab provides details about the player. 
 +  * **Text**: Localized number formatting option named locale; e.g. locale=en-GB 
 + 
 +===Minor Improvements, Changes and Bug Fixes=== 
 + 
 +  * **Block Scheduler**: Duplicate command can be used. 
 +  * **Block Scheduler**: Supports Undo. 
 +  * **Scroller**: Scrolls properly also when navigating to a deeply nested block. 
 +  * **Display Spot**: Wanted power state becomes true if spot powered up manually. 
 +  * **Samsung SSSP**: Discarding Display ID now works properly. 
 +  * **Locator**: Accept keyboard-emulation-scanned codes longer than 4 characters. 
 +  * **Custom CSS**: Button text placement improved for custom font/css. 
 +  * **Display Spot**: Setting time property from a task now pauses playback. 
 +  * **Display Spot**: The seek function now available from task, accepting time as a string. 
 +  * **Web Block**: Dissolve transition works between Web Block and other block types. 
 +  * **Task**: Property paths with brackets now work properly also in ForEach statements. 
 +  * **Modbus**: Improved precision of 32 bit float input property value. 
 +  * **Button**: Fixed a "Go to Local Block" problem when originating button disappeared. 
 +  * **Locator**: Scanned non-numeric target fall back to Spot ID if fails resolving to a Spot Path. 
 +  * **Attractor**: Remain active indefinitely if neither "Deactivate on xxx" is selected. 
 +  * **Attractor**: Extend timeout by setting Spot's active property to true repeatedly. 
 +  * **Audio media**: Non-native progress bar didn't update while playing. 
 +  * **Feed**: Supports regular top-level properties marked @property, just like user scripts. 
 +  * **PIXILAB Player PXE booting**: Reduced TFTP timeout from 20 to 10 seconds for faster recovery. 
 + 
 +=====PIXILAB Blocks 5.6===== 
 + 
 +Released on March 18, 2022. 
 + 
 +===New Features=== 
 + 
 +  * **CSS**: Built-in CSS editor for block-local CSS files, with live update. 
 +  * **Block Editor**: "Edit Block CSS" command available also from within nested blocks. 
 +  * **Block Editor**: "Open Editor Preview" command, previews edited block in separate window. 
 +  * **Transition**: Adds "Fade through Color" transition type. 
 +  * **Synchronization**: "Exclude from Sync" checkbox added to Media block.  
 +  * **Display Spot**: New "spot-id" URL query parameter to manually assign an identity. 
 +  * **Editor**: Query parameter block-group specifies which group to show in Library view.   
 +  * **Text**: Allow benign HTML tags in data exposed as dynamic text (e.g., from Feeds). 
 + 
 + 
 +===Minor Improvements and Bug Fixes=== 
 + 
 +  * **Media URL**: Client-side memory leak caused by repeatedly changing the URL. 
 +  * **Reference Blocks**: Missing thumbnails in referenced block picker. 
 +  * **Button**: Always perform UP action if button disappears while DOWN. 
 +  * **Slideshow**: Skip over Reference Blocks with no/missing target. 
 +  * **Behavior**: Reveal now also accepts spot parameters in path. 
 +  * **Scripting**: Interpret non-ASCII characters properly also under Windows. 
 +  * **Locator & A/V progress**: Render text using correct font (regression). 
 +  * **Samsung SSSP**: Recognize defaultSpotCSS from Blocks config file. 
 +  * **Display Spot**: Don't force wanted power state to true if connects while undefined. 
 +  * **Synchronizer**: Sync target switching and time jumping improvements. 
 +  * **Attractor**: Can now be nested in outer one (outermost governs Spot's active state). 
 + 
 +**IMPORTANT:** Drivers and system support files are updated from time to time, fixing bugs and improving functionality. If you're using any drivers or other scripts, make sure to also update those components from their open-source repository, found here: 
 + 
 + https://github.com/pixilab/blocks-script 
 + 
 +In particular, update the files in script/system and script/system_lib. Also update any drivers you rely on with the latest versions. Drivers are found in script/driver and (for more rarely used drivers) script/driver-archive. If you need any drivers found in script/driver-archive, those need to be copied to the script/driver directory on your Blocks server to become active. Restart your Blocks server after replacing all those files. 
 + 
 + 
 +=====PIXILAB Blocks 5.5===== 
 + 
 +Released on January 21, 2022. 
 + 
 +===New Features=== 
 + 
 +  * **Editor**: List view of Blocks on Display page. 
 +  * **Editor**: Auto-create common block types when dropping media on the Display page background. 
 +  * **Task**: New "atomic" statement, executing enclosed statements simultaneously, as a unit. 
 +  * **Task**: New "for each" statement, applying enclosed statements to all targets using Relative path root. 
 +  * **Spot**: Added wakeUp function, returning a promise resolved once the Spot connects. 
 +  * **Spot**: Changed "power" property semantics to use //wanted// rather than //current// value. 
 +  * **Schedule Block**: Block start/stop times can be edited numerically. 
 +  * **Transitions**: Audio fade in/out can be selected as part of a visual transition. 
 +  * **Composition**: Added Blend Mode setting to child blocks. 
 + 
 + 
 +===Minor Improvements and Bug Fixes=== 
 + 
 +  * **Subtitles**: Recognize "application/x-subrip" mime type used by latest Chrome. 
 +  * **NetworkUDP**: Fixed a bug that could cause "bytesReceived" subscription to fail. 
 +  * **Scripting**: Indexed properties didn't reconnect after editing driver/script. 
 + 
 + 
 +=====PIXILAB Blocks 5.4===== 
 + 
 +Released on November 12, 2021. 
 + 
 + 
 +===New Features=== 
 +  * **Panorama & 3D**: Option to reset orientation after some time of inactivity. 
 +  * **Panorama & 3D**: Option to auto-spin if no activity, with configurable speed. 
 +  * **3D**: Configurable vertical rotation constraints. 
 +  * **3D**: Move model sideways using two fingers (touch) or middle mouse button. 
 +  * **Fixtures**: Duplicate command now supported for adding multiple fixtures of same type. 
 +  * **Manage**: Server Status page added, showing some basic server health information. 
 +  * **Default Spot CSS**: Can be specified in the [[https://pixilab.se/docs/blocks/server_configuration_file|configuration file as]] defaultSpotCSS 
 +  * **Reference Block**: Use same block group as the referencing block if not specified. 
 + 
 + 
 +===Minor Improvements and Bug Fixes=== 
 + 
 +  * **Spots**: PIXILAB Logo initially hidden to avoid logo flash before block appears. 
 +  * **Text**: Improved default font text flow and fidelity on PIXILAB Player. 
 +  * **Text**: Numeric value scale factor supports decimal (non-integral) value. 
 +  * **Roles**: Constrain selectable roles to those allowed for current user. 
 +  * **Roles**: User can't assign role constraints greater than his own. 
 +  * **Roles**: User can't create a block in a group she can't see. 
 +  * **Roles**: Group role constraint trumps Block role, not the other way around. 
 +  * **Artnet**: DMX512 channel value now set to zero when fixture deleted or disabled. 
 +  * **Scripting**: Fixed a memory leak caused by repeatedly closing a SimpleServer connection. 
 +  * **Spot Group Title**: The order of words in a space-separated name were reversed. 
 +  * **Mirroring Service**: Warning in editor if not mirrored recently or disk space is low. 
 +  * **Security**: Allow Creator to also delete root blocks.  
 +  * **Block Protection**: Protected root blocks can't be deleted.