mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-29 14:31:12 +08:00
This commit is contained in:
1 parent
61917cafce
commit
ff06840bcd
3 files changed
+18
-13
No files matched your search
@@ -169,7 +169,7 @@
|
|||||||
<form id="batchPagesForm">
|
<form id="batchPagesForm">
|
||||||
<div class="form-row"><label for="batchPageAction">操作</label><select id="batchPageAction"><option value="copy">复制</option><option value="move">移动</option><option value="delete">删除</option><option value="save">另存</option></select></div>
|
<div class="form-row"><label for="batchPageAction">操作</label><select id="batchPageAction"><option value="copy">复制</option><option value="move">移动</option><option value="delete">删除</option><option value="save">另存</option></select></div>
|
||||||
<div class="form-row"><label for="batchPageRange">页码</label><input id="batchPageRange" type="text" required autocomplete="off" spellcheck="false" autofocus></div>
|
<div class="form-row"><label for="batchPageRange">页码</label><input id="batchPageRange" type="text" required autocomplete="off" spellcheck="false" autofocus></div>
|
||||||
<div id="batchPagePositionRow" class="form-row" hidden><label for="batchPagePosition">位置</label><select id="batchPagePosition"><option value="before">页前</option><option value="after">页后</option><option value="first">首部</option><option value="last">末尾</option></select></div>
|
<div id="batchPagePositionRow" class="form-row" hidden><label for="batchPagePosition">位置</label><select id="batchPagePosition"><option value="before">页前</option><option value="after">页后</option><option value="first">开头</option><option value="last">末尾</option></select></div>
|
||||||
<div class="form-actions"><div id="batchPagesStatus" class="form-status" role="status"></div><button id="batchPagesCancel" class="button" type="button">取消</button><button id="batchPagesSubmit" class="button" type="submit">复制</button></div>
|
<div class="form-actions"><div id="batchPagesStatus" class="form-status" role="status"></div><button id="batchPagesCancel" class="button" type="button">取消</button><button id="batchPagesSubmit" class="button" type="submit">复制</button></div>
|
||||||
</form>
|
</form>
|
||||||
</dialog>
|
</dialog>
|
||||||
@@ -241,7 +241,7 @@
|
|||||||
<div class="form-row"><label for="importFile">文档</label><input id="importFile" type="file" accept=".ofd" required autofocus></div>
|
<div class="form-row"><label for="importFile">文档</label><input id="importFile" type="file" accept=".ofd" required autofocus></div>
|
||||||
<div class="form-row"><label for="importRange">范围</label><select id="importRange"><option value="all">全部</option><option value="custom">指定</option></select></div>
|
<div class="form-row"><label for="importRange">范围</label><select id="importRange"><option value="all">全部</option><option value="custom">指定</option></select></div>
|
||||||
<div id="importPagesRow" class="form-row" hidden><label for="importPages">页码</label><input id="importPages" type="text" autocomplete="off" spellcheck="false" disabled></div>
|
<div id="importPagesRow" class="form-row" hidden><label for="importPages">页码</label><input id="importPages" type="text" autocomplete="off" spellcheck="false" disabled></div>
|
||||||
<div class="form-row"><label for="importPosition">位置</label><select id="importPosition"><option value="before">页前</option><option value="after" selected>页后</option><option value="first">首部</option><option value="last">末尾</option></select></div>
|
<div class="form-row"><label for="importPosition">位置</label><select id="importPosition"><option value="before">页前</option><option value="after" selected>页后</option><option value="first">开头</option><option value="last">末尾</option></select></div>
|
||||||
<div class="form-row"><label for="importOutlines">目录</label><input id="importOutlines" type="checkbox" title="导入对应目录"></div>
|
<div class="form-row"><label for="importOutlines">目录</label><input id="importOutlines" type="checkbox" title="导入对应目录"></div>
|
||||||
<div class="form-actions"><div id="importStatus" class="form-status" role="status"></div><button id="importCancel" class="button" type="button">取消</button><button id="importSubmit" class="button" type="submit" disabled>插入</button></div>
|
<div class="form-actions"><div id="importStatus" class="form-status" role="status"></div><button id="importCancel" class="button" type="button">取消</button><button id="importSubmit" class="button" type="submit" disabled>插入</button></div>
|
||||||
</form>
|
</form>
|
||||||
@@ -345,7 +345,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="pageSelectionTools" class="page-selection-tools" hidden>
|
<div id="pageSelectionTools" class="page-selection-tools" hidden>
|
||||||
<span id="pageSelectionCount" role="status"></span>
|
<span id="pageSelectionCount" role="status"></span>
|
||||||
<button id="selectAllPages" class="small-button" type="button">全选</button>
|
<button id="selectAllPages" class="small-button" type="button" title="全选页面" aria-label="全选页面">全选</button>
|
||||||
<button id="finishPageSelection" class="small-button" type="button">完成</button>
|
<button id="finishPageSelection" class="small-button" type="button">完成</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="navigationContent" class="navigation-content">
|
<div id="navigationContent" class="navigation-content">
|
||||||
@@ -467,7 +467,7 @@
|
|||||||
<button id="fontDirectoryButton" class="small-button" type="button" title="添加字体目录" aria-label="添加字体目录">目录</button>
|
<button id="fontDirectoryButton" class="small-button" type="button" title="添加字体目录" aria-label="添加字体目录">目录</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="fontPermissionHint" class="font-permission-hint" hidden>字体尚未授权</div>
|
<div id="fontPermissionHint" class="font-permission-hint" hidden>系统字体未授权</div>
|
||||||
<div id="fontList" class="font-list"></div>
|
<div id="fontList" class="font-list"></div>
|
||||||
</section>
|
</section>
|
||||||
</aside>
|
</aside>
|
||||||
|
|||||||
+13
-8
@@ -1274,6 +1274,7 @@ async function toggleEditor() {
|
|||||||
renderPageList();
|
renderPageList();
|
||||||
applyFit(false);
|
applyFit(false);
|
||||||
restoreScaleAnchor(anchor);
|
restoreScaleAnchor(anchor);
|
||||||
|
updatePageListCurrent(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const { pageIndex, fitMode, scale } = state;
|
const { pageIndex, fitMode, scale } = state;
|
||||||
@@ -1302,6 +1303,7 @@ async function toggleEditor() {
|
|||||||
if (openSeq === state.openSeq) {
|
if (openSeq === state.openSeq) {
|
||||||
setBusy(false);
|
setBusy(false);
|
||||||
updateControls();
|
updateControls();
|
||||||
|
if (state.editing) updatePageListCurrent(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1571,7 +1573,7 @@ async function loadEditorFonts() {
|
|||||||
await fontManager.queryLocal();
|
await fontManager.queryLocal();
|
||||||
refreshEditorFonts();
|
refreshEditorFonts();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
setStatus(err?.name === "NotAllowedError" ? "字体尚未授权" : String(err.message || err));
|
setStatus(err?.name === "NotAllowedError" ? "系统字体未授权" : String(err.message || err));
|
||||||
} finally {
|
} finally {
|
||||||
state.fontCatalogLoading = false;
|
state.fontCatalogLoading = false;
|
||||||
}
|
}
|
||||||
@@ -2098,7 +2100,7 @@ async function openOFDFromDrop(event) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (event.dataTransfer.files.length > 1) {
|
if (event.dataTransfer.files.length > 1) {
|
||||||
setStatus("仅支持单文件拖入");
|
setStatus("一次拖入一个文件");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const file = event.dataTransfer.files[0];
|
const file = event.dataTransfer.files[0];
|
||||||
@@ -2593,7 +2595,7 @@ async function loadLocalFonts() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!fontManager.canReadLocal()) {
|
if (!fontManager.canReadLocal()) {
|
||||||
setStatus("无法读取系统字体");
|
setStatus("浏览器不支持系统字体");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setBusy(true, state.doc ? "正在匹配字体" : "正在请求授权", 12, state.doc ? STATUS.fonts : "正在请求授权");
|
setBusy(true, state.doc ? "正在匹配字体" : "正在请求授权", 12, state.doc ? STATUS.fonts : "正在请求授权");
|
||||||
@@ -2609,7 +2611,7 @@ async function loadLocalFonts() {
|
|||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err && err.name === "NotAllowedError") {
|
if (err && err.name === "NotAllowedError") {
|
||||||
setStatus("字体尚未授权");
|
setStatus("系统字体未授权");
|
||||||
} else {
|
} else {
|
||||||
setStatus(String(err.message || err));
|
setStatus(String(err.message || err));
|
||||||
}
|
}
|
||||||
@@ -2628,7 +2630,7 @@ async function requestLocalFontsBeforeOpen() {
|
|||||||
setStatus(available.length ? `已授权${available.length}种字体` : "暂无系统字体");
|
setStatus(available.length ? `已授权${available.length}种字体` : "暂无系统字体");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err && err.name === "NotAllowedError") {
|
if (err && err.name === "NotAllowedError") {
|
||||||
setStatus("字体尚未授权");
|
setStatus("系统字体未授权");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setStatus(String(err.message || err));
|
setStatus(String(err.message || err));
|
||||||
@@ -2650,7 +2652,7 @@ async function autoLoadDocumentLocalFonts(openSeq) {
|
|||||||
return await loadDocumentLocalFonts(available, openSeq);
|
return await loadDocumentLocalFonts(available, openSeq);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err && err.name === "NotAllowedError") {
|
if (err && err.name === "NotAllowedError") {
|
||||||
setStatus("字体尚未授权");
|
setStatus("系统字体未授权");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
setStatus(String(err.message || err));
|
setStatus(String(err.message || err));
|
||||||
@@ -2906,7 +2908,7 @@ function fontSourceText(source) {
|
|||||||
function updateLocalFontButton() {
|
function updateLocalFontButton() {
|
||||||
const supported = fontManager.canReadLocal();
|
const supported = fontManager.canReadLocal();
|
||||||
el.localFontButton.disabled = !supported;
|
el.localFontButton.disabled = !supported;
|
||||||
el.localFontButton.title = supported ? "读取系统字体" : "无法读取系统字体";
|
el.localFontButton.title = supported ? "读取系统字体" : "浏览器不支持系统字体";
|
||||||
updateFontPermissionHint();
|
updateFontPermissionHint();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4564,7 +4566,10 @@ function syncPageSelection() {
|
|||||||
if (!state.editing) state.pageMultiSelect = false;
|
if (!state.editing) state.pageMultiSelect = false;
|
||||||
el.pageSelectionTools.hidden = !state.editing || !state.pageMultiSelect || el.pageList.hidden;
|
el.pageSelectionTools.hidden = !state.editing || !state.pageMultiSelect || el.pageList.hidden;
|
||||||
el.pageSelectionCount.textContent = `已选${state.pageSelection.size}页`;
|
el.pageSelectionCount.textContent = `已选${state.pageSelection.size}页`;
|
||||||
el.selectAllPages.textContent = state.pageSelection.size === state.doc?.pageCount ? "清空" : "全选";
|
const allSelected = state.pageSelection.size === state.doc?.pageCount;
|
||||||
|
el.selectAllPages.textContent = allSelected ? "取消" : "全选";
|
||||||
|
el.selectAllPages.title = allSelected ? "取消全选" : "全选页面";
|
||||||
|
el.selectAllPages.setAttribute("aria-label", el.selectAllPages.title);
|
||||||
for (const button of el.pageList.children) {
|
for (const button of el.pageList.children) {
|
||||||
if (state.editing) button.setAttribute("aria-pressed", String(state.pageSelection.has(state.doc.pages[Number(button.dataset.pageIndex)].id)));
|
if (state.editing) button.setAttribute("aria-pressed", String(state.pageSelection.has(state.doc.pages[Number(button.dataset.pageIndex)].id)));
|
||||||
else button.removeAttribute("aria-pressed");
|
else button.removeAttribute("aria-pressed");
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ export class FontPicker {
|
|||||||
if (!this.matches.length) {
|
if (!this.matches.length) {
|
||||||
const empty = document.createElement("div");
|
const empty = document.createElement("div");
|
||||||
empty.className = "font-search-empty";
|
empty.className = "font-search-empty";
|
||||||
empty.textContent = "无匹配字体";
|
empty.textContent = this.fonts.length ? "暂无匹配字体" : "暂无字体";
|
||||||
this.list.append(empty);
|
this.list.append(empty);
|
||||||
}
|
}
|
||||||
if (!this.open) this.list.showPopover();
|
if (!this.open) this.list.showPopover();
|
||||||
|
|||||||
Reference in new issue
Block a user