Hello!
I work on broadcasting tech for Inkling Performance Labs, and many other things.
Profile image by Starbiit
Dashboard elements for Inkling Performance Labs broadcast graphics.
License: MIT License
Hello!
I work on broadcasting tech for Inkling Performance Labs, and many other things.
Profile image by Starbiit
With new features getting added frequently, the main "IPL" workspace of the dashboard has become cluttered with options.
Less frequently used options should either be toggleable (With something like a collapsible menu) or moved to a different workspace.
This dashboard should eventually be refactored to TypeScript. My plan for this to use Webpack, as it also brings features like auto-reload and the possibility to use SCSS.
Currently, the importer for rounds and tournaments supports linking a web URL that returns a JSON file on request. An option to upload a JSON file through the dashboard may be desired if the JSON is not uploaded to a web server.
Continuation of #18 .
Along with the changes suggested previously, it may be feasible to bind array values to elements.
Idea:
Given the following template:
<div id="array-elements-wrapper" data-bind-object="listRep">
<div data-object-id class="space">
<input data-bind-list-value="name">
<input data-bind-list-value="email">
</div>
</div>
with data
{
"IDIDID": {
"name": "name namerson",
"email": "[email protected]"
},
"DIDIDI": {
"name": "nome nomerson",
"email": "[email protected]"
}
}
would produce the following result:
<div id="array-elements-wrapper" data-bind-object="listRep">
<div id="listRep_IDIDID" class="space">
<input value="name namerson">
<input value="[email protected]">
</div>
<div id="listRep_DIDIDI" class="space">
<input value="nome nomerson">
<input value="[email protected]">
</div>
</div>
When team data is imported via manual JSON fine, allow the file to contain data on the source and the tournament ID so platform-specific features can still work.
To prevent compatibility issues, a way of detecting whether the currently active graphics are compatible with the current dashboard version should be implemented.
Proposal: Define a dashboardVersion
attribute in the graphics' package.json
files. An extension on the dashboard side can read these attributes when NodeCG is started and warn the user if incompatible versions are detected.
Existing behavior:
New behavior:
Add Jest Unit Test support for running unit tests on functions and extensions
The ability to use WebSocket to receive Twitch Prediction data as updates come in via the Radia Production API.
stages
should be moved out of the meta
object, as it doesn't fit the definition of metadata.data
to teams
meta.source
to an enumstages.type
to an enumSort teams in alphabetical order so they're easier to find when there are many teams.
upcomingRound
?) similar to the activeRound
being made in 3.0.0, but without keeping scores or winners.Add an option to pick a team from the saved teams, and change:
Our current implementation looks like this:
<input id="text-input">
const textInput = document.getElementById('text-input');
const textRep = nodecg.Replicant('textRep');
textRep.on('change', newValue => {
textInput.value = newValue;
});
An alternate implementation would work like this:
<input id="text-input" data-bind-replicant="textRep">
A common JS file would find elements with this data attribute and bind their values to the replicants given.
Furthermore, it may be feasible to bind object values to elements.
<input id="object-prop-input" data-bind-replicant="dataRep.text">
When updating casters:
Currently, to change team colors, the user has to open a dropdown and select a pair of colors. Since the order team colors come up in is known most of the time, this could be simplified by adding next and previous buttons to move between colors.
For example, when pressing the 'copy' button at the casters panel, when the copy finishes successfully, flash the button green and change the text to 'Done!'
This would:
Use the Battlefy API to retrieve the highlighted match from a bracket to display next on stream.
Add support for Smash.gg StreamQueue for getting highlighted matches
Currently, this data is stored in a teamImageHidden
replicant. This data should be stored per team, so the state will be retained when the team is switched out and there's a lesser chance of the toggles being forgotten when teams change.
Issues reported by an user:
Encountered with dashboard v2.7.2 and using sos-overlays (master).
To check:
build
branch.)⚠May require a new major release.
When a round has completed, store the team colors that were used that round.
Theoretically, this would involve replacing the gameWinners
replicant with a general gameData
replicant, that can contain both the winner and colors of each round. When a round is completed (score is incremented), save what the color is set to at that moment.
This applies to the casters and rounds panels (potentially others?).
⚠Likely requires a new major release.
In the scoreboardData
replicant, instead of using the swapColorOrder
boolean, swap the clrA
and clrB
values when swapping team colors. This would remove unneeded logic in graphics.
To clearly communicate any errors occurring in dashboard panels to the user, they should be shown at the top of dashboard panels as a message when they occur.
"ID1": {
"meta": {
"name": "Map List 1"
},
"maps": [
{
"map": "Sturgeon Shipyard",
"mode": "Clam Blitz"
},
{
"map": "Sturgeon Shipyard",
"mode": "Clam Blitz"
},
{
"map": "Sturgeon Shipyard",
"mode": "Clam Blitz"
}
]
}
"aAa": {
"name": "First Caster",
"twitter": "@CasterFirst",
"pronouns": "he/him"
},
"bBb": {
"name": "Second Caster",
"twitter": "@CasterSecond",
"pronouns": "she/her"
}
When a new round is started:
Additionally:
In some cases, custom components should be used in dashboard panels.
To bring an example, currently the selectors for game winners (no win, A win, B win) are pieced together from their components in the dashboard code. A cleaner solution would be to create a winner-selector
custom element that the dashboard code can add to the panel.
As mentioned by #20, using Webpack can allow us to use many more neat tools to streamline development than just TS. Using SCSS would make stylesheets less repetitive and more convenient to write.
This can be done client-side.
activeRoundId
replicant, store the data of the active round directly in an activeRound
replicant.tournamentData
or rounds
) updates, this replicant should too.tournamentData
and rounds
should reflect those changes.Full log:
error: [ipl-overlay-controls] Guild Check Auth Error: TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "Authorization"
Occurs when NodeCG is started and radia
is unset in the bundle configuration. Found on a fresh install, so radiaSettings
has only default values.
Currently, for example, if the dashboard fails to connect to the radia-productions API, the warning message displayed will state Unsupported Guild, unable to run predictions.
, even though that isn't correct.
Instead of having to manually extract the tournament ID out of a Battlefy tournament's URL, the dashboard should be able to do that automatically.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.