@social-mail/social-mail-client 1.0.37 → 1.0.39
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 +57 -28
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +4 -4
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/model/model.js +24 -24
- package/dist/model/model.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +57 -28
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +4 -4
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/page/mails/ConversationPage.js +1 -1
- package/dist/web/page/mails/ConversationPage.js.map +1 -1
- package/dist/web/page/mails/service/ConversationService.js +17 -2
- package/dist/web/page/mails/service/ConversationService.js.map +1 -1
- package/node_modules/@web-atoms/entity/dist/models/IClrEntity.d.ts +1 -0
- package/node_modules/@web-atoms/entity/dist/models/IClrEntity.d.ts.map +1 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts +7 -4
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts.map +1 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js +15 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js.map +1 -1
- package/node_modules/@web-atoms/entity/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@web-atoms/entity/package.json +1 -1
- package/node_modules/@web-atoms/entity/src/models/IClrEntity.ts +2 -0
- package/node_modules/@web-atoms/entity/src/services/BaseEntityService.ts +25 -4
- package/package.json +2 -2
- package/src/model/model.ts +24 -24
- package/src/web/page/mails/ConversationPage.tsx +1 -1
- package/src/web/page/mails/service/ConversationService.tsx +11 -0
package/src/model/model.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface IAppRole extends IClrEntity {
|
|
|
7
7
|
roles?: ICollection<IUserRole>;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export const AppRole: IModel<IAppRole> = new Model<IAppRole>("AppRole", { roleName: "" });
|
|
10
|
+
export const AppRole: IModel<IAppRole> = new Model<IAppRole>("AppRole", ["roleName"], { roleName: "" });
|
|
11
11
|
|
|
12
12
|
export interface IAppFile extends IClrEntity {
|
|
13
13
|
readonly appFileID?: number;
|
|
@@ -35,7 +35,7 @@ export interface IAppFile extends IClrEntity {
|
|
|
35
35
|
|
|
36
36
|
export const AppFileContentDispositionArray = [{"label":"attachment","value":"attachment"},{"label":"inline","value":"inline"}];
|
|
37
37
|
|
|
38
|
-
export const AppFile: IModel<IAppFile> = new Model<IAppFile>("AppFile", { isFolder: false,folder: "",name: "",fileSize: 0,contentType: "" });
|
|
38
|
+
export const AppFile: IModel<IAppFile> = new Model<IAppFile>("AppFile", ["appFileID"], { isFolder: false,folder: "",name: "",fileSize: 0,contentType: "" });
|
|
39
39
|
|
|
40
40
|
export interface IAppFileTag extends IClrEntity {
|
|
41
41
|
appFileID?: number;
|
|
@@ -44,7 +44,7 @@ export interface IAppFileTag extends IClrEntity {
|
|
|
44
44
|
tag?: ITag;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
export const AppFileTag: IModel<IAppFileTag> = new Model<IAppFileTag>("AppFileTag", { appFileID: 0,tagID: 0 });
|
|
47
|
+
export const AppFileTag: IModel<IAppFileTag> = new Model<IAppFileTag>("AppFileTag", ["appFileID","tagID"], { appFileID: 0,tagID: 0 });
|
|
48
48
|
|
|
49
49
|
export interface IFileContent extends IClrEntity {
|
|
50
50
|
readonly fileContentID?: number;
|
|
@@ -55,14 +55,14 @@ export interface IFileContent extends IClrEntity {
|
|
|
55
55
|
appFiles?: ICollection<IAppFile>;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
export const FileContent: IModel<IFileContent> = new Model<IFileContent>("FileContent", { contentHash: "",contentType: "",contentSize: 0 });
|
|
58
|
+
export const FileContent: IModel<IFileContent> = new Model<IFileContent>("FileContent", ["fileContentID"], { contentHash: "",contentType: "",contentSize: 0 });
|
|
59
59
|
|
|
60
60
|
export interface IConfiguration extends IClrEntity {
|
|
61
61
|
name?: string;
|
|
62
62
|
configValue?: string;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
export const Configuration: IModel<IConfiguration> = new Model<IConfiguration>("Configuration", { name: "",configValue: "" });
|
|
65
|
+
export const Configuration: IModel<IConfiguration> = new Model<IConfiguration>("Configuration", ["name"], { name: "",configValue: "" });
|
|
66
66
|
|
|
67
67
|
export interface IDomain extends IClrEntity {
|
|
68
68
|
readonly domainID?: number;
|
|
@@ -71,7 +71,7 @@ export interface IDomain extends IClrEntity {
|
|
|
71
71
|
hostedDomain?: IHostedDomain;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
export const Domain: IModel<IDomain> = new Model<IDomain>("Domain", { name: "" });
|
|
74
|
+
export const Domain: IModel<IDomain> = new Model<IDomain>("Domain", ["domainID"], { name: "" });
|
|
75
75
|
|
|
76
76
|
export interface IHostedDomain extends IClrEntity {
|
|
77
77
|
domainID?: number;
|
|
@@ -88,7 +88,7 @@ export interface IHostedDomain extends IClrEntity {
|
|
|
88
88
|
mailboxes?: ICollection<IMailbox>;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
export const HostedDomain: IModel<IHostedDomain> = new Model<IHostedDomain>("HostedDomain", { domainID: 0,enableReceive: false,enableSend: false,useRelay: false });
|
|
91
|
+
export const HostedDomain: IModel<IHostedDomain> = new Model<IHostedDomain>("HostedDomain", ["domainID"], { domainID: 0,enableReceive: false,enableSend: false,useRelay: false });
|
|
92
92
|
|
|
93
93
|
export interface IDomainUser extends IClrEntity {
|
|
94
94
|
domainID?: number;
|
|
@@ -100,7 +100,7 @@ export interface IDomainUser extends IClrEntity {
|
|
|
100
100
|
user?: IUser;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
export const DomainUser: IModel<IDomainUser> = new Model<IDomainUser>("DomainUser", { domainID: 0,userID: 0,isAdmin: false,allowCreateMailbox: false });
|
|
103
|
+
export const DomainUser: IModel<IDomainUser> = new Model<IDomainUser>("DomainUser", ["domainID","userID"], { domainID: 0,userID: 0,isAdmin: false,allowCreateMailbox: false });
|
|
104
104
|
|
|
105
105
|
export interface IDomainRelay extends IClrEntity {
|
|
106
106
|
readonly domainRelayID?: number;
|
|
@@ -116,7 +116,7 @@ export interface IDomainRelay extends IClrEntity {
|
|
|
116
116
|
|
|
117
117
|
export const DomainRelayTypeArray = [{"label":"smtp","value":"smtp"},{"label":"ses","value":"ses"},{"label":"https","value":"https"}];
|
|
118
118
|
|
|
119
|
-
export const DomainRelay: IModel<IDomainRelay> = new Model<IDomainRelay>("DomainRelay", { domainID: 0,type: "smtp",host: "",username: "",password: "",priority: 0 });
|
|
119
|
+
export const DomainRelay: IModel<IDomainRelay> = new Model<IDomainRelay>("DomainRelay", ["domainRelayID"], { domainID: 0,type: "smtp",host: "",username: "",password: "",priority: 0 });
|
|
120
120
|
|
|
121
121
|
export interface IDomainKey extends IClrEntity {
|
|
122
122
|
readonly domainKeyID?: number;
|
|
@@ -127,7 +127,7 @@ export interface IDomainKey extends IClrEntity {
|
|
|
127
127
|
domain?: IHostedDomain;
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
export const DomainKey: IModel<IDomainKey> = new Model<IDomainKey>("DomainKey", { name: "",keyType: "",publicKey: "",domainID: 0 });
|
|
130
|
+
export const DomainKey: IModel<IDomainKey> = new Model<IDomainKey>("DomainKey", ["domainKeyID"], { name: "",keyType: "",publicKey: "",domainID: 0 });
|
|
131
131
|
|
|
132
132
|
export interface IEmail extends IClrEntity {
|
|
133
133
|
readonly emailID?: number;
|
|
@@ -166,7 +166,7 @@ export interface IEmail extends IClrEntity {
|
|
|
166
166
|
|
|
167
167
|
export const EmailStatusArray = [{"label":"queued","value":"queued"},{"label":"received","value":"received"},{"label":"draft","value":"draft"},{"label":"pending-approval","value":"pending-approval"},{"label":"scheduled","value":"scheduled"},{"label":"sent","value":"sent"},{"label":"sent-failed","value":"sent-failed"}];
|
|
168
168
|
|
|
169
|
-
export const Email: IModel<IEmail> = new Model<IEmail>("Email", { senderName: "",senderID: 0,received: false,dateReceived: new DateTime(),dateCreated: new DateTime(),status: "queued" });
|
|
169
|
+
export const Email: IModel<IEmail> = new Model<IEmail>("Email", ["emailID"], { senderName: "",senderID: 0,received: false,dateReceived: new DateTime(),dateCreated: new DateTime(),status: "queued" });
|
|
170
170
|
|
|
171
171
|
export interface IEmailRecipient extends IClrEntity {
|
|
172
172
|
emailID?: number;
|
|
@@ -183,7 +183,7 @@ export interface IEmailRecipient extends IClrEntity {
|
|
|
183
183
|
|
|
184
184
|
export const EmailRecipientTypeArray = [{"label":"from","value":"from"},{"label":"to","value":"to"},{"label":"cc","value":"cc"},{"label":"bcc","value":"bcc"},{"label":"viewer","value":"viewer"},{"label":"editor","value":"editor"}];
|
|
185
185
|
|
|
186
|
-
export const EmailRecipient: IModel<IEmailRecipient> = new Model<IEmailRecipient>("EmailRecipient", { emailID: 0,emailAddressID: 0,type: "from" });
|
|
186
|
+
export const EmailRecipient: IModel<IEmailRecipient> = new Model<IEmailRecipient>("EmailRecipient", ["emailID","emailAddressID"], { emailID: 0,emailAddressID: 0,type: "from" });
|
|
187
187
|
|
|
188
188
|
export interface IEmailTag extends IClrEntity {
|
|
189
189
|
emailID?: number;
|
|
@@ -192,7 +192,7 @@ export interface IEmailTag extends IClrEntity {
|
|
|
192
192
|
tag?: ITag;
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
export const EmailTag: IModel<IEmailTag> = new Model<IEmailTag>("EmailTag", { emailID: 0,tagID: 0 });
|
|
195
|
+
export const EmailTag: IModel<IEmailTag> = new Model<IEmailTag>("EmailTag", ["emailID","tagID"], { emailID: 0,tagID: 0 });
|
|
196
196
|
|
|
197
197
|
export interface IEmailAddress extends IClrEntity {
|
|
198
198
|
readonly emailAddressID?: number;
|
|
@@ -206,7 +206,7 @@ export interface IEmailAddress extends IClrEntity {
|
|
|
206
206
|
threads?: ICollection<IMailboxThread>;
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
-
export const EmailAddress: IModel<IEmailAddress> = new Model<IEmailAddress>("EmailAddress", { emailAddress: "",domainID: 0,name: "" });
|
|
209
|
+
export const EmailAddress: IModel<IEmailAddress> = new Model<IEmailAddress>("EmailAddress", ["emailAddressID"], { emailAddress: "",domainID: 0,name: "" });
|
|
210
210
|
|
|
211
211
|
export interface IMailbox extends IClrEntity {
|
|
212
212
|
mailboxID?: number;
|
|
@@ -223,7 +223,7 @@ export interface IMailbox extends IClrEntity {
|
|
|
223
223
|
userMailboxes?: ICollection<IUserMailbox>;
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
export const Mailbox: IModel<IMailbox> = new Model<IMailbox>("Mailbox", { mailboxID: 0,domainID: 0,storage: 0,maxStorage: 0 });
|
|
226
|
+
export const Mailbox: IModel<IMailbox> = new Model<IMailbox>("Mailbox", ["mailboxID"], { mailboxID: 0,domainID: 0,storage: 0,maxStorage: 0 });
|
|
227
227
|
|
|
228
228
|
export interface IMailboxEmail extends IClrEntity {
|
|
229
229
|
mailboxID?: number;
|
|
@@ -232,7 +232,7 @@ export interface IMailboxEmail extends IClrEntity {
|
|
|
232
232
|
email?: IEmail;
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
export const MailboxEmail: IModel<IMailboxEmail> = new Model<IMailboxEmail>("MailboxEmail", { mailboxID: 0,emailID: 0 });
|
|
235
|
+
export const MailboxEmail: IModel<IMailboxEmail> = new Model<IMailboxEmail>("MailboxEmail", ["mailboxID","emailID"], { mailboxID: 0,emailID: 0 });
|
|
236
236
|
|
|
237
237
|
export interface IMailboxThread extends IClrEntity {
|
|
238
238
|
mailboxID?: number;
|
|
@@ -246,7 +246,7 @@ export interface IMailboxThread extends IClrEntity {
|
|
|
246
246
|
lastEmail?: IEmail;
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
export const MailboxThread: IModel<IMailboxThread> = new Model<IMailboxThread>("MailboxThread", { mailboxID: 0,emailAddressID: 0,lastEmailID: 0,dateUpdated: new DateTime(),unread: 0,total: 0 });
|
|
249
|
+
export const MailboxThread: IModel<IMailboxThread> = new Model<IMailboxThread>("MailboxThread", ["mailboxID","emailAddressID"], { mailboxID: 0,emailAddressID: 0,lastEmailID: 0,dateUpdated: new DateTime(),unread: 0,total: 0 });
|
|
250
250
|
|
|
251
251
|
export interface IMailboxThreadEmail extends IClrEntity {
|
|
252
252
|
mailboxID?: number;
|
|
@@ -256,7 +256,7 @@ export interface IMailboxThreadEmail extends IClrEntity {
|
|
|
256
256
|
email?: IEmail;
|
|
257
257
|
}
|
|
258
258
|
|
|
259
|
-
export const MailboxThreadEmail: IModel<IMailboxThreadEmail> = new Model<IMailboxThreadEmail>("MailboxThreadEmail", { mailboxID: 0,emailAddressID: 0,emailID: 0 });
|
|
259
|
+
export const MailboxThreadEmail: IModel<IMailboxThreadEmail> = new Model<IMailboxThreadEmail>("MailboxThreadEmail", ["mailboxID","emailAddressID","emailID"], { mailboxID: 0,emailAddressID: 0,emailID: 0 });
|
|
260
260
|
|
|
261
261
|
export interface IUser extends IClrEntity {
|
|
262
262
|
readonly userID?: number;
|
|
@@ -274,7 +274,7 @@ export interface IUser extends IClrEntity {
|
|
|
274
274
|
sessions?: ICollection<ILoginSession>;
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
-
export const User: IModel<IUser> = new Model<IUser>("User", { userName: "",displayName: "",multiFactor: false,dateUpdated: new DateTime() });
|
|
277
|
+
export const User: IModel<IUser> = new Model<IUser>("User", ["userID"], { userName: "",displayName: "",multiFactor: false,dateUpdated: new DateTime() });
|
|
278
278
|
|
|
279
279
|
export interface IUserRole extends IClrEntity {
|
|
280
280
|
userID?: number;
|
|
@@ -283,7 +283,7 @@ export interface IUserRole extends IClrEntity {
|
|
|
283
283
|
role?: IAppRole;
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
-
export const UserRole: IModel<IUserRole> = new Model<IUserRole>("UserRole", { userID: 0,roleName: "" });
|
|
286
|
+
export const UserRole: IModel<IUserRole> = new Model<IUserRole>("UserRole", ["userID","roleName"], { userID: 0,roleName: "" });
|
|
287
287
|
|
|
288
288
|
export interface IUserMailbox extends IClrEntity {
|
|
289
289
|
userID?: number;
|
|
@@ -292,7 +292,7 @@ export interface IUserMailbox extends IClrEntity {
|
|
|
292
292
|
mailbox?: IMailbox;
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
export const UserMailbox: IModel<IUserMailbox> = new Model<IUserMailbox>("UserMailbox", { userID: 0,mailboxID: 0 });
|
|
295
|
+
export const UserMailbox: IModel<IUserMailbox> = new Model<IUserMailbox>("UserMailbox", ["userID","mailboxID"], { userID: 0,mailboxID: 0 });
|
|
296
296
|
|
|
297
297
|
export interface IUserAuthFactor extends IClrEntity {
|
|
298
298
|
readonly authFactorID?: number;
|
|
@@ -309,7 +309,7 @@ export interface IUserAuthFactor extends IClrEntity {
|
|
|
309
309
|
|
|
310
310
|
export const UserAuthFactorMethodArray = [{"label":"totp","value":"totp"},{"label":"hotp","value":"hotp"},{"label":"fido2","value":"fido2"},{"label":"one-time","value":"one-time"}];
|
|
311
311
|
|
|
312
|
-
export const UserAuthFactor: IModel<IUserAuthFactor> = new Model<IUserAuthFactor>("UserAuthFactor", { userID: 0,method: "totp",verified: false,dateUpdated: new DateTime() });
|
|
312
|
+
export const UserAuthFactor: IModel<IUserAuthFactor> = new Model<IUserAuthFactor>("UserAuthFactor", ["authFactorID"], { userID: 0,method: "totp",verified: false,dateUpdated: new DateTime() });
|
|
313
313
|
|
|
314
314
|
export interface ILoginSession extends IClrEntity {
|
|
315
315
|
readonly sessionID?: number;
|
|
@@ -325,7 +325,7 @@ export interface ILoginSession extends IClrEntity {
|
|
|
325
325
|
user?: IUser;
|
|
326
326
|
}
|
|
327
327
|
|
|
328
|
-
export const LoginSession: IModel<ILoginSession> = new Model<ILoginSession>("LoginSession", { userID: 0,invalid: false,dateUpdated: new DateTime() });
|
|
328
|
+
export const LoginSession: IModel<ILoginSession> = new Model<ILoginSession>("LoginSession", ["sessionID"], { userID: 0,invalid: false,dateUpdated: new DateTime() });
|
|
329
329
|
|
|
330
330
|
export interface ITag extends IClrEntity {
|
|
331
331
|
readonly tagID?: number;
|
|
@@ -340,4 +340,4 @@ export interface ITag extends IClrEntity {
|
|
|
340
340
|
emailTags?: ICollection<IEmailTag>;
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
-
export const Tag: IModel<ITag> = new Model<ITag>("Tag", { name: "",isSystemTag: false });
|
|
343
|
+
export const Tag: IModel<ITag> = new Model<ITag>("Tag", ["tagID"], { name: "",isSystemTag: false });
|
|
@@ -7,6 +7,7 @@ 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
|
+
import DateTime from "@web-atoms/date-time/dist/DateTime";
|
|
10
11
|
|
|
11
12
|
export const renderMail = AtomControl.registerProperty("data-html", "html", (c, e, value) => {
|
|
12
13
|
if (!value) {
|
|
@@ -43,6 +44,16 @@ export const renderMail = AtomControl.registerProperty("data-html", "html", (c,
|
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
e.appendChild(msg);
|
|
47
|
+
if (!mail.timeRead) {
|
|
48
|
+
const timeRead = DateTime.utcNow;
|
|
49
|
+
mail.timeRead = timeRead;
|
|
50
|
+
const control = AtomControl.from(e);
|
|
51
|
+
const entityService = control.app.resolve(EntityService);
|
|
52
|
+
const { emailID } = mail;
|
|
53
|
+
entityService.save(Email.patch(mail, {
|
|
54
|
+
timeRead
|
|
55
|
+
})).catch(console.error);
|
|
56
|
+
}
|
|
46
57
|
return;
|
|
47
58
|
});
|
|
48
59
|
|