Мод-менеджер с галочками и коллекции мастерской

Вместо двух отдельных списков (Workshop ID и Mod ID) — один список модов:
галочка включает мод, перетаскивание задаёт порядок загрузки, кнопка
убирает пакет вместе со всеми его модами.

Чтобы галочкам было за что зацепиться, панель читает mod.info уже
скачанных модов: серверу в Mods нужен именно Mod ID, а он лежит внутри
пакета мастерской и вручную его приходилось искать в описании мода. Пока
мод не скачан, строка помечена и галочка недоступна — Mod ID неизвестен.

Один пакет мастерской может содержать несколько модов; теперь они видны
отдельными строками и включаются по отдельности.

Коллекции: кнопка разворачивает коллекцию Steam в список входящих в неё
модов, сохраняя порядок со страницы коллекции. И мод, и коллекция
принимаются как ссылкой, так и голым идентификатором.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-04 00:36:06 +03:00
co-authored by Claude Opus 5
parent 277ab7af4a
commit fe517cfb71
9 changed files with 675 additions and 71 deletions
+15 -10
View File
@@ -173,7 +173,8 @@
<div class="panel-head">
<div>
<h2>Моды</h2>
<p class="muted small">Сервер сам скачивает моды из мастерской при запуске.</p>
<p class="muted small">Галочка включает мод, перетаскивание задаёт порядок загрузки.
Сервер сам скачивает моды из мастерской при запуске.</p>
</div>
<button class="btn btn-primary" id="btn-mods-save">Сохранить</button>
</div>
@@ -182,18 +183,22 @@
<div id="mods-body">
<form class="mod-add" id="mod-add-form">
<input type="text" id="mod-workshop-id" placeholder="Workshop ID, например 2392709985" inputmode="numeric">
<input type="text" id="mod-mod-id" placeholder="Mod ID (из описания мода)">
<button class="btn" type="submit">Добавить</button>
<input type="text" id="mod-input" autocomplete="off"
placeholder="Ссылка на мод или коллекцию, либо просто ID">
<button class="btn" type="submit">Добавить мод</button>
<button class="btn" type="button" id="btn-add-collection">Добавить коллекцию</button>
</form>
<p class="muted small">Workshop ID — число из ссылки на мод. Mod ID автор указывает в описании; у одного мода
мастерской их может быть несколько.</p>
<p class="muted small">Коллекция разворачивается в список входящих в неё модов.
Сами файлы сервер скачивает сам при запуске — после этого моды можно включать галочками.</p>
<h3>Моды из мастерской</h3>
<ul class="mod-list" id="workshop-list"></ul>
<div class="mod-toolbar">
<span class="muted small" id="mod-summary"></span>
<div class="spacer"></div>
<input type="search" id="mod-filter" class="input-sm" placeholder="Поиск по названию…">
<label class="checkbox"><input type="checkbox" id="mod-only-enabled"> Только включённые</label>
</div>
<h3>Порядок загрузки (Mods)</h3>
<ul class="mod-list" id="modid-list"></ul>
<ul class="mod-list" id="mod-list"></ul>
<h3>Карты (Map)</h3>
<textarea id="map-list" rows="3" spellcheck="false"