|  |  | @ -33,17 +33,26 @@ | 
			
		
	
		
			
				
					|  |  |  |       class="block w-full rounded border border-slate-400 mb-4 px-3 py-2" | 
			
		
	
		
			
				
					|  |  |  |       rows="5" | 
			
		
	
		
			
				
					|  |  |  |       v-model="description" | 
			
		
	
		
			
				
					|  |  |  |       maxlength="500" | 
			
		
	
		
			
				
					|  |  |  |     ></textarea> | 
			
		
	
		
			
				
					|  |  |  |     <div class="text-xs text-slate-500 italic -mt-3 mb-4"> | 
			
		
	
		
			
				
					|  |  |  |       88/500 max. characters | 
			
		
	
		
			
				
					|  |  |  |       {{ description.length }}/500 max. characters | 
			
		
	
		
			
				
					|  |  |  |     </div> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     <div class="mt-8"> | 
			
		
	
		
			
				
					|  |  |  |       <button | 
			
		
	
		
			
				
					|  |  |  |         :disabled="isHiddenSave" | 
			
		
	
		
			
				
					|  |  |  |         class="block w-full text-center text-lg font-bold uppercase bg-blue-600 text-white px-2 py-3 rounded-md mb-2" | 
			
		
	
		
			
				
					|  |  |  |         @click="onSaveProjectClick()" | 
			
		
	
		
			
				
					|  |  |  |       > | 
			
		
	
		
			
				
					|  |  |  |         Save Project | 
			
		
	
		
			
				
					|  |  |  |         <!-- SHOW if in idle state --> | 
			
		
	
		
			
				
					|  |  |  |         <span :class="{ hidden: isHiddenSave }">Save Project</span> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         <!-- SHOW if in saving state; DISABLE button while in saving state --> | 
			
		
	
		
			
				
					|  |  |  |         <span :class="{ hidden: isHiddenSpinner }" | 
			
		
	
		
			
				
					|  |  |  |           ><i class="fa-solid fa-spinner fa-spin-pulse"></i> | 
			
		
	
		
			
				
					|  |  |  |           Saving…</span | 
			
		
	
		
			
				
					|  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |       </button> | 
			
		
	
		
			
				
					|  |  |  |       <button | 
			
		
	
		
			
				
					|  |  |  |         type="button" | 
			
		
	
	
		
			
				
					|  |  | @ -96,6 +105,8 @@ export default class NewEditProjectView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |   alertMessage = ""; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   projectId = localStorage.getItem("projectId") || ""; | 
			
		
	
		
			
				
					|  |  |  |   isHiddenSave = false; | 
			
		
	
		
			
				
					|  |  |  |   isHiddenSpinner = true; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   async created() { | 
			
		
	
		
			
				
					|  |  |  |     if (this.projectId === "") { | 
			
		
	
	
		
			
				
					|  |  | @ -222,6 +233,8 @@ export default class NewEditProjectView extends Vue { | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   public async onSaveProjectClick() { | 
			
		
	
		
			
				
					|  |  |  |     this.isHiddenSave = true; | 
			
		
	
		
			
				
					|  |  |  |     this.isHiddenSpinner = false; | 
			
		
	
		
			
				
					|  |  |  |     await db.open(); | 
			
		
	
		
			
				
					|  |  |  |     const num_accounts = await db.accounts.count(); | 
			
		
	
		
			
				
					|  |  |  |     if (num_accounts === 0) { | 
			
		
	
	
		
			
				
					|  |  | 
 |