Импорт пресетов сборок из ZIP-пакета
Крупные сборки раздают готовый комплект настроек архивом. Панель разбирает его сама: находит серверный .ini, песочницу и точки появления, показывает, что нашла (сколько модов, карт, параметров), и только по подтверждению раскладывает файлы в новый или существующий профиль. Порты, пароли и название сервера при этом можно оставить свои — они относятся к машине, а не к сборке; у нового профиля они берутся из активного. Прежние конфиги остаются рядом как .bak, мир не трогается, а импорт в работающий профиль отклоняется: PZ перезаписал бы файлы своими при остановке. Посторонние .ini из архива (настройки модов) за конфиг сервера не принимаются: он опознаётся по знакомым параметрам. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -255,6 +255,53 @@
|
||||
|
||||
<div id="profile-cards" class="cards"></div>
|
||||
|
||||
<h3 data-i18n="import.title"></h3>
|
||||
<div class="card import-card">
|
||||
<p class="muted small" data-i18n="import.fileHint"></p>
|
||||
<input type="file" id="preset-file" accept=".zip">
|
||||
|
||||
<div id="preset-details" hidden>
|
||||
<div class="cfg-field" id="preset-pick" hidden>
|
||||
<label for="preset-set" data-i18n="import.set"></label>
|
||||
<select id="preset-set"></select>
|
||||
</div>
|
||||
|
||||
<div class="preset-summary" id="preset-summary"></div>
|
||||
|
||||
<div class="fields">
|
||||
<div class="cfg-field">
|
||||
<label for="preset-target" data-i18n="import.target"></label>
|
||||
<select id="preset-target">
|
||||
<option value="new" data-i18n="import.targetNew"></option>
|
||||
<option value="existing" data-i18n="import.targetExisting"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="cfg-field" id="preset-new-fields">
|
||||
<label for="preset-id" data-i18n="import.newID"></label>
|
||||
<input type="text" id="preset-id" autocomplete="off">
|
||||
<div class="hint" data-i18n="profiles.idHint"></div>
|
||||
</div>
|
||||
<div class="cfg-field" id="preset-existing-fields" hidden>
|
||||
<label for="preset-profile" data-i18n="import.profile"></label>
|
||||
<select id="preset-profile"></select>
|
||||
<div class="hint" data-i18n="import.overwriteHint"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="muted small" data-i18n="import.keep"></p>
|
||||
<div class="preset-keep">
|
||||
<label class="checkbox"><input type="checkbox" data-keep="ports" checked>
|
||||
<span data-i18n="import.keepPorts"></span></label>
|
||||
<label class="checkbox"><input type="checkbox" data-keep="access" checked>
|
||||
<span data-i18n="import.keepAccess"></span></label>
|
||||
<label class="checkbox"><input type="checkbox" data-keep="identity" checked>
|
||||
<span data-i18n="import.keepIdentity"></span></label>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" id="btn-preset-import" data-i18n="import.apply"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 data-i18n="profiles.newTitle"></h3>
|
||||
<form id="profile-add-form" class="fields">
|
||||
<div class="cfg-field">
|
||||
|
||||
Reference in New Issue
Block a user