|  |  | @ -317,12 +317,19 @@ export default class ContactsView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |           resp.status, | 
			
		
	
		
			
				
					|  |  |  |           resp.data, | 
			
		
	
		
			
				
					|  |  |  |         ); | 
			
		
	
		
			
				
					|  |  |  |         this.alertTitle = "Error With Server"; | 
			
		
	
		
			
				
					|  |  |  |         this.alertMessage = | 
			
		
	
		
			
				
					|  |  |  |           "Got an error retrieving your " + | 
			
		
	
		
			
				
					|  |  |  |           resp.config.url.includes("recipientDid") | 
			
		
	
		
			
				
					|  |  |  |             ? "received" | 
			
		
	
		
			
				
					|  |  |  |             : "given" + " time from the server."; | 
			
		
	
		
			
				
					|  |  |  |         this.$notify( | 
			
		
	
		
			
				
					|  |  |  |           { | 
			
		
	
		
			
				
					|  |  |  |             group: "alert", | 
			
		
	
		
			
				
					|  |  |  |             type: "danger", | 
			
		
	
		
			
				
					|  |  |  |             title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |             text: | 
			
		
	
		
			
				
					|  |  |  |               "Got an error retrieving your " + | 
			
		
	
		
			
				
					|  |  |  |               resp.config.url.includes("recipientDid") | 
			
		
	
		
			
				
					|  |  |  |                 ? "received" | 
			
		
	
		
			
				
					|  |  |  |                 : "given" + " time from the server.", | 
			
		
	
		
			
				
					|  |  |  |           }, | 
			
		
	
		
			
				
					|  |  |  |           -1, | 
			
		
	
		
			
				
					|  |  |  |         ); | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     }; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -370,8 +377,15 @@ export default class ContactsView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |       this.givenToMeConfirmed = givenToMeConfirmed; | 
			
		
	
		
			
				
					|  |  |  |       this.givenToMeUnconfirmed = givenToMeUnconfirmed; | 
			
		
	
		
			
				
					|  |  |  |     } catch (error) { | 
			
		
	
		
			
				
					|  |  |  |       this.alertTitle = "Error With Server"; | 
			
		
	
		
			
				
					|  |  |  |       this.alertMessage = error as string; | 
			
		
	
		
			
				
					|  |  |  |       this.$notify( | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           group: "alert", | 
			
		
	
		
			
				
					|  |  |  |           type: "danger", | 
			
		
	
		
			
				
					|  |  |  |           title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |           text: error as string, | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |         -1, | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -464,18 +478,32 @@ export default class ContactsView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |         try { | 
			
		
	
		
			
				
					|  |  |  |           const resp = await this.axios.post(url, payload, { headers }); | 
			
		
	
		
			
				
					|  |  |  |           if (resp.data?.success?.embeddedRecordError) { | 
			
		
	
		
			
				
					|  |  |  |             this.alertTitle = "Registration Still Unknown"; | 
			
		
	
		
			
				
					|  |  |  |             let message = "There was some problem with the registration."; | 
			
		
	
		
			
				
					|  |  |  |             if (typeof resp.data.success.embeddedRecordError == "string") { | 
			
		
	
		
			
				
					|  |  |  |               message += " " + resp.data.success.embeddedRecordError; | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             this.alertMessage = message; | 
			
		
	
		
			
				
					|  |  |  |             this.$notify( | 
			
		
	
		
			
				
					|  |  |  |               { | 
			
		
	
		
			
				
					|  |  |  |                 group: "alert", | 
			
		
	
		
			
				
					|  |  |  |                 type: "danger", | 
			
		
	
		
			
				
					|  |  |  |                 title: "Registration Still Unknown", | 
			
		
	
		
			
				
					|  |  |  |                 text: message, | 
			
		
	
		
			
				
					|  |  |  |               }, | 
			
		
	
		
			
				
					|  |  |  |               -1, | 
			
		
	
		
			
				
					|  |  |  |             ); | 
			
		
	
		
			
				
					|  |  |  |           } else if (resp.data?.success?.handleId) { | 
			
		
	
		
			
				
					|  |  |  |             contact.registered = true; | 
			
		
	
		
			
				
					|  |  |  |             db.contacts.update(contact.did, { registered: true }); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             this.alertTitle = "Registration Success"; | 
			
		
	
		
			
				
					|  |  |  |             this.alertMessage = contact.name + " has been registered."; | 
			
		
	
		
			
				
					|  |  |  |             this.$notify( | 
			
		
	
		
			
				
					|  |  |  |               { | 
			
		
	
		
			
				
					|  |  |  |                 group: "alert", | 
			
		
	
		
			
				
					|  |  |  |                 type: "info", | 
			
		
	
		
			
				
					|  |  |  |                 title: "Registration Success", | 
			
		
	
		
			
				
					|  |  |  |                 text: contact.name + " has been registered.", | 
			
		
	
		
			
				
					|  |  |  |               }, | 
			
		
	
		
			
				
					|  |  |  |               -1, | 
			
		
	
		
			
				
					|  |  |  |             ); | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         } catch (error) { | 
			
		
	
		
			
				
					|  |  |  |           let userMessage = "There was an error. See logs for more info."; | 
			
		
	
	
		
			
				
					|  |  | @ -490,8 +518,15 @@ export default class ContactsView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |             userMessage = error as string; | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |           // Now set that error for the user to see. | 
			
		
	
		
			
				
					|  |  |  |           this.alertTitle = "Error With Server"; | 
			
		
	
		
			
				
					|  |  |  |           this.alertMessage = userMessage; | 
			
		
	
		
			
				
					|  |  |  |           this.$notify( | 
			
		
	
		
			
				
					|  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |               group: "alert", | 
			
		
	
		
			
				
					|  |  |  |               type: "danger", | 
			
		
	
		
			
				
					|  |  |  |               title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |               text: userMessage, | 
			
		
	
		
			
				
					|  |  |  |             }, | 
			
		
	
		
			
				
					|  |  |  |             -1, | 
			
		
	
		
			
				
					|  |  |  |           ); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
	
		
			
				
					|  |  | @ -512,17 +547,39 @@ export default class ContactsView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |         contact.seesMe = visibility; | 
			
		
	
		
			
				
					|  |  |  |         db.contacts.update(contact.did, { seesMe: visibility }); | 
			
		
	
		
			
				
					|  |  |  |       } else { | 
			
		
	
		
			
				
					|  |  |  |         this.alertTitle = "Error With Server"; | 
			
		
	
		
			
				
					|  |  |  |         console.error("Bad response setting visibility: ", resp.data); | 
			
		
	
		
			
				
					|  |  |  |         if (resp.data.error?.message) { | 
			
		
	
		
			
				
					|  |  |  |           this.alertMessage = resp.data.error?.message; | 
			
		
	
		
			
				
					|  |  |  |           this.$notify( | 
			
		
	
		
			
				
					|  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |               group: "alert", | 
			
		
	
		
			
				
					|  |  |  |               type: "danger", | 
			
		
	
		
			
				
					|  |  |  |               title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |               text: resp.data.error?.message, | 
			
		
	
		
			
				
					|  |  |  |             }, | 
			
		
	
		
			
				
					|  |  |  |             -1, | 
			
		
	
		
			
				
					|  |  |  |           ); | 
			
		
	
		
			
				
					|  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |           this.alertMessage = "Bad server response of " + resp.status; | 
			
		
	
		
			
				
					|  |  |  |           this.$notify( | 
			
		
	
		
			
				
					|  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |               group: "alert", | 
			
		
	
		
			
				
					|  |  |  |               type: "danger", | 
			
		
	
		
			
				
					|  |  |  |               title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |               text: "Bad server response of " + resp.status, | 
			
		
	
		
			
				
					|  |  |  |             }, | 
			
		
	
		
			
				
					|  |  |  |             -1, | 
			
		
	
		
			
				
					|  |  |  |           ); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } catch (err) { | 
			
		
	
		
			
				
					|  |  |  |       this.alertTitle = "Error With Server"; | 
			
		
	
		
			
				
					|  |  |  |       this.alertMessage = err as string; | 
			
		
	
		
			
				
					|  |  |  |       this.$notify( | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           group: "alert", | 
			
		
	
		
			
				
					|  |  |  |           type: "danger", | 
			
		
	
		
			
				
					|  |  |  |           title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |           text: err as string, | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |         -1, | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -539,23 +596,52 @@ export default class ContactsView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |         contact.seesMe = visibility; | 
			
		
	
		
			
				
					|  |  |  |         db.contacts.update(contact.did, { seesMe: visibility }); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         this.alertTitle = "Refreshed"; | 
			
		
	
		
			
				
					|  |  |  |         this.alertMessage = | 
			
		
	
		
			
				
					|  |  |  |           this.nameForContact(contact, true) + | 
			
		
	
		
			
				
					|  |  |  |           " can " + | 
			
		
	
		
			
				
					|  |  |  |           (visibility ? "" : "not ") + | 
			
		
	
		
			
				
					|  |  |  |           "see your activity."; | 
			
		
	
		
			
				
					|  |  |  |         this.$notify( | 
			
		
	
		
			
				
					|  |  |  |           { | 
			
		
	
		
			
				
					|  |  |  |             group: "alert", | 
			
		
	
		
			
				
					|  |  |  |             type: "toast", | 
			
		
	
		
			
				
					|  |  |  |             title: "Refreshed", | 
			
		
	
		
			
				
					|  |  |  |             text: | 
			
		
	
		
			
				
					|  |  |  |               this.nameForContact(contact, true) + | 
			
		
	
		
			
				
					|  |  |  |               " can " + | 
			
		
	
		
			
				
					|  |  |  |               (visibility ? "" : "not ") + | 
			
		
	
		
			
				
					|  |  |  |               "see your activity.", | 
			
		
	
		
			
				
					|  |  |  |           }, | 
			
		
	
		
			
				
					|  |  |  |           5000, | 
			
		
	
		
			
				
					|  |  |  |         ); | 
			
		
	
		
			
				
					|  |  |  |       } else { | 
			
		
	
		
			
				
					|  |  |  |         this.alertTitle = "Error With Server"; | 
			
		
	
		
			
				
					|  |  |  |         if (resp.data.error?.message) { | 
			
		
	
		
			
				
					|  |  |  |           this.alertMessage = resp.data.error?.message; | 
			
		
	
		
			
				
					|  |  |  |           this.$notify( | 
			
		
	
		
			
				
					|  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |               group: "alert", | 
			
		
	
		
			
				
					|  |  |  |               type: "danger", | 
			
		
	
		
			
				
					|  |  |  |               title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |               text: resp.data.error?.message, | 
			
		
	
		
			
				
					|  |  |  |             }, | 
			
		
	
		
			
				
					|  |  |  |             -1, | 
			
		
	
		
			
				
					|  |  |  |           ); | 
			
		
	
		
			
				
					|  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |           this.alertMessage = "Bad server response of " + resp.status; | 
			
		
	
		
			
				
					|  |  |  |           this.$notify( | 
			
		
	
		
			
				
					|  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |               group: "alert", | 
			
		
	
		
			
				
					|  |  |  |               type: "danger", | 
			
		
	
		
			
				
					|  |  |  |               title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |               text: "Bad server response of " + resp.status, | 
			
		
	
		
			
				
					|  |  |  |             }, | 
			
		
	
		
			
				
					|  |  |  |             -1, | 
			
		
	
		
			
				
					|  |  |  |           ); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } catch (err) { | 
			
		
	
		
			
				
					|  |  |  |       this.alertTitle = "Error With Server"; | 
			
		
	
		
			
				
					|  |  |  |       this.alertMessage = err as string; | 
			
		
	
		
			
				
					|  |  |  |       this.$notify( | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           group: "alert", | 
			
		
	
		
			
				
					|  |  |  |           type: "danger", | 
			
		
	
		
			
				
					|  |  |  |           title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |           text: err as string, | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |         -1, | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -594,15 +680,35 @@ export default class ContactsView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |     if (!this.isNumeric(this.hourInput)) { | 
			
		
	
		
			
				
					|  |  |  |       this.alertTitle = "Input Error"; | 
			
		
	
		
			
				
					|  |  |  |       this.alertMessage = | 
			
		
	
		
			
				
					|  |  |  |         "This is not a valid number of hours: " + this.hourInput; | 
			
		
	
		
			
				
					|  |  |  |       this.$notify( | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           group: "alert", | 
			
		
	
		
			
				
					|  |  |  |           type: "danger", | 
			
		
	
		
			
				
					|  |  |  |           title: "Input Error", | 
			
		
	
		
			
				
					|  |  |  |           text: "This is not a valid number of hours: " + this.hourInput, | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |         -1, | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  |     } else if (!parseFloat(this.hourInput)) { | 
			
		
	
		
			
				
					|  |  |  |       this.alertTitle = "Input Error"; | 
			
		
	
		
			
				
					|  |  |  |       this.alertMessage = "Giving 0 hours does nothing."; | 
			
		
	
		
			
				
					|  |  |  |       this.$notify( | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           group: "alert", | 
			
		
	
		
			
				
					|  |  |  |           type: "danger", | 
			
		
	
		
			
				
					|  |  |  |           title: "Input Error", | 
			
		
	
		
			
				
					|  |  |  |           text: "Giving 0 hours does nothing.", | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |         -1, | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  |     } else if (!identity) { | 
			
		
	
		
			
				
					|  |  |  |       this.alertTitle = "Status Error"; | 
			
		
	
		
			
				
					|  |  |  |       this.alertMessage = "No identity is available."; | 
			
		
	
		
			
				
					|  |  |  |       this.$notify( | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           group: "alert", | 
			
		
	
		
			
				
					|  |  |  |           type: "danger", | 
			
		
	
		
			
				
					|  |  |  |           title: "Status Error", | 
			
		
	
		
			
				
					|  |  |  |           text: "No identity is available.", | 
			
		
	
		
			
				
					|  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |         -1, | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  |     } else { | 
			
		
	
		
			
				
					|  |  |  |       // ask to confirm amount | 
			
		
	
		
			
				
					|  |  |  |       let toFrom; | 
			
		
	
	
		
			
				
					|  |  | @ -686,8 +792,15 @@ export default class ContactsView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |       try { | 
			
		
	
		
			
				
					|  |  |  |         const resp = await this.axios.post(url, payload, { headers }); | 
			
		
	
		
			
				
					|  |  |  |         if (resp.data?.success?.handleId) { | 
			
		
	
		
			
				
					|  |  |  |           this.alertTitle = "Done"; | 
			
		
	
		
			
				
					|  |  |  |           this.alertMessage = "Successfully logged time to the server."; | 
			
		
	
		
			
				
					|  |  |  |           this.$notify( | 
			
		
	
		
			
				
					|  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |               group: "alert", | 
			
		
	
		
			
				
					|  |  |  |               type: "success", | 
			
		
	
		
			
				
					|  |  |  |               title: "Done", | 
			
		
	
		
			
				
					|  |  |  |               text: "Successfully logged time to the server.", | 
			
		
	
		
			
				
					|  |  |  |             }, | 
			
		
	
		
			
				
					|  |  |  |             -1, | 
			
		
	
		
			
				
					|  |  |  |           ); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |           if (fromDid === identity.did) { | 
			
		
	
		
			
				
					|  |  |  |             const newList = R.clone(this.givenByMeUnconfirmed); | 
			
		
	
	
		
			
				
					|  |  | @ -712,8 +825,15 @@ export default class ContactsView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |           userMessage = error as string; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |         // Now set that error for the user to see. | 
			
		
	
		
			
				
					|  |  |  |         this.alertTitle = "Error With Server"; | 
			
		
	
		
			
				
					|  |  |  |         this.alertMessage = userMessage; | 
			
		
	
		
			
				
					|  |  |  |         this.$notify( | 
			
		
	
		
			
				
					|  |  |  |           { | 
			
		
	
		
			
				
					|  |  |  |             group: "alert", | 
			
		
	
		
			
				
					|  |  |  |             type: "danger", | 
			
		
	
		
			
				
					|  |  |  |             title: "Error With Server", | 
			
		
	
		
			
				
					|  |  |  |             text: userMessage, | 
			
		
	
		
			
				
					|  |  |  |           }, | 
			
		
	
		
			
				
					|  |  |  |           -1, | 
			
		
	
		
			
				
					|  |  |  |         ); | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
	
		
			
				
					|  |  | 
 |