@social-mail/social-mail-client 1.2.73 → 1.2.75
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/content/pwa/service-worker.js +1 -0
- package/dist/admin/AdminAppIndex.pack.js +159 -120
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +15 -7
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/common/SocialMailApp.d.ts +1 -1
- package/dist/common/SocialMailApp.d.ts.map +1 -1
- package/dist/common/controls/menu/MenuItem.d.ts +4 -1
- package/dist/common/controls/menu/MenuItem.d.ts.map +1 -1
- package/dist/common/controls/menu/MenuItem.js +36 -6
- package/dist/common/controls/menu/MenuItem.js.map +1 -1
- package/dist/common/pages/mailboxes/services/MailboxService.d.ts +2 -0
- package/dist/common/pages/mailboxes/services/MailboxService.d.ts.map +1 -1
- package/dist/common/pages/mailboxes/services/MailboxService.js +73 -28
- package/dist/common/pages/mailboxes/services/MailboxService.js.map +1 -1
- package/dist/model/model.d.ts +12 -101
- package/dist/model/model.d.ts.map +1 -1
- package/dist/model/model.js +7 -80
- package/dist/model/model.js.map +1 -1
- package/dist/public/channel/ChannelView.pack.js +10 -82
- package/dist/public/channel/ChannelView.pack.js.map +1 -1
- package/dist/public/channel/ChannelView.pack.min.js +2 -2
- package/dist/public/channel/ChannelView.pack.min.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +159 -120
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +14 -6
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/page/mails/MailboxContacts.d.ts +2 -0
- package/dist/web/page/mails/MailboxContacts.d.ts.map +1 -1
- package/dist/web/page/mails/MailboxContacts.js +32 -2
- package/dist/web/page/mails/MailboxContacts.js.map +1 -1
- package/dist/web/page/mails/service/MailService.d.ts.map +1 -1
- package/dist/web/page/mails/service/MailService.js +8 -2
- package/dist/web/page/mails/service/MailService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/App.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/Atom.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/MockApp.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/Pack.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomBinder.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomComponent.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomDispatcher.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomDisposableList.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomEnumerator.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomList.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomLoader.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomMap.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomOnce.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomSelectableList.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomUri.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/AtomWatcher.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/Bind.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/BindableProperty.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/CancelTokenFactory.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/Color.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/Colors.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/Command.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/Defer.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/EventScope.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/ExpressionParser.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/ExtendControl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/FormattedError.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/FormattedString.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/Hacks.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/IFetchEvent.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/IScreen.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/IValueConverter.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/InheritedProperty.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/InjectProperty.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/KeyValuePairs.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/Markdown.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/MarkdownError.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/PropertyBinding.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/PropertyMap.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/Route.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/SingleInvoker.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/StringHelper.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/TransientDisposable.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/WatchProperty.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/WebImage.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/XNode.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/sleep.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/core/types.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/DISingleton.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/DITransient.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/IMockOrInject.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/IServiceProvider.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/Inject.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/Register.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/RegisterScoped.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/RegisterSingleton.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/ServiceCollection.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/ServiceProvider.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/di/TypeKey.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/BusyIndicatorService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/CacheService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/FetchBuilder.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/JsonService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/MockNavigationService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/NavigationService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/ReferenceService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/http/AjaxOptions.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/http/JsonError.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/services/http/RestService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/style/StyleRule.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/style/styled.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/test.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@web-atoms/core/dist/unit/AtomTest.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/unit/AtomWebTest.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/Action.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/AtomViewModel.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/AtomWindowViewModel.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/BindableUrlParameter.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/Delay.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/Disposable.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/Load.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/Once.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/baseTypes.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/bindPromise.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/bindProperty.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/view-model/bindUrlParameter.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/WebApp.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomAlertWindow.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomComboBox.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomContentControl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomControl.js +3 -2
- package/node_modules/@web-atoms/core/dist/web/controls/AtomControl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomFrame.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomGridSplitter.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomGridView.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomItemsControl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomListBox.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomNotification.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomPage.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomPageLink.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomTabbedPage.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomTemplate.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomTemplateControl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomToggleButtonBar.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomViewPager.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomViewStack.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/controls/AtomWindow.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/core/AtomUI.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/core/Encoder.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/core/HtmlNode.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/images/Busy.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/images/BusyDataUrl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/images/Button.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/images/ButtonDataUrl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/images/CloseButton.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/images/CloseButtonDataUrl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/images/CloseButtonHover.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/images/CloseButtonHoverDataUrl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/MovieService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/demo/app.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/demo/views/MovieList.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/demo/views/MovieListViewModel.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/tabs/app.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/tabs/views/List.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/tabs/views/ListDataUrl.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/tabs/views/Page1.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/tabs/views/TabHost.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/samples/window/WindowSample.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/services/MarkdownService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/services/NotificationPopup.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/services/PopupService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/services/PopupWindow.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/services/WebBusyIndicatorService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/services/WindowService.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomAlertWindowStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomFrameStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomListBoxStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomNotificationStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomPageLinkStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomPopupStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomStyleSheet.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomTabbedPageStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomTheme.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomToggleButtonBarStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/AtomWindowStyle.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/CSS.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/IStyleDeclaration.js.map +1 -1
- package/node_modules/@web-atoms/core/dist/web/styles/StyleBuilder.js.map +1 -1
- package/node_modules/@web-atoms/core/package.json +1 -1
- package/node_modules/@web-atoms/core/src/web/controls/AtomControl.ts +3 -2
- package/package.json +2 -2
- package/src/common/SocialMailApp.ts +1 -1
- package/src/common/controls/menu/MenuItem.tsx +30 -0
- package/src/common/pages/mailboxes/services/MailboxService.ts +38 -3
- package/src/model/model.ts +15 -114
- package/src/web/page/mails/MailboxContacts.tsx +23 -0
- package/src/web/page/mails/service/MailService.ts +7 -2
package/src/model/model.ts
CHANGED
|
@@ -317,7 +317,7 @@ export interface IEmail extends IClrEntity {
|
|
|
317
317
|
subscriberActivities?: ICollection<ISubscriberActivity>;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
-
export const EmailStatusArray = [{"label":"queued","value":"queued"},{"label":"received","value":"received"},{"label":"draft","value":"draft"},{"label":"published","value":"published"},{"label":"pending-approval","value":"pending-approval"},{"label":"scheduled","value":"scheduled"},{"label":"sent","value":"sent"},{"label":"sent-failed","value":"sent-failed"}];
|
|
320
|
+
export const EmailStatusArray = [{"label":"queued","value":"queued"},{"label":"received","value":"received"},{"label":"draft","value":"draft"},{"label":"published","value":"published"},{"label":"pending-approval","value":"pending-approval"},{"label":"scheduled","value":"scheduled"},{"label":"sent","value":"sent"},{"label":"sent-failed","value":"sent-failed"},{"label":"deleted","value":"deleted"}];
|
|
321
321
|
|
|
322
322
|
export const Email: IModel<IEmail> = new Model<IEmail>("Email", ["emailID"], { senderName: "",received: false,dateReceived: new DefaultFactory(() => new DateTime()),dateCreated: new DefaultFactory(() => new DateTime()),status: "queued",forwardCount: 0,replyCount: 0,viewCount: 0,originalFileSize: 0 });
|
|
323
323
|
|
|
@@ -420,6 +420,7 @@ export interface IMailbox extends IClrEntity {
|
|
|
420
420
|
dateEngaged?: DateTime | null;
|
|
421
421
|
username?: string;
|
|
422
422
|
name?: string;
|
|
423
|
+
notify?: boolean;
|
|
423
424
|
emailAddress?: IEmailAddress;
|
|
424
425
|
domain?: IHostedDomain;
|
|
425
426
|
logo?: IAppFile;
|
|
@@ -462,6 +463,7 @@ export interface IMailboxContact extends IClrEntity {
|
|
|
462
463
|
blocked?: boolean;
|
|
463
464
|
mute?: boolean;
|
|
464
465
|
status?: "invited" | "added" | "active" | "unsubscribed" | "blocked";
|
|
466
|
+
notify?: boolean;
|
|
465
467
|
emailAddressText?: string;
|
|
466
468
|
name?: string;
|
|
467
469
|
mailbox?: IMailbox;
|
|
@@ -600,11 +602,11 @@ export interface IUser extends IClrEntity {
|
|
|
600
602
|
contacts?: ICollection<IContact>;
|
|
601
603
|
domainUsers?: ICollection<IDomainUser>;
|
|
602
604
|
pins?: ICollection<IUserPin>;
|
|
605
|
+
userPushSubscriptions?: ICollection<IUserPushSubscription>;
|
|
603
606
|
roles?: ICollection<IUserRole>;
|
|
604
607
|
userMailboxes?: ICollection<IUserMailbox>;
|
|
605
608
|
authFactors?: ICollection<IUserAuthFactor>;
|
|
606
609
|
publishedWebSiteVersions?: ICollection<IWebSiteFolderVersion>;
|
|
607
|
-
licenses?: ICollection<IAppLicense>;
|
|
608
610
|
}
|
|
609
611
|
|
|
610
612
|
export const UserStatusArray = [{"label":"active","value":"active"},{"label":"blocked","value":"blocked"},{"label":"locked","value":"locked"},{"label":"change-password","value":"change-password"},{"label":"external","value":"external"}];
|
|
@@ -623,6 +625,17 @@ export interface IUserPin extends IClrEntity {
|
|
|
623
625
|
|
|
624
626
|
export const UserPin: IModel<IUserPin> = new Model<IUserPin>("UserPin", ["pinID"], { });
|
|
625
627
|
|
|
628
|
+
export interface IUserPushSubscription extends IClrEntity {
|
|
629
|
+
readonly subscriptionID?: number;
|
|
630
|
+
userID?: number;
|
|
631
|
+
mailboxID?: number | null;
|
|
632
|
+
emailAddressID?: number | null;
|
|
633
|
+
notify?: boolean;
|
|
634
|
+
user?: IUser;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
export const UserPushSubscription: IModel<IUserPushSubscription> = new Model<IUserPushSubscription>("UserPushSubscription", ["subscriptionID"], { notify: false });
|
|
638
|
+
|
|
626
639
|
export interface IUserRole extends IClrEntity {
|
|
627
640
|
userID?: number;
|
|
628
641
|
roleName?: string;
|
|
@@ -738,115 +751,3 @@ export interface ITag extends IClrEntity {
|
|
|
738
751
|
}
|
|
739
752
|
|
|
740
753
|
export const Tag: IModel<ITag> = new Model<ITag>("Tag", ["tagID"], { name: "",isSystemTag: false });
|
|
741
|
-
|
|
742
|
-
export interface IProduct extends IClrEntity {
|
|
743
|
-
productID?: string;
|
|
744
|
-
name?: string;
|
|
745
|
-
description?: string | null;
|
|
746
|
-
prices?: ICollection<IProductPrice>;
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
export const Product: IModel<IProduct> = new Model<IProduct>("Product", ["productID"], { name: "" });
|
|
750
|
-
|
|
751
|
-
export interface IProductPrice extends IClrEntity {
|
|
752
|
-
priceID?: string;
|
|
753
|
-
productID?: string;
|
|
754
|
-
quantity?: number;
|
|
755
|
-
amount?: number;
|
|
756
|
-
isActive?: boolean;
|
|
757
|
-
currency?: string;
|
|
758
|
-
product?: IProduct;
|
|
759
|
-
licenses?: ICollection<IAppLicense>;
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
export const ProductPrice: IModel<IProductPrice> = new Model<IProductPrice>("ProductPrice", ["priceID"], { quantity: 0,amount: 0,isActive: false,currency: "" });
|
|
763
|
-
|
|
764
|
-
export interface IAppLicense extends IClrEntity {
|
|
765
|
-
readonly licenseID?: number;
|
|
766
|
-
customerID?: number;
|
|
767
|
-
priceID?: string;
|
|
768
|
-
dateCreated?: DateTime;
|
|
769
|
-
dateExpiry?: DateTime;
|
|
770
|
-
dateUpdated?: DateTime;
|
|
771
|
-
maxCores?: number;
|
|
772
|
-
licenseCode?: string;
|
|
773
|
-
customer?: IUser;
|
|
774
|
-
price?: IProductPrice;
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
export const AppLicense: IModel<IAppLicense> = new Model<IAppLicense>("AppLicense", ["licenseID","priceID"], { dateCreated: new DefaultFactory(() => new DateTime()),dateExpiry: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),maxCores: 0,licenseCode: "" });
|
|
778
|
-
|
|
779
|
-
export interface IVirtualServer extends IClrEntity {
|
|
780
|
-
readonly serverID?: number;
|
|
781
|
-
serverName?: string;
|
|
782
|
-
ownerEmailAddress?: string | null;
|
|
783
|
-
ownerPhoneNumber?: string | null;
|
|
784
|
-
active?: boolean;
|
|
785
|
-
bucketName?: string | null;
|
|
786
|
-
database?: string | null;
|
|
787
|
-
host?: string;
|
|
788
|
-
forwardHost?: string | null;
|
|
789
|
-
forwardPublicKey?: string | null;
|
|
790
|
-
environmentVariables?: string | null;
|
|
791
|
-
maxStorageGB?: number;
|
|
792
|
-
dnsZones?: ICollection<IDnsZone>;
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
export const VirtualServer: IModel<IVirtualServer> = new Model<IVirtualServer>("VirtualServer", ["serverID"], { serverName: "",active: false,host: "",maxStorageGB: 0 });
|
|
796
|
-
|
|
797
|
-
export interface IDnsZone extends IClrEntity {
|
|
798
|
-
readonly zoneID?: number;
|
|
799
|
-
serverID?: number;
|
|
800
|
-
zone?: string;
|
|
801
|
-
keySigningKeyID?: number;
|
|
802
|
-
zoneSigningKeyID?: number;
|
|
803
|
-
dateCreated?: DateTime;
|
|
804
|
-
dateUpdated?: DateTime;
|
|
805
|
-
signed?: string | null;
|
|
806
|
-
unsigned?: string | null;
|
|
807
|
-
virtualServer?: IVirtualServer;
|
|
808
|
-
ksk?: IDnsSigningKey;
|
|
809
|
-
zsk?: IDnsSigningKey;
|
|
810
|
-
records?: ICollection<IDnsZoneRecord>;
|
|
811
|
-
}
|
|
812
|
-
|
|
813
|
-
export const DnsZone: IModel<IDnsZone> = new Model<IDnsZone>("DnsZone", ["zoneID"], { zone: "",dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()) });
|
|
814
|
-
|
|
815
|
-
export interface IDnsZoneRecord extends IClrEntity {
|
|
816
|
-
readonly recordID?: number;
|
|
817
|
-
zoneID?: number;
|
|
818
|
-
disabled?: boolean;
|
|
819
|
-
name?: string;
|
|
820
|
-
type?: "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "PTR" | "SRV" | "CAA" | "NS" | "SOA";
|
|
821
|
-
isAlias?: boolean;
|
|
822
|
-
value?: string;
|
|
823
|
-
ttl?: number;
|
|
824
|
-
dateCreated?: DateTime;
|
|
825
|
-
dateUpdated?: DateTime;
|
|
826
|
-
notes?: string | null;
|
|
827
|
-
signature?: string | null;
|
|
828
|
-
expiryDate?: DateTime | null;
|
|
829
|
-
readonly fqdn?: string | null;
|
|
830
|
-
hosted?: boolean;
|
|
831
|
-
zone?: IDnsZone;
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
export const DnsZoneRecordTypeArray = [{"label":"A","value":"A"},{"label":"AAAA","value":"AAAA"},{"label":"CNAME","value":"CNAME"},{"label":"MX","value":"MX"},{"label":"TXT","value":"TXT"},{"label":"PTR","value":"PTR"},{"label":"SRV","value":"SRV"},{"label":"CAA","value":"CAA"},{"label":"NS","value":"NS"},{"label":"SOA","value":"SOA"}];
|
|
835
|
-
|
|
836
|
-
export const DnsZoneRecord: IModel<IDnsZoneRecord> = new Model<IDnsZoneRecord>("DnsZoneRecord", ["recordID"], { disabled: false,name: "",type: "A",isAlias: false,value: "",ttl: 0,dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),hosted: false });
|
|
837
|
-
|
|
838
|
-
export interface IDnsSigningKey extends IClrEntity {
|
|
839
|
-
readonly keyID?: number;
|
|
840
|
-
publicKey?: string;
|
|
841
|
-
digestAlgorithm?: number;
|
|
842
|
-
signingAlgorithm?: number;
|
|
843
|
-
digest?: string;
|
|
844
|
-
flags?: number;
|
|
845
|
-
dateCreated?: DateTime;
|
|
846
|
-
expiryDate?: DateTime;
|
|
847
|
-
fileName?: string;
|
|
848
|
-
kskZones?: ICollection<IDnsZone>;
|
|
849
|
-
zskZones?: ICollection<IDnsZone>;
|
|
850
|
-
}
|
|
851
|
-
|
|
852
|
-
export const DnsSigningKey: IModel<IDnsSigningKey> = new Model<IDnsSigningKey>("DnsSigningKey", ["keyID"], { publicKey: "",digestAlgorithm: 0,signingAlgorithm: 0,digest: "",flags: 0,dateCreated: new DefaultFactory(() => new DateTime()),expiryDate: new DefaultFactory(() => new DateTime()),fileName: "" });
|
|
@@ -22,6 +22,8 @@ import Switch from "@web-atoms/web-controls/dist/basic/Switch";
|
|
|
22
22
|
import Checkbox from "@web-atoms/web-controls/dist/basic/Checkbox";
|
|
23
23
|
import ToggleButtonBar from "@web-atoms/web-controls/dist/basic/ToggleButtonBar";
|
|
24
24
|
import AddMiniContactPage from "./contact/AddMiniContactPage";
|
|
25
|
+
import PopupService from "@web-atoms/core/dist/web/services/PopupService";
|
|
26
|
+
import MailboxService from "../../../common/pages/mailboxes/services/MailboxService";
|
|
25
27
|
|
|
26
28
|
const css = styled.css `
|
|
27
29
|
&[data-page-type=master-detail] {
|
|
@@ -166,6 +168,7 @@ export default class MailsPage extends MasterDetailPage {
|
|
|
166
168
|
// </div>}
|
|
167
169
|
// /></div>;
|
|
168
170
|
document.title = mailbox.emailAddress?.emailAddress;
|
|
171
|
+
this.updateNotifications(mailbox);
|
|
169
172
|
if (isMobileView) {
|
|
170
173
|
this.headerRenderer = () => <div data-layout="row">
|
|
171
174
|
<input value={Bind.twoWaysImmediate(() => this.search)} type="search" placeholder="Sender Search"/>
|
|
@@ -325,4 +328,24 @@ export default class MailsPage extends MasterDetailPage {
|
|
|
325
328
|
this.selectedThread = existing;
|
|
326
329
|
}
|
|
327
330
|
|
|
331
|
+
@Action({ onEvent: "update-mailbox-notify"})
|
|
332
|
+
async updateMailboxNotify() {
|
|
333
|
+
const m = this.currentMailbox;
|
|
334
|
+
const message = m.notify
|
|
335
|
+
? `Disable notification for this ${m.emailAddress?.name || ""} ${m.emailAddress?.emailAddress}?`
|
|
336
|
+
: `Enable notification for this ${m.emailAddress?.name || ""} ${m.emailAddress?.emailAddress}?`;
|
|
337
|
+
if(!await PopupService.confirm({ message , title :"Are you sure"})) {
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
await this.resolve(MailboxService).toggleNotify(m);
|
|
341
|
+
this.updateNotifications(m);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
private updateNotifications(mailbox: IMailbox) {
|
|
345
|
+
this.actionRenderer = () => <i
|
|
346
|
+
class={mailbox.notify ? "fad fa-bell" : "fad fa-bell-slash"}
|
|
347
|
+
title={mailbox.notify ? "Disable Notifications" : "Enable Notifications"}
|
|
348
|
+
data-click-event="update-mailbox-notify" />;
|
|
349
|
+
}
|
|
350
|
+
|
|
328
351
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
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 { AppFile, Email, EmailAddress, IAppFile, IEmail, Mailbox, MailboxContact } from "../../../../model/model";
|
|
4
|
+
import { AppFile, Email, EmailAddress, IAppFile, IEmail, Mailbox, MailboxContact, UserPushSubscription } from "../../../../model/model";
|
|
5
5
|
import { Sql } from "../../../../common/Sql";
|
|
6
6
|
import { CommonEvents } from "../../../../common/events/CommonEvents";
|
|
7
7
|
|
|
@@ -12,10 +12,15 @@ export default class MailService {
|
|
|
12
12
|
private entityService: EntityService;
|
|
13
13
|
|
|
14
14
|
async mailbox(mailboxID: number) {
|
|
15
|
-
|
|
15
|
+
const mb = await this.entityService.query(Mailbox)
|
|
16
16
|
.where({ mailboxID }, (p) => (x) => x.mailboxID === p.mailboxID)
|
|
17
17
|
.include((x) => x.emailAddress)
|
|
18
18
|
.firstOrDefault();
|
|
19
|
+
const notify = await this.entityService.query(UserPushSubscription)
|
|
20
|
+
.where({ mailboxID }, (p) => (x) => x.mailboxID === p.mailboxID && x.emailAddressID === null)
|
|
21
|
+
.firstOrDefault();
|
|
22
|
+
mb.notify = !!notify;
|
|
23
|
+
return mb;
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
async list({
|