Repository navigation
v2.2.0
Bracket Creator 2.2.0
A minor release for team tournaments: a team now fields the lineup of its previous team match unless one is entered for a match, and the lineups that earlier releases saved per round are converted so every match keeps showing what 2.1.1 showed. It also closes a round of operator bugs found by reviewing the app on an iPad (1180x820, touch).
If a competition has team lineups, read the upgrade section below first: the first load of such a competition converts its round lineups, and you may want a copy of the data folder beforehand. There are no draw or scoring-rule changes, so a draw generated under 2.1 stays valid. Reload any admin console or viewer tab left open across the upgrade, so it picks up the new front-end.
Upgrading from 2.1.1
- Lineups saved for a round are converted to lineups for matches, once. Releases up to 2.1.1 saved a lineup per round and read a match's lineup from the match's own, else a round's. On the first load, every match a team is seated in gets a lineup of its own equal to what 2.1.1 showed there (an empty one where 2.1.1 showed none), and the same happens when a knockout winner advances or a Swiss round is generated. A team that already had a lineup entered for a match is converted too, so its later matches, fought ones included, show what they showed. A lineup you remove afterwards with Use the previous match's lineup stays removed (#458)
config.mdgainsround_lineups_given,round_lineups_legacyandround_lineups_converted, which record that conversion. The round lineups stay on disk, never read, until the competition is completed, and are removed then. 2.1.1 does not know these records, so keep a copy of the data folder if you may need to go back to it (#458)- Lineups are matched by a team's participant id only, and discarding a draw, or starting one, removes the lineups saved for its matches (#458)
- The Lineups page's Round box is now "Lineup for" (the team's starting lineup, or any of its matches). Copy from previous match is gone because carrying over is the default, and the later-round note with Remove it is gone with the round lineups (#458)
HTTP API and integrations
- New public read
GET /api/competitions/:id/teams/:tid/lineup-in-force/:matchIdanswers the lineup a team fields at a match, and where it comes from (#458) PUT .../teams/:tid/lineups/:roundrefuses a round above 0 with 400, and the?fallback=bestread option is removed (#458)- Both lineup saves accept
changed, the positions the save changes, and the server writes only those under the competition's lock. A save withoutchangedreplaces the whole lineup, which is how a save queued by 2.1.1 replays (#458) - Team members carry a server
modifiedAt. Renaming and clearing a member answer200with the member instead of204, and adding a member is announced to other devices like the other member writes. The lineup change event now names the team and the match (#458)
Highlights since v2.1.1
Team lineups
- A team's lineup carries from its previous team match unless one is entered for a match. One rule decides the lineup a team fields, and every surface asks it: the score sheet, the at-court lineup panel, the public viewer, the court display, the streaming overlay, the kachinuki roster and the Kachinuki Detail sheet. The panel says where its lineup comes from ("Lineup for this match", "Same as Pool D · Match 1", "Starting lineup") (#458)
- A lineup save names only the positions it changed. Two devices changing different positions of one lineup both keep their change, in either arrival order, a save sent after a period offline included. The offline queue keeps one save per lineup and joins a later save into it position by position (#458)
- Both lineup editors save only after a successful read ("Try again" otherwise), and an editor with no unsaved change shows a lineup saved on another device (#458)
- Unsaved lineup edits survive a reload, the browser's Back and closing the panel: they come back as a draft ("Unsaved lineup changes restored", with Discard) and are never saved until Save lineup (#458)
- A lineup save the device is holding says so in the same words the score editors use ("Not sent yet: saved on this device, and sent when the connection returns."), with a pending icon (#458)
- A team's members carry a server stamp, so an older list can never put back an old name and a rename made on another device always shows. A name typed before the members have been read waits for them (up to 12 seconds) instead of being added as a new member (#458)
- The at-court panel refuses one new name typed at two positions before anything is written, and a refusal names the position the same way everywhere and goes once the position changes (#458)
- The Kachinuki Detail sheet orders positions in their real order (Senpo first, and position 10 after position 2) instead of sorting them as text (#458)
Scoring on the iPad
- A double tap on a button that opens a layer no longer acts on that layer: each confirm, dialog and sign-in prompt takes the bounce of the tap that opened it. Keyboard activation is never swallowed (#458)
- Under a touch pointer, the overtime label and steppers, the team sheet's name box, the lineup panel's Rename link and the kachinuki collapse caret are 44px or larger (#458)
- The team sheet's header, result band and actions stay on screen: the team names and the IV/PW and result band pin under the top bar, and Finish, Record bout and End match sit in a dock at the bottom. In the Scores overlay a team of six or more scrolls its bouts under the pinned bar, so every bout can be scored (#458)
- A lineup refusal or warning appears inside the bout row and side where the name was typed, not below every bout (#458)
- Controls no longer move under the finger: the "Tap a scored mark to clear it" line holds its space before the first point, and Undo encho holds its place beside Encho, so a double tap on Encho gives overtime instead of cancelling itself (#458)
- Ending a reopened match from the editor that reopened it records the result. Before, End sent no change and the match stayed running with no error (#458)
- Escape on an open fighter list in the Scores overlay closes the list only, not the whole editor (#458)
- The court console's own confirms (move court, Send back to queue) take focus, close on Escape and give focus back, and the court picker no longer takes focus as it appears, which had scrolled the page to the last row (#458)
- A control brought into view with Tab or a scroll no longer stops under the team sheet's pinned bars (#458)
Documentation
- The docs are captured at v2.2.0 (#459), and the team tournaments guide, the data model page and the OpenAPI specification describe the lineup rule, the Lineups page, the save of changed positions and the member stamp (#458)
Dependencies
- web-mobile and web:
source-map-js1.2.2, a development-only dependency (#458)
Install: docker run -p 8080:8080 -v "$PWD/tournament-data:/tournament-data" ghcr.io/gitrgoliveira/bracket-creator-mobile:v2.2.0, or see the install guide for Homebrew, Linux packages, and binaries.
Full Changelog: v2.1.1...v2.2.0