| 
					
				 | 
			
			
				@@ -1,7 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	<modal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		class="edit-news-modal" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		:title="newsId ? 'Edit News' : 'Create News'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		:title="createNews ? 'Create News' : 'Edit News'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		:size="'wide'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		:split="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -45,14 +45,14 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				<save-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					ref="saveButton" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					v-if="newsId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					@clicked="newsId ? update(false) : create(false)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					v-if="createNews" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					@clicked="createNews ? create(false) : update(false)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				<save-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					ref="saveAndCloseButton" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					default-message="Save and close" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					@clicked="newsId ? update(true) : create(true)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					@clicked="createNews ? create(true) : update(true)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				<div class="right" v-if="createdAt > 0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<span> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -76,7 +76,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { mapActions, mapGetters, mapState } from "vuex"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { mapActions, mapGetters } from "vuex"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { marked } from "marked"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { sanitize } from "dompurify"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Toast from "toasters"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -85,11 +85,12 @@ import { formatDistance } from "date-fns"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import ws from "@/ws"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import SaveButton from "../SaveButton.vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { mapModalState } from "@/vuex_helpers"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	components: { SaveButton }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	props: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		newsId: { type: String, default: "" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sector: { type: String, default: "admin" } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		modalUuid: { type: String, default: "" } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -102,7 +103,11 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	computed: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		...mapState("modals/editNews", { news: state => state.news }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		...mapModalState("modals/editNews/MODAL_UUID", { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			createNews: state => state.createNews, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			newsId: state => state.newsId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			sector: state => state.sector 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		...mapGetters({ socket: "websockets/getSocket" }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	mounted() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -119,9 +124,13 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		ws.onConnect(this.init); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	beforeUnmount() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// Delete the VueX module that was created for this modal, after all other cleanup tasks are performed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this.$store.unregisterModule(["modals", "editNews", this.modalUuid]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		init() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if (this.newsId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (this.newsId && !this.createNews) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				this.socket.dispatch(`news.getNewsFromId`, this.newsId, res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if (res.status === "success") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						const { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -222,12 +231,7 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		formatDistance, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		...mapActions("modalVisibility", ["closeModal"]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		...mapActions("modals/editNews", [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			"editNews", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			"addChange", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			"removeChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		...mapActions("modalVisibility", ["closeModal"]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 |