mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-30 01:27:26 +08:00
1 parent
b64668514f
commit
7841eaa997
2 files changed
+14
-7
No files matched your search
@@ -5118,7 +5118,7 @@ function renderResourceList() {
|
|||||||
button.setAttribute("role", "option");
|
button.setAttribute("role", "option");
|
||||||
button.setAttribute("aria-selected", String(item === selected));
|
button.setAttribute("aria-selected", String(item === selected));
|
||||||
button.title = item.file || item.name;
|
button.title = item.file || item.name;
|
||||||
for (const value of [item.name, item.file ? formatBytes(item.size) : "外部", item.complete ? String(item.references?.length || 0) : "未知"]) {
|
for (const value of [item.name, item.missing ? "缺失" : item.file ? formatBytes(item.size) : "外部", item.complete ? String(item.references?.length || 0) : "未知"]) {
|
||||||
const span = document.createElement("span");
|
const span = document.createElement("span");
|
||||||
span.textContent = value;
|
span.textContent = value;
|
||||||
button.append(span);
|
button.append(span);
|
||||||
@@ -5159,8 +5159,8 @@ function updateResourceControls() {
|
|||||||
resourceElements.Add.hidden = resourceElements.Replace.hidden = resourceElements.Delete.hidden = !editing;
|
resourceElements.Add.hidden = resourceElements.Replace.hidden = resourceElements.Delete.hidden = !editing;
|
||||||
resourceElements.Add.disabled = disabled;
|
resourceElements.Add.disabled = disabled;
|
||||||
resourceElements.Reference.disabled = disabled || !item?.references?.length;
|
resourceElements.Reference.disabled = disabled || !item?.references?.length;
|
||||||
resourceElements.Preview.disabled = disabled || !item?.file || item.kind === "Attachment";
|
resourceElements.Preview.disabled = disabled || !item?.file || item.missing || item.kind === "Attachment";
|
||||||
resourceElements.Export.disabled = disabled || !item?.file;
|
resourceElements.Export.disabled = disabled || !item?.file || item.missing;
|
||||||
resourceElements.Replace.disabled = disabled || !item || !item.complete;
|
resourceElements.Replace.disabled = disabled || !item || !item.complete;
|
||||||
resourceElements.Replace.textContent = item?.kind === "Font" ? item.file ? "外置" : "嵌入" : "替换";
|
resourceElements.Replace.textContent = item?.kind === "Font" ? item.file ? "外置" : "嵌入" : "替换";
|
||||||
resourceElements.Delete.disabled = disabled || !item?.complete || Boolean(item?.references?.length);
|
resourceElements.Delete.disabled = disabled || !item?.complete || Boolean(item?.references?.length);
|
||||||
|
|||||||
+11
-4
@@ -27,6 +27,7 @@ import (
|
|||||||
// ResourceInfo 描述当前文档及所选版本的字体、图片、音视频或附件,Size为文件字节数
|
// ResourceInfo 描述当前文档及所选版本的字体、图片、音视频或附件,Size为文件字节数
|
||||||
// Kind为Font、Image、Audio、Video或Attachment,标识仅在当前文档及同类资源内有效
|
// Kind为Font、Image、Audio、Video或Attachment,标识仅在当前文档及同类资源内有效
|
||||||
// Complete表示已完整识别引用;不包含其他文档和历史版本的引用,空File表示外部字体
|
// Complete表示已完整识别引用;不包含其他文档和历史版本的引用,空File表示外部字体
|
||||||
|
// Missing表示声明的文件不在包内,与外部字体及零字节文件区分,不表示文件解码结果
|
||||||
type ResourceInfo struct {
|
type ResourceInfo struct {
|
||||||
Kind string `json:"kind"`
|
Kind string `json:"kind"`
|
||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
@@ -34,6 +35,7 @@ type ResourceInfo struct {
|
|||||||
Format string `json:"format"`
|
Format string `json:"format"`
|
||||||
File string `json:"file"`
|
File string `json:"file"`
|
||||||
Size uint64 `json:"size"`
|
Size uint64 `json:"size"`
|
||||||
|
Missing bool `json:"missing"`
|
||||||
Complete bool `json:"complete"`
|
Complete bool `json:"complete"`
|
||||||
References []ResourceReference `json:"references"`
|
References []ResourceReference `json:"references"`
|
||||||
}
|
}
|
||||||
@@ -54,7 +56,7 @@ type resourceCatalog struct {
|
|||||||
nodes map[string]editorFontText
|
nodes map[string]editorFontText
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resources 列出当前文档及所选版本的资源,不读取二进制内容或执行媒体动作
|
// Resources 列出当前文档及所选版本的资源,标记缺失文件,不读取二进制内容或执行媒体动作
|
||||||
// 入参: ctx 取消上下文
|
// 入参: ctx 取消上下文
|
||||||
// 返回: []ResourceInfo 资源及引用位置, error 结构或读取错误
|
// 返回: []ResourceInfo 资源及引用位置, error 结构或读取错误
|
||||||
func (r *Reader) Resources(ctx context.Context) ([]ResourceInfo, error) {
|
func (r *Reader) Resources(ctx context.Context) ([]ResourceInfo, error) {
|
||||||
@@ -202,10 +204,15 @@ func (r *Reader) resourceCatalog(ctx context.Context) (*resourceCatalog, error)
|
|||||||
}
|
}
|
||||||
item.References = refs[key]
|
item.References = refs[key]
|
||||||
if item.File != "" {
|
if item.File != "" {
|
||||||
item.Size, err = outputResourceSize(r, nil, item.File)
|
if data, ok := r.files[cleanPackagePath(item.File)]; ok {
|
||||||
if err != nil {
|
item.Size = uint64(len(data))
|
||||||
return nil, err
|
} else if file, ok := r.packageFile(item.File); ok {
|
||||||
|
item.Size = file.UncompressedSize64
|
||||||
|
} else {
|
||||||
|
item.Missing = true
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
item.Missing = item.Kind != "Font"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return catalog, ctx.Err()
|
return catalog, ctx.Err()
|
||||||
|
|||||||
Reference in new issue
Block a user