Tags: kosnick/pikatimer
Tags
Release 1.5 Beta 1 (PikaTimer#14) * Award tie scoring fix. In the event of a tie, the subsequent winners were offset. e.g. If there is a tie for 1st, it was displaying "1, 1, 2" and not "1, 1, 3" * Display the country in the participants tab * Setting DNF status in results table was setting the DQ status * OverallHTML5 improvments *Set the BOM in UTF-8 CSV files to get around the stupidity of Excel *Include the First/Middle/Last names as columns for CSV output, but low priority to not clutter up the web display * Results processing bug fix: Backup times Ignored at finish * Rework how backup times are handled * Prevent JSON from blowing up if the result set is empty * FTPS Transport: Better handle IIS file locking issues * Upload to a temp file, then do a swap * Avoids issues with clients pulling files in flight * Attempts to work around "file in use" issues * LocalTransport: Fix newlines for target OS * swap the \n's for whatever is locally appropriate. * Text Reports: Add a space between the result and the custom footer * Custom Participant Attributes: Part 1 -- Ability to create and persist a custom attribute -- Can choose from one of the following Types: String, Integer, Number, Date, Time, List (of unique strings) Todo: Display in table, edit in form, import from csv, export to csv * RFIDDirect Updates --Beeper Volume Settings --Start of the remote settings * Minor tweaks to the openEventController * Update the UI to the 'loading' display before we start to do things * TODO Updates * Note the stuff we want for 1.1 * Custom Participant Attributes: Editing Form Layout * Custom Participant Attributes (continued) * Ability to edit/update attributes via the UI * Attributes now display in the participant table * Arbitrary Age Group Support * Ability to set an an arbitrary start age * Automatically assigns the end age based on the next starting age * OpenEvent debug stuff * Update TODO file * SQL to support arbitrary Age Groups * Custom Age Group (cont...) * Fix bug in determining the AG string * Adjust reports to show the custom names in the section headers * Tweak the AG Setup UI layout * Cleanup of unused imports * Standard Formatters for text fields * Currently only a basic Integer Formatter * Cleanup of Unused Imports * Start of Award Overhaul * AWARDS DO NOT WORK * Able to change award priority * New Award UI * Don't Update the race database when we select a different race. * Award refactoring, continued * Built in Overall, Masters, and AG Awards * Reworked the Award report to let the RaceAward object do the heavy lifting * Ability to change the priority of the awards * Award refactoring, continued * Added ability to use an AwardCategory depth based on the # of registered or started participants * Custom Awards -- Filtering * Ability to filter on standard or custom attributes * Fixed handling of custom attributes to ensure that the object is saved before working with it. * Custom Awards -- Splitting * Ability to split an award by one or more various categories (sex, ag, state, etc) * CheckComboBox has some odd behavior / bugs. The UI may switch to a ListView if unresolved. * Custom Awards -- Splitting Revisited * Replaced the CheckComboBox with a ListView to avoid some nasty CheckComboBox bugs when the list of available attributes is updated. * Custom Awards -- Regex Filter * Add ability to filter based on a regular expression * Custom Awards -- Custom Awards Timing Point Selection * Add ability to specify a split or segment to base a custom award on * Custom Awards -- Skew result option * Add ability to add or subtract time from a result based on a custom attribute * Requires at least one custom attribute of the "Time" type to use * Add or subtract the value of the time * Defaults to a time of zero if there is no value for that particular attribute for a participant. * Update the TODO file that we use to track things todo. :-) * Special / Reserved Characters in fields cause html/json parsing issues * Having a single/double quote in a split or segment named caused the html5 report to blow up * We now escape all user provided data as appropriate. * Fix comparisons in the award handling to avoid triggering unneeded updates * Ultra -> Discover only scans 1st network segment * Added code to loop over all attached network interfaces * HTML Reports blow up when there is no data to show * System now checks to see if there are results to display before trying to setup a table to show them. * Export of Custom Participant Attributes * CSV escape for headers and data values (just to handle double quotes) * Import of Custom Participant Attributes * BUG FIX: Award Categories are not displayed for new races until after a restart or new race is added * Debug output cleanup * Add Ability to assign wave/race on import via an attribute in the import file * Updated TODO File to reflect current progress * Bulk bib assignment: Phase 1 * Basic UI * Does not actually assign anything yet.... * Needs input field validation (start text field must be a number) * Bulk bib assignment: Phase 2 * Ability to modify bibs * Multiple races with cases where we don't set the bib range could get ugly TODO: no feedback to user while we move things around. We should pop a task bar up and give them some feedback. * Advanced Split Options (Phase 1: UI) * Mandatory Split * Ignore Split (aka dead zone / pause / etc) * Cutoff Time (From start) * Min time to next split UI Only right now. Enforcement of these options is still pending * Advanced Segment Options (Phase 1: UI) * Hide on final results (use for an award but don't display) * Override Pace display (for triathlon or duathlon events) * Cleanup of some other code bits UI Only right now. Enforcement of these options is still pending * Award Visibility - Phase 1: UI * Added ToggleSwitches for award visibility * TODO: Adjust awards report to honor the visibility flag. * Award Visibility - Phase 2: Award Report * Don't show awards on the report unless they are 'visible' * TODO: override option * Segment Pace / Visibility * Update reports to honor the segment pace display * Update reports to honor the segment visibility * Show awards in OverallHTML5 report * Winners get a trophy icon in the overall place column * Detailed view shows the name of the award * Visibility controlled on the award via a toggle switch * Show awards in Overall (Text) report * Displays award and time under their row * Visibility controlled on the award via a toggle switch * JSON escape sequence fixup * don't escape the name before we run it through 'stripAccents' * award text formatting cleanup * Overall HTML5 Report Improvements * Show the Note if DNF'ed * Show the Last Seen if in progress and they DNF'ed * UI Work to enable the 'Show Awards' feature * Updated TODO file * Results Updates: Hide State and/or Country columns unless there is data to show. * TODO File Updates * The easy way to track what is still left * Numerous updates as we managed to get some stuff done * OverallHTML5 Report Tweak * Move the trophy icon to the name field to improve visibility on mobile devices * OverallHTML5 Report Tweak * Add 'compact' class to the table to improve mobile information density * DurationParser.parsable does not recognize single digit minutes * Split min time and penalty / bonus time support: Phase 1: * Enforcement of min split for non-backup times * UI to enter a penalty / bonus time for a given participant with a note TODO: Split min time for backup times Addition of the penalty / bonus time to the final time, plus report support. * Split: Hidden / Paused / Ignored Support * Splits marked as "Ignored" will not count toward the final result * These are also hidden from the final reports * Mandatory, bonus/penalty, and per-split cutoff enforcement: Phase 1 * Mandatory Split enforcement * bonus/penalty now added to final and chip times * per-split OCO enforcement TODO: update reports to show bonus/penalty, or oco status * Enforce OCO status at a split * Show Penalty / Bonus info in HTML5 report & hide hidden segments * Shows bonus/penalty time with the note * Shows the raw chip/gun time * Property hides hidden segments * Split OCO's were not being included in the processed results list sent to the reports * Display Split OCO's in HTML5 report * Update reports to display penalty/bonus times. * Show Custom Attributes in Award Reports: Phase 1 UI Controls * Provided UI to present a list of custom attributes to select from * Persist the list by using the UUID of the custom attribute as a boolean attribute for the race report * TODO: Actually show the custom attributes * Show Custom Attributes in Award Reports: Phase 2: The reports * Provides a checkbox and checkComboBox to select which custom attributes to display * Show Specific Award Reports: * Provides a checkbox and checkComboBox to select which awards to display * Allows overriding of the "show on default awards" option * HTML5 report option to show splits for each segment * Checkbox to display the splits appropriate for a given segment * TODO: per-segment pace override display support. Defaults to the global one. * HTML5 report segment split pace update * Per-segment pace override display support. * Update TODO file to show progress of pending features for the 1.5 release * RFIDUltra: Better connection handling and prep for Remote / Antenna config * Send a status request on 1st connection timeout. The latest Joey firmware does not send a voltage every 5 seconds. * Add F11 keycombo to trigger a full screen view * RFIDDirectReader: Dialog box to set remote (outreach) parameters * RFIDDirectReader: Antenna and Power Settings * Dialog box to toggle individual antennas on/off * Also able to set the power levels and "Antenna 4 as Backup" option when connected to an Ultra * Merge database update scripts into a single file for version 1.5 * BUG FIX: Start Wave Lookup was adding extra waves * Created a new CrrayList for use by the waves by location hash to prevent hijacking the existing race wave list. (DOH!) * Update TODO File to reflect recent progress * Prep for 1.5 Beta 1
1.0 Release (PikaTimer#13) * Fix swapbibs index numbers (0 and 1, not 1 and 2) * Add AgeGroups when race is created * Award report should not throw a NPE if the award depths have not yet been setup. * Display race name with split name in override dialog box when the participant is entered in multiple races * Improve searching of AG results * UI Tweaks -- Delete vs Remove * UI Tweaks -- Delete vs Remove * UI Tweaks -- Delete vs Remove * UI Tweaks -- Add "Version" text in front of version number * Set default import path to the event directory * Use RFIDServer Style rewind commands -- "800" (ascii) vs "8[0x00][0x00]" * RFIDFileReader should support new Joey file format * Update DataTables to 1.10.15 * Disable 'add' person until either the first or last name has some data * Default participants to the 1st wave * HTML5 / JSON Accented String search improvements -- Searching for "Renee" will find "Renee" or "Renée" -- Searching for Renée" will only find Renée" -- Include a full_name_filter attribute in the json that has the accented and un-accented string for searching * Timing layout tweaks * RaceReport hibernate FetchMode tweak to avoid issues for when we move to 5.x * Hibernate FetchMode tweak to avoid issues for when we move to 5.x * Better handling of the zero age group * Race Details cosmetic changes * TimingLocation fetchmode tweaks for hibernate 5.x prep * Participant Race/Wave selection UI improvements * Better handling of Result Destination removal -- Verify that the destination is not in use by any race reports, warn if it is. -- Set the ID of any race report targets to -1 as a sentinel value to avoid updates due to the lingering change listener * Detect the file encoding used for participant import. * Try and use UTF-8 and see if there are any errors * Fall back to the system default (this needs work) * JSON Data fixes * Calculate the pace when the showPace option is checked, not the showSegmentPace * Wave extractor update * Include the waveDisplayName * PikaRFIDDirectReader discovery improvements * Use a UDP broadcast to port 2000 (like the firmware updater) to find local units * Display the Type and MAC * Keep scanning while the dialog box is open, display units as they are found. * Wrap text based header/footers in <pre> tag * Unable to change the report time after it is generated without a restart. * Move the "Finish(TOD) column to the end of the results table. * Use H2 in multithreaded mode * Prep for 1.0 release * Show screen snapshots in Readme.md file * Update TODO file * Update TimingInputTypes to include the new Joey system * Update the RFIDDirect reader to support the the new Joey system * Fix rounding issues in the Pace calculator * Fix markdown in README.md * Update Readme.md for 1.0 Release
RC2 (PikaTimer#11) Pile of Fixes and Improvements: RFID Direct SFTP Support Dozens of UI tweaks Even more bug fixes
RC1 Release (PikaTimer#10) * Release Candidate 1 * Prevent hiding the custom timing locations when there are more than 2 * Segments and Bib Ranges (part 1) * Bib range -> wave 1 bib range syncing *now the ui will show what is in wave 1 when you check/uncheck the waves checkbox. * Hide unused split columns (for now) * Extractors, sync of race distance vs final distance, update results after splits changed button. * Wave default allocation method and Race Name Save on out of focus * Fix what happens when the 1st split is selected when the user hits 'add' * Segments * Prevent removal of timing locations or segments that are in use * TODO: prevent removal of waves (with reassignment logic) *Update gitignore for Scene * Filter DQ/DNF from awards (DOH!) * Fix spacing on finish time * Filter out DNF's, DQ's, and folks who didn't finish from the awards * Fix sorting of folks who have not finished yet so that it is more like a leaderboard * Close the <table> tag * Display the segment distance * Update segment distance when the split distance changes * Also strip anything after a space on the split distance * Remove course records button and hide cutoff pace if time is blank * Disable AG assignemt method in waves for now * Fix race cutoff display so that it shows HH:MM and nothing else * Get rid of the 'reset' buttons that clear things out that should never really be cleared out. * Add a CountDownLatch to the race loading to prevent the getWaveByID from running before we load the races from the DB * Add a CountDownLatch to the participant loading to prevent the getParticipantByBib and getParticipantByID from running before we load the races from the DB * Clean up fullNameProperty binding and add an extractor * Updates to the edit participant UI. *Not yet fully functional. * Don't permit duplicate bibs that are not blank Fix premature nulling of the editedParticipant Set the waves attribute if only one race (pt 1) * Cleanup of the race column display * Make sure all participants are added to the race if there is only one * Cleanup of the race column display * Hide if only one race/wave * Add the race Name to the list of things to trigger an update on * More work on the 'race' column in the participant tabelview * Extractor for the waves property * Fix middle name column to use a properly named property * Set the focus to the first name when they tab out of the bib and we auto-edit a participant. * Reverted various attempts to get the race/wave TableColumn to update * Delete Participant UI Work * Comment out debug statements * Move delete button * remove unused imports * Remove debug statments * Remove debug statements * remove the associated waves and splits before removing the race * prevent removal of in-use waves * prevent removal of in-use races * cleanup debug statements * Fields for Participant status and note *will replace the dnf/dq stuff eventually * Fix the Wave extractor to include the race name * Added the ability to filter the participants by race/wave * fix bug when we are trying to print out a deleted wave * lesson PikaTimer#1: watch for null objects... duh! * Fix multiple listeners being registered with new race selection * We were registering new listeners every time the user selected a new race, resulting in lots of potential timing issues. * Prevent editing the distance of the first split * which by definition is zero. We hope. :-) * Remove unused imports * Updated Readme/TODO files * Status and Note fields are now persisted and updated. * You can now set the status via the drop down * Need to think of some text for "good" so it is not blank * Updates to the status enum so that the good status is no longer blank * Also make sure we select the Status.GOOD when creating participants * Don't permit leading spaces or zeroes on bib or distance textFields * Changing the birthdate updates the age based on the event date * DB Field for the participant zip code * Tweaks to the birthdate handling. * If they enter a birthdate, focus skips forward if the birthdate is not null. * Cleanup inputting of various fields to validate entries * Dates (ISO and Local "short" * zero padded integers 01 vs 1 * zero padded decimals 01.1 vs 1.1 but allowing 0.1 * Sex starting with M or F (case insensitive) is reduced to just M or F * Export participants * Set the fields to export * Sort by arbitrary attribute * Filter by race * Cleanup and Refactoring * Save initial (failed) reworking for race column * Temporary override of the TimingInputTypes until we can get them mall working * Refactor Participant wavesProperty method call * Version upgrade to v0.7 (Alpha) * Start of UI Cleanup * Fix skew time zero detection and decimal handling * Timing UI Cleanup * Show input name & location in table * auto-grow table * fix unknown/unmapped bib display * Cleanup TimingDAO * Better handling of read clearing * ReprocessAllReads method for in prep for revised bib-chip map handling * Very Minor TimingLocationInput UI Tweaks * Improve override handing * Edit existing * replace matching (same bib / split) * double click to edit * Fix handling of overrides when there are no chip reads for a participant * Bug Fix in sub-second display * XX.001 was being shown as XX.1 * New DurationParser utility class * Big batch of tweaks and fixes * time parsing for the filter is improved * altering the chip mapping reprocesses all times now * unknown/unmapped bibs are better reported in the cooked time table * chips are now stashed with the cooked times * Minor tweaks * Remove unused imports * prevent a loop with the change listener * Fix NPE from change in timingLocationInput list handling * fix one bug, introduce another... * Filter cooked time by TimingLocation * Added ability to flag a CookedTime as ignored. *Uses the checkbox in the cookedTime table *Ignored times are excluded from the bib -> cookedTime[] map (no need to filter) * Minor tweak to auto-generated TimingLocationInput name * Minor tweak to search to strip accents from the full name property * Searches with accents will only find names that exactly match. e.g. "garnér" will only match "garnér" and not "garner" * Un-accented searches will find names with or without the accent. e.g. "garner" will match "garnér" and "garner" * Cleanup: Remove unused imports * Start of Chip -> Bib map UI * Displays mappings * Searching * UI Cleanup * Minor tweak to results processing to speed things up on faster systems * Don't send sql to stdout * Fix minor issue on creating new events with files that end in .db * the file would be named <name>.db.mv.db which is kinda redundant * Permit spaces _in_ the bib, but not and the end * Update handling of chip -> bib mappings * Permit editing * toggle of the custom use map * reprocess results on mapping changes * Auto-Assign a Participant to a Race if seen at a given timing location *Will assign them to the first wave in the race * Properly handle backup times * process them after we have already applied overrides and regular times * set a default status of GOOD TODO: Start/Finish are done, intermediate splits are not working yet * Fixed ability to properly handle intermediate backup times * There be dragons there... * Hide unused MaxStart Colum * We will use it in the future. Maybe. * Swap the CheckBox for a ComboBox to avoid JDK-8088241 * Seriously folks? * Flip cutoff time to the right side * Mandatory items on the left, optional on the right. * Prevent removal of races that are set as the auto-assign target of a timing location * BugFix: Save new bib2chip mappings * TimingInput fixes * Sort them correctly for consistent views * Sort the TimingInputLocations correctly (not using a sorted list) * Fix the issue with having either a List or a SortedList * Speed up UI response when doing the initial load * Try and do as much as possible on a background thread. * Fixed rounding issue that resulted in 60 seconds being displayed * Static 'getString' method that is more or less the same as 'toString' * Assign wave start times based on start triggers ("0" chip) at the start line * Added ability to parse dates * Converted to time since the start of the event * tossed if negative relative to the start of the event * Disable unused TimingInputTypes * Added placeholder for new Race Timer app * Show "START TRIGGER" as the "participant" for zero chip reads * Add ability to directly edit the filename via the TextField * Create an abstract 'TailingReader' class to make implementing additional readers easy *PikaRFIDFileReader now extends TailingReader. Most of the boilerplate logic now resides in the parent, the child just implements the 'parse' method. * Fix default size/location of start time lookup dialog box * "New" interface to permit the reader to invalidate and clear the downstream reads. * Cleanup of unused code * Error checking and a NonTailingReader class to assist in future development * First cut at a "Race timer" input file for select timing * PC Timer is pending an input file to develop from * Fix parsing of birthdates * Import Participant Wizard Updates * Validates file before progressing * Permits directly entering the file in a text field * Hides unimplemented options * Added race UUID to fix collisions with multiple races with the same name/distance being treated as equals. * Now adding a race correctly selects it, which auto-creates the splits * Wrapped the select in a runLater for reasons. * Minor layout tweaks for the import wizard * Tweaks to the FetchType (now EAGER) and a catch for races with no splits (which should never happen) * Fixed issues with concurrency and setup the readOnce to use try-with-resources to prevent the stream from staying open * Initial implementation of the PC Timer and Race Timer file inputs * Typically used for select timing * TODO: Auto set the 'backup' flag when these input types are selected. * Don't clear local reads that are about to be cleared by the function you are calling.... * Refactor property methods to conform to the xxProperty() naming convention * fxml control visibility tweak * Prep for 0.8 (Alpha) release * Prep for 0.8 (Alpha) release * Fix TimingLocationInput skew TextField input specifications * Permit almost anything in terms of time * negative times permitted * HH:MM:SS.sss or MM:SS.sss or SS.sss or SS TODO: Wrap this into a "DurationTextField" for use elsewhere * Whitespace and comment cleanup * Minor cleanup TODO: Recalc participant ages if the event date changes TODO: Offer something other than the event date as the pivot date for age calculations * Reworking results tab * Moved Awards and AG setup to the "Awards" tab * Started reworking the results table to use properties that auto-refresh * Now display the Gun time * Removed unused "reports" fxml and associated controller TODO: * Rework the splits to use properties * display age/sex * setup a way to filter by sex or age * keep count of started, on-course, and finishers * Keep count of how many have made it past a given split but did not make it to the next one yet. * Fix handling of deleted results * Fix handling of results display * Switch splits to use a duration rather than the text hack * Right justify times so that they line up nicely * Fix registering multiple listeners on split changes bug * Cleanup extra debug code * Added Event and Race level key/value attributes * Time Display and Rounding are now race level attributes * Reworked Results tab to better display the display format and rouonding options * Initial stubs for DisplayFormatter to take a very rough display string rather than the boolean/numeric inputs * Provide a helpful hint to the user if there are no output paths defined for a Race Result * Cleanup colum display for a missing participant * Show / Hide Report Options based on the report type selected * Show PikaTimer version number in the window title * Enable TableMenuButton on the results display * Permits users to hide columns * Results Tab UI Tweaks * Hide the "Options" label when there are no options * Add some space around the output * Shift the add output button to the left TODO: Make the remove/add buttons + or - graphics * Fix NPE on removing a recently created TimingLocation * TimingLocation ListView custom ListCell * Better display of the status * Need to fix the hard coded width issue * Results Tab UI Updates * Double click to edit in the list view * OutputPortals now default to Local * Output Destination Status * Moved report processing to a background thread so that the UI has a chance to update * Transfer Status displays with the LocalTransport (blink and you will miss it) TODO: Fix the status on the other transports * FTPSTransport fixes * Update the status * Better error recovery / retries * Show started/finished/pending count on the results display * Save the permitTies option on the awards page as a boolean race attribute * Auto-Update of reports * Option for 30s, 1m, 2m, 5m * ProgressBar shows a countdown to the next run (since ProgressIndicator text is a pain to work with) * Option to strip accent marks on a per Report Destination basis * Minor cleanup of the dialog box * Remove unimplemented transfer types * Initial UI setup for headers and footers * Custom Headers and Footers attribute setup * Copy from one race to the next * Text and/or HTML specific * CSS link * Google Analytics code * Simple or Advanced HTML editor * Reports UI Tweaks * Pace enum string typo fixes * Pace Display Format Option per race * Defaults to min/mile (MM:SS/mile) * Uses the Pace enum TODO: Provide a way to override on a per-segment basis * Process Now option for each report * Updates even if the report is disabled * FTPS Transport idle connection handling improvements * NOOP every 15 seconds to keep the session alive * Disconnect after 120 seconds of no transfers to be nice * Better disconnect recovery handling * Pace enum minor cleanup * Ddon't hard code the RoundingMode when the user specifies the rounding mode * Duh * Compute Segment times and properly handle ties * Ties are based on the display format / rounding mode * Calculate the placement for segments * Add method to grab distance * Add more supported options for reports * Updated to support segments and new options * Don't double zero pad the hours * Unit Conversion Method * Finish the implementation of getPace for all values of Pace * AgeGroup report cleanup * Show note for DQ's * Use the Pace.getPace method to calculate paces * Honor the race wide pace setting * Overall(Text) report cleanup * Option to show segments and segment pace * Show note for DQ's * Use the Pace.getPace method to calculate paces * Honor the race wide pace display and time format setting * Award Cleanup * Handle ties correctly * Exclude OCO folks * Better cutoff time handling * Now takes into account the display format and rounding mode * Better DQ handling * Header / Footer / CSS / Google Analytics support * Include the custom headers / footers / GA code / CSS * Allow embedding of a search string in the URL after the hash * Auto-expand any records that match that initial search TODO: * Set the search to be keyed to one bib number (e.g. "bib:123") * Replace the DOM data source with a JSON one * Better child table that displays things nicely * split based paces and time delta in child view * Last Seen in child view if in-progress * Refresh button if in-progress * Fix bug in not exposing the save button after checking the text vs html header display option * UI Cleanup * Don't offer the segment delete button if nothing is selected * Cutoff Time handling was a mess * Cutoff Time pace calc did not honor the system wide report setting * Races would be listed in a random order each time the event was opened * Add a Segment extractor and make it implement Comparable * Watch for no selected races when the removeRace button is hit * Don't show enable the delete split button when no splits are selected * Sort the segment list * Better add wave handling * auto-increment the previous bib numbers if numeric * make the start time either +5 minutes of the 1st wave or the time between the previous two waves * Fix UnsupportedOperationException in Timing -> Start Trigger Lookup after adding a new wave * Don't assign a list a sorted Observable list if you ever intend to modify it * Fall back to FTP if an FTPS connection fails * TODO Updates * README updates * OutputPortal -> ReportDestination refactor * Change "Running" status to "Entered" * Update the start time text field when the start time gets updated via the timing tab start trigger lookup * Reprocess the results when we change the start time via the start trigger lookup * Refactor the "reprocessAll" methods to reprocessResults * Import participant changes and enhancements * Duplicate handling (ignore, merge, import options) * Duplicate bib checking (bib becomes "dupe: <bib>" * Overall CSV report type added * Report Type Cleanup * Cleanup of some unused imports * Add the Overall CSV to the list of available reports * Refactored regNewReader() to getReportType to hide the bad cut and paste job from before * Fix the getParticipantByBib() method to not blindly return the last participant entered with a blank or null bib, return null instead. * JSON Report Output Type * Will also be used for HTML5 report type * JSON Report Output Type * Will also be used for HTML5 report type * Cleanup JSON output for use by the OverallHTML5 report * OverallHTML5 report * Uses OverallJSON for the data source * Tries to "do the right thing" on mobile devices * Faster rendering than DOM based report TODO: * A "Loading..." display * "No results yet posted message when there are no results * Split / Segment data display in details row * Better handling of DQ / DNF / OCO display * Share button for FB and email (just a popup with a url) * Bug Fix: Removing a race that is displayed on the results tab results in an AIOOBE * Async Google Analytics script for HTML5 report * JSON output updates * Placement fields for segments * last_seen field for inProgress reports * HTML5 report updates * Segment displays * Better display of OCO / DQ / DNF / Started status folks * Started folks will show the 'last seen' based on the last chip read TODO: * Splits * HTML5 report updates * Split Displays * CSS Cleanup * Updated README.md * Updated TODO file * Updated HTML5 Report * Splits, paces, and more. Oh My. * Improved perceived loading time by hiding the fact that we are loading * Add Share to FB/Twitter in html5 details display * Fix race to not return null segments * if it is null, return an empty list. * Chip -> Bib Mapping improvement * Able to add a sequence with an offset * Check for already open events * Toss an error alert and move on * HTML5 Report Sex and Age Group Filters TODO: Tweak CSS for better display on a small mobile device. * HTML5 Report formatting updates * HTML5 Export to CSV / Print buttons added * Visible only when the report is not In Progress * HTML5 Report UI Cleanup * Change in priority of columns shown * CSS class rename for consistency * Changed the description of the overall html reports * Remove unused glyphicons (it seemed like a good idea at the time) * Refactor DB sql scripts and cleanup sql * Merge the 9 extra sql fils into the main one * Rename "output_portals" table to "report_destinations" * Ditch the now obsolete dnf/dq booleans colums the participant table This will break the ability to open pre-RC1 pika files without first manually updating the metadata table that flyway uses and hand tweaking a few columns * Add 'About' tab * Set the 1st report destination as the default for new report output targets * Set the database file extension to .pika rather than .mv.db * Setup a FilePathWrapper that uses the 'pika' method and do some quick string replacements on the file path. * Borrowed from http://shuvikov.net/blog/renaming-h2-database-files/ * Participant add bug fixes * Add button now responds to the return key * Birthdate is now saved on add (vs only on update) * Participant null sex handling bug * correctly handle null sex * About page layout tweaks * Result extractor broken * Need to update the revison counter after a recalc * RFE: Add a 'Withdrawn' count to the participant stats above the results TableView * Fix a bad fxml value that was resulting in a NPE * Remove Debug code from ResultsController * Remove Debug code from Result * Hyperlinks on the About tab * HTML5 output: Add "Results" to the title * Update Basic HTML output to have a few of the HTML5 features * AG / Sex filtering * InProgress * Opening window UI tweaks * Enable custom headers if the user sets them up * Show the bib in the HTML5 report detail view * Don't show the hibernate sql log * Timing tab UI Tweak * Move the custom chip map setup up a notch * Prep for RC1 * Add DB columns for future use * Team ID for participant * Pace for segments * Min time for splits
Results output feature (PikaTimer#4) * Netbeans jdk update to 1.8.92 round 2 * Results Tab -- Age Group Setup * Configure AG info on the Results Tab * Fixed raceDAO so that the raceList and waveList use an extractor on the name of the race/wave * Results Tab -- Award Setup * Initial hack at award setup parameters * Depth (M/F), Gun vs Chip, Pull or not * Fixed RFID Data Integrity Issue * only permit a reader of 1, 2, 3 or 4 unless the chip is 0 * Reports, continued. * Reports, continued. * Reports, continued. * Reports, continued. * Also fixed concurrency issue with the ParticipantDAO fetching the participants list multiple times * Reports, continued. * Now with the reportType UI showing (but not doing anything) * TODO: Refactor the names of everything (e.g., "Outputs" -> "Reports") * Report Destination cleanup * Now you can add/edit report destinations * TODO: fix the mess when you first create a new report destination * Also added the ChoiceBox for time display format and rounding (not wired in yet) * Report Destination cleanup * Minor tweaks before laptop move * Reports and more Reports * Results Updates * Swapped the ChoiceBox to a ComboBox to get around JDK-8088241 * Fixed the OutputPortal extractor to include the basePath * Update Readme file * Fixed typos, added a few features * Results, cont * Basic results now kicked to STDOUT * Fixed rounding issue in DurationFormatter * DNF/DQ handling in the results sorting * The sort order is now finishers -> still running -> DQ -> DNF * Even more reports * Overall (text) works * Pace display works for XX:XX/mi * Output to a local file works TODO: * Overall w/ splits * Pay attention to the options (display DNF/DQ, pace, splits, etc) * * Awards (text) plus a host of other fixes to support it. * * AgeGroup report now functional TODO: Figure out how to have the RaceReport sync up the output portals without the help of the ResultOutputController so that you don't need to first view the config before producing the result, and so that you don't need to restart to produce a result. * * Readme.md update to catch up with the new reports and such. * FTPS Support for report transfers. * Working FTPSTransport * Setups a backgrouund thread, will auto-reconnect if needed. * TODO: Better handling of bad username/password/server settings * TODO Cleanup, Version # Increment, splash screen increment * TODO: switch splash screen to a preloader? * Correctly center the opening box * Bug fixes for reports * Correctly set the enable / disable flag for a report * Allow the Output portal for a output destination to be changed without restarting the app. * Report display UI format fix * Overall HTML w/ responsive table via DataTables * Also added time to transmit to the ftps uploader for debug output * Fixes to OverallHTML * Now works with in-progress races * The "started" flag is a bit wonky on responsive displays, but it works