Skip to content
Merged

1.0.1 #135

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
# Changelog

## 1.0.1 [UNRELEASED]
## 1.0.1
### Added
- `bridge.client.openExternalUrl()` for opening URLs with the default browser
- A link to the OSC reference within settings
- A new play mode for groups, Random, which will trigger a random child on play
- A counter showing selected items in the footer
- A shortcut for aborting an item silently (Shift + F1)
- References and triggers can now target the main client's selection
### Changed
- Added 'Stop' as an option when setting default on end actions in settings
- Electron now bypasses proxies on requests to localhost
- Update dependencies
### Fixed
- Added a check for undefined items in item.change in the type plugin
- Regular Electron accelerators now work even though a widget isn't focused (CMD+Q e.t.c.)
- Icons for rundown items became misaligned when the items grew in height
- An issue causing deleted items not to be removed from the selection
- An issue where caspar template data wouldn't completely overwrite old data

## 1.0.0
### Added
Expand Down
16 changes: 15 additions & 1 deletion api/node/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,14 +107,28 @@ class Client {
* Get the current selection
* of a connection by its id
* @param { String } connectionId
* @returns { Promise.<String[]> }
* @returns { Promise.<string[]> }
*/
async getSelection (connectionId) {
if (!connectionId) {
throw new MissingArgumentError('Missing required argument \'connectionId\'')
}
return (await this.#props.State.get(`_connections.${connectionId}.selection`)) || []
}

/**
* Get the current selection
* by the main client
* @returns { Promise.<string[]> }
*/
async getMainClientSelection () {
const main = await this.getConnectionsByRole(this.ROLES.main)
if (main.length === 0) {
return
}
const selection = await this.getSelection(main[0]?.id)
return selection
}
}

DIController.main.register('Client', Client, [
Expand Down
10 changes: 10 additions & 0 deletions lib/api/SItems.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const itemHelpers = require('../../shared/items')
class SItems extends DIBase {
#playHistory = new PlayHistory()
#stopHistory = new PlayHistory()
#abortHistory = new PlayHistory()

constructor (...args) {
super(...args)
Expand Down Expand Up @@ -111,6 +112,15 @@ class SItems extends DIBase {
abortItem (item) {
this.#validateItemObject(item)

if (this.#isLoopPreventionEnabled && this.#abortHistory.record(item.id)) {
this.props.SMessages.createWarningMessage({
text: `Detected abort loop, Bridge prevented the item with id '${item.id}' from being repeatedly aborted`,
ttl: 30000,
dismissable: true
})
return
}

this.props.SCommands.executeCommand('scheduler.abort', undefined, `play:${item.id}`)
this.props.SCommands.executeCommand('scheduler.abort', undefined, `end:${item.id}`)

Expand Down
136 changes: 68 additions & 68 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bridge",
"version": "1.0.0",
"version": "1.0.1",
"description": "",
"main": "index.js",
"scripts": {
Expand Down
Loading
Loading