| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  | <template> | 
					
						
							| 
									
										
										
										
											2021-09-04 20:24:32 -08:00
										 |  |  |   <v-container class="narrow-container"> | 
					
						
							|  |  |  |     <BasePageTitle divider> | 
					
						
							|  |  |  |       <template #header> | 
					
						
							|  |  |  |         <v-img max-height="125" max-width="125" :src="require('~/static/svgs/manage-webhooks.svg')"></v-img> | 
					
						
							|  |  |  |       </template> | 
					
						
							|  |  |  |       <template #title> Webhooks </template> | 
					
						
							| 
									
										
										
										
											2022-06-17 13:25:47 -08:00
										 |  |  |       <v-card-text class="pb-0"> | 
					
						
							|  |  |  |         The webhooks defined below will be executed when a meal is defined for the day. At the scheduled time the | 
					
						
							|  |  |  |         webhooks will be sent with the data from the recipe that is scheduled for the day. Note that webhook execution | 
					
						
							|  |  |  |         is not exact. The webhooks are executed on a 5 minutes interval so the webhooks will be executed within 5 +/- | 
					
						
							|  |  |  |         minutes of the scheduled. | 
					
						
							|  |  |  |       </v-card-text> | 
					
						
							| 
									
										
										
										
											2021-09-04 20:24:32 -08:00
										 |  |  |     </BasePageTitle> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-17 13:25:47 -08:00
										 |  |  |     <BannerExperimental /> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  |     <BaseButton create @click="actions.createOne()" /> | 
					
						
							|  |  |  |     <v-expansion-panels class="mt-2"> | 
					
						
							| 
									
										
										
										
											2022-01-09 21:04:24 -09:00
										 |  |  |       <v-expansion-panel v-for="(webhook, index) in webhooks" :key="index" class="my-2 left-border rounded"> | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  |         <v-expansion-panel-header disable-icon-rotate class="headline"> | 
					
						
							|  |  |  |           <div class="d-flex align-center"> | 
					
						
							|  |  |  |             <v-icon large left :color="webhook.enabled ? 'info' : null"> | 
					
						
							|  |  |  |               {{ $globals.icons.webhook }} | 
					
						
							|  |  |  |             </v-icon> | 
					
						
							| 
									
										
										
										
											2022-06-17 13:25:47 -08:00
										 |  |  |             {{ webhook.name }} - {{ timeDisplay(timeUTCToLocal(webhook.scheduledTime)) }} | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  |           </div> | 
					
						
							|  |  |  |           <template #actions> | 
					
						
							| 
									
										
										
										
											2022-01-09 21:04:24 -09:00
										 |  |  |             <v-btn small icon class="ml-2"> | 
					
						
							|  |  |  |               <v-icon> | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  |                 {{ $globals.icons.edit }} | 
					
						
							|  |  |  |               </v-icon> | 
					
						
							|  |  |  |             </v-btn> | 
					
						
							|  |  |  |           </template> | 
					
						
							|  |  |  |         </v-expansion-panel-header> | 
					
						
							|  |  |  |         <v-expansion-panel-content> | 
					
						
							| 
									
										
										
										
											2022-06-17 13:25:47 -08:00
										 |  |  |           <GroupWebhookEditor | 
					
						
							|  |  |  |             :key="webhook.id" | 
					
						
							|  |  |  |             :webhook="webhook" | 
					
						
							|  |  |  |             @save="actions.updateOne($event)" | 
					
						
							|  |  |  |             @delete="actions.deleteOne($event)" | 
					
						
							|  |  |  |           /> | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  |         </v-expansion-panel-content> | 
					
						
							|  |  |  |       </v-expansion-panel> | 
					
						
							|  |  |  |     </v-expansion-panels> | 
					
						
							|  |  |  |   </v-container> | 
					
						
							|  |  |  | </template> | 
					
						
							| 
									
										
										
										
											2022-03-23 04:54:16 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  | <script lang="ts"> | 
					
						
							|  |  |  | import { defineComponent } from "@nuxtjs/composition-api"; | 
					
						
							| 
									
										
										
										
											2022-06-17 13:25:47 -08:00
										 |  |  | import { useGroupWebhooks, timeLocalToUTC, timeUTCToLocal } from "~/composables/use-group-webhooks"; | 
					
						
							|  |  |  | import GroupWebhookEditor from "~/components/Domain/Group/GroupWebhookEditor.vue"; | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export default defineComponent({ | 
					
						
							| 
									
										
										
										
											2022-06-17 13:25:47 -08:00
										 |  |  |   components: { GroupWebhookEditor }, | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  |   setup() { | 
					
						
							|  |  |  |     const { actions, webhooks } = useGroupWebhooks(); | 
					
						
							| 
									
										
										
										
											2022-06-17 13:25:47 -08:00
										 |  |  |     function timeDisplay(time: string): string { | 
					
						
							|  |  |  |       // returns the time in the format HH:MM AM/PM
 | 
					
						
							|  |  |  |       const [hours, minutes] = time.split(":"); | 
					
						
							|  |  |  |       const ampm = Number(hours) < 12 ? "AM" : "PM"; | 
					
						
							|  |  |  |       const hour = Number(hours) % 12 || 12; | 
					
						
							|  |  |  |       const minute = minutes.padStart(2, "0"); | 
					
						
							|  |  |  |       return `${hour}:${minute} ${ampm}`; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-09-04 20:24:32 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  |     return { | 
					
						
							|  |  |  |       webhooks, | 
					
						
							| 
									
										
										
										
											2021-09-04 20:24:32 -08:00
										 |  |  |       actions, | 
					
						
							| 
									
										
										
										
											2022-06-17 13:25:47 -08:00
										 |  |  |       timeLocalToUTC, | 
					
						
							|  |  |  |       timeUTCToLocal, | 
					
						
							|  |  |  |       timeDisplay, | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  |     }; | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2021-10-07 09:39:47 -08:00
										 |  |  |   head() { | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |       title: this.$t("settings.webhooks.webhooks") as string, | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2021-09-01 21:39:40 -08:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2022-03-23 04:54:16 +01:00
										 |  |  | </script> |