DIR : /home/kozerus/public_html/go/dgs0/scripts/updates/ChangeLog_1_0_17

/home/kozerus/public_html/go/dgs0/scripts/updates

==================================================================
Release [2014-03-27] - DGS 1.0.17 - tag [release-1_0_17-20140327] on (later) branch [DGS-stable-20140327]

# History:
2014-03-27: release 1.0.17 (from DGS-MAIN master)
2014-04-03: various updates with bug-fixes and smaller improvements (by JUG) as DGS 1.0.17.b
2014-04-09: updates & bugfixes (by JUG) as DGS 1.0.17.c
2014-04-10: closing release, added snapshot (by JUG) as DGS 1.0.17.d

==================================================================

### ----- release-1_0_17-20140410 -----

2014-04-10 jug

   * scripts/updates/ChangeLog_1_0_17, specs/db/dragon-ddl.sql, snapshot.php:
   - added stable snapshot of release 1.0.17
     - sync'ed and fixed DDL

### ----- release-1_0_17-20140409 -----

2014-04-09 jug

   * game.php:
   - bugfix: show toggle-territory-marker-link only if game is finished

2014-04-08 jug

   * tournaments/include/tournament_utils.php (TournamentUtils.check_create_tournament),
     include/quick_common.php (ADMOPT_ALLOW_TOURNEY_CREATE),
     include/config.php,
     admin_show_users.php, admin_users.php, NEWS:
   - added admin-option to allow creation of tournaments to normal users
     - admin-option deny-tournament-creation has precedence over allow-tournament-creation
     - admin-option allow-tournament-creation has precedence over global-config
       ALLOW_TOURNAMENTS_CREATE_BY_USER

   * tournaments/include/types/private_ladder.php (PrivateLadderTournament.__construct),
     tournaments/include/types/public_ladder.php (PublicLadderTournament.__construct),
     tournaments/include/types/private_round_robin.php (PrivateRoundRobinTournament.__construct),
     tournaments/include/types/public_round_robin.php (PublicRoundRobinTournament.__construct):
   - for now need tournament-admin to create private & public ladder-tournaments
   - do not need tournament-admin to create private & public round-robin-tournaments

   * tournaments/include/types/private_round_robin.php (class PrivateRoundRobinTournament, ~.__construct,
       ~.createTournament),
     tournaments/include/tournament_factory.php (TournamentFactory.getTournament, ~.getTournamentTypes),
     tournaments/include/tournament_utils.php (TournamentUtils.getWizardTournamentType),
     tournaments/include/tournament_globals.php (TOURNEY_WIZTYPE_PRIVATE_ROUNDROBIN),
     tournaments/include/tournament.php (Tournament.getWizardTypeText),
     NEWS:
   - added wizard-type for private-round-robin with certain restrictions: TOURNEY_WIZTYPE_PRIVATE_ROUNDROBIN
     - restrictions: min/max-TP=3..16, 1 round, 1 pool, min/max-poolsize=3..16, max-tp-games=15

   * tournaments/include/tournament_template_round_robin.php (TournamentTemplateRoundRobin.__construct,
       ~.checkProperties),
     tournaments/include/tournament_round_helper.php (TournamentRoundHelper.check_tournament_participant_max_games),
     tournaments/include/tournament_limits.php (TLIMITS_TRD_TP_MAX_GAMES;
       TournamentLimits.getStaticMaxLimit),
     tournaments/include/types/public_round_robin.php (PublicRoundRobinTournament.__construct),
     tournaments/roundrobin/edit_round_props.php (parse_edit_form):
   - round-robin-tournaments: added optional wizard-type-restriction for games per tournament-participant
     - check games-per-participant wizard-type restriction on edit-round-properties and
       on tournament-status-change to REGISTER
     - restricted public-round-robin with 15 max-games-per-participant for one round & pool

   * tournaments/include/tournament_limits.php (TLIMITS_TRULE_GAME_UNRATED;
       TournamentLimits.getStaticMaxLimit),
     tournaments/include/tournament_rules.php (TournamentRules.convertEditForm_to_TournamentRules),
     tournaments/include/tournament_template.php (TournamentTemplate.__construct),
     tournaments/edit_rules.php (parse_edit_form):
   - added optional wizard-type-restriction of tournament-rules to forbid rated-games

   * tournaments/include/tournament_limits.php (TLIMITS_TPR_RATING_USE_MODE, TLIM_TPR_RUM_NO_COPY_CUSTOM;
       TournamentLimits.setLimits, ~.getStaticMaxLimit),
     tournaments/edit_properties.php b/tournaments/edit_properties.php (parse_edit_form,
       build_properties_notes),
     tournaments/include/tournament_helper.php (TournamentHelper.get_restricted_RatingUseModeTexts),
     tournaments/include/tournament_template.php (TournamentTemplate.__construct):
   - added optional wizard-type-restriction of tournament-properties to forbid rating-use-mode COPY-CUSTOM

   * tournaments/include/types/public_round_robin.php (class PublicRoundRobinTournament,
       ~.__construct, ~.createTournament),
     tournaments/include/tournament_factory.php (TournamentFactory.getTournament, ~.getTournamentTypes),
     tournaments/include/tournament_utils.php (TournamentUtils.getWizardTournamentType),
     tournaments/include/tournament_globals.php (TOURNEY_WIZTYPE_PUBLIC_ROUNDROBIN),
     tournaments/include/tournament.php (Tournament.getWizardTypeText),
     NEWS:
   - added wizard-type for public-round-robin with certain restrictions: TOURNEY_WIZTYPE_PUBLIC_ROUNDROBIN
     - restrictions: min/max-TP=3..16, 1 round, 1 pool, min/max-poolsize=3..16

   * tournaments/include/tournament_round_helper.php (TournamentRoundHelper.start_next_tournament_round),
     tournaments/include/tournament_template.php (TournamentTemplate.determineLimitMaxStartRound),
     tournaments/edit_properties.php (parse_edit_form),
     tournaments/roundrobin/edit_rounds.php:
   - round-robin tournaments: restrict max-start-rounds and starting-next-round by max. value set
     with tournament-limit TLIMITS_TRD_MAX_ROUNDS
   - cleanup: use function to get max-rounds

2014-04-04 jug

   * tournaments/roundrobin/edit_pools.php:
   - bugfix: correct varname for checking if tournament-rating needed

### ----- release-1_0_17-20140403 -----

2014-04-03 jug

   * game.php, NEWS:
   - added link to toggle territory-markers for viewing finished game

   * tournaments/include/tournament_result_control.php (TournamentResultControl.build_tournament_result_table,
       ~.create_tournament_result_best_seq_wins, ~.build_tournament_result_seq_wins),
     tournaments/include/tournament_ladder_props.php (class TournamentLadderProps, ~.__construct,
       ~.fillEntityData, ~.check_properties, ~.build_notes_props, ~.new_from_row),
     tournaments/include/tournament_ladder_helper.php (TournamentLadderHelper.process_tournament_ladder_game_end,
       ~.process_game_end_seq_wins),
     tournaments/include/tournament_result.php (TournamentResult.load_tournament_results_by_rid),
     tournaments/include/tournament_ladder.php (TournamentLadder.update_seq_wins),
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     specs/db/table-Tournaments.txt, specs/db/dragon-ddl.sql,
     scripts/fix_ladder_seq_wins.php (show_form, fix_ladder_seqwins, fix_results_seqwins, dbg_query),
     tournaments/ladder/edit_props.php (parse_edit_form),
     tournaments/manage_tournament.php, tournaments/view_tournament.php,
     tournaments/list_results.php, NEWS:
   - added tournament-result for max. consecutive wins if certain threshold reached by ladder-user
     - add or update tournament-result for max. consecutive wins on processing game-end
     - added configuration for threshold in TournamentLadderProps.SeqWinsThreshold
     - show threshold and entering tournament-result for max. consecutive wins on ladder-props-info
       for view-tournament and ladder-view
     - renamed tournament-result header 'Rank Kept' to more general 'Result Span'
     - added fix-script to add tournament-result entries for existing ladder-users
       with max. consecutive wins crossing threshold
     - added name-extension for tournament-result with "Hall of Fame"
-----------
-- added min-threshold to cross by ladder-users best-consecutive-wins to enter tournament-result
ALTER TABLE TournamentLadderProps
   ADD SeqWinsThreshold tinyint unsigned NOT NULL default '0' ;

-- added index for update on consecutive-wins in tournament-results
ALTER TABLE TournamentResult
   ADD KEY rid (rid) ;
-----------

2014-03-31 jug

   * tournaments/edit_participant.php, tournaments/register.php, NEWS:
   - round-robin-tournament:
     - allow adding new and removal of existing participant on higher customized start-round
       that hasn't started yet
     - operation additionally allowed on tournament-status PLAY for tournaments with round-management
     - show warning that certain operations are allowed on edit-participant-page for directors
       and register-page for users
     - edit-participant for directors:
       - allow adding new user with start-round higher than current tournament-round by director
       - allow removing (=withdrawing) existing participant if start-round higher
         than currently played tournament-round
       - added tournament-round-info, adjusted some layout for warnings
     - register-participant-page for user:
       - allow accepting tournament-invitation by user with start-round higher than current round
         initiated by director
       - allow own removal (=withdrawing) if start-round higher than currently played tournament-round
       - added tournament-round-info, add showing of lock-warnings, adjusted layout a bit for warnings

   * tournaments/include/tournament_pool_classes.php (PoolTables._compare_user_ranks),
     NEWS:
   - round-robins view-pools: order users on same pool-rank by user-rating,
     but NOT to be used as a tie-breaker

   * tournaments/include/tournament_properties.php (class TournamentProperties, ~.__construct,
       ~.setMinRatingStartRound, ~.fillEntityData, ~.check_properties, ~.new_from_row),
     tournaments/include/tournament_participant.php (TournamentParticipant.count_registered_tournament_participants),
     tournaments/include/tournament_template.php (TournamentTemplate.getMaxRounds, ~.determineLimitMaxStartRound),
     tournaments/include/tournament_template_round_robin.php (TournamentTemplateRoundRobin.checkProperties),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_change_tournament_props),
     tournaments/include/tournament_status.php (TournamentStatus.check_conditions_status_PAIR),
     tournaments/include/tournament_template_ladder.php (TournamentTemplateLadder.__construct),
     tournaments/include/tournament.php (class Tournament),
     tournaments/include/types/dgs_round_robin.php (DgsRoundRobinTournament.createTournament),
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     scripts/updates/other_changes_1_0_16_to_1_0_17.txt,
     specs/db/table-Tournaments.txt, specs/db/dragon-ddl.sql,
     tournaments/edit_participant.php (parse_edit_form),
     tournaments/edit_properties.php (parse_edit_form),
     tournaments/register.php (parse_edit_form),
     tournaments/manage_tournament.php, NEWS:
   - added restrictions to allow user to start in higher tournament-rounds
     - TournamentProperties.MaxStartRound = restricts customized start-round for user and director
     - TournamentProperties.MinRatingStartRound = restricts customized start-round for user,
       - if NO_RATING, users are not allowed to customize start-round while director can change it
       - otherwise users with higher rating are allowed to customize start-round
     - edit-properties: added configurations of TProps.MaxStartRound and MinRatingStartRound
       - max-start-round restricted by tournament-type-specific and logarithmic-limit on max-participants
       - configuration only needed for tournaments, that have round-management
     - edit-participant: show warning to directors if min-rating-start-round forbids customize by user
     - cleanup: removed now unused Tournament::getRoundLimitText()
     - added warning on tournament-status-change REG-to-PAIR about participants in higher rounds
     - added check on TournamentProperties on tournament-status-change NEW-to-REG
-----------
-- added restrictions to allow user to start in higher rounds
ALTER TABLE TournamentProperties
   ADD MinRatingStartRound smallint NOT NULL default '-9999' AFTER MaxParticipants,
   ADD MaxStartRound tinyint unsigned NOT NULL default '1' AFTER MaxParticipants ;
-----------

2014-03-29 jug

   * include/std_functions.php (parseDate):
   - bugfix: parse seconds correctly on parsing-date

   * tournaments/include/tournament_pool_classes.php (PoolTables.get_user_col_map, ~.calc_pool_summary,
         ~.calc_pool_games_count;
       class PoolViewer, ~.__construct, ~.init_pool_table, ~.make_single_pool_table),
     tournaments/include/tournament_round_helper.php (TournamentRoundHelper.start_tournament_round_games),
     tournaments/include/tournament_pool.php (TournamentPool.count_tournament_pool_games, ~.check_pools),
     tournaments/include/tournament_ladder_props.php (TournamentLadderProps.build_notes_props),
     tournaments/include/tournament_helper.php (TournamentHelper.determine_games_factor),
     tournaments/include/tournament_round.php (TournamentRound.build_notes_props),
     tournaments/include/tournament_utils.php (TournamentUtils.calc_pool_games),
     tournaments/roundrobin/define_pools.php (parse_edit_form, calc_suggestion, make_suggestions_table),
     tournaments/roundrobin/edit_pools.php, tournaments/roundrobin/view_pools.php,
     tournaments/view_tournament.php:
   - show max. number of games per user for ladder- and round-robin-tournaments also on tournament-info-page
     to aid users registration-decision
     - refactored TournamentRoundHelper::determine_games_per_challenge()
       into TournamentHelper::determine_games_factor()

   * tournaments/roundrobin/define_pools.php (calc_suggestion, make_suggestions_table):
   - round-robin define-pools-page: added max. number of games per user for suggested pool-distribution

   * tournaments/include/tournament_gui_helper.php (TournamentGuiHelper.build_tournament_pool_notes),
     include/globals.php (CSS_VERSION),
     skins/dragon/screen.css,
     tournaments/roundrobin/view_pools.php, tournaments/view_tournament.php:
   - show point-configuration in tournament-rules section on view-tournament for round-robin-tournaments

   * tournaments/include/tournament_round.php (TournamentRound.build_notes_props):
   - bugfix: remove note about withdrawing from round-robin-tournament as that need to be handled
     in different ways by tournament-director

   * admin_game.php (parse_edit_form):
   - bugfix: disable jigo-restriction-check for non-tournament-games
     - jigo-behaviour only relevant for tournament-games as normal-games stand for themselves and
       violating jigo-restriction has no effect

   * tournaments/include/tournament_rules.php (TournamentRules.__construct):
   - bugfix: use default-max-handicap instead of MAX_HANDICAP as initial default
     for new TournamentRules-entry

   * tournaments/roundrobin/view_pools.php:
   - view-pools: added bottom-links to all running tournament-games

   * include/globals.php (CSS_VERSION),
     skins/dragon/screen.css, show_games.php:
   - use blue-background on edit-icon to tournament-game-admin to indicate tournament-director-operation

   * tournaments/include/tournament_ladder_helper.php (TournamentLadderHelper.process_tournament_ladder_game_end),
     tournaments/include/tournament_ladder.php (TournamentLadder.update_seq_wins,
       ~.process_game_end_seq_wins),
     tournaments/include/tournament_result.php (TournamentResult.getTypeText),
     tournaments/include/tournament_globals.php,
     scripts/updates/other_changes_1_0_16_to_1_0_17.txt, scripts/updates/roadmap_1_0_16_to_1_0_17.txt,
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql, specs/db/table-Tournaments.txt,
     scripts/fix_ladder_seq_wins.php (show_form, fix_ladder_seqwins),
     tournaments/edit_results.php (fill_tournament_info),
     tournaments/ladder/view.php, NEWS:
   - renamed weird "Sequently Wins" to "Consecutive Wins" in WEB-UI and to "sequenced wins"
     in backend keeping "seq-wins" as short-name

### ----- release-1_0_17-20140327 -----

2014-03-27 jug

   * scripts/updates/roadmap_1_0_16_to_1_0_17.txt, NEWS,
     scripts/updates/other_changes_1_0_16_to_1_0_17.txt:
   - prepared live-release 1.0.17

   * include/config.php (ALLOW_TOURNAMENTS),
     scripts/updates/other_changes_1_0_16_to_1_0_17.txt,
     site_map.php, NEWS:
   - added all user-visible changes since start of development since 1.0.17 without game-viewer-stuff
     - enabled ladder + round-robin tournaments per default

2014-03-26 jug

   * tournaments/include/tournament_pool.php (TournamentPool.load_tournament_pools,
       ~.new_tournament_pool_from_cache_row, ~.delete_pools, ~.seed_pools,
       ~.add_missing_registered_users, ~.assign_pool, ~.update_tournament_pool_set_pool_winners,
       ~.execute_rank_action, ~.delete_cache_tournament_pools),
     tournaments/include/tournament_round_helper.php (TournamentRoundHelper.fill_ranks_tournament_pool),
     tournaments/include/tournament_cache.php (TournamentCache.load_cache_tournament_pools),
     tournaments/include/tournament_pool_classes.php (PoolViewer.make_single_pool_table),
     include/cache_globals.php (CACHE_GRP_TPOOLS, MAX_CACHE_GRP, $ARR_CACHE_GROUP_NAMES,
       $ARR_CACHE_GROUP_CLEANUP),
     include/gui_functions.php (echo_user_online_vacation),
     include/config.php ($DGS_CACHE_GROUPS),
     scripts/updates/other_changes_1_0_16_to_1_0_17.txt, specs/caching.txt,
     tournaments/roundrobin/edit_ranks.php, tournaments/roundrobin/view_pools.php,
     tournaments/view_tournament.php:
   - added caching for loading tournament-pools on view-pools-page
     - invalidate tournament-pool-cache on actions: seed-pools, delete-pools, edit-pools,
       assign-pool, set-pool-winners, fill-pool-ranks, edit-ranks
     - load cached tournament-pools for view-pools only if there are >4 pools,
       if tournament-status is PLAY|CLOSED, and if not showing pools for directors
     - view-pools: show user-online-info with icon only if pool-loading is not cached
   - cleanup: removed double query-where-parts

   * tournaments/roundrobin/view_pools.php:
   - view-pools: show pools-count in round-summary-line

   * tournaments/view_tournament.php:
   - show start-round of tournament-participant in tournament-status-section

   * tournaments/include/tournament_pool.php (TournamentPool.count_tournament_pool_ranks,
       ~.check_pools_game_integrity),
     tournaments/include/tournament_template_round_robin.php (TournamentTemplateRoundRobin.check_auto_poolwinners),
     tournaments/include/tournament_participant.php (TournamentParticipant.count_tournament_participants),
     tournaments/include/tournament_games.php (TournamentGames.count_tournament_games),
     include/register_functions.php (UserRegistration.remove_verification),
     include/std_classes.php (class QuerySQL),
     scripts/tournament_consistency.php (fix_tournament_RegisteredTP),
     scripts/translation_consistency.php (check_consistency_transl),
     translation_stats.php (count_translations):
   - cleanup use of SQL_SMALL_RESULT: add where it makes sense for DISTINCT/GROUP-BY queries,
     remove where result is potentially not so small

2014-03-25 jug

   * include/globals.php (CSS_VERSION),
     skins/dragon/screen.css,
     tournaments/show_tournament_log.php (format_tlog_message):
   - used fixed width 500px for showing message for tournament-log
     for better marking of text-search in message

   * tournaments/include/tournament_pool_classes.php,
     include/globals.php (CSS_VERSION),
     skins/dragon/screen.css,
     tournaments/roundrobin/edit_pairing.php, tournaments/roundrobin/edit_ranks.php,
     tournaments/edit_participant.php, tournaments/edit_results.php,
     tournaments/list_directors.php, tournaments/register.php,
     translate.php, userinfo.php:
   - CSS-cleanup
     - replaced TInfo -> smaller, renamed/reused TWarning/TWarningMsg -> TInfo,
       replaced 'darkred bold' -> EmphasizeWarn, renamed Emphasize -> EmphasizeWarn,
       added EmphasizeInfo, replaced Smaller with 'smaller', removed unused InlineHeader/xxxFAQAdmin
     - grouped declarations with equal styles if topic not too different
     - removed unused styles for old game-moves-table, which is still in history if needed
     - re-ordered some style-definitions

   * tournaments/include/tournament_round_helper.php (TRR_START_TGAMES_LOCK_HOURS;
       TournamentRoundHelper.start_tournament_round_games, ~.start_games_for_specificed_pools),
     tournaments/include/tournament_pool_classes.php (PoolTables.calc_pool_summary;
       class PoolSummary, ~.__construct, ~.make_table_pool_summary, ~.get_counts),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_start_tournament_games),
     tournaments/include/tournament_extension.php (TournamentExtension.getExtensionLock),
     tournaments/include/tournament_pool.php (TournamentPool.check_pools),
     include/globals.php (CSS_VERSION),
     skins/dragon/screen.css,
     tournaments/roundrobin/edit_pairing.php:
   - round-robins edit-pairing:
     - handle partial starting of tournament games for selected pools
     - collect all inconsistencies at once when starting games for pools
     - switch tournament-round-status to PLAY only if all games for all pools have been started
     - added number of started games in pool-summary
     - show progress on starting games in smaller steps 25 -> 10
     - adding 3-hour expire-check on starting-games-lock on using tournament-extension
     - adjusted writing of tournament-log for partial starting of games
     - bugfix: release start-games-lock when return errors after finding inconsistencies

2014-03-24 jug

   * include/game_functions.php (GameHelper.load_cache_status_games;
       NextGameOrder.build_status_games_query),
     include/gamelist_control.php (GameListControl.build_games_query,
       ~.build_game_list_query_status_view),
     include/quick/quick_game_info.php (QuickHandlerGameInfo.prepare),
     include/quick/quick_game_list.php (QuickHandlerGameList.prepare),
     include/gui_functions.php (echo_image_tournament_info),
     quick_status.php (print_status_games),
     gameinfo.php (build_rating_diff),
     status.php (load_games_to_move),
     game.php (draw_game_info),
     admin_game.php, show_games.php:
   - added tournament-title in tooltip on tournament-icon

   * tournaments/include/tournament_status.php (class TournamentStatus, ~.__construct, ~.has_warning,
       ~.get_warnings, ~.add_warning, ~.check_conditions_status_CLOSED,
       ~.check_conditions_missing_tournament_results),
     tournaments/include/tournament_template_round_robin.php (TournamentTemplateRoundRobin.checkClosingTournament,
       ~.check_unfinished_rounds),
     tournaments/include/tournament_template_ladder.php (TournamentTemplateLadder.checkClosingTournament),
     tournaments/include/tournament_template.php (TournamentTemplate.checkClosingTournament),
     tournaments/include/tournament_result.php (TournamentResult.count_tournament_results),
     tournaments/edit_status.php:
   - implemented change of tournament-status to CLOSED to finish tournament
     - edit-status: added warnings on changing tournament-status,
       that should be resolved but can be ignored by directors
     - edit-status: added current tournament-status and round-info
     - show warning about missing tournament-results for last-round of tournament
     - show error if there are unfinished tournament-rounds for round-robins
     - show warning if there are tournament participants for round-robins on higher start rounds
       than last round
     - show warning if there is more than one pool in last round

   * tournaments/include/tournament_result_control.php (TournamentResultControl.build_tournament_result_table,
       ~.create_tournament_result_pool_winners, ~.build_tournament_result_pool_winner),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_create_tournament_result_pool_winners),
     tournaments/edit_results.php (load_tournament_info, echo_create_pool_winners_form):
   - round-robins edit-result: create tournament-results from pool-winners of specified round
     - added bottom-link to view-pools/view-ladder for specific tournament-type

2014-03-23 jug

   * tournaments/include/tournament_template_round_robin.php (TournamentTemplateRoundRobin.checkPoolWinners,
       ~.check_auto_poolwinners, ~.check_minimum_poolwinners):
   - round-robins edit-ranks: revise error-checks on pool-winners & extend warnings for current round
     - allow that pool can have no pool-winners, e.g. if all pool-users withdrew or many games
       has been annulled
     - change error on pool having no pool-winner into warning
     - add warning if ALL players of a pool are marked as pool-winners,
       normally there should be less pool-winners
     - add warning if there's not even one pool-winners in all pools
     - add warning if for potential next-round there not at least 2 players

   * tournaments/include/tournament_pool.php (TournamentPool.execute_rank_action):
   - edit-ranks for round-robins: allow withdrawing pool-user set by T-director
     even if Pool-Rank still unset

   * tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_execute_tournament_pool_rank_action,
       ~.log_set_tournament_pool_ranks),
     tournaments/include/tournament_pool.php (TournamentPool.update_tournament_pool_ranks,
       ~.execute_rank_action),
     tournaments/include/tournament_round_helper.php (TournamentRoundHelper.fill_ranks_tournament_pool),
     tournaments/roundrobin/edit_ranks.php:
   - edit-ranks for round-robins: show number of updated pool-entries for executed action

   * tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_execute_tournament_pool_rank_action),
     tournaments/include/tournament_globals.php (TPOOLRK_WITHDRAW, RKACT_WITHDRAW),
     tournaments/include/tournament_pool.php (TournamentPool.execute_rank_action),
     tournaments/include/tournament_pool_classes.php (RankSummary.build_notes),
     tournaments/roundrobin/view_pools.php (build_pool_notes),
     tournaments/roundrobin/edit_ranks.php:
   - edit-ranks for round-robin-tournament: refactored clearing rank(=0) to naming it "withdrawing"
     pool-user for clearer purpose

   * tournaments/include/tournament_result_control.php (TournamentResultControl.build_tournament_result_table,
       ~.make_table_tournament_results):
   - use specific tournament-type-specific default-order for tournament-results
   - added table-columns for TournamentResult.Type + Round-field for round-robin-tournaments

   * scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     specs/db/table-Tournaments.txt, specs/db/dragon-ddl.sql:
   - cleanup: remove unnecessary db-index on TournamentResult.uid
-----------
-- cleanup: remove unnecessary db-index
ALTER TABLE TournamentResult
   DROP KEY uid ;
-----------

   * tournaments/include/tournament_round_helper.php (TournamentRoundHelper.process_tournament_round_robin_game_end),
     tournaments/include/tournament_ladder_helper.php (TournamentLadderHelper.process_tournament_ladder_game_end),
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql, specs/db/table-Tournaments.txt:
   - bugfix: do not count annulled (=detached) tournament-games for TournamentParticipant.Finished
-----------
-- execute tournament-consistency-script to fix TournamentParticipant.Finished for annulled tournament-games
--    'scripts/tournament_consistency.php'
-----------

2014-03-22 jug

   * tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_change_tournament_result),
     tournaments/include/tournament_helper.php (TournamentHelper.check_tournament_result),
     tournaments/edit_results.php (load_user_info, load_tournament_info, parse_edit_form,
       fill_tournament_info):
   - edit-result-page:
     - added operations to add new, update or delete existing tournament-result entry,
       preview and cancel operation
     - fixed various bugs for editing operations, extended checks on result-fields

   * tournaments/include/tournament_result_control.php (TournamentResultControl.make_table_tournament_results),
     tournaments/include/tournament_participant.php (TournamentParticipant.build_result_info),
     include/quick_common.php (FMT_PARSE_DATE2),
     include/std_functions.php (parseDate),
     scripts/tests/GeneralFunctionsTest.php (class GeneralFunctionsTest),
     scripts/tests/AllTests.php (AllTest.suite),
     tournaments/edit_results.php (load_user_info, load_tournament_info, parse_edit_form):
   - edit-results: show existing tournament-result-entry, extend date-parsing with seconds

   * tournaments/include/tournament_helper.php (TournamentHelper.check_tournament_result),
     tournaments/edit_results.php (load_tournament_info, parse_edit_form, fill_tournament_info):
   - edit-results: added preview of new tournament-result

   * tournaments/include/tournament_result.php (class TournamentResult, ~.__construct,
       ~.build_log_string, ~.fillEntityData, ~.new_from_row),
     tournaments/include/tournament_ladder_helper.php (TournamentLadderHelper.process_tournament_ladder_crown_king),
     tournaments/include/tournament_result_control.php (TournamentResultControl.build_tournament_result_table),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_change_tournament_result),
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     specs/db/dragon-ddl.sql, specs/db/table-Tournaments.txt,
     tournaments/edit_results.php (parse_edit_form, fill_tournament_info):
   - cleanup: remove db-field TournamentResult.RankKept calculated from other fields StartTime/EndTime
-----------
-- cleanup: remove db-field calculated from other fields
ALTER TABLE TournamentResult
   DROP COLUMN RankKept ;
-----------

2014-03-21 jug

   * tournaments/include/tournament_result.php (TournamentResult.build_log_string, ~.build_query_sql,
       ~.load_tournament_result, ~.load_tournament_results, ~.getTypeText),
     tournaments/include/tournament_result_control.php (class TournamentResultControl, ~.__construct,
       ~.build_tournament_result_table, ~.make_table_tournament_results),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_delete_tournament_result,
       ~.log_change_tournament_result),
     tournaments/include/tournament_ladder_helper.php (TournamentLadderHelper.process_tournament_ladder_crown_king),
     tournaments/include/tournament_participant.php (TournamentParticipant.build_result_info),
     tournaments/include/tournament_helper.php (TournamentHelper.check_tournament_result)
     tournaments/include/tournament_ladder.php (TournamentLadder.build_result_info),
     tournaments/include/tournament_pool.php (TournamentPool.build_result_info),
     tournaments/include/tournament_globals.php,
     include/quick/quick_game_info.php (QuickHandlerGameInfo.fill_game_info),
     include/quick/quick_user.php (QuickHandlerUser.process),
     include/rating.php (echo_rating, echo_rating_elo),
     include/gui_functions.php (echo_image_info),
     tournaments/edit_results.php (load_user_info, load_tournament_info, build_show_user_text,
       parse_edit_form, fill_tournament_info),
     tournaments/manage_tournament.php, tournaments/view_tournament.php, tournaments/list_results.php,
     rating_changes.php (load_data_rating_changes, fill_user_rating_changes),
     site_map.php:
   - added edit-result-page to add/update/delete tournament-result-entries
     - show tournament-info for specified user and round dependent on tournament-type
     - auto-fill in tournament-results entry from loaded tournament-info-data
   - cleanup: renamed tresult-type-consts

2014-03-20 jug

   * tournaments/list_tournaments.php:
   - show only "Open" tournaments (status REGISTER/PAIR/PLAY) per default in tournaments-list

2014-03-19 jug

   * tournaments/include/tournament_result_control.php (class TournamentResultControl, ~.__construct,
       ~.get_show_rows, ~.build_tournament_result_table, ~.make_table_tournament_results),
     tournaments/include/tournament_cache.php (TournamentCache.load_cache_tournament_results),
     tournaments/include/tournament_result.php (TournamentResult.load_tournament_results),
     tournaments/include/tournament_gui_helper.php (TournamentGuiHelper),
     tournaments/manage_tournament.php, tournaments/view_tournament.php,
     tournaments/list_results.php,
     site_map.php:
   - added new page with list of all tournament-results in preparation for editing-tournament-results
     - added filter showing only my tournament-results
     - added links to tournament-results-list-page in results-section on view-tournament-page
     - cached TOP-10 tournament-results showed on view-tournament-page
     - refactored TournamentGuiHelper.build_tournament_results()
       into new class TournamentResultControl merging different views of tournament-results

2014-03-18 jug

   * tournaments/include/tournament_result.php (class TournamentResult, ~.__construct,
       ~.fillEntityData, ~.new_from_row),
     tournaments/include/tournament_ladder_helper.php (TournamentLadderHelper.process_tournament_ladder_crown_king),
     tournaments/include/tournament_gui_helper.php (TournamentGuiHelper.build_tournament_results),
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     specs/db/table-Tournaments.txt, specs/db/dragon-ddl.sql:
   - extended tournament-results to support ladder sequently-wins & public & private comment on entry
-----------
-- extended tournament-result
ALTER TABLE TournamentResult
   MODIFY Round tinyint unsigned NOT NULL default '1' AFTER Type,
   ADD Result mediumint NOT NULL default '0' AFTER EndTime,
   ADD Comment varchar(128) NOT NULL default '',
   ADD Note varchar(255) NOT NULL default '' ;
-----------

   * halfhourly_cron.php:
   - bugfix introduced in release 1.0.16: fixed regex for removing public-comments

   * tournaments/include/tournament_ladder_helper.php (TournamentLadderHelper.process_tournament_ladder_game_end),
     tournaments/include/tournament_ladder.php (class TournamentLadder, ~.__construct,
       ~.build_log_string, ~.fillEntityData, ~.update_sequently_wins, ~.new_from_row,
       ~.process_game_end_sequently_wins),
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     specs/db/table-Tournaments.txt, specs/db/dragon-ddl.sql,
     scripts/fix_ladder_seq_wins.php (show_form, fix_ladder_seqwins, dbg_query),
     scripts/index.php, tournaments/ladder/view.php:
   - added tracking of sequently wins and best sequently wins for participants in ladder-tournament
     - increase seq-wins for winner (including jigo) on processing game-end
     - reset seq-wins for loser (excluding jigo) on processing game-end for
     - added column in ladder-view showing sequently wins and best value
     - added script to fix sequently wins for all users of ladder-tournament
-----------
-- added tracking for number of sequently wins in ladder-tournament
ALTER TABLE TournamentLadder
   ADD SeqWins smallint unsigned NOT NULL DEFAULT '0',
   ADD SeqWinsBest smallint unsigned NOT NULL DEFAULT '0' ;

-- execute fix-script for all ladder-tournaments (use the following query to identify these)
-- to fix current state of sequently-wins:
--    'scripts/fix_ladder_seq_wins.php'
SELECT ID AS tid FROM Tournament WHERE Type='LADDER' ;
-----------

2014-03-17 jug

   * tournaments/include/tournament_games.php (TournamentGames.buildStatusFilterArray):
   - added search for 'Annulled' games in TournamentGames-status-filter in tournament-games-list

   * tournaments/include/tournament_ladder.php (TournamentLadder.build_linked_incoming_games,
       ~.build_linked_outgoing_games),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_assign_tournament_pool),
     tournaments/include/tournament_games.php (TournamentGames.getFlagsText),
     tournaments/include/tournament_pool_classes.php (PoolGame.calc_result),
     tournaments/include/tournament_globals.php,
     tournaments/roundrobin/edit_points.php (build_points_examples),
     gameinfo.php (build_rating_diff),
     game.php (draw_game_info),
     show_games.php:
   - adjusted texts in web-UI: changed some game "detached (from tournament)" to game "annulled"
     for clearer term, but technically keep "detaching"

   * include/globals.php (CSS_VERSION),
     skins/dragon/screen.css,
     tournaments/roundrobin/view_pools.php (build_pool_notes):
   - fixed pool-notes for round-robin-tournaments view-pools-page
     - added color-scheme used for pool-matrix for all possible game-results
     - added notes about points-config for simple and Hahn points-type for tournament

   * tournaments/include/tournament_points.php (TournamentPoints.calculate_points):
   - bugfix: calculate points for NO-RESULT-game for Hahn-tournament-points-type in an unshared way

   * admin_game.php (draw_game_admin_form):
   - game-admin: add warning about game-ending for tournament-game

   * tournaments/include/tournament_utils.php (TournamentUtils.get_tournament_ladder_notes_user_removed),
     tournaments/include/tournament_ladder_props.php (TournamentLadderProps.build_notes_props),
     tournaments/include/tournament_games.php (TournamentGames.count_user_running_games),
     tournaments/ladder/withdraw.php (build_withdrawal_notes),
     tournaments/ladder/admin.php (add_form_edit_user):
   - adjusted texts for ladder-tournaments about game-annulling (=detach-game) and NO-RESULT:
     - added no-change-actions for ladder-properties-notes for annulled-game and NO-RESULT-game
     - clarified texts, clarified game-annulling = "detaching" of tournament-games,
       adding that game is made unrated
     - user-withdrawal: added number of running tournament-games of user
     - ladder-admin: used star-icon for prefixing note-items, use some word-wrapping for long notes

   * tournaments/include/tournament_games.php (TournamentGames.getGameScore, ~.update_tournament_game_end,
       ~.getFlagsText),
     tournaments/include/tournament_ladder_props.php (TournamentLadderProps.fill_ladder_running_games,
       ~.calc_game_end_action),
     tournaments/include/tournament_ladder_helper.php (TournamentLadderHelper.process_tournament_ladder_game_end),
     tournaments/include/tournament_pool_classes.php (PoolGame.calc_result; PoolTables.fill_games,
       ~.count_games),
     tournaments/include/tournament_points.php (TournamentPoints.calculate_points),
     tournaments/include/tournament_globals.php (TG_FLAG_GAME_NO_RESULT),
     tournaments/include/tournament_participant.php,
     include/game_functions.php (class GameFinalizer, ~.is_made_unrated, ~.finish_game, ~.convert_score_to_posx;
       class GameNotify, ~.__construct, ~.get_text_game_result, ~.get_recipients;
       GameScore.draw_score_box),
     include/sgf_builder.php (SgfBuilder.load_trimmed_moves, ~.build_filename_sgf, ~.build_sgf_start,
       ~.build_sgf_result),
     include/filter.php (FSCORE_VOID; class Filter, ~.__construct, ~.build_query, ~.get_input_element),
     include/quick/quick_game_info.php (QuickHandlerGameInfo.convertGameFlags, ~.fill_game_info),
     include/quick/quick_game.php (QuickHandlerGame.process_cmd_status_score),
     include/globals.php (CSS_VERSION, GAMEFLAGS_NO_RESULT),
     include/std_functions.php (POSX_NO_RESULT; score2text),
     include/db/games.php (Games.buildFlags),
     include/rating.php (update_rating2),
     scripts/tests/TournamentPointsTest.php (class TournamentPointsTest),
     scripts/admin-export-games_info.php (build_game_info),
     scripts/admin-sgf-bulk.php,
     specs/db/table-Tournaments.txt, specs/db/table-Games.txt, specs/filters.txt, specs/quick_suite.txt,
     skins/dragon/screen.css, code_examples/filter_example2.php,
     images/no_result.gif,
     tournaments/roundrobin/edit_points.php (build_points_examples),
     tournaments/game_admin.php (GA_NEED_COLOR, GA_RES_NO_RESULT; parse_edit_form, draw_game_end),
     tournaments/cron_tournaments.php,
     admin_game.php (GA_NEED_COLOR, GA_RES_DRAW, GA_RES_NO_RESULT; parse_edit_form, draw_game_admin_form),
     opponents.php (extract_user_stats, print_stats_table),
     game_players.php (delete_game_setup),
     gameinfo.php (build_rating_diff),
     show_games.php, game.php:
   - added NO-RESULT as result for game-end, set by game-admin
     - NOTE: Games.Score=0 can now be Jigo OR No-Result, need to check Games.Flags to differ between them!
     - NOTE: 'Void' is synonym for No-Result, used for SGF-download and quick-suite and for filters
       as it's shorter
     - tournament-game-admin: added setting game-end of NO-RESULT,
       set TG.Score=0 + TG.Flags=TG_FLAG_GAME_NO_RESULT
     - game-admin: added setting game-end of NO-RESULT,
       set G.Score=0 + G.Flags=GAMEFLAGS_NO_RESULT + G.Rated=N
     - game-admin: allowing to overwrite jigo-check preventing jigo for tournament-rules forbidding jigo
     - game-admin: setting jigo as game-result does not require color-choice
     - process game-end taking over NO-RESULT game-result from Games-table to TournamentGames-table
       converting NO-RESULT-flag
       - ladder-tournament: skip rematch-wait for game ended with NO-RESULT
       - round-robin-tournament: use TournamentPoints.PointsNoResult for NO-RESULT game-end
         for point-calculation in pools
     - view-pools: mark NO-RESULT game in pool-results of round-robin-tournaments with grey background
     - edit-points: added points-calculation for NO-RESULT game in examples-preview
     - extended Score-filter with No-Result
     - games-list: added No-Result in score-column, extended score/won-filter with search for VOID-result
     - games-list: added tooltips for won-column icons
     - sgf-download: added Void-result for RE[]-prop, added '=VOID' as $r for download-filename-format
     - opponents-page: added count for no-result, differ from jigo-count
   - bugfix ladder-tournament: don't add outgoing-games for user just removed from ladder

2014-03-16 jug

   * tournaments/include/tournament_pool_classes.php (class PoolGame, ~.__construct, ~.calc_result;
       PoolTables.fill_games),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_tournament_game_end),
     tournaments/include/tournament_ladder.php (TournamentLadder.remove_user_from_ladder),
     tournaments/include/tournament_points.php (TournamentPoints.calculate_points),
     include/db/games.php (Games.detach_games),
     skins/dragon/screen.css,
     scripts/tests/TournamentPointsTest.php (class TournamentPointsTest),
     tournaments/game_admin.php (GA_NEED_COL, GA_RES_DRAW, GA_RES_ANNUL; parse_edit_form, draw_game_end),
     tournaments/roundrobin/edit_points.php (build_points_examples),
     tournaments/roundrobin/view_pools.php (build_pool_notes):
   - added game-annulling to detach game from tournament having no further effect on tournament
     - setting TG.Score=0, TG.Flags=TG_FLAG_GAME_DETACHED, G.Rated=N, G.Flags=GAMEFLAGS_TG_DETACHED
     - tournament-game-admin: added game-annulling which is the same as "detaching",
       making game unrated, setting detached flags in tournament-game and Games-table
     - tournament-game-admin: setting jigo as game-result does not require color-choice
     - edit-points: added points-calculation for annulled game in examples-preview
     - view-pools: mark annulled game in pool-results of round-robin-tournaments with orange background
     - view-pools: renamed CSS for MatrixJigo to MatrixDraw
   - bugfix: showing Games.Rated state in tournament-game-admin was displayed in the wrong way

   * include/db/games.php (Games.update_game_rated),
     admin_game.php:
   - refactored updating Games.Rated-field into Games::update_game_rated()

2014-03-15 jug

   * include/game_actions.php (GameActionHelper.prepare_game_move_message,
       ~.prepare_game_action_set_handicap, ~.prepare_game_action_do_move, ~.prepare_game_action_pass,
       ~.prepare_game_action_resign, ~.prepare_game_action_score, ~.update_game),
     include/game_functions.php (GameAddTime.allow_add_time_opponent;
       GameHelper.load_game_row;
       NextGameOrder.build_status_games_query),
     include/sgf_builder.php (SgfBuilder.load_game_info, ~.build_sgf_start, ~.build_sgf_result),
     include/db/games.php (class Games, ~.fillEntityData, ~.parseFlags, ~.new_from_row),
     include/quick/quick_game_info.php (QuickHandlerGameInfo.fill_game_info),
     include/gamelist_control.php (GameListControl.build_games_query),
     include/move.php,
     js/game-editor.js,
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     specs/db/dragon-ddl.sql, specs/db/table-Games.txt,
     scripts/tests/GameAddTimeTest.php (GameAddTimeTest.setUp, ~.test_allow_add_time_opponent),
     scripts/game_consistency.php (check_consistency),
     gameinfo.php (build_rating_diff),
     game.php (draw_game_info),
     clock_tick.php, show_games.php:
   - cleanup: refactored Games.Flags-SET()-db-type into an integer-flags-field
     - get rid of "GameFlags"-var and Games::parseFlags() that was needed for SET()-type-handling
     - bugfix: allow_add_time_opponent() and game-consistency script checked game-flags wrong
-----------
-- change Games.Flags from SET() into integer-flags
ALTER TABLE Games
   DROP KEY Flags,
   CHANGE Flags OldFlags set('Ko','HiddenMsg','AdmResult','TGDetached','AttachedSgf') NOT NULL default '',
   ADD Flags smallint unsigned NOT NULL DEFAULT '0' AFTER OldFlags ;

UPDATE Games
   SET Flags=OldFlags ;

ALTER TABLE Games
   ADD KEY Flags (Flags),
   DROP COLUMN OldFlags ;
-----------

2014-03-14 jug

   * tournaments/include/tournament_ladder_props.php (TournamentLadderProps.build_notes_props),
     tournaments/include/tournament_pool.php (TournamentPool.get_cmp_rank, ~.formatRank),
     tournaments/include/tournament_round.php (TournamentRound.build_notes_props),
     tournaments/include/tournament_globals.php (TPOOLRK_WITHDRAW),
     tournaments/include/tournament_pool_classes.php,
     scripts/tournament_consistency.php,
     specs/db/table-Tournaments.txt,
     specs/tournaments.txt, specs/caching.txt,
     tournaments/roundrobin/view_pools.php (build_pool_notes),
     tournaments/ladder/withdraw.php (build_withdrawal_notes),
     tournaments/ladder/retreat.php [RENAMED],,
     tournaments/ladder/view.php:
   - renamed "retreat" from ladder to "withdraw" from ladder

   * game.php:
   - added bottom-link for game-admin on game-page

   * tournaments/include/tournament_ladder_props.php (TournamentLadderProps.build_notes_props,
       ~.calc_game_end_action),
     tournaments/include/tournament_pool_classes.php (PoolGame.calc_result, ~.get_score_text;
       PoolTables.count_games),
     tournaments/include/tournament_points.php (TournamentPoints.calculate_points),
     include/game_functions.php (GameFinalizer.finish_game, ~.convert_score_to_posx;
       class GameNotify, ~.__construct, ~.get_text_game_result, ~.get_recipients),
     include/sgf_builder.php (SgfBuilder.load_trimmed_moves, ~.build_filename_sgf),
     include/filter.php (class FilterScore, ~.build_query, ~.get_input_element),
     include/std_functions.php (POSX_FORFEIT, score2text),
     include/globals.php (SCORE_FORFEIT, SCORE_MAX, CSS_VERSION, QUICK_VERSION),
     include/board.php,
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     scripts/tests/TournamentPointsTest.php,
     specs/db/table-Tournaments.txt, specs/db/table-Games.txt, specs/quick_suite.txt,
     skins/dragon/screen.css,
     tournaments/roundrobin/edit_points.php (build_points_examples),
     tournaments/roundrobin/view_pools.php, tournaments/ladder/edit_props.php,
     tournaments/game_admin.php (GA_RES_FORFEIT; parse_edit_form, draw_game_end),
     tournaments/cron_tournaments.php,
     admin_game.php (GA_RES_FORFEIT; parse_edit_form, draw_game_admin_form),
     opponents.php (extract_user_stats, print_stats_table),
     game_players.php (delete_game_setup),
     game.php:
   - added new game-score FORFEIT to support a "bye" for round-robin-tournaments
     - game-admin: added ending game with forfeit for either Black or White player by game-admin,
       game is changed to unrated on forfeit,
       players are informed in game-end message about implicit unrated-change on forfeiting
     - tournament-game-admin: added ending game with forfeit by tournament-director
     - edit-points: added points-calculation for forfeited game in examples-preview
     - view-pools: mark forfeited game in pool-results of round-robin-tournaments
       with dashed black border
     - use TournamentPoints.PointsForfeit for point-calculations in tournament-pool
     - process game-forfeit for ladder-tournaments like a game by timeout
     - extended FilterScore to support searching game-score for forfeited games
     - extended short-output of game-score for game-page/SGF/quick-suite with "B/W+F"
     - added count of forfeited games on opponents-page
-----------
-- check if user needs re-do search-profiles for finished-games-lists, because score-filter changed:
--    if the query-result is not empty AND parameter-value X of 'fsf10...=X' is >= 7,
--    then user needs to re-do the corresponding search-profile
SELECT * FROM Profiles WHERE Type BETWEEN 11 AND 13 AND Text LIKE '%fsf10%' ;
-----------

2014-03-13 jug

   * tournaments/include/tournament_games.php (TournamentGames.is_score_change_allowed),
     tournaments/include/tournament.php (Tournament.build_info),
     include/gui_bulletin.php (GuiBulletin.build_view_bulletin),
     show_games.php:
   - added shortcut edit-icons on games-list linked to tournament-game-admin
     - show edit-link only for tournament-director and only if tournament-status can still be modified
     - extended title with tournament-games with full tournament-title

   * include/gamelist_control.php (GameListControl.build_games_query):
   - removed join with Tournament-table optimizing query by always showing T-game-role in games-list

   * tournaments/include/tournament_points.php (class TournamentPoints, ~.__construct,
       ~.fillEntityData, ~.setDefaults, ~.new_from_row),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_change_tournament_points),
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     specs/db/dragon-ddl.sql,
     specs/db/table-Tournaments.txt,
     specs/tournaments.txt,
     tournaments/roundrobin/edit_points.php (parse_edit_form):
   - renamed TournamentPoints.PointsBye to PointsForfeit for clearer term of the same concept
-----------
-- renamed TournamentPoints.PointsBye to PointsForfeit
ALTER TABLE TournamentPoints
   CHANGE PointsBye PointsForfeit smallint NOT NULL default '2' ;
-----------

   * tournaments/include/tournament_pool_classes.php (class PoolViewer, ~.__construct,
       ~.init_pool_table, ~.make_single_pool_table):
   - view-pools for round-robin-tournaments: added column with table-icon linked
     to users running tournament-games

   * tournaments/roundrobin/edit_points.php (build_points_examples):
   - added free input-fields in examples-preview on edit-points-page to allow directors
     to test other point-configs

   * tournaments/include/tournament_template_round_robin.php (TournamentTemplateRoundRobin._createTournament),
     tournaments/include/types/dgs_round_robin.php (DgsRoundRobinTournament.createTournament):
   - create TournamentPoints-db-entry with SIMPLE-type defaults on tournament-creation
     of round-robin-tournament by tournament-wizard

2014-03-11 jug

   * all files:
   - adjusted Copyright on every file to: 2001-2014

   * tournaments/include/tournament_points.php (class TournamentPoints, ~.setPointsType,
       ~.getPointsLimit, ~.persist, ~.insert, ~.update, ~.delete, ~.fillEntityData,
       ~.setDefaults, ~.calculate_points, ~.isTournamentPoints, ~.build_query_sql,
       ~.new_from_row, ~.load_tournament_points, ~.getPointsTypeText,
       ~.get_edit_tournament_status, ~.delete_cache_tournament_points),
     tournaments/include/tournament_pool_classes.php (PoolGame.calc_result, ~.get_score_text;
       class PoolTables, ~.get_tournament_points, ~.fill_games;
       PoolViewer.make_single_pool_table),
     tournaments/include/tournament_round_helper.php (TournamentRoundHelper.fill_ranks_tournament_pool),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_change_tournament_points),
     tournaments/include/tournament_cache.php (TournamentCache.load_cache_tournament_points),
     include/cache_globals.php (CACHE_GRP_TPOINTS, MAX_CACHE_GRP, $ARR_CACHE_GROUP_NAMES,
       $ARR_CACHE_GROUP_CLEANUP),
     include/config.php ($DGS_CACHE_GROUPS),
     include/utilities.php (signum),
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     scripts/updates/other_changes_1_0_16_to_1_0_17.txt,
     scripts/tests/AllTests.php, scripts/tests/TournamentPointsTest.php, skins/dragon/screen.css,
     specs/db/dragon-ddl.sql, specs/db/table-Tournaments.txt, specs/caching.txt,
     tournaments/roundrobin/edit_points.php (parse_edit_form, build_points_examples),
     tournaments/roundrobin/view_pools.php (build_pool_notes),
     tournaments/manage_tournament.php (make_links_ttype_specific):
   - added table TournamentPoints to store point-configuration for round-robin-tournaments
     - added edit-page 'edit_points.php' to configure TournamentPoints with score-example-preview
     - added tests for TournamentPoints score-point-calculation
     - view-pools: use tournament-points-calculation in pools on view-pools
     - view-pools: enhanced tooltip on game-reference in pools with game-score
     - added caching for loading tournament-points
-----------
-- added table to store point-configuration for round-robin-tournaments
CREATE TABLE TournamentPoints (
  tid int NOT NULL,
  PointsType enum('SIMPLE','HAHN') NOT NULL default 'SIMPLE',
  Flags tinyint unsigned NOT NULL default '1',
  PointsWon tinyint NOT NULL default '2',
  PointsLost tinyint NOT NULL default '0',
  PointsDraw tinyint NOT NULL default '1',
  PointsBye smallint NOT NULL default '2',
  PointsNoResult smallint NOT NULL default '1',
  ScoreBlock tinyint unsigned NOT NULL default '10',
  MaxPoints smallint unsigned NOT NULL default '10',
  PointsResignation smallint NOT NULL default '10',
  PointsTimeout smallint NOT NULL default '10',
  Lastchanged datetime NOT NULL default '0000-00-00 00:00:00',
  ChangedBy varchar(54) NOT NULL default '',
  PRIMARY KEY (tid)
) ENGINE=MyISAM ;
-----------

   * tournaments/include/tournament_limits.php (TournamentLimits.check_MaxParticipants,
       ~.checkLadder_MaxDefenses, ~.checkLadder_MaxChallenges, ~.check_MaxRounds,
       ~.checkRounds_MinPoolSize, ~.checkRounds_MaxPoolSize, ~.checkRounds_MaxPoolCount),
     tournaments/roundrobin/edit_round_props.php (parse_edit_form),
     tournaments/roundrobin/define_pools.php (parse_edit_form),
     tournaments/ladder/edit_props.php (parse_edit_form),
     tournaments/edit_properties.php (parse_edit_form),
     admin_survey.php (parse_edit_form):
   - cleanup: reducing number by ca. 20 of specific T_() translation-texts by re-using more
     of already existing text-parts

   * tournaments/include/tournament_round_helper.php (TournamentRoundHelper.start_tournament_round_games),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_start_tournament_games),
     tournaments/roundrobin/edit_pairing.php:
   - added tournament-logging for edit_pairing use-case to start tournament-games

   * tournaments/include/tournament_round_helper.php (TournamentRoundHelper.process_tournament_round_robin_game_end),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_tournament_round_robin_game_end):
   - added tournament-logging for cron use-case processing game-end for round-robin-tournament

   * tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_execute_tournament_pool_rank_action,
       ~.log_set_tournament_pool_ranks, ~.log_fill_tournament_pool_winners),
     tournaments/include/tournament_round_helper.php (TournamentRoundHelper.fill_ranks_tournament_pool,
       ~.fill_pool_winners_tournament_pool),
     tournaments/include/tournament_pool.php (TournamentPool.update_tournament_pool_ranks,
       ~.execute_rank_action),
     tournaments/roundrobin/edit_ranks.php:
   - added tournament-logging for edit-ranks use-cases execute-rank-action set/clear pool-winners,
     set/remove rank
   - added tournament-logging for edit-ranks use-cases set-rank for single-user, fill-ranks,
     fill-pool-winners

2014-03-10 jug

   * tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_seed_pools,
       ~.log_seed_pools_add_missing_users, ~.log_delete_pools),
     tournaments/include/tournament_pool.php (TournamentPool.delete_pools, ~.seed_pools,
       ~.add_missing_registered_users),
     tournaments/roundrobin/create_pools.php:
   - added tournament-logging for create-pools use-cases seed-pools, delete-pools,
     add-missing-users-to-default-pool

   * tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_define_tournament_pools),
     tournaments/roundrobin/define_pools.php:
   - added tournament-logging for define-pools use-case
     to change pool-count and pool-size of tournament-round

   * tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_assign_tournament_pool),
     tournaments/include/tournament_pool.php (TournamentPool.assign_pool),
     tournaments/roundrobin/edit_pools.php:
   - added tournament-logging for edit-pools use-cases on users
     to assign-pool, re-assign-pool, detach-from-pool

   * tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_change_tournament_round_props),
     tournaments/roundrobin/edit_round_props.php:
   - added tournament-logging for edit-round-props changing the tournament-round-properties

   * tournaments/include/tournament_round_helper.php (TournamentRoundHelper.start_next_tournament_round),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_start_next_tournament_round):
   - added tournament-logging for edit-rounds use-case start-next-round

   * tournaments/include/tournament_round_helper.php (TournamentRoundHelper.add_new_tournament_round,
       ~.remove_tournament_round, ~.set_tournament_round, ~.start_next_tournament_round),
     tournaments/include/tournament_log_helper.php (TournamentLogHelper.log_add_tournament_round,
       ~.log_delete_tournament_round, ~.log_set_tournament_round),
     tournaments/roundrobin/edit_rounds.php:
   - added tournament-logging for edit-rounds use-cases add-round, remove-round, set-current-round

   * tournaments/include/tournament.php (Tournament.update_rounds):
   - bugfix: update instance attributes on Tournament-entry update on rounds and/or current-round

   * admin_game.php (parse_edit_form, draw_game_admin_form):
   - allow toggle of rated-status also for tournament-game,
     but show warning to communicate to tournament-directors
   - bugfix: wrong var for log-debug used

2014-03-09 jug

   * include/game_functions.php (GameAddTime.allow_add_time_opponent),
     scripts/tests/GameAddTimeTest.php:
   - allow adding-time to tournament-game detached from tournament

   * tournaments/include/tournament_ladder.php (class TournamentLadder, ~.add_outgoing_game,
       ~.get_outgoing_games, ~.build_linked_outgoing_games),
     tournaments/include/tournament_ladder_props.php (TournamentLadderProps.fill_ladder_running_games),
     scripts/updates/database_changes_1_0_16_to_1_0_17.mysql,
     tournaments/ladder/view.php:
   - view-ladder:
     - added table-column with outgoing challenges, which is deactivated per default
     - renamed header-column 'Challenges' -> Challenges-In
-----------
-- deactivate challenges-out column in ladder-view as default (to reduce server-load)
UPDATE ConfigPages
   SET ColumnsTournamentLadderView = ColumnsTournamentLadderView & ~0x8000 ;
-----------

   * tournaments/register.php:
   - added text describing purpose of public-user-comment and user-message-box

   * tournaments/ladder/view.php:
   - view-ladder: add link on own-rank-info to jump near own position in ladder

   * tournaments/roundrobin/view_pools.php:
   - round-robin: added links on top to view-pools of other rounds

   * tournaments/include/tournament_helper.php (TournamentHelper.get_view_data_status),
     tournaments/include/tournament_ladder.php (class TournamentLadder),
     tournaments/roundrobin/view_pools.php,
     tournaments/ladder/view.php:
   - round-robin: allow view-pools only on PLAY/CLOSED tournament-status and on PAIR for T-directors
   - refactored TournamentLadder::get_view_ladder_status() into tournament-type common function

   * tournaments/include/tournament_round_helper.php (TournamentRoundHelper.remove_tournament_round,
       ~.set_tournament_round, ~.start_next_tournament_round),
     tournaments/include/tournament_status.php (TournamentStatus.check_conditions_status_CLOSED):
   - bugfix: moved check for tournament-participants for removing round in commented form
     to tournament-status-change to CLOSED
   - bugfix: missed setting of variable with tournament-id and tournament-status
   - bugfix: adding new tournament-round overwrites errors-array missing on some errors
   - optimize preparing next round by omitting double-check of missing next-rounders

   * tournaments/include/tournament_games.php (TournamentGames.count_games_started):
   - bugfix: must use INNER-join instead of LEFT-join for consistency-count of Games-entries,
     because Games-table has no knowledge of T-round;
     value of check is diminished with this, but no chance to fix that without adding T-round
     into Games-table

   * tournaments/include/tournament_pool.php (TournamentPool.check_pools,
       ~.mark_next_round_participation):
   - bugfix: check for empty games-array with games-count for pools/game-consistency-check
     on changing tournament-status
   - bugfix: missed trailing space on concattening TournamentParticipant.ChangedBy-field on update

   * tournaments/include/tournament.php (Tournament.update_tournament_status):
   - bugfix: forgot to set Tournament.Status-field on tournament-status-update

   * tournaments/roundrobin/edit_round_props.php:
   - allow editing of tournament-round-properties only for tournament-round-status INIT

   * tournaments/include/tournament_pool.php (TournamentPool.build_query_sql,
       ~.exists_tournament_pool, ~.count_tournament_pool, ~.count_tournament_pool_users,
       ~.count_tournament_pool_ranks, ~.count_tournament_pool_games, ~.load_tournament_pool_bad_user,
       ~.count_tournament_pool_next_rounders, ~.count_tournament_pool_missing_next_rounders,
       ~.mark_next_round_participation),
     tournaments/include/tournament_round_helper.php (TournamentRoundHelper.add_new_tournament_round,
       ~.remove_tournament_round, ~.set_tournament_round, ~.start_next_tournament_round),
     tournaments/include/tournament_status.php (TournamentStatus.check_conditions_status_PAIR,
       ~.check_conditions_status_CLOSED, ~.check_conditions_status_DEL),
     tournaments/include/tournament.php (Tournament.update_tournament_status),
     tournaments/manage_tournament.php (make_links_ttype_specific),
     tournaments/roundrobin/edit_rounds.php:
   - for round-robin-tournaments:
     - on edit-rounds-page restricted adding/removing/setting rounds to tournament-admin
     - added action start-next-round on edit-rounds-page to mark next-rounders from current round,
       switch tournament-status, add new round and set current round to new round
     - removed setting of planned tournament-winners, which will be done on separate page
     - added checks for existing tournament-games and tournament-pools on removing tournament-round
     - added & revised checks for missing next-rounders on setting current tournament-round
     - cleanup on tournament-pool-queries: build SQL-queries directly with vars instead of sprintf
       for more clarity, and to avoid potential SQL-injection in case of error for debug-message

2014-03-08 jug

   * tournaments/list_participants.php, tournaments/manage_tournament.php,
     specs/db/dragon-ddl.sql:
   - added link on tourney-management-page to tournament-participants-list for current round
   - filter tournament-participants-list on NextRound as StartRound is only relevant
     for registration-checks but need list for pooling higher rounds
-----------
-- added index for loading next-round tournament-participants
ALTER TABLE TournamentParticipant
   ADD KEY tidNextRound (tid,NextRound) ;
-----------

   * tournaments/include/tournament_pool.php  (TournamentPool.check_pools, ~.check_pools_game_integrity),
     tournaments/roundrobin/edit_pairing.php:
   - show pool-summary also if tournament/round-status prevents edit
   - added pools-games integrity check on showing pool-summary with fix-directions

   * tournaments/list_participants.php:
   - show "StartRound; NextRound" on tournament-participant-list in round-column if values are different

2014-03-07 jug

   * tournaments/include/tournament_template_round_robin.php (TournamentTemplateRoundRobin.check_auto_poolwinners),
     include/std_functions.php (buildErrorListString, buildWarnListString),
     skins/dragon/screen.css,
     tournaments/roundrobin/edit_ranks.php:
   - added same check for pool-winners on edit-ranks for round-robin tournaments as
     for tournament-round PLAY-to-DONE status-change showing errors about missing actions
     before completing round and warnings about it
   - for round-robin rank-editing show rank-stats and perform pool-winners-check
     also if tournament-round-status prevents actions with error

2014-02-07 jug

   * statistics.php (show_stats_default):
   - add more translatable-texts for statistics-page

2013-12-23 jug

   * js/game-editor.js:
   - cleanup: removed prefix of jQuery-selectors on id: "prefix#id" -> "#id",
     because it slows down selector

   * js/game-editor.js (DGS.GamePageEditor.init, ~.handle_action_note_changes,
         ~.handle_action_save_notes;
       DGS.QuickRemoteApi, ~.handle_quick_do_success, ~.handle_quick_do_error, ~.show_error_box,
         ~.update_quota, ~.save_game_notes),
     include/std_functions.php (start_html, start_page, end_page),
     include/globals.php (CSS_VERSION),
     skins/dragon/screen.css,
     game.php (draw_notes):
   - added async saving of private-game-notes in JS-game-editor
     - calling quick-do-suite AJAX-POST-call to server to save game-notes
     - show info-box with success fading out after a short delay
     - show info-box with error staying till mouse leaves box to allow copy of error-text
       for support-questions
     - update quota-count after call to quick-do-suite and show warning if on low quota
     - moved old-value state for detection of game-notes-changes from textarea-event-data
       to GamePageEditor-object to allow for text-update after saving game-notes to server

   * js/game-editor.js (DGS.GamePageEditor.init, ~.handle_action_note_changes),
     include/globals.php (CSS_VERSION),
     skins/dragon/screen.css,
     game.php (draw_game_tools, draw_notes):
   - toggle red-star in tabs-header on changes of private-game-notes for JS-game-editor

2013-12-20 jug

   * js/game-editor.js (DGS.GamePageEditor.init, ~.handle_action_goto_my_prev_move),
     game.php (build_comment_tools, build_move_comments):
   - added move-navigation to my-previous-move for JS-game-editor
     - useful for MPG to check moves and comments of previous players
     - added up-icon in header of move-message-box to jump up to my-previous-move
     - added MyMove-class marking own moves on move-divs in move-message-box
       to easily identify own moves

   * js/game-editor.js (DGS.utils.makeArray;
       DGS.GamePageEditor.init, ~.addStone, ~.addCaptures, ~.toggleTerritory;
       DGS.Goban.toggleTerritoryMarker),
     include/board.php (Board.make_js_game_tree):
   - added viewing of toggling points in scoring-steps for JS-game-editor from perspective of observer
     - added pseudo-property 'd_tp' to mark toggled points for parsing game-tree for JS-game-editor
     - toggle points on SCORE-moves between dead/alive-state for stones and
       between neutral/non-neutral-state for empty points
     - cleanup: refactored redundant code to create array from non-array-value

2013-12-19 jug

   * game.php:
   - disable user-options move-numbering & mark-last-capture if JS-game-editor is used

   * js/game-editor.js (DGS.GamePageEditor.refresh, ~.addCaptures;
       DGS.Goban.reset, ~.toString, ~. ~.emptyBoard, ~.addPrisoners, ~.getPrisoners, ~.commit,
         ~.rollback),
     game.php (build_tab_GameAnalysis):
   - update prisoners for B/W-player on navigating on game-tree in JS-game-editor

   * js/game-editor.js (DGS.GamePageEditor.init, ~.handle_action_board_point):
   - click on board-stone navigates to selected move or shape-setup-move by searching backwards
     in game-tree for JS-game-editor

   * js/game-editor.js (DGS.GamePageEditor.handle_key_press):
   - added navigation to first-/last-move by pressing CTRL + cursor-left/right key in JS-game-editor

   * js/game-editor.js (DGS.GamePageEditor.init, ~.handle_action_view_move),
     game.php (build_move_comments):
   - navigate-jump to selected move in game-move-message-box for JS-game-editor
     - replace regular move-links in move-message-box with link-handler to navigate to selected move

   * js/game-editor.js (DGS.GamePageEditor.init, ~.handle_key_press, ~.setCurrentMove):
   - trigger navigation to previous-move & next-move on keypress of cursor-left/right for JS-game-editor
     - activate Analyse-tab on keypress of back/forward-navigation
     - scroll faster to current move in game-move-messages-box in case user holds down
       cursor-left/right-keys for longer time

   * js/goban-editor.js, js/game-editor.js, js/common.js:
   - cleanup: in local JS-files replaced browser-global 'event'-var with 'evt' to avoid confusion

   * js/game-editor.js (DGS.GamePageEditor.init, ~.makeDocReady, ~.handle_action_move_navigation,
         ~.goto_previous_node, ~.goto_next_variation_node, ~.refresh, ~.scrollToMoveMessage,
         ~.setCurrentMove, ~.goto_move, ~.executeNode, ~.playMove;
       DGS.Goban.reset, ~.toString, ~.emptyBoard, ~.setStone, ~.replaceLastMove, ~.getLastMove,
         ~.commit, ~.rollback, ~.revert),
     include/board.php (Board.make_js_game_tree),
     game.php (build_move_comments, build_tab_GameAnalysis):
   - added navigation to first-move, previous-move, next-move, last-move in JS-game-editor on Analyse-tab
     - moved last-move-tracking from DGS.GamePageEditor into DGS.Goban to track in board-state
       commit-history
     - refactored updating of UI-controls after move-navigation into refresh()-function
     - bugfix: add current-move icon in game-move-message-box only if not present already
     - bugfix: changed movetxt-id for shape-games 'movetextS' to 'movetxt0' for JS-game-editor
     - cleanup: set game-max-moves in GamePageEditor-constructor instead of parsing it
       from game-trees XM-property
     - cleanup: removed old commented-out draw-move-history-table generation from game.php

   * js/game-editor.js (DGS.Board.render_point):
   - optimized drawing of board-point by rendering grid-points & simple stones first

2013-12-18 jug

   * js/game-editor.js (DGS.utils.makePointNumberCoord;
       DGS.GamePageEditor, ~.init, ~.makeDocReady, ~.parseGameTree, ~.scrollToMoveMessage,
         ~.setCurrentMove, ~.goToMove, ~.executeNode, ~.playMove, ~.addStone, ~.setMovesCount,
         ~.addCaptures;
       DGS.constants.Goban, DGS.Goban, ~.init, ~.reset, ~.toString, ~.clearBoard, ~.clearMarkers,
         ~.emptyBoard, ~.makeBoard, ~.getValue, ~.setStone, ~.getStone, ~.setMarker, ~.getMarker,
         ~.setLabel, ~.getLabel, ~.cloneStoneMatrix, ~.commit, ~.rollback, ~.render_board, ~.render;
       DGS.Board, ~.init, ~.setOptionsCoords, ~.getOptionsCoords, ~.reset_board, ~.draw_board,
         ~.render_point;
       DGS.GameChangeCalculator.calc_change_play_move),
     js/goban-editor.js (DGS.goban_editor;
       DGS.GobanLabels, ~.update_label;
       DGS.Goban.setValue;
       DGS.Board.draw_board_structure;
       DGS.GobanChanges, ~.draw_goban_changes;
       DGS.ChangeCalculator;
       DGS.GobanEditor),
     js/gametree.js (DGS.GameNode.toJSON;
       DGS.GameCursor.next, ~.hasNext, ~.getDgsMoveNumber, ~.resetToRootGameNode, ~.getRootGameNode,
         ~.toJSON),
     js/jslint-dgs.conf,
     include/board.php (Board.make_js_game_tree; class JS_GameNode),
     include/std_functions.php (start_html),
     game.php, game_editor.php:
   - taken some & integrating code-fragments and concepts from Eidogo for DGS JS-game-editor
     - stuff taken/inspired from Eidogo marked in function comments
     - replaced 2-dimensional array-valued board-state in DGS.Goban with faster & easier
       to handle 1-dimensional scalar-valued board-state
     - taken & simplified way of caching & last-render-detection on board-state for navigating game-tree
     - taken & adjusted & extended parsing of game-tree with handlers

   - refactored all specific code for old JS-GameEditor into 'js/goban-editor.js'
     - this change is breaking code of the old game-editor, will be either fixed or merged later
       with new JS-game-editor
     - renamed old GameEditor -> GobanEditor to differ from new JS-game-editor used on game-page
     - moved DGS.goban_editor, DGS.GobanLabels, DGS.GobanChanges, DGS.ChangeCalculator, DGS.GobanEditor
       from 'js/game-editor.js'
     - refactored DGS.Goban.setValue, DGS.Board.draw_board_structure from 'js/game-editor.js'
     - refactored DGS.Board.draw_goban_changes from 'js/game-editor.js'
       into DGS.GobanChanges.draw_goban_changes

   - changes on new JS-game-editor
     - renamed new GameEditor -> GamePageEditor to differ from old JS-game-editor used on 'game_editor.php'
     - cleanup: simplified constructor for GamePageEditor
     - cleanup: refactored DGS.game.loadPage into GamePageEditor-constructor
     - added GamePageEditor with board-state in DGS.Goban, board-renderer DGS.Board, DGS.GameNode
       root-game & cursor to navigate on game-tree
     - overwrite server-created board to let JS-game-editor handle board-related actions
     - jump to selected move with JS-game-editor after game-page has been loaded
       to create internal navigational game-tree
     - parse server-created JS-game-tree into DGS.GameNode root-tree used to navigate in game
       with DGS.GameCursor by using SGF-like property-handlers
       - B/W-property to play-move
       - AB/AW-props to add-stone
       - XM-prop to set max-moves
       - d_mn pseudo-property to set DGS-specific move-number
       - d_capt pseudo-property to fill prisoners
     - remove old move-marker in game-move-message-box when scrolling to new move

   - changes on DGS.Board
     - cleanup: added move-number of each node in 'd_mn' pseudo-property
     - cleanup: reduced helper-class JS_GameNode to minimum empty-class

   - changes on DGS.Goban
     - bugfix: converting (x/y)-point to 1-dimensional matrix-position used wrong factor
       for y-axis-steps: y*size_y -> y*size_x
     - simplified internal structure of DGS.Goban for easier caching/rendering
     - stored label-number/letter in scalar value in Goban-matrix-array instead of array-value
       in matrix-array
       - using 5 GOBL_LETTER-bits for label-letter
       - using 9 GOBL_NUMBER-bits for label-number
     - using copy of matrix with grid-only for faster clearing of board-state
     - removed handling of partial-board using max_x/y, may be introduced later for old JS-game-editor
     - removed mark_point with last-move-marker as Goban has no knowledge of moves
     - cleanup: moved UI-editor-related DGS.GobanLabels-stuff into 'js/goban-editor.js'
     - cleanup: moved board-coordinate display-options into Board-class

   - changes on DGS.GameNode & DGS.GameCursor:
     - allow to select variation-number on navigating tree with GameCursor
     - added helper-function for debugging of DGS.GameNode/GameCursor using JSON.stringify()

2013-12-12 jug

   * include/globals.php (DGS_VERSION),
     NEWS:
   - prep for next major version 1.0.17

//


koh5_pano



Your browser does not support the HTML5 canvas element.


Drag mouse to navigate.

Navigation





17.Aug.2010, Martin Wengenmayer