Skip to main content
Skip table of contents

Configuring Scheduling Page

Configuration of the scheduling page is part of the settings.json, but more complex than a simple parameter. Therefore this chapter covers its details.

The configuration is stored in a nested array of customized Scheduling views under Scheduling\\views. Each entry is an object with the following attributes:

NameDescriptionRequired

icon

Type: Path as String

Path to icon file of the view

Note: It's suggested to use a black-and-white SVG file.

yes

name

Type: String

Name of the view, used as caption on buttonsyes

schedulingWidth

Type: String

Width of the scheduling area in pixels or percentageno

showEndpointsFilter

Type: Boolean

Displays the Distribution Endpoints filterno, default: false

tracksFilter

Type: CSV as String

List of visible tracks

Note: Set to empty string to disable filtering.
Add track number -1 to display the Show Pool.

yes

multiTrack

Type: Object

Configuration of the multiTrack view.

Note: See further documentation below.

yes

timeline

Type: Object

Arrange elements of the show on a fixed timeline

Note: See further documentation below.

no, default: disabled

rundown

Type: Object

Configuration of rundown

Note: See further documentation below.

no, default: disabled

toolbar

Type: Object

Configuration of toolbar

Note: See further documentation below.

no, default: disabled

contentManager

Type: Object

Configuration of Content Manager

Note: See further documentation.

no, default: disabled

upload

Type: Object

To specify the allowed extensions for the upload file

Note: See further documentation below.

no, default: disabled

Example

JS
"Scheduling\\views": [
    {
        "icon": "custom/Scheduling.svg",
        "name": "Scheduling",
		"schedulingWidth": "60%",
		"showEndpointsFilter": true,
        "tracksFilter": "0,1,110,120,130,1000,2001",

        "multiTrack": {
            "default": false,
            "linkScroll": false
        },

        "timeline": {
            "grid": 60,
            "resolution": 1
        },

        "rundown": {
            "columns": "StartMode, Class, StartStopTime, Title"
        },

        "toolbar": [
            {
                "caption": "New Element",
                "type": "element",
                "template": {
                    "Title": "New Element",
                    "Time_StartMode": "Manual",
                    "Time_StartType": "Floating"
                }
            },
            {
                "caption": "Schedule Recording",
                "type": "element",
                "template": {
                    "Title": "New Recording",
                    "Class": "Control",
                    "Time_StartMode": "Manual",
                    "Time_StartType": "Floating",
                    "Control_Operation1": "StartRecording",
                    "Control_Reference1": "MarkIn"
                }
            }
        ],

        "contentManager": {
            "defaultFilter": "Album:Hello World",
            "limit": 20,
            "startCollapsed": true,
            "acceptOnlyReady": true,
            "hideSoftDeleted": false,
			"sortBy": "createdate desc" 
        },

        "upload": {
            "allowedExtensions": ".wav, .mp3"
        }
    }
]

Multi Track

The multiTrack object is used to show tracks side-by-side or as tabs on the Scheduling page. The button to enable it manually is always displayed.

Its parameters configure the Multi Track view:

ParameterDescriptionDefault Value

default

Type: Boolean

Set default view state of Multi Track
  • true Multi Track view is default
  • false Single Track view is default
false

linkScroll

Type: Boolean

Link scroll position of tracks

false

In the following example, the Single Track view will be used by default. Scrolling will be linked if the user switches to Multi Track view:

Example

JS
"multiTrack": {
	"default": false,
	"linkScroll": true
}

Rundown

The rundown object is used to configure the main component of the Scheduling page. The table fields can be toggled and ordered.

ParameterDescriptionDefault Value

columns

Type: CSV as String

Toggle table columns and arrange their order

Available column names:

  • Title
  • StartStopTime
  • Duration
  • Intro
  • SendState
  • StartMode
  • StartType
  • Class
  • Loudness
  • ILK
  • FileState
  • Prelisten
  • HasText (Display of the Textflag)
  • Endpoints

If bundleStartStopTime is disabled, these columns also are available

  • StartTime
  • StopTime

"StartStopTime, Title"

bundleStartStopTime

Type: Boolean

Stack start and stop time in single columntrue

allowDragDrop

Type: Boolean

Toggle drag & drop for groups, stories and elementstrue

dragDropFillWidth

Type: Boolean

Set draggable area on nodes to full width or drag helper on the left side

  • true nodes are draggable everywhere
  • false nodes can only be dragged at the left side
false

hideTrackNumber

Type: Boolean

Hide the track numberfalse

hideColumnsHeader

Type: Boolean

Hide the columns headerfalse

durationsList

Type: Array

Available durations as entries to the array

  • show
    = duration of the show
  • text
    = duration of all texts from elements inside a show (detached from the metadata field "Time_DurationMode"
  • audio 
    = duration of all audio elements inside a show (detached from the metadata field "Time_DurationMode"
  • audioAndText
    = duration of all audios and texts of a show (with consideration of the metadata field "Time_DurationMode")
  • visibleText
  • visibleMedia
  • visibleMediaAndText
  • gaps
    = displays the sum of all gaps of a show
  • overlaps
    = displays the sum of all overlaps of a show
  • gapsOverlaps (displays gaps, else overlaps)
  • difference
    = calculates the difference between the show duration and audioAndText length

Note:

  • Fields are hidden on small screens.
  • Detailed information about time fields can be found in the BCSTechManual, chapter 8.8.
["show", "text", "gapsOverlaps"]

Example

JS
"rundown": {
	"columns": "StartMode, Class, StartStopTime, Title",
	"bundleStartStopTime": false,
	"allowDragDrop": true,
	"dragDropFillWidth": true,
	"hideTrackNumber": false,
	"hideColumnsHeader": false,
	"durationsList": ["gapsOverlaps", "show", "text", "audio", "gaps", "overlaps"]
},

Toolbar

The toolbar is an array of objects, each representing a button.

NameDescription

caption

Type: String

Caption of the button in the toolbar

type

Type: String

Type of the node to be created. Can be any of "group", "story" or "element"

shortcut

Type: Object

Shortcut to create the node. Refer to the "shortcut definition syntax" on the Configuring Shortcuts page or the examples below this section.

template

Type: Object

Preset of the node to be created; contains any BCS field. In most applications it is advised to include at least these attributes:

"Title": "New Recording",
"Time_StartMode" : "Manual",
"Time_StartType" : "Floating"

Since WDA version 1.4.357.0:  If no "AllowedClasses" attribute is specified for a node of type "group" or "story", the default "AllowedClasses" are set:

  • For a group: "News,Text,Music,Cart,Commercial,Audio,Magazine,Promotion,Graphic,Video,Story,Live,Line,Info"
  • For a story: "News,Text,Music,Cart,Commercial,Audio,Magazine,Promotion,Graphic,Video,Live,Line,Info"

Note: Custom BCS fields use two underscores instead of a dot (i.e. DEMO__YouTube instead of DEMO.YouTube)

children

Type: Object

An array of objects, each representing the child node(s) of a "group" or "story" node. The child nodes themselves are then defined by the parameters "type" and "template" again.

Note: A "group" cannot contain another "group", a "story" cannot contain another "group" or "story" and an "element" cannot contain any child.

Therefore, if the child node itself is of type "story", it can only contain "elements" in its parameter "children".

If the child node itself is of type "element", it cannot contain the parameter "children".

Example

JS
"toolbar": [
	{
    	"caption": "New Element",
    	"type": "element",
		"shortcut": ["1"],
    	"template": {
    	    "Title": "New Element",
    	    "Time_StartMode" : "Manual",
    	    "Time_StartType" : "Floating"
    	}
	}
]

Example with children

JS
"toolbar": [		
	{
		"caption": "Group + Story + Element",
		"type": "group",
		"shortcut": ["2"],
		"template": {
			"Title": "New Group",
			"AllowedClasses": "News,Text,Music,Cart,Commercial,Audio,Magazine,Promotion,Graphic,Video,Story,Live,Line,Info",
			"Time_StartMode" : "Manual",
			"Time_StartType" : "Floating"
		},
		"children": [
			{
				"type": "story",
				"template": {
					"Title": "New Story in Group",
					"AllowedClasses": "News,Text,Music,Cart,Commercial,Audio,Magazine,Promotion,Graphic,Video,Live,Line,Info",
					"Time_StartMode" : "Manual",
					"Time_StartType" : "Floating"
				},
				"children": [
					{
						"type": "element",
						"template": {
							"Title": "New Element in Story",
							"Time_StartMode" : "Manual",
							"Time_StartType" : "Floating"
						}
					}
				]
			}
		]
	}
]

Timeline

To enable timeline view of the rundown, set the "timeline" attribute.

NameDescription

resolution

Type: Number

Resolution of the timeline to calculate height of nodes. Unit: px / minute
Example: If set to 5, a three minute element, will have a height of 15 px.

grid

Type: Integer

Display a grid line with timestamp every n minutes.
Example: If set to 60, display a timestamp every hour.

snapToGrid

Type: Integer

Snap nodes to a grid every n minutes.
Example: If set to 15, nodes snap to 00:15, 00:30, 00:45, 01:00, 01:15, ...

Example

JS
"timeline": {
	"resolution": 1,
	"grid": 60,
	"snapToGrid": 15
}

Upload 

Audio files (file types to be extended in the future) can be browse or drop on to a placeholder element from the computer. 

NameDescriptionRequired

allowedExtensions

Type: String

The extension allowed should be given in the format ".wav". no, default: ".wav"

setFilenameAsTitle

Type: Boolean

The title of the dropped file is used as title of the elementno, default: false

Example

JS
"upload": {        
	"allowedExtensions": ".wav, .mp3",
	"setFilenameAsTitle": false 
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.