obsidian-confluence 5.6.13 → 5.6.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/CompletedModal.tsx +124 -132
- package/src/ConfluencePerPageForm.tsx +466 -469
- package/src/ConfluenceSettingTab.ts +108 -108
- package/src/MyBaseClient.ts +193 -200
- package/src/adaptors/obsidian.ts +124 -126
- package/src/custom.d.ts +8 -8
- package/src/main.ts +446 -478
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obsidian-confluence",
|
|
3
|
-
"version": "5.6.
|
|
3
|
+
"version": "5.6.14",
|
|
4
4
|
"description": "This library allows you to publish your notes to Confluence",
|
|
5
5
|
"main": "main.js",
|
|
6
6
|
"type": "module",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"mime-types": "^2.1.35",
|
|
25
25
|
"react": "^16.14.0",
|
|
26
26
|
"react-dom": "^16.14.0",
|
|
27
|
-
"md-confluence-lib": "5.6.
|
|
28
|
-
"md-confluence-mermaid-electron-renderer": "5.6.
|
|
27
|
+
"md-confluence-lib": "5.6.14",
|
|
28
|
+
"md-confluence-mermaid-electron-renderer": "5.6.14"
|
|
29
29
|
},
|
|
30
30
|
"resolutions": {
|
|
31
31
|
"prosemirror-model": "1.14.3"
|
package/src/CompletedModal.tsx
CHANGED
|
@@ -4,157 +4,149 @@ import React, { useState } from "react";
|
|
|
4
4
|
import { UploadAdfFileResult } from "md-confluence-lib";
|
|
5
5
|
|
|
6
6
|
export interface FailedFile {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
fileName: string;
|
|
8
|
+
reason: string;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export interface UploadResults {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
errorMessage: string | null;
|
|
13
|
+
failedFiles: FailedFile[];
|
|
14
|
+
filesUploadResult: UploadAdfFileResult[];
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export interface UploadResultsProps {
|
|
18
|
-
|
|
18
|
+
uploadResults: UploadResults;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
const CompletedView: React.FC<UploadResultsProps> = ({ uploadResults }) => {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const { errorMessage, failedFiles, filesUploadResult } = uploadResults;
|
|
23
|
+
const [expanded, setExpanded] = useState(false);
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
const countResults = {
|
|
26
|
+
content: { same: 0, updated: 0 },
|
|
27
|
+
images: { same: 0, updated: 0 },
|
|
28
|
+
labels: { same: 0, updated: 0 },
|
|
29
|
+
};
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
filesUploadResult.forEach((result) => {
|
|
32
|
+
countResults.content[result.contentResult]++;
|
|
33
|
+
countResults.images[result.imageResult]++;
|
|
34
|
+
countResults.labels[result.labelResult]++;
|
|
35
|
+
});
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
));
|
|
47
|
-
};
|
|
37
|
+
const renderUpdatedFiles = (type: "content" | "image" | "label") => {
|
|
38
|
+
return filesUploadResult
|
|
39
|
+
.filter((result) => result[`${type}Result`] === "updated")
|
|
40
|
+
.map((result, index) => (
|
|
41
|
+
<li key={index}>
|
|
42
|
+
<a href={result.adfFile.pageUrl}>{result.adfFile.absoluteFilePath}</a>
|
|
43
|
+
</li>
|
|
44
|
+
));
|
|
45
|
+
};
|
|
48
46
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
successfully.
|
|
66
|
-
</p>
|
|
67
|
-
</div>
|
|
47
|
+
return (
|
|
48
|
+
<div className="upload-results">
|
|
49
|
+
<div>
|
|
50
|
+
<h1>Confluence Publish</h1>
|
|
51
|
+
</div>
|
|
52
|
+
{errorMessage ? (
|
|
53
|
+
<div className="error-message">
|
|
54
|
+
<h3>Error</h3>
|
|
55
|
+
<p>{errorMessage}</p>
|
|
56
|
+
</div>
|
|
57
|
+
) : (
|
|
58
|
+
<>
|
|
59
|
+
<div className="successful-uploads">
|
|
60
|
+
<h3>Successful Uploads</h3>
|
|
61
|
+
<p>{filesUploadResult.length} file(s) uploaded successfully.</p>
|
|
62
|
+
</div>
|
|
68
63
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
</ul>
|
|
83
|
-
</div>
|
|
84
|
-
)}
|
|
64
|
+
{failedFiles.length > 0 && (
|
|
65
|
+
<div className="failed-uploads">
|
|
66
|
+
<h3>Failed Uploads</h3>
|
|
67
|
+
<p>{failedFiles.length} file(s) failed to upload.</p>
|
|
68
|
+
<ul>
|
|
69
|
+
{failedFiles.map((file, index) => (
|
|
70
|
+
<li key={index}>
|
|
71
|
+
<strong>{file.fileName}</strong>: {file.reason}
|
|
72
|
+
</li>
|
|
73
|
+
))}
|
|
74
|
+
</ul>
|
|
75
|
+
</div>
|
|
76
|
+
)}
|
|
85
77
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
78
|
+
<table className="result-table">
|
|
79
|
+
<thead>
|
|
80
|
+
<tr>
|
|
81
|
+
<th>Type</th>
|
|
82
|
+
<th>Same</th>
|
|
83
|
+
<th>Updated</th>
|
|
84
|
+
</tr>
|
|
85
|
+
</thead>
|
|
86
|
+
<tbody>
|
|
87
|
+
<tr>
|
|
88
|
+
<td>Content</td>
|
|
89
|
+
<td>{countResults.content.same}</td>
|
|
90
|
+
<td>{countResults.content.updated}</td>
|
|
91
|
+
</tr>
|
|
92
|
+
<tr>
|
|
93
|
+
<td>Images</td>
|
|
94
|
+
<td>{countResults.images.same}</td>
|
|
95
|
+
<td>{countResults.images.updated}</td>
|
|
96
|
+
</tr>
|
|
97
|
+
<tr>
|
|
98
|
+
<td>Labels</td>
|
|
99
|
+
<td>{countResults.labels.same}</td>
|
|
100
|
+
<td>{countResults.labels.updated}</td>
|
|
101
|
+
</tr>
|
|
102
|
+
</tbody>
|
|
103
|
+
</table>
|
|
104
|
+
<div className="expandable-section">
|
|
105
|
+
<button onClick={() => setExpanded(!expanded)}>
|
|
106
|
+
{expanded ? "Collapse" : "Expand"} Updated Files
|
|
107
|
+
</button>
|
|
108
|
+
{expanded && (
|
|
109
|
+
<div className="updated-files">
|
|
110
|
+
<div className="updated-content">
|
|
111
|
+
<h4>Updated Content</h4>
|
|
112
|
+
<ul>{renderUpdatedFiles("content")}</ul>
|
|
113
|
+
</div>
|
|
114
|
+
<div className="updated-images">
|
|
115
|
+
<h4>Updated Images</h4>
|
|
116
|
+
<ul>{renderUpdatedFiles("image")}</ul>
|
|
117
|
+
</div>
|
|
118
|
+
<div className="updated-labels">
|
|
119
|
+
<h4>Updated Labels</h4>
|
|
120
|
+
<ul>{renderUpdatedFiles("label")}</ul>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
)}
|
|
124
|
+
</div>
|
|
125
|
+
</>
|
|
126
|
+
)}
|
|
127
|
+
</div>
|
|
128
|
+
);
|
|
137
129
|
};
|
|
138
130
|
|
|
139
131
|
export class CompletedModal extends Modal {
|
|
140
|
-
|
|
132
|
+
uploadResults: UploadResultsProps;
|
|
141
133
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
134
|
+
constructor(app: App, uploadResults: UploadResultsProps) {
|
|
135
|
+
super(app);
|
|
136
|
+
this.uploadResults = uploadResults;
|
|
137
|
+
}
|
|
146
138
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
139
|
+
override onOpen() {
|
|
140
|
+
const { contentEl } = this;
|
|
141
|
+
ReactDOM.render(
|
|
142
|
+
React.createElement(CompletedView, this.uploadResults),
|
|
143
|
+
contentEl,
|
|
144
|
+
);
|
|
145
|
+
}
|
|
154
146
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
147
|
+
override onClose() {
|
|
148
|
+
const { contentEl } = this;
|
|
149
|
+
ReactDOM.unmountComponentAtNode(contentEl);
|
|
150
|
+
contentEl.empty();
|
|
151
|
+
}
|
|
160
152
|
}
|