@social-mail/social-mail-client 1.2.781 → 1.2.783
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/dist/admin/AdminAppIndex.pack.js +51 -24
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +5 -5
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/common/FileUrlService.d.ts +8 -0
- package/dist/common/FileUrlService.d.ts.map +1 -0
- package/dist/common/FileUrlService.js +29 -0
- package/dist/common/FileUrlService.js.map +1 -0
- package/dist/common/controls/file-preview/FilePreview.d.ts.map +1 -1
- package/dist/common/controls/file-preview/FilePreview.js +12 -16
- package/dist/common/controls/file-preview/FilePreview.js.map +1 -1
- package/dist/common/folder-view/FolderViewControl.d.ts.map +1 -1
- package/dist/common/folder-view/FolderViewControl.js +5 -3
- package/dist/common/folder-view/FolderViewControl.js.map +1 -1
- package/dist/common/pages/files/FolderPage.d.ts.map +1 -1
- package/dist/common/pages/files/FolderPage.js +6 -4
- package/dist/common/pages/files/FolderPage.js.map +1 -1
- package/dist/common/pages/files/media/ChooseMediaPage.d.ts.map +1 -1
- package/dist/common/pages/files/media/ChooseMediaPage.js +5 -5
- package/dist/common/pages/files/media/ChooseMediaPage.js.map +1 -1
- package/dist/model/model.d.ts +1 -4
- package/dist/model/model.d.ts.map +1 -1
- package/dist/model/model.js +0 -3
- package/dist/model/model.js.map +1 -1
- package/dist/public/channel/ChannelApp.pack.js +0 -3
- package/dist/public/channel/ChannelApp.pack.js.map +1 -1
- package/dist/public/channel/ChannelApp.pack.min.js +1 -1
- package/dist/public/channel/ChannelApp.pack.min.js.map +1 -1
- package/dist/public/preview/zip/DownloadZip.pack.js +0 -3
- package/dist/public/preview/zip/DownloadZip.pack.js.map +1 -1
- package/dist/public/preview/zip/DownloadZip.pack.min.js +1 -1
- package/dist/public/preview/zip/DownloadZip.pack.min.js.map +1 -1
- package/dist/public/store/StoreApp.pack.js +0 -3
- package/dist/public/store/StoreApp.pack.js.map +1 -1
- package/dist/public/store/StoreApp.pack.min.js +1 -1
- package/dist/public/store/StoreApp.pack.min.js.map +1 -1
- package/dist/public/store/cart/ShoppingCart.pack.js +0 -3
- package/dist/public/store/cart/ShoppingCart.pack.js.map +1 -1
- package/dist/public/store/cart/ShoppingCart.pack.min.js +1 -1
- package/dist/public/store/cart/ShoppingCart.pack.min.js.map +1 -1
- package/dist/services/store/StoreItemService.d.ts.map +1 -1
- package/dist/services/store/StoreItemService.js +0 -1
- package/dist/services/store/StoreItemService.js.map +1 -1
- package/dist/site-editor/editor/WebSitePageEditor.js +3 -3
- package/dist/site-editor/editor/WebSitePageEditor.js.map +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.js +69 -45
- package/dist/site-editor-app/SiteEditorApp.pack.js.map +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.min.js +11 -11
- package/dist/site-editor-app/SiteEditorApp.pack.min.js.map +1 -1
- package/dist/site-editor-app/pages/websites/studio/WebSiteStudioPage.d.ts.map +1 -1
- package/dist/site-editor-app/pages/websites/studio/WebSiteStudioPage.js +3 -6
- package/dist/site-editor-app/pages/websites/studio/WebSiteStudioPage.js.map +1 -1
- package/dist/site-editor-app/pages/websites/templates/TemplateService.d.ts.map +1 -1
- package/dist/site-editor-app/pages/websites/templates/TemplateService.js +2 -3
- package/dist/site-editor-app/pages/websites/templates/TemplateService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +51 -24
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +5 -5
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/package.json +1 -1
- package/src/common/FileUrlService.ts +27 -0
- package/src/common/controls/file-preview/FilePreview.tsx +4 -4
- package/src/common/folder-view/FolderViewControl.tsx +2 -1
- package/src/common/pages/files/FolderPage.tsx +3 -2
- package/src/common/pages/files/media/ChooseMediaPage.tsx +2 -1
- package/src/model/model.ts +2 -4
- package/src/services/store/StoreItemService.ts +0 -1
- package/src/site-editor/editor/WebSitePageEditor.tsx +3 -3
- package/src/site-editor-app/pages/websites/studio/WebSiteStudioPage.tsx +3 -5
- package/src/site-editor-app/pages/websites/templates/TemplateService.ts +2 -3
package/package.json
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IAppFile } from "../model/model";
|
|
2
|
+
|
|
3
|
+
export const FileUrlService = {
|
|
4
|
+
|
|
5
|
+
downloadUrl(file: IAppFile) {
|
|
6
|
+
const url = file.url;
|
|
7
|
+
return url.replace("/view/", "/download/");
|
|
8
|
+
},
|
|
9
|
+
|
|
10
|
+
webP(file: IAppFile, size = 300) {
|
|
11
|
+
const url = file.url;
|
|
12
|
+
return url.replace("/view/", `/webp(${300})/`) + `.${size}.webp`;
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
webM(file: IAppFile) {
|
|
16
|
+
const url = file.url;
|
|
17
|
+
return url.replace("/view/", `/webm/`) + `.webm`;
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
webMBranded(file: IAppFile) {
|
|
21
|
+
const url = file.url;
|
|
22
|
+
return url.replace("/view/", `/webm-branded/`) + `.branded.webm`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
};
|
|
@@ -8,6 +8,7 @@ import Command from "@web-atoms/core/dist/core/Command";
|
|
|
8
8
|
import audioIcon from "@social-mail/social-mail-client/content/images/icons/audio.svg";
|
|
9
9
|
import { apiPath } from "../../apiPath";
|
|
10
10
|
import { fileUrl } from "../../fileUrl";
|
|
11
|
+
import { FileUrlService } from "../../FileUrlService";
|
|
11
12
|
|
|
12
13
|
styled.css `
|
|
13
14
|
border: solid 2px lightgray;
|
|
@@ -66,8 +67,7 @@ export default function FilePreview(a: IAppFile) {
|
|
|
66
67
|
const size = a.fileSize && toFileSize(a.fileSize);
|
|
67
68
|
|
|
68
69
|
const { emailID, appFileID, name, fileContentID } = a;
|
|
69
|
-
let src =
|
|
70
|
-
const p = { emailID, appFileID, name, fileContentID };
|
|
70
|
+
let src = FileUrlService.webP(a, 300);
|
|
71
71
|
|
|
72
72
|
if (/^audio\//i.test(a.contentType)) {
|
|
73
73
|
src = audioIcon;
|
|
@@ -76,7 +76,7 @@ export default function FilePreview(a: IAppFile) {
|
|
|
76
76
|
const command = AppCommands.getPreviewCommand(a);
|
|
77
77
|
if (command) {
|
|
78
78
|
return <a
|
|
79
|
-
href={command.displayRoute(
|
|
79
|
+
href={command.displayRoute({ emailID, appFileID, name, fileContentID })}
|
|
80
80
|
data-click-event="route"
|
|
81
81
|
title={size ? `${name} (${size})` : name}
|
|
82
82
|
data-file-preview="file-preview">
|
|
@@ -88,7 +88,7 @@ export default function FilePreview(a: IAppFile) {
|
|
|
88
88
|
</a>;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
return <a href={
|
|
91
|
+
return <a href={ FileUrlService.downloadUrl(a)}
|
|
92
92
|
title={size ? `${name} (${size})` : name}
|
|
93
93
|
target="_blank" data-file-preview="attachment">
|
|
94
94
|
<i class="fas fa-paperclip"/>
|
|
@@ -14,6 +14,7 @@ import { apiPath } from "../apiPath";
|
|
|
14
14
|
import { DeleteIconTextButton } from "../controls/buttons/IconButton";
|
|
15
15
|
import { fileUrl } from "../fileUrl";
|
|
16
16
|
import CloudFileService from "../pages/files/service/CloudFileService";
|
|
17
|
+
import { FileUrlService } from "../FileUrlService";
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
styled.css `
|
|
@@ -236,7 +237,7 @@ export default class FolderViewControl extends AtomControl {
|
|
|
236
237
|
</div>
|
|
237
238
|
<div>{item.isShared && <i title="Shared" class="fas fa-folder-user"/>}</div>
|
|
238
239
|
<div text={toFileSize(item.fileSize)}/>
|
|
239
|
-
<div><a href={
|
|
240
|
+
<div><a href={FileUrlService.downloadUrl(item)} target="_blank" download={true}><i class="fas fa-download"/></a></div>
|
|
240
241
|
<div><i
|
|
241
242
|
data-click-event="edit-shares"
|
|
242
243
|
class="fas fa-share"/></div>
|
|
@@ -17,6 +17,7 @@ import EditSharesPage from "./shares/EditSharesPage";
|
|
|
17
17
|
import InlinePopup from "@web-atoms/web-controls/dist/basic/InlinePopup";
|
|
18
18
|
import EditTemplatePage from "../../../web/page/templates/EditTemplatePage";
|
|
19
19
|
import FileHistoryPage from "./FileHistoryPage";
|
|
20
|
+
import { FileUrlService } from "../../FileUrlService";
|
|
20
21
|
|
|
21
22
|
const css = styled.css `
|
|
22
23
|
display: grid;
|
|
@@ -226,7 +227,7 @@ export default class FolderPage extends ContentPage {
|
|
|
226
227
|
</div>
|
|
227
228
|
<div>{item.isShared && <i title="Shared" class="fas fa-folder-user"/>}</div>
|
|
228
229
|
<div text={toFileSize(item.fileSize)}/>
|
|
229
|
-
<div><a href={
|
|
230
|
+
<div><a href={FileUrlService.downloadUrl(item)} target="_blank" download={true}><i class="fas fa-download"/></a></div>
|
|
230
231
|
<div><i
|
|
231
232
|
data-click-event="edit-shares"
|
|
232
233
|
class="fas fa-share"/></div>
|
|
@@ -245,7 +246,7 @@ export default class FolderPage extends ContentPage {
|
|
|
245
246
|
</div>
|
|
246
247
|
<div>{item.isShared && <i title="Shared" class="fas fa-folder-user"/>}</div>
|
|
247
248
|
<div text={toFileSize(item.fileSize)}/>
|
|
248
|
-
<div><a href={
|
|
249
|
+
<div><a href={FileUrlService.downloadUrl(item)} target="_blank" download={true}><i class="fas fa-download"/></a></div>
|
|
249
250
|
<div><i
|
|
250
251
|
data-click-event="edit-shares"
|
|
251
252
|
class="fas fa-share"/></div>
|
|
@@ -13,6 +13,7 @@ import UploadEvent from "@web-atoms/web-controls/dist/basic/UploadEvent";
|
|
|
13
13
|
import { SaveIconTextButton } from "../../../../common/controls/buttons/IconButton";
|
|
14
14
|
import { apiPath } from "../../../../common/apiPath";
|
|
15
15
|
import { fileUrl } from "../../../../common/fileUrl";
|
|
16
|
+
import { FileUrlService } from "../../../FileUrlService";
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
const css = styled.css `
|
|
@@ -198,7 +199,7 @@ export default class ChooseMediaPage extends PopupWindowPage<
|
|
|
198
199
|
<label class="file-name" title={item.name} text={item.name}/>
|
|
199
200
|
<img
|
|
200
201
|
class="file-preview"
|
|
201
|
-
src={
|
|
202
|
+
src={ FileUrlService.webP(item, 300)} />
|
|
202
203
|
</div>;
|
|
203
204
|
}
|
|
204
205
|
}
|
package/src/model/model.ts
CHANGED
|
@@ -40,7 +40,6 @@ export interface IAppFile extends IClrEntity {
|
|
|
40
40
|
sourceEmailLogID?: number;
|
|
41
41
|
postID?: string;
|
|
42
42
|
url?: string;
|
|
43
|
-
downloadUrl?: string;
|
|
44
43
|
fileContent?: IFileContent;
|
|
45
44
|
creator?: IUser;
|
|
46
45
|
parent?: IAppFile;
|
|
@@ -64,11 +63,11 @@ export interface IAppFile extends IClrEntity {
|
|
|
64
63
|
|
|
65
64
|
export const AppFileContentDispositionArray = [{"label":"attachment","value":"attachment"},{"label":"inline","value":"inline"}];
|
|
66
65
|
|
|
67
|
-
export const AppFile: IModel<IAppFile,{"storeItemFiles":"external","channelEmailFiles":"external","channelFiles":"external","children":"external","templateSnapshot":"external"},
|
|
66
|
+
export const AppFile: IModel<IAppFile,{"storeItemFiles":"external","channelEmailFiles":"external","channelFiles":"external","children":"external","templateSnapshot":"external"},any> = new Model<IAppFile>(
|
|
68
67
|
"AppFile",
|
|
69
68
|
["appFileID"],
|
|
70
69
|
{ isFolder: false,name: "",fileSize: 0,contentType: "",isDeleted: false,isShared: false,dateCreated: new DefaultFactory(() => new DateTime()) },
|
|
71
|
-
{"name":"app_files","keys":[{"name":"appFileID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"path","type":"string","dataType":"AsciiChar","length":400,"default":["path","\"\""]},{"name":"isFolder","type":"boolean","dataType":"Boolean","default":["isFolder","false"]},{"name":"name","type":"string","dataType":"Char","length":400,"default":["name","\"\""]},{"name":"fileSize","type":"number","dataType":"BigInt","default":["fileSize","0"]},{"name":"contentType","type":"string","dataType":"Char","length":200,"default":["contentType","\"\""]},{"name":"contentDisposition","type":"string","dataType":"AsciiChar","length":10,"default":["contentDisposition","\"attachment\""]},{"name":"contentID","type":"string","dataType":"Char","default":["contentID","\"\""]},{"name":"fileContentID","type":"number","dataType":"BigInt"},{"name":"creatorID","type":"number","dataType":"BigInt"},{"name":"parentID","type":"number","dataType":"BigInt"},{"name":"emailID","type":"number","dataType":"BigInt"},{"name":"isDeleted","type":"boolean","dataType":"Boolean","default":["isDeleted","false"]},{"name":"isShared","type":"boolean","dataType":"Boolean","default":["isShared","false"]},{"name":"dateCreated","type":"DateTime","dataType":"DateTimeOffset","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTimeOffset","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"versions","type":"number","dataType":"Int","default":["versions","0"]}],"relations":[{"name":"fileContent","fkMap":[{"fk":"fileContentID","relatedKey":"fileContentID"}],"relatedName":"FileContent"},{"name":"creator","fkMap":[{"fk":"creatorID","relatedKey":"userID"}],"relatedName":"User"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"AppFile"},{"name":"email","fkMap":[{"fk":"emailID","relatedKey":"emailID"}],"relatedName":"Email"},{"name":"mailboxLogos","isCollection":true,"isInverse":true,"relatedName":"Mailbox"},{"name":"websiteFolder","isCollection":false,"isInverse":true,"relatedName":"WebSite"},{"name":"currentVersionWebSites","isCollection":true,"isInverse":true,"relatedName":"WebSite"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"fileVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"folderVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"accessList","isCollection":true,"isInverse":true,"relatedName":"AppFileAccess"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"AppFileTag"},{"name":"previewContacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"storeJournals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"storeMediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"websiteVersions","isCollection":true,"isInverse":true,"relatedName":"WebSiteVersion"}],"queries":{"storeItemFiles":"external","channelEmailFiles":"external","channelFiles":"external","children":"external","templateSnapshot":"external"}
|
|
70
|
+
{"name":"app_files","keys":[{"name":"appFileID","type":"number","generated":"identity","dataType":"BigInt"}],"properties":[{"name":"path","type":"string","dataType":"AsciiChar","length":400,"default":["path","\"\""]},{"name":"isFolder","type":"boolean","dataType":"Boolean","default":["isFolder","false"]},{"name":"name","type":"string","dataType":"Char","length":400,"default":["name","\"\""]},{"name":"fileSize","type":"number","dataType":"BigInt","default":["fileSize","0"]},{"name":"contentType","type":"string","dataType":"Char","length":200,"default":["contentType","\"\""]},{"name":"contentDisposition","type":"string","dataType":"AsciiChar","length":10,"default":["contentDisposition","\"attachment\""]},{"name":"contentID","type":"string","dataType":"Char","default":["contentID","\"\""]},{"name":"fileContentID","type":"number","dataType":"BigInt"},{"name":"creatorID","type":"number","dataType":"BigInt"},{"name":"parentID","type":"number","dataType":"BigInt"},{"name":"emailID","type":"number","dataType":"BigInt"},{"name":"isDeleted","type":"boolean","dataType":"Boolean","default":["isDeleted","false"]},{"name":"isShared","type":"boolean","dataType":"Boolean","default":["isShared","false"]},{"name":"dateCreated","type":"DateTime","dataType":"DateTimeOffset","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","dataType":"DateTimeOffset","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"versions","type":"number","dataType":"Int","default":["versions","0"]}],"relations":[{"name":"fileContent","fkMap":[{"fk":"fileContentID","relatedKey":"fileContentID"}],"relatedName":"FileContent"},{"name":"creator","fkMap":[{"fk":"creatorID","relatedKey":"userID"}],"relatedName":"User"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"AppFile"},{"name":"email","fkMap":[{"fk":"emailID","relatedKey":"emailID"}],"relatedName":"Email"},{"name":"mailboxLogos","isCollection":true,"isInverse":true,"relatedName":"Mailbox"},{"name":"websiteFolder","isCollection":false,"isInverse":true,"relatedName":"WebSite"},{"name":"currentVersionWebSites","isCollection":true,"isInverse":true,"relatedName":"WebSite"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"fileVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"folderVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"accessList","isCollection":true,"isInverse":true,"relatedName":"AppFileAccess"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"AppFileTag"},{"name":"previewContacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"storeJournals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"storeMediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"websiteVersions","isCollection":true,"isInverse":true,"relatedName":"WebSiteVersion"}],"queries":{"storeItemFiles":"external","channelEmailFiles":"external","channelFiles":"external","children":"external","templateSnapshot":"external"}}
|
|
72
71
|
);
|
|
73
72
|
modelEntitySchemas["AppFile"] = AppFile;
|
|
74
73
|
|
|
@@ -2095,4 +2094,3 @@ iterator.relatedModel = schema[iterator.relatedName];
|
|
|
2095
2094
|
}
|
|
2096
2095
|
};
|
|
2097
2096
|
fixRelatedSchemas(modelEntitySchemas);
|
|
2098
|
-
|
|
@@ -136,7 +136,7 @@ export default class WebSitePageEditor extends HtmlPageEditor {
|
|
|
136
136
|
@Action({ onEvent: "open-variables"})
|
|
137
137
|
async openVariables() {
|
|
138
138
|
let file = await this.cloudFileService.children(this.folder.appFileID, "styles/vars.css").firstOrDefault();
|
|
139
|
-
let content = await FetchBuilder.get(file.
|
|
139
|
+
let content = await FetchBuilder.get(file.url).asText();
|
|
140
140
|
const modifiedContent = await PageNavigator.pushPageForResult(CodeEditorPage, { fileName: file.name, content } );
|
|
141
141
|
if (modifiedContent !== content) {
|
|
142
142
|
// save ...
|
|
@@ -165,7 +165,7 @@ export default class WebSitePageEditor extends HtmlPageEditor {
|
|
|
165
165
|
pending.push(async () => {
|
|
166
166
|
const file = await this.cloudFileService.children(this.folder.appFileID, src)
|
|
167
167
|
.firstOrDefault();
|
|
168
|
-
const text = await FetchBuilder.get(file.
|
|
168
|
+
const text = await FetchBuilder.get(file.url).asText();
|
|
169
169
|
const parser = new DOMParser();
|
|
170
170
|
const dom = parser.parseFromString(text, "text/html");
|
|
171
171
|
const children = Array.from(dom.body.children);
|
|
@@ -185,7 +185,7 @@ export default class WebSitePageEditor extends HtmlPageEditor {
|
|
|
185
185
|
if (!stylerFile) {
|
|
186
186
|
stylerFile = await this.createFile("styler.css", StylerSet.instance.toString());
|
|
187
187
|
} else {
|
|
188
|
-
const stylerContent = await FetchBuilder.get(stylerFile.
|
|
188
|
+
const stylerContent = await FetchBuilder.get(stylerFile.url).asText();
|
|
189
189
|
const newStyle = StylerSet.instance.toString();
|
|
190
190
|
if (stylerContent !== newStyle) {
|
|
191
191
|
stylerFile = await this.createFile("styler.css", newStyle);
|
|
@@ -222,7 +222,7 @@ export default class WebSiteStudioPage extends ContentPage {
|
|
|
222
222
|
<WebSitePageEditor
|
|
223
223
|
class="file-list"
|
|
224
224
|
selectedFile={Bind.oneWay(() => this.selectedFile)}
|
|
225
|
-
baseUrl={Bind.oneWay(() => apiPath(
|
|
225
|
+
baseUrl={Bind.oneWay(() => apiPath(`${this.root.url}${this.cloudFileService.getFilePath(this.root, this.selectedFile)}`))}
|
|
226
226
|
folder={this.root}
|
|
227
227
|
presenter={Bind.presenter((c) => this.htmlEditor = c)}
|
|
228
228
|
event-html-page-changed={(ce: CustomEvent<string>) => this.modified = true}
|
|
@@ -240,7 +240,7 @@ export default class WebSiteStudioPage extends ContentPage {
|
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
async downloadHtml(file: IAppFile, cancelToken) {
|
|
243
|
-
const text = await FetchBuilder.get(file.
|
|
243
|
+
const text = await FetchBuilder.get(file.url)
|
|
244
244
|
.cancelToken(cancelToken)
|
|
245
245
|
.asText(true);
|
|
246
246
|
this.pageContent = text;
|
|
@@ -334,7 +334,6 @@ export default class WebSiteStudioPage extends ContentPage {
|
|
|
334
334
|
const result = await this.cloudFileService.saveFile({ appFileID: this.selectedFile.appFileID, content });
|
|
335
335
|
this.selectedFile.url = result.url;
|
|
336
336
|
this.selectedFile.fileContentID = result.fileContentID;
|
|
337
|
-
this.selectedFile.downloadUrl = result.downloadUrl;
|
|
338
337
|
this.webSite.isModified = true;
|
|
339
338
|
this.modified = false;
|
|
340
339
|
this.htmlEditor.undoRedo.changed = false;
|
|
@@ -356,13 +355,12 @@ export default class WebSiteStudioPage extends ContentPage {
|
|
|
356
355
|
|
|
357
356
|
@Action({ onEvent: "file-history"})
|
|
358
357
|
async fileHistory(file: IAppFile) {
|
|
359
|
-
const { fileContentID, url
|
|
358
|
+
const { fileContentID, url } = await PageNavigator.pushPageForResult(FileHistoryPage, file);
|
|
360
359
|
// restore...
|
|
361
360
|
const { selectedFile } = this;
|
|
362
361
|
if (file.appFileID === selectedFile?.appFileID) {
|
|
363
362
|
// refresh...
|
|
364
363
|
selectedFile.url = url;
|
|
365
|
-
selectedFile.downloadUrl = downloadUrl;
|
|
366
364
|
selectedFile.fileContentID = fileContentID;
|
|
367
365
|
}
|
|
368
366
|
}
|
|
@@ -89,7 +89,6 @@ export default class TemplateService extends TaskManager {
|
|
|
89
89
|
if (destFile.fileContentID !== source.fileContentID) {
|
|
90
90
|
destFile.fileContentID = source.fileContentID;
|
|
91
91
|
await this.entityService.save(destFile, (c) => c);
|
|
92
|
-
destFile.downloadUrl = source.downloadUrl;
|
|
93
92
|
destFile.url = source.url;
|
|
94
93
|
}
|
|
95
94
|
|
|
@@ -116,7 +115,7 @@ export default class TemplateService extends TaskManager {
|
|
|
116
115
|
}
|
|
117
116
|
|
|
118
117
|
if (/\.css$/i.test(destFile.name)) {
|
|
119
|
-
let css = await FetchBuilder.get(destFile.
|
|
118
|
+
let css = await FetchBuilder.get(destFile.url).asText();
|
|
120
119
|
css = this.updateCssReferences(source, destFile, css);
|
|
121
120
|
if (css) {
|
|
122
121
|
await this.cloudFileService.saveFile({
|
|
@@ -180,7 +179,7 @@ export default class TemplateService extends TaskManager {
|
|
|
180
179
|
|
|
181
180
|
async updateHtmlReferences(source: IAppFile, destFile: IAppFile, siteRoot: string) {
|
|
182
181
|
const parser = new DOMParser();
|
|
183
|
-
const text = await FetchBuilder.get(destFile.
|
|
182
|
+
const text = await FetchBuilder.get(destFile.url).asText();
|
|
184
183
|
const dom = parser.parseFromString(text, "text/html");
|
|
185
184
|
|
|
186
185
|
let modified = false;
|