Загружаю расписание…
Нажми на имя — подсветятся все игры этого человека. Ещё раз — снимется.
Строка — неделя, столбец — человек. Клик по клетке снимает участника с этой недели: подменяется только он один, двое напарников остаются, а его тройка уезжает на ближайшую подходящую неделю. Shift+клик означает, что человек уходит из состава с этой недели совсем — то же, что дата ухода в правке состава; повторный Shift+клик возвращает. Прочерк вместо клетки значит, что на эту дату человека ещё или уже нет в составе. Если замену подобрать не из кого, неделю ведут вдвоём или даже в одиночку — это нормально, а несыгранный состав возвращается в очередь.
Если кто-то отказался. Сняли человека с недели — на его место встаёт тот, кто дольше не играл и даёт новую пару с оставшимися двумя, а прежняя тройка целиком переезжает на ближайшую неделю, где она собирается. Так подменяется ровно один человек, а не вся очередь. Если же обмен невозможен — например, человека нет до конца расписания, — хвост пересобирается заново.
Где всё это хранится. Расписание лежит на сервере, а не в браузере: открыл ссылку — увидел то же, что и все остальные. Любая правка сохраняется сразу и попадает к тем, у кого страница уже открыта, в течение пятнадцати секунд. Прошлые версии остаются в журнале, так что случайно испорченное можно вернуть.