mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-30 01:27:26 +08:00
feat(前端界面): 新增安全标签,集中加密与签名
This commit is contained in:
1 parent
17383adab6
commit
2eaf5366bf
3 files changed
+24
-17
No files matched your search
+14
-11
@@ -805,6 +805,7 @@
|
|||||||
<div id="metaTabs" class="navigation-tabs">
|
<div id="metaTabs" class="navigation-tabs">
|
||||||
<button id="documentMetaTab" type="button" data-selected="true">文档</button>
|
<button id="documentMetaTab" type="button" data-selected="true">文档</button>
|
||||||
<button id="fontsMetaTab" type="button" data-selected="false" tabindex="-1">字体</button>
|
<button id="fontsMetaTab" type="button" data-selected="false" tabindex="-1">字体</button>
|
||||||
|
<button id="securityMetaTab" type="button" data-selected="false" tabindex="-1">安全</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="metaContent" class="meta-content">
|
<div id="metaContent" class="meta-content">
|
||||||
<div id="metaDocumentPanel">
|
<div id="metaDocumentPanel">
|
||||||
@@ -904,17 +905,6 @@
|
|||||||
<summary>提示</summary>
|
<summary>提示</summary>
|
||||||
<div id="conversionWarnings" class="panel-detail"></div>
|
<div id="conversionWarnings" class="panel-detail"></div>
|
||||||
</details>
|
</details>
|
||||||
<section id="securityPanel" class="security-panel" hidden>
|
|
||||||
<div class="panel-row"><div id="securityPanelTitle" class="panel-title compact">安全</div><div class="panel-actions"><button id="encryptSaveButton" class="small-button" type="button" disabled>加密</button><button id="signButton" class="small-button" type="button" disabled>签章</button><button id="verifyButton" class="small-button" type="button" disabled>验签</button></div></div>
|
|
||||||
<dl class="meta-list"><div><dt>加密</dt><dd id="securityEncryption">未加密</dd></div><div id="securitySchemeRow" hidden><dt>方式</dt><dd id="securityScheme"></dd></div><div id="securityMethodRow" hidden><dt>算法</dt><dd id="securityMethod"></dd></div></dl>
|
|
||||||
</section>
|
|
||||||
<section id="signaturePanel" class="signature-panel" hidden>
|
|
||||||
<div class="panel-row">
|
|
||||||
<div id="signaturePanelTitle" class="panel-title compact">签名</div>
|
|
||||||
<span id="signatureSummary" class="count-pill">0</span>
|
|
||||||
</div>
|
|
||||||
<div id="signatureList" class="signature-list"></div>
|
|
||||||
</section>
|
|
||||||
<section id="structurePanel" class="structure-panel" hidden>
|
<section id="structurePanel" class="structure-panel" hidden>
|
||||||
<div class="panel-row"><div id="structurePanelTitle" class="panel-title compact">结构</div><div class="panel-actions"><span id="structureSummary" class="count-pill">0</span><button id="structureManage" class="small-button" type="button" hidden>管理</button></div></div>
|
<div class="panel-row"><div id="structurePanelTitle" class="panel-title compact">结构</div><div class="panel-actions"><span id="structureSummary" class="count-pill">0</span><button id="structureManage" class="small-button" type="button" hidden>管理</button></div></div>
|
||||||
<div id="structureList" class="structure-list"></div>
|
<div id="structureList" class="structure-list"></div>
|
||||||
@@ -942,6 +932,19 @@
|
|||||||
<div id="fontList" class="font-list"></div>
|
<div id="fontList" class="font-list"></div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="metaSecurityPanel" hidden>
|
||||||
|
<section id="securityPanel" class="security-panel" hidden>
|
||||||
|
<div class="panel-row"><div id="securityPanelTitle" class="panel-title compact">安全</div><div class="panel-actions"><button id="encryptSaveButton" class="small-button" type="button" disabled>加密</button><button id="signButton" class="small-button" type="button" disabled>签章</button><button id="verifyButton" class="small-button" type="button" disabled>验签</button></div></div>
|
||||||
|
<dl class="meta-list"><div><dt>加密</dt><dd id="securityEncryption">未加密</dd></div><div id="securitySchemeRow" hidden><dt>方式</dt><dd id="securityScheme"></dd></div><div id="securityMethodRow" hidden><dt>算法</dt><dd id="securityMethod"></dd></div></dl>
|
||||||
|
</section>
|
||||||
|
<section id="signaturePanel" class="signature-panel" hidden>
|
||||||
|
<div class="panel-row">
|
||||||
|
<div id="signaturePanelTitle" class="panel-title compact">签名</div>
|
||||||
|
<span id="signatureSummary" class="count-pill">0</span>
|
||||||
|
</div>
|
||||||
|
<div id="signatureList" class="signature-list"></div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@@ -1896,7 +1896,8 @@ body[data-hide-meta] .meta-panel {
|
|||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#metaFontsPanel > .doc-font-panel {
|
#metaFontsPanel > .doc-font-panel,
|
||||||
|
#metaSecurityPanel > .security-panel {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
border-top: 0;
|
border-top: 0;
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ function createDocumentState() {
|
|||||||
showPages: !COMPACT_LAYOUT.matches,
|
showPages: !COMPACT_LAYOUT.matches,
|
||||||
showMeta: !COMPACT_LAYOUT.matches,
|
showMeta: !COMPACT_LAYOUT.matches,
|
||||||
metaTab: "document",
|
metaTab: "document",
|
||||||
metaScroll: {document: 0, fonts: 0},
|
metaScroll: {document: 0, fonts: 0, security: 0},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -598,8 +598,10 @@ const el = {
|
|||||||
metaContent: document.querySelector("#metaContent"),
|
metaContent: document.querySelector("#metaContent"),
|
||||||
documentMetaTab: document.querySelector("#documentMetaTab"),
|
documentMetaTab: document.querySelector("#documentMetaTab"),
|
||||||
fontsMetaTab: document.querySelector("#fontsMetaTab"),
|
fontsMetaTab: document.querySelector("#fontsMetaTab"),
|
||||||
|
securityMetaTab: document.querySelector("#securityMetaTab"),
|
||||||
metaDocumentPanel: document.querySelector("#metaDocumentPanel"),
|
metaDocumentPanel: document.querySelector("#metaDocumentPanel"),
|
||||||
metaFontsPanel: document.querySelector("#metaFontsPanel"),
|
metaFontsPanel: document.querySelector("#metaFontsPanel"),
|
||||||
|
metaSecurityPanel: document.querySelector("#metaSecurityPanel"),
|
||||||
renderVectorButton: document.querySelector("#renderVectorButton"),
|
renderVectorButton: document.querySelector("#renderVectorButton"),
|
||||||
renderRasterButton: document.querySelector("#renderRasterButton"),
|
renderRasterButton: document.querySelector("#renderRasterButton"),
|
||||||
refreshAppButton: document.querySelector("#refreshAppButton"),
|
refreshAppButton: document.querySelector("#refreshAppButton"),
|
||||||
@@ -1745,9 +1747,10 @@ el.outlinesTab.addEventListener("click", () => showNavigation(el.outlinesTab));
|
|||||||
el.searchTab.addEventListener("click", focusSearch);
|
el.searchTab.addEventListener("click", focusSearch);
|
||||||
el.documentMetaTab.addEventListener("click", () => showMetaSection(el.documentMetaTab));
|
el.documentMetaTab.addEventListener("click", () => showMetaSection(el.documentMetaTab));
|
||||||
el.fontsMetaTab.addEventListener("click", () => showMetaSection(el.fontsMetaTab));
|
el.fontsMetaTab.addEventListener("click", () => showMetaSection(el.fontsMetaTab));
|
||||||
|
el.securityMetaTab.addEventListener("click", () => showMetaSection(el.securityMetaTab));
|
||||||
for (const [container, buttons, show] of [
|
for (const [container, buttons, show] of [
|
||||||
[el.navigationTabs, [el.pagesTab, el.outlinesTab, el.annotationsTab, el.searchTab], showNavigation],
|
[el.navigationTabs, [el.pagesTab, el.outlinesTab, el.annotationsTab, el.searchTab], showNavigation],
|
||||||
[el.metaTabs, [el.documentMetaTab, el.fontsMetaTab], showMetaSection],
|
[el.metaTabs, [el.documentMetaTab, el.fontsMetaTab, el.securityMetaTab], showMetaSection],
|
||||||
]) container.addEventListener("keydown", (event) => {
|
]) container.addEventListener("keydown", (event) => {
|
||||||
if (event.isComposing || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {
|
if (event.isComposing || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {
|
||||||
return;
|
return;
|
||||||
@@ -6532,7 +6535,7 @@ async function openDocument(options = {}) {
|
|||||||
el.navigationContent.scrollLeft = 0;
|
el.navigationContent.scrollLeft = 0;
|
||||||
el.navigationContent.scrollTop = 0;
|
el.navigationContent.scrollTop = 0;
|
||||||
state.metaTab = "document";
|
state.metaTab = "document";
|
||||||
state.metaScroll = {document: 0, fonts: 0};
|
state.metaScroll = {document: 0, fonts: 0, security: 0};
|
||||||
el.metaContent.scrollLeft = 0;
|
el.metaContent.scrollLeft = 0;
|
||||||
renderMetaSections();
|
renderMetaSections();
|
||||||
}
|
}
|
||||||
@@ -11636,12 +11639,12 @@ function focusSearch() {
|
|||||||
|
|
||||||
function showMetaSection(selected) {
|
function showMetaSection(selected) {
|
||||||
state.metaScroll[state.metaTab] = el.metaContent.scrollTop;
|
state.metaScroll[state.metaTab] = el.metaContent.scrollTop;
|
||||||
state.metaTab = selected === el.fontsMetaTab ? "fonts" : "document";
|
state.metaTab = selected === el.securityMetaTab ? "security" : selected === el.fontsMetaTab ? "fonts" : "document";
|
||||||
renderMetaSections();
|
renderMetaSections();
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderMetaSections() {
|
function renderMetaSections() {
|
||||||
for (const [tab, panel, name] of [[el.documentMetaTab, el.metaDocumentPanel, "document"], [el.fontsMetaTab, el.metaFontsPanel, "fonts"]]) {
|
for (const [tab, panel, name] of [[el.documentMetaTab, el.metaDocumentPanel, "document"], [el.fontsMetaTab, el.metaFontsPanel, "fonts"], [el.securityMetaTab, el.metaSecurityPanel, "security"]]) {
|
||||||
const active = name === state.metaTab;
|
const active = name === state.metaTab;
|
||||||
panel.hidden = !active;
|
panel.hidden = !active;
|
||||||
tab.setAttribute("data-selected", String(active));
|
tab.setAttribute("data-selected", String(active));
|
||||||
|
|||||||
Reference in new issue
Block a user