@social-mail/social-mail-client 1.0.39 → 1.0.41
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 +36 -18
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +3 -3
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/common/events/CommonEvents.js +16 -0
- package/dist/common/events/CommonEvents.js.map +1 -0
- package/dist/model/model.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +36 -18
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +3 -3
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/page/mails/ConversationPage.js +3 -2
- package/dist/web/page/mails/ConversationPage.js.map +1 -1
- package/dist/web/page/mails/service/ConversationService.js +13 -15
- package/dist/web/page/mails/service/ConversationService.js.map +1 -1
- package/package.json +1 -1
- package/src/common/events/CommonEvents.ts +6 -0
- package/src/model/model.ts +1 -1
- package/src/web/page/mails/ConversationPage.tsx +23 -19
- package/src/web/page/mails/service/ConversationService.tsx +11 -8
|
@@ -87,8 +87,9 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
|
|
|
87
87
|
version: this.version,
|
|
88
88
|
cancelToken
|
|
89
89
|
})), {
|
|
90
|
-
itemRenderer:
|
|
90
|
+
itemRenderer: thread => {
|
|
91
91
|
var _a;
|
|
92
|
+
const item = thread.email;
|
|
92
93
|
return XNode.create("div", {
|
|
93
94
|
class: css,
|
|
94
95
|
"data-sent": !item.received
|
|
@@ -103,7 +104,7 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
|
|
|
103
104
|
title: "Reply"
|
|
104
105
|
})), XNode.create("div", Object.assign({
|
|
105
106
|
class: "message"
|
|
106
|
-
}, renderMail(
|
|
107
|
+
}, renderMail(thread))), ((_a = item.attachments) === null || _a === void 0 ? void 0 : _a.length) && XNode.create("div", {
|
|
107
108
|
class: "attachments",
|
|
108
109
|
"data-layout": "flex-wrap-padding"
|
|
109
110
|
}, ...item.attachments.map(a => XNode.create("div", null, XNode.create("i", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ConversationPage","css","id","fixLinks","_export","setters","_tslib","ContentPage","_webAtomsWebControlsDistMobileAppMobileApp","_modelModel","Email","EmailRecipient","_webAtomsCoreDistCoreXNode","XNode","default","_webAtomsWebControlsDistBasicAtomRepeater","AtomRepeater","_commonControlsRepeaterInfiniteRepeater","InfiniteRepeater","_serviceConversationService","ConversationService","renderMail","_webAtomsCoreDistCoreInjectProperty","InjectProperty","_webAtomsCoreDistStyleStyled","styled","_webAtomsCoreDistViewModelAction","Action","_webAtomsWebControlsDistPageNavigator","PageNavigator","_ComposeMailPage","ComposeMailPage","_servicesSocketSockets","MailboxSocket","execute","installLocal","mID","setTimeout","x","m","document","getElementById","querySelectorAll","forEach","a","target","constructor","mails","search","version","init","mb","parameters","title","lastEmail","senderID","mailboxID","_a","emailAddress","senderName","registerDisposable","resolve","join","toString","newMail","renderer","create","Object","assign","items","pagedItems","start","c","e","cancelToken","conversationService","list","size","emailAddressID","itemRenderer","item","class","received","text","subject","attachments","length","map","name","href","appFileID","fileContentID","replyEmail","
|
|
1
|
+
{"version":3,"names":["ConversationPage","css","id","fixLinks","_export","setters","_tslib","ContentPage","_webAtomsWebControlsDistMobileAppMobileApp","_modelModel","Email","EmailRecipient","_webAtomsCoreDistCoreXNode","XNode","default","_webAtomsWebControlsDistBasicAtomRepeater","AtomRepeater","_commonControlsRepeaterInfiniteRepeater","InfiniteRepeater","_serviceConversationService","ConversationService","renderMail","_webAtomsCoreDistCoreInjectProperty","InjectProperty","_webAtomsCoreDistStyleStyled","styled","_webAtomsCoreDistViewModelAction","Action","_webAtomsWebControlsDistPageNavigator","PageNavigator","_ComposeMailPage","ComposeMailPage","_servicesSocketSockets","MailboxSocket","execute","installLocal","mID","setTimeout","x","m","document","getElementById","querySelectorAll","forEach","a","target","constructor","mails","search","version","init","mb","parameters","title","lastEmail","senderID","mailboxID","_a","emailAddress","senderName","registerDisposable","resolve","join","toString","newMail","renderer","create","Object","assign","items","pagedItems","start","c","e","cancelToken","conversationService","list","size","emailAddressID","itemRenderer","thread","item","email","class","received","text","subject","attachments","length","map","name","href","appFileID","fileContentID","replyEmail","parse","JSON","headers","emailAddressText","_b","replyTo","parentID","emailID","child","recipients","htmlBody","pushPageForResult","model","__decorate","onEvent"],"sources":["../../../../src/web/page/mails/ConversationPage.tsx"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/core/dist/di/Inject", "../../../../services/EntityService", "../../../../model/model", "../../../../common/Sql", "@web-atoms/email-dom/dist/DomToString", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/core/AtomUI", "@web-atoms/date-time/dist/DateTime"], function (_export, _context) {
|
|
1
|
+
System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/core/dist/di/Inject", "../../../../services/EntityService", "../../../../model/model", "../../../../common/Sql", "@web-atoms/email-dom/dist/DomToString", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/core/AtomUI", "@web-atoms/date-time/dist/DateTime", "../../../../common/events/CommonEvents"], function (_export, _context) {
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var __awaiter, __decorate, __metadata, DISingleton, Inject, EntityService,
|
|
4
|
+
var __awaiter, __decorate, __metadata, DISingleton, Inject, EntityService, MailboxThreadEmail, Sql, DomToString, XNode, AtomControl, descendentElementIterator, DateTime, CommonEvents, renderMail, ConversationService;
|
|
5
5
|
return {
|
|
6
6
|
setters: [function (_tslib) {
|
|
7
7
|
__awaiter = _tslib.__awaiter;
|
|
@@ -14,7 +14,6 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
|
|
|
14
14
|
}, function (_servicesEntityService) {
|
|
15
15
|
EntityService = _servicesEntityService.default;
|
|
16
16
|
}, function (_modelModel) {
|
|
17
|
-
Email = _modelModel.Email;
|
|
18
17
|
MailboxThreadEmail = _modelModel.MailboxThreadEmail;
|
|
19
18
|
}, function (_commonSql) {
|
|
20
19
|
Sql = _commonSql.Sql;
|
|
@@ -28,6 +27,8 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
|
|
|
28
27
|
descendentElementIterator = _webAtomsCoreDistWebCoreAtomUI.descendentElementIterator;
|
|
29
28
|
}, function (_webAtomsDateTimeDistDateTime) {
|
|
30
29
|
DateTime = _webAtomsDateTimeDistDateTime.default;
|
|
30
|
+
}, function (_commonEventsCommonEvents) {
|
|
31
|
+
CommonEvents = _commonEventsCommonEvents.CommonEvents;
|
|
31
32
|
}],
|
|
32
33
|
execute: function () {
|
|
33
34
|
_export("renderMail", renderMail = AtomControl.registerProperty("data-html", "html", (c, e, value) => {
|
|
@@ -35,7 +36,8 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
|
|
|
35
36
|
e.innerHTML = "";
|
|
36
37
|
return;
|
|
37
38
|
}
|
|
38
|
-
const
|
|
39
|
+
const thread = value;
|
|
40
|
+
const mail = thread.email;
|
|
39
41
|
const html = mail.htmlBody;
|
|
40
42
|
const msg = document.createElement("div");
|
|
41
43
|
if (!html) {
|
|
@@ -65,17 +67,16 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
|
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
e.appendChild(msg);
|
|
68
|
-
if (!
|
|
70
|
+
if (!thread.timeRead) {
|
|
69
71
|
const timeRead = DateTime.utcNow;
|
|
70
|
-
|
|
72
|
+
thread.timeRead = timeRead;
|
|
71
73
|
const control = AtomControl.from(e);
|
|
72
74
|
const entityService = control.app.resolve(EntityService);
|
|
73
|
-
|
|
74
|
-
emailID
|
|
75
|
-
} = mail;
|
|
76
|
-
entityService.save(Email.patch(mail, {
|
|
75
|
+
entityService.save(MailboxThreadEmail.patch(thread, {
|
|
77
76
|
timeRead
|
|
78
|
-
})).
|
|
77
|
+
})).then(() => {
|
|
78
|
+
CommonEvents.onThreadMarkedAsRead.dispatchEvent(thread);
|
|
79
|
+
}, console.error);
|
|
79
80
|
}
|
|
80
81
|
return;
|
|
81
82
|
}));
|
|
@@ -105,10 +106,7 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
|
|
|
105
106
|
size,
|
|
106
107
|
cancelToken
|
|
107
108
|
});
|
|
108
|
-
return
|
|
109
|
-
total: emails.total,
|
|
110
|
-
items: emails.items.map(x => x.email)
|
|
111
|
-
};
|
|
109
|
+
return emails;
|
|
112
110
|
});
|
|
113
111
|
}
|
|
114
112
|
renderText(html) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DISingleton","_webAtomsCoreDistDiDISingleton","default","_webAtomsCoreDistDiInject","Inject","_servicesEntityService","EntityService","_modelModel","
|
|
1
|
+
{"version":3,"names":["DISingleton","_webAtomsCoreDistDiDISingleton","default","_webAtomsCoreDistDiInject","Inject","_servicesEntityService","EntityService","_modelModel","MailboxThreadEmail","_commonSql","Sql","_webAtomsEmailDomDistDomToString","DomToString","_webAtomsCoreDistCoreXNode","XNode","_webAtomsCoreDistWebControlsAtomControl","AtomControl","_webAtomsCoreDistWebCoreAtomUI","descendentElementIterator","_webAtomsDateTimeDistDateTime","DateTime","_commonEventsCommonEvents","CommonEvents","execute","_export","renderMail","registerProperty","c","e","value","innerHTML","thread","mail","email","html","htmlBody","msg","document","createElement","iterator","split","p","appendChild","createTextNode","tagName","src","getAttribute","startsWith","cid","substring","a","attachments","find","x","contentID","setAttribute","appFileID","fileContentID","name","target","timeRead","utcNow","control","from","entityService","app","resolve","save","patch","then","onThreadMarkedAsRead","dispatchEvent","console","error","ConversationService","list","search","mailboxID","emailAddressID","start","size","version","cancelToken","q","query","where","text","iLike","subject","textBody","emails","include","recipients","forEach","r","emailAddress","orderByDescending","emailID","toPagedList","renderText","div","textContent","renderHtml","toHtml","create","map","__decorate"],"sources":["../../../../../src/web/page/mails/service/ConversationService.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;MAAOA,WAAW,GAAAC,8BAAA,CAAAC,OAAA;IAAA,aAAAC,yBAAA;MACTC,MAAM,GAAAD,yBAAA,CAANC,MAAM;IAAA,aAAAC,sBAAA;MACRC,aAAa,GAAAD,sBAAA,CAAAH,OAAA;IAAA,aAAAK,WAAA;MACyBC,kBAAkB,GAAAD,WAAA,CAAlBC,kBAAkB;IAAA,aAAAC,UAAA;MACtDC,GAAG,GAAAD,UAAA,CAAHC,GAAG;IAAA,aAAAC,gCAAA;MACLC,WAAW,GAAAD,gCAAA,CAAAT,OAAA;IAAA,aAAAW,0BAAA;MACXC,KAAK,GAAAD,0BAAA,CAAAX,OAAA;IAAA,aAAAa,uCAAA;MACHC,WAAW,GAAAD,uCAAA,CAAXC,WAAW;IAAA,aAAAC,8BAAA;MACXC,yBAAyB,GAAAD,8BAAA,CAAzBC,yBAAyB;IAAA,aAAAC,6BAAA;MAC3BC,QAAQ,GAAAD,6BAAA,CAAAjB,OAAA;IAAA,aAAAmB,yBAAA;MACNC,YAAY,GAAAD,yBAAA,CAAZC,YAAY;IAAA;IAAAC,OAAA,WAAAA,CAAA;MAAAC,OAAA,eAERC,UAAU,GAAGT,WAAW,CAACU,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,CAACC,CAAC,EAAEC,CAAC,EAAEC,KAAK,KAAI;QACxF,IAAI,CAACA,KAAK,EAAE;UACRD,CAAC,CAACE,SAAS,GAAG,EAAE;UAChB;;QAEJ,MAAMC,MAAM,GAAGF,KAA4B;QAC3C,MAAMG,IAAI,GAAGD,MAAM,CAACE,KAAK;QACzB,MAAMC,IAAI,GAAGF,IAAI,CAACG,QAAQ;QAC1B,MAAMC,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;QACzC,IAAG,CAACJ,IAAI,EAAE;UACN,KAAK,MAAMK,QAAQ,IAAIL,IAAI,CAACM,KAAK,CAAC,IAAI,CAAC,EAAE;YACrC,MAAMC,CAAC,GAAGJ,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;YACrCG,CAAC,CAACC,WAAW,CAACL,QAAQ,CAACM,cAAc,CAACJ,QAAQ,CAAC,CAAC;YAChDH,GAAG,CAACM,WAAW,CAACD,CAAC,CAAC;;UAEtBb,CAAC,CAACc,WAAW,CAACN,GAAG,CAAC;UAClB;;QAEJA,GAAG,CAACN,SAAS,GAAGI,IAAI;QACpB,KAAK,MAAMK,QAAQ,IAAIrB,yBAAyB,CAACkB,GAAG,CAAC,EAAE;UACnD,IAAGG,QAAQ,CAACK,OAAO,KAAK,KAAK,EAAE;YAC3B,MAAMC,GAAG,GAAGN,QAAQ,CAACO,YAAY,CAAC,KAAK,CAAC;YACxC,IAAID,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEE,UAAU,CAAC,MAAM,CAAC,EAAE;cACzB,MAAMC,GAAG,GAAGH,GAAG,CAACI,SAAS,CAAC,CAAC,CAAC;cAC5B,MAAMC,CAAC,GAAGlB,IAAI,CAACmB,WAAW,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,SAAS,KAAKN,GAAG,CAAC;cAC3D,IAAIE,CAAC,EAAE;gBACHX,QAAQ,CAACgB,YAAY,CAAC,KAAK,EAAE,cAAcL,CAAC,CAACM,SAAS,IAAIN,CAAC,CAACO,aAAa,IAAIP,CAAC,CAACQ,IAAI,EAAE,CAAC;;;YAG9F;;UAEJ,IAAInB,QAAQ,CAACK,OAAO,KAAK,GAAG,EAAE;YACzBL,QAA8B,CAACoB,MAAM,GAAG,QAAQ;;;QAGzD/B,CAAC,CAACc,WAAW,CAACN,GAAG,CAAC;QAClB,IAAI,CAACL,MAAM,CAAC6B,QAAQ,EAAE;UAClB,MAAMA,QAAQ,GAAGxC,QAAQ,CAACyC,MAAM;UAChC9B,MAAM,CAAC6B,QAAQ,GAAGA,QAAQ;UAC1B,MAAME,OAAO,GAAG9C,WAAW,CAAC+C,IAAI,CAACnC,CAAC,CAAC;UACnC,MAAMoC,aAAa,GAAGF,OAAO,CAACG,GAAG,CAACC,OAAO,CAAC5D,aAAa,CAAC;UACxD0D,aAAa,CAACG,IAAI,CAAC3D,kBAAkB,CAAC4D,KAAK,CAACrC,MAAM,EAAE;YAChD6B;WACH,CAAC,CAAC,CAACS,IAAI,CAAC,MAAK;YACV/C,YAAY,CAACgD,oBAAoB,CAACC,aAAa,CAACxC,MAAM,CAAC;UAC3D,CAAC,EAAEyC,OAAO,CAACC,KAAK,CAAC;;QAErB;MACJ,CAAC,CAAC;MAGmBC,mBAAmB,GAAzB,MAAMA,mBAAmB;QAKvBC,IAAIA,CAAC;UACdC,MAAM,GAAG,EAAE;UACXC,SAAS;UACTC,cAAc;UACdC,KAAK,GAAG,CAAC;UACTC,IAAI,GAAG,GAAG;UACVC,OAAO,GAAG,CAAC;UACXC;QAAW,CACd;;YACG,IAAIC,CAAC,GAAG,IAAI,CAACnB,aAAa,CAACoB,KAAK,CAAC5E,kBAAkB,CAAC,CAC/C6E,KAAK,CAAC;cAAER,SAAS;cAAEC;YAAc,CAAE,EAAGrC,CAAC,IACnCY,CAAC,IAAKA,CAAC,CAACwB,SAAS,KAAKpC,CAAC,CAACoC,SAAS,IAC3BxB,CAAC,CAACyB,cAAc,KAAKrC,CAAC,CAACqC,cAAc,CAAC;YACrD,IAAIF,MAAM,EAAE;cACRA,MAAM,GAAG,IAAIA,MAAM,GAAG;cACtBO,CAAC,GAAGA,CAAC,CAACE,KAAK,CAAC;gBAAET;cAAM,CAAE,EAAGnC,CAAC,IAAMY,CAAC,IAAK3C,GAAG,CAAC4E,IAAI,CAACC,KAAK,CAAClC,CAAC,CAACpB,KAAK,CAACuD,OAAO,EAAE/C,CAAC,CAACmC,MAAM,CAAC,IAAIlE,GAAG,CAAC4E,IAAI,CAACC,KAAK,CAAClC,CAAC,CAACpB,KAAK,CAACwD,QAAQ,EAAEhD,CAAC,CAACmC,MAAM,CAAC,CAAC;;YAElI,MAAMc,MAAM,GAAG,MAAMP,CAAC,CACjBQ,OAAO,CAAEtC,CAAC,IAAK,CAACA,CAAC,CAACpB,KAAK,CAAC2D,UAAU,CAACC,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,CAAC,EAAE1C,CAAC,CAACpB,KAAK,CAACkB,WAAW,CAAC,CAAC,CACxF6C,iBAAiB,CAAE3C,CAAC,IAAKA,CAAC,CAAC4C,OAAO,CAAC,CACnCC,WAAW,CAAC;cAAEnB,KAAK;cAAEC,IAAI;cAAEE;YAAW,CAAE,CAAC;YAC9C,OAAOQ,MAAM;UACjB,CAAC;;QAEMS,UAAUA,CAACjE,IAAY;UAC1B,MAAMkE,GAAG,GAAG/D,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;UACzC8D,GAAG,CAACtE,SAAS,GAAGI,IAAI;UACpB,OAAOkE,GAAG,CAACC,WAAW;QAC1B;QAEOC,UAAUA,CAACpE,IAAY;UAC1B,MAAMkE,GAAG,GAAG/D,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;UACzC8D,GAAG,CAACtE,SAAS,GAAGI,IAAI;UAEpB,OAAOkE,GAAG,CAACtE,SAAS;QACxB;QAGOyE,MAAMA,CAACd,QAAgB;UAC1B,OAAO7E,WAAW,CAACE,KAAA,CAAA0F,MAAA,iBACTf,QAAQ,CAACjD,KAAK,CAAC,IAAI,CAAC,CAACiE,GAAG,CAAEhE,CAAC,IAAK3B,KAAA,CAAA0F,MAAA;YAAGlB,IAAI,EAAE7C;UAAC,EAAG,CAAC,CAClD,CAAC;QACX;OAEH;MA/CGiE,UAAA,EAACtG,MAAM,E,0BACgBE,aAAa,E,yDAAC;MAHpBoE,mBAAmB,GAAAgC,UAAA,EADvC1G,WAAW,EAAE,C,EACO0E,mBAAmB,CAiDvC;MAAAlD,OAAA,YAjDoBkD,mBAAmB;IAAA;EAAA;AAAA"}
|
package/package.json
CHANGED
package/src/model/model.ts
CHANGED
|
@@ -150,7 +150,6 @@ export interface IEmail extends IClrEntity {
|
|
|
150
150
|
status?: "queued" | "received" | "draft" | "pending-approval" | "scheduled" | "sent" | "sent-failed";
|
|
151
151
|
originalFileID?: number | null;
|
|
152
152
|
workflowID?: string | null;
|
|
153
|
-
timeRead?: DateTime | null;
|
|
154
153
|
parentID?: number | null;
|
|
155
154
|
senderEmail?: IEmailAddress;
|
|
156
155
|
originalFile?: IAppFile;
|
|
@@ -252,6 +251,7 @@ export interface IMailboxThreadEmail extends IClrEntity {
|
|
|
252
251
|
mailboxID?: number;
|
|
253
252
|
emailAddressID?: number;
|
|
254
253
|
emailID?: number;
|
|
254
|
+
timeRead?: DateTime;
|
|
255
255
|
mailbox?: IMailbox;
|
|
256
256
|
email?: IEmail;
|
|
257
257
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContentPage } from "@web-atoms/web-controls/dist/mobile-app/MobileApp";
|
|
2
|
-
import { Email, EmailRecipient, IEmail, IMailboxThread } from "../../../model/model";
|
|
2
|
+
import { Email, EmailRecipient, IEmail, IMailboxThread, IMailboxThreadEmail } from "../../../model/model";
|
|
3
3
|
import { Inject } from "@web-atoms/core/dist/di/Inject";
|
|
4
4
|
import MailService from "./service/MailService";
|
|
5
5
|
import XNode from "@web-atoms/core/dist/core/XNode";
|
|
@@ -47,7 +47,7 @@ export default class ConversationPage extends ContentPage {
|
|
|
47
47
|
@InjectProperty
|
|
48
48
|
private conversationService: ConversationService;
|
|
49
49
|
|
|
50
|
-
private mails:
|
|
50
|
+
private mails: IMailboxThreadEmail[] = [];
|
|
51
51
|
|
|
52
52
|
private search: string = "";
|
|
53
53
|
private version = 1;
|
|
@@ -79,23 +79,27 @@ export default class ConversationPage extends ContentPage {
|
|
|
79
79
|
version: this.version,
|
|
80
80
|
cancelToken
|
|
81
81
|
}))}
|
|
82
|
-
itemRenderer={(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
<
|
|
88
|
-
data-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
{ ...
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
itemRenderer={(thread: IMailboxThreadEmail) => {
|
|
83
|
+
const item = thread.email;
|
|
84
|
+
return <div
|
|
85
|
+
class={css}
|
|
86
|
+
data-sent={!item.received}>
|
|
87
|
+
<div data-layout="row">
|
|
88
|
+
<div data-flex="stretch-full" text={item.subject}/>
|
|
89
|
+
<i
|
|
90
|
+
data-click-event="reply-email"
|
|
91
|
+
class="fas fa-reply" title="Reply"/>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="message" { ... renderMail(thread)} ></div>
|
|
94
|
+
{ item.attachments?.length && <div class="attachments" data-layout="flex-wrap-padding">
|
|
95
|
+
{ ... item.attachments.map((a) => <div><i class="fas fa-paperclip"/><a
|
|
96
|
+
text={a.name}
|
|
97
|
+
target="_blank"
|
|
98
|
+
href={`/api/files/${a.appFileID}/${a.fileContentID}/${a.name}`}/></div>)}
|
|
99
|
+
</div>}
|
|
100
|
+
</div>;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
99
103
|
/>
|
|
100
104
|
</div>;
|
|
101
105
|
}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import DISingleton from "@web-atoms/core/dist/di/DISingleton";
|
|
2
2
|
import { Inject } from "@web-atoms/core/dist/di/Inject";
|
|
3
3
|
import EntityService from "../../../../services/EntityService";
|
|
4
|
-
import { Email, IEmail, MailboxThreadEmail } from "../../../../model/model";
|
|
4
|
+
import { Email, IEmail, IMailboxThreadEmail, MailboxThreadEmail } from "../../../../model/model";
|
|
5
5
|
import { Sql } from "../../../../common/Sql";
|
|
6
6
|
import DomToString from "@web-atoms/email-dom/dist/DomToString";
|
|
7
7
|
import XNode from "@web-atoms/core/dist/core/XNode";
|
|
8
8
|
import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl";
|
|
9
9
|
import { descendentElementIterator} from "@web-atoms/core/dist/web/core/AtomUI";
|
|
10
10
|
import DateTime from "@web-atoms/date-time/dist/DateTime";
|
|
11
|
+
import { CommonEvents } from "../../../../common/events/CommonEvents";
|
|
11
12
|
|
|
12
13
|
export const renderMail = AtomControl.registerProperty("data-html", "html", (c, e, value) => {
|
|
13
14
|
if (!value) {
|
|
14
15
|
e.innerHTML = "";
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
const
|
|
18
|
+
const thread = value as IMailboxThreadEmail;
|
|
19
|
+
const mail = thread.email;
|
|
18
20
|
const html = mail.htmlBody;
|
|
19
21
|
const msg = document.createElement("div");
|
|
20
22
|
if(!html) {
|
|
@@ -44,15 +46,16 @@ export const renderMail = AtomControl.registerProperty("data-html", "html", (c,
|
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
48
|
e.appendChild(msg);
|
|
47
|
-
if (!
|
|
49
|
+
if (!thread.timeRead) {
|
|
48
50
|
const timeRead = DateTime.utcNow;
|
|
49
|
-
|
|
51
|
+
thread.timeRead = timeRead;
|
|
50
52
|
const control = AtomControl.from(e);
|
|
51
53
|
const entityService = control.app.resolve(EntityService);
|
|
52
|
-
|
|
53
|
-
entityService.save(Email.patch(mail, {
|
|
54
|
+
entityService.save(MailboxThreadEmail.patch(thread, {
|
|
54
55
|
timeRead
|
|
55
|
-
})).
|
|
56
|
+
})).then(() => {
|
|
57
|
+
CommonEvents.onThreadMarkedAsRead.dispatchEvent(thread);
|
|
58
|
+
}, console.error);
|
|
56
59
|
}
|
|
57
60
|
return;
|
|
58
61
|
});
|
|
@@ -84,7 +87,7 @@ export default class ConversationService {
|
|
|
84
87
|
.include((x) => [x.email.recipients.forEach((r) => r.emailAddress), x.email.attachments])
|
|
85
88
|
.orderByDescending((x) => x.emailID)
|
|
86
89
|
.toPagedList({ start, size, cancelToken });
|
|
87
|
-
return
|
|
90
|
+
return emails;
|
|
88
91
|
}
|
|
89
92
|
|
|
90
93
|
public renderText(html: string) {
|