This commit is contained in:
2020-07-21 22:01:54 +00:00
parent 973788e63b
commit a0a38c9c9f
2 changed files with 16 additions and 87 deletions

View File

@@ -12,28 +12,11 @@ ____________
## CURRENT STAGE:
todo: ops and backup subscribe and confirm delivery and proper handling
todo: test tag filtered notification with widget created etc
todo: consider naming ability to subs, maybe people want to name it so it makes sense?
or is it enough to just show all columns?
todo: do I add server operations problem notify when server has an unhandled exception?
todo: //Open question - do we need a priority level for notifications, i.e. if system is having backup issue slightly more important than something run of the mill?
//or, maybe it's an option to popup if this occurs so user can decide if they want to see a red notice or not
todo: //Open question: what to do with failed deliveries?
//we dont' want them piling up but we don't want to just dump them do we?
//it should be only mail ones that fail, not app ones, there's no way for an app delivery to fail as it's just put in a table
//### PLAN if it's an smtp delivery that fails and it's to someone who can be delivered in app then it should send an inapp notification of
//delivery failure and still delete the smtp delivery
//If it's not possible to notify the person via in app of the failed smtp then perhaps it notifies OPS personnel and biz admin personnel
todo: //NEW NOTIFICATION SUBSCRIPTION EVENT TYPE:
//OPERATIONS_PROBLEMS - backup, notifications, out of memory, what have you, anyone can subscribe to it regardless of rights
//this is just to let people know there is a problem
BACKEND
todo: BAckend server routes for App notification fetch and clear etc
todo: subscription form still not completed, needs to be coded for when to show tags (for example) and other stuff
todo: Back end notification related settings
GlobalBizSettings
@@ -41,31 +24,9 @@ todo: Back end notification related settings
GlobalOpsNotificationSettings (copy from backup settings)
SMTP creds, return address
todo: Back end job processors
NotifySweeper
Notification (App notifications table) - deletes all APP notifications older than 90 days (if they want to keep it then can turn it into a reminder or SAVE it somehow)
NotifyEvent -
deletes any notifyevent with no event date created more than 90 days ago
If has event date and it's passed then deletes it if created more than 90 days ago (pretty sure there are no back dated events, once it's passed it's past)
NotifyDeliveryLog - deletes all log items older than 90 days
Notify
Scan the notifyevent table and deliver notifications accordingly
todo: notifysubscriptionbiz
Check for duplicate before accepting new / edit in validator
todo: notificationbiz
todo: notifyeventbiz
todo: notifydeliverylogbiz
todo: COREBIZ (Start with Widget first as a test to prototype this chunk of code)
Need CRUD check for notification events
Need to handle check of new tags vs existing tags (delta of tags) for any notification type
Need central common code just like biz rules check that processes notifications upon any changes
asks notifysubscription code which notifications to process
subscriptions code has either cached or on db lookup to see all that apply, returns an array of notifyeventtypes to be processed
Processes each notifyeventtype that it handles or passes off to central one maybe in some cases if common code
todo: create notifications at server for ops stuff in todos once back end is coded
todo: client global settings notification systemactive
Needs to get data from api as well as UI to control it and translation key for NotificationSystemActive
@@ -76,9 +37,6 @@ TODO: home-notify-subscription needs to also have ability to subscribe to Defaul
so it should either always show a default inapp for DefaultNotification or it should not allow them to make one for inapp
Not sure what is best but it should be braindead simple
todo: UI area for viewing App notifications
https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3783
notifications list UI as per case
todo: ui area where admin can see all notifyevent and remove any that they deem as stuck or won't deliver
Can trigger deliver there maybe?
@@ -110,7 +68,7 @@ todo: notifyeventthype WorkorderClosed needs to be renamed or maybe removed in l
todo: wo, quote and any other AgeValue notify objects are going to need to be able to record and compare age of event happening
For things like wostatusAge etc. Or, maybe they will need a separate datetime field to record the last time the status was changed
todo: As biz objects are fleshed out need to also code their notification event stuff as well
##########################
todo: for some reason getting error about checking for notifications logout and back in again even after clean reboot

View File

@@ -118,16 +118,16 @@
type chosen
</v-col>
<v-col v-if="showInTags" cols="12">
<v-col v-if="showTags" cols="12">
<gz-tag-picker
v-model="obj.inTags"
:label="$ay.t('InTags')"
v-model="obj.tags"
:label="$ay.t('tags')"
:readonly="formState.readOnly"
:disabled="formState.readOnly"
ref="inTags"
:data-cy="!!$ay.dev ? 'inTags' : false"
:error-messages="form().serverErrors(this, 'inTags')"
@input="fieldValueChanged('inTags')"
ref="tags"
:data-cy="!!$ay.dev ? 'tags' : false"
:error-messages="form().serverErrors(this, 'tags')"
@input="fieldValueChanged('tags')"
></gz-tag-picker>
</v-col>
</v-row>
@@ -227,7 +227,7 @@ export default {
public NotifyDeliveryMethod DeliveryMethod { get; set; }
public string DeliveryAddress { get; set; }
public long? AttachReportId { get; set; }
public List<string> InTags { get; set; }*/
public List<string> tags { get; set; }*/
obj: {
id: 0,
concurrency: 0,
@@ -240,7 +240,7 @@ export default {
deliveryMethod: 0,
deliveryAddress: null,
attachReportId: 0,
inTags: []
tags: []
},
formState: {
@@ -347,7 +347,7 @@ export default {
showAttachReportId() {
return true;
},
showInTags() {
showTags() {
return true;
}
},
@@ -707,36 +707,7 @@ async function fetchTranslatedText(vm) {
"NotifyDeliveryMethod",
"NotifyEventType",
"NotifyDeliveryAddress",
"InTags",
"NotifyEventObjectDeleted",
"NotifyEventObjectCreated",
"NotifyEventObjectModified",
"NotifyEventWorkorderStatusChange",
"NotifyEventContractExpiring",
"NotifyEventCSRAccepted",
"NotifyEventCSRRejected",
"NotifyEventWorkorderClosed",
"NotifyEventQuoteStatusChange",
"NotifyEventWorkorderFollowUp",
"NotifyEventServiceBankDepleted",
"NotifyEventReminderImminent",
"NotifyEventScheduledOnWorkorder",
"NotifyEventScheduledOnWorkorderImminent",
"NotifyEventWorkorderCloseByPassed",
"NotifyEventOutsideServiceOverdue",
"NotifyEventOutsideServiceReceived",
"NotifyEventPartRequestReceived",
"NotifyEventNotifyHealthCheck",
"NotifyEventBackupStatus",
"NotifyEventCustomerServiceImminent",
"NotifyEventPartRequested",
"NotifyEventWorkorderTotalExceedsThreshold",
"NotifyEventWorkorderStatusAge",
"NotifyEventUnitWarrantyExpiry",
"NotifyEventUnitMeterReadingMultipleExceeded",
"NotifyEventDefaultNotification",
"NotifyDeliveryMethodApp",
"NotifyDeliveryMethodSMTP",
"tags",
"Duration"
]);
}