D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
grafana
/
public
/
build
/
Filename :
EditNotificationChannel.13952462442298c8bddb.js
back
Copy
"use strict";(self.webpackChunkgrafana=self.webpackChunkgrafana||[]).push([[7384],{72033:(S,R,t)=>{t.d(R,{$:()=>r});var s=t(43313),e=t.n(s),E=t(27702),P=t(27173),C=t(18771),y=t(92071);const r=(c,f,g)=>D=>{const M=(0,P.connect)(c,f)(D),o=u=>{const a=(0,C.useDispatch)();return(0,E.useEffect)(()=>function(){a((0,y.e)({cleanupAction:g}))},[a]),E.createElement(M,{...u})};return o.displayName=`ConnectWithCleanUp(${M.displayName})`,e()(o,D),o}},25668:(S,R,t)=>{t.r(R),t.d(R,{EditNotificationChannelPage:()=>D,default:()=>u});var s=t(27702),e=t(34667),E=t(23839),P=t(62108),C=t(44644),y=t(72033),r=t(70907),c=t(53596),f=t(64216),g=t(30433);class D extends s.PureComponent{constructor(){super(...arguments),this.onSubmit=m=>{const{notificationChannel:p}=this.props;this.props.updateNotificationChannel({...(0,g.YV)({...p,...m,settings:{...p.settings,...m.settings}}),id:p.id})},this.onTestChannel=m=>{const{notificationChannel:p}=this.props;this.props.testNotificationChannel((0,g.dv)({...p,...m,settings:{...p.settings,...m.settings}}))}}componentDidMount(){this.props.loadNotificationChannel(parseInt(this.props.match.params.id,10))}render(){const{notificationChannel:m,notificationChannelTypes:p}=this.props;return s.createElement(C.T,{navId:"channels"},s.createElement(C.T.Contents,null,s.createElement("h2",{className:"page-sub-heading"},"Edit notification channel"),m&&m.id>0?s.createElement(E.l,{maxWidth:600,onSubmit:this.onSubmit,defaultValues:{...m,type:p.find(N=>N.value===m.type)}},({control:N,errors:B,getValues:U,register:$,watch:K})=>{const L=p.find(x=>x.value===U().type.value);return s.createElement(r.w,{selectableChannels:(0,g.t7)(p,!0),selectedChannel:L,imageRendererAvailable:e.config.rendererAvailable,onTestChannel:this.onTestChannel,register:$,watch:K,errors:B,getValues:U,control:N,resetSecureField:this.props.resetSecureField,secureFields:m.secureFields})}):s.createElement("div",null,"Loading notification channel",s.createElement(P.$,null))))}}const M=a=>({notificationChannel:a.notificationChannel.notificationChannel,notificationChannelTypes:a.notificationChannel.notificationChannelTypes}),o={loadNotificationChannel:c.tk,testNotificationChannel:c.c1,updateNotificationChannel:c.fg,resetSecureField:f.J0},u=(0,y.$)(M,o,a=>a.notificationChannel=f.Gr)(D)},70907:(S,R,t)=>{t.d(R,{w:()=>L});var s=t(42844),e=t(27702),E=t(66310),P=t(62108),C=t(64022),y=t(66670),r=t(12308),c=t(22209),f=t(1128),g=t(16310),D=t(28580),M=t(83967),o=t(60105);const u=({control:d,option:n,register:i,invalid:h})=>{const v=n.secure?`secureSettings.${n.propertyName}`:`settings.${n.propertyName}`;switch(n.element){case"input":return e.createElement(f.I,{...i(`${v}`,{required:n.required?"Required":!1,validate:O=>n.validationRule!==""?a(O,n.validationRule):!0}),invalid:h,type:n.inputType,placeholder:n.placeholder});case"select":return e.createElement(g.g,{control:d,name:`${v}`,render:({field:{ref:O,...T}})=>e.createElement(D.Ph,{...T,options:n.selectOptions??void 0,invalid:h})});case"textarea":return e.createElement(o.K,{invalid:h,...i(`${v}`,{required:n.required?"Required":!1,validate:O=>n.validationRule!==""?a(O,n.validationRule):!0})});default:return console.error("Element not supported",n.element),null}},a=(d,n)=>RegExp(n).test(d)?!0:"Invalid format",m=({control:d,currentFormValues:n,errors:i,selectedChannelOptions:h,register:v,onResetSecureField:O,secureFields:T})=>e.createElement(e.Fragment,null,h.map((l,A)=>{const I=`${l.label}-${A}`,_=n[`settings.${l.showWhen.field}`]&&n[`settings.${l.showWhen.field}`].value;return l.showWhen.field&&_!==l.showWhen.is?null:l.element==="checkbox"?e.createElement(c.g,{key:I},e.createElement(M.X,{...v(l.secure?`secureSettings.${l.propertyName}`:`settings.${l.propertyName}`),label:l.label,description:l.description})):e.createElement(c.g,{key:I,label:l.label,description:l.description,invalid:i.settings&&!!i.settings[l.propertyName],error:i.settings&&i.settings[l.propertyName]?.message},T&&T[l.propertyName]?e.createElement(f.I,{readOnly:!0,value:"Configured",suffix:e.createElement(y.zx,{onClick:()=>O(l.propertyName),fill:"text",type:"button",size:"sm"},"Clear")}):e.createElement(u,{option:l,register:v,control:d}))})),p=({control:d,currentFormValues:n,errors:i,secureFields:h,selectedChannel:v,channels:O,register:T,resetSecureField:l})=>e.createElement(e.Fragment,null,e.createElement(c.g,{label:"Name",invalid:!!i.name,error:i.name&&i.name.message},e.createElement(f.I,{...T("name",{required:"Name is required"})})),e.createElement(c.g,{label:"Type"},e.createElement(g.g,{name:"type",render:({field:{ref:A,...I}})=>e.createElement(D.Ph,{...I,options:O}),control:d,rules:{required:!0}})),e.createElement(m,{selectedChannelOptions:v.options.filter(A=>A.required),currentFormValues:n,secureFields:h,onResetSecureField:l,register:T,errors:i,control:d}));var N=t(62499),B=t(63439);const U=({control:d,currentFormValues:n,errors:i,selectedChannel:h,secureFields:v,register:O,resetSecureField:T})=>e.createElement(N.s,{label:`Optional ${h.heading}`,isOpen:!1},h.info!==""&&e.createElement(B.b,{severity:"info",title:h.info??""}),e.createElement(m,{selectedChannelOptions:h.options.filter(l=>!l.required),currentFormValues:n,register:O,errors:i,control:d,onResetSecureField:T,secureFields:v}));var $=t(86064);const K=({currentFormValues:d,imageRendererAvailable:n,register:i})=>e.createElement(N.s,{label:"Notification settings",isOpen:!1},e.createElement(c.g,null,e.createElement(M.X,{...i("isDefault"),label:"Default",description:"Use this notification for all alerts"})),e.createElement(c.g,null,e.createElement(M.X,{...i("settings.uploadImage"),label:"Include image",description:"Captures an image and include it in the notification"})),d.uploadImage&&!n&&e.createElement($.v,{title:"No image renderer available/installed"},"Grafana cannot find an image renderer to capture an image for the notification. Please make sure the Grafana Image Renderer plugin is installed. Please contact your Grafana administrator to install the plugin."),e.createElement(c.g,null,e.createElement(M.X,{...i("disableResolveMessage"),label:"Disable Resolve Message",description:"Disable the resolve message [OK] that is sent when alerting state returns to false"})),e.createElement(c.g,null,e.createElement(M.X,{...i("sendReminder"),label:"Send reminders",description:"Send additional notifications for triggered alerts"})),d.sendReminder&&e.createElement(e.Fragment,null,e.createElement(c.g,{label:"Send reminder every",description:`Specify how often reminders should be sent, e.g. every 30s, 1m, 10m, 30m', or 1h etc. Alert reminders are sent after rules are evaluated. A reminder can never be sent more frequently than a configured alert rule evaluation interval.`},e.createElement(f.I,{...i("frequency"),width:8})))),L=({control:d,errors:n,selectedChannel:i,selectableChannels:h,register:v,watch:O,getValues:T,imageRendererAvailable:l,onTestChannel:A,resetSecureField:I,secureFields:_})=>{const W=(0,E.wW)(x);(0,e.useEffect)(()=>{const F=new Set(i?.options.filter(z=>z.showWhen.field).map(z=>`settings.${z.showWhen.field}`))||[];O(["type","sendReminder","uploadImage",...F])},[i?.options,O]);const b=T();return i?e.createElement("div",{className:W.formContainer},e.createElement("div",{className:W.formItem},e.createElement(p,{selectedChannel:i,channels:h,secureFields:_,resetSecureField:I,currentFormValues:b,register:v,errors:n,control:d})),i.options.filter(F=>!F.required).length>0&&e.createElement("div",{className:W.formItem},e.createElement(U,{selectedChannel:i,secureFields:_,resetSecureField:I,currentFormValues:b,register:v,errors:n,control:d})),e.createElement("div",{className:W.formItem},e.createElement(K,{imageRendererAvailable:l,currentFormValues:b,register:v,errors:n,control:d})),e.createElement("div",{className:W.formButtons},e.createElement(C.Lh,null,e.createElement(y.zx,{type:"submit"},"Save"),e.createElement(y.zx,{type:"button",variant:"secondary",onClick:()=>A(T())},"Test"),e.createElement("a",{href:`${r.default.appSubUrl}/alerting/notifications`},e.createElement(y.zx,{type:"button",variant:"secondary"},"Back"))))):e.createElement(P.$,null)},x=d=>({formContainer:(0,s.css)``,formItem:(0,s.css)` flex-grow: 1; padding-top: ${d.spacing(2)}; `,formButtons:(0,s.css)` padding-top: ${d.spacing(4)}; `})},53596:(S,R,t)=>{t.d(R,{Au:()=>y,C2:()=>c,c1:()=>g,en:()=>r,fA:()=>D,fg:()=>f,tk:()=>M});var s=t(73289),e=t(26129),E=t(33877),P=t(73807),C=t(64216);function y(o){return async u=>{u((0,C.gz)());const a=await(0,s.i)().get("/api/alerts",o);u((0,C.Oc)(a))}}function r(o,u){return async a=>{await(0,s.i)().post(`/api/alerts/${o}/pause`,u);const m=e.E1.getSearchObject().state||"all";a(y({state:m.toString()}))}}function c(o){return async u=>{try{await(0,s.i)().post("/api/alert-notifications",o),u((0,E.$l)((0,P.AT)("Notification created"))),e.E1.push("/alerting/notifications")}catch(a){(0,s.kW)(a)&&u((0,E.$l)((0,P.t_)(a.data.error)))}}}function f(o){return async u=>{try{await(0,s.i)().put(`/api/alert-notifications/${o.id}`,o),u((0,E.$l)((0,P.AT)("Notification updated")))}catch(a){(0,s.kW)(a)&&u((0,E.$l)((0,P.t_)(a.data.error)))}}}function g(o){return async(u,a)=>{const m=a().notificationChannel.notificationChannel;await(0,s.i)().post("/api/alert-notifications/test",{id:m.id,...o})}}function D(){return async o=>{const a=(await(0,s.i)().get("/api/alert-notifiers")).sort((m,p)=>m.name>p.name?1:-1);o((0,C.T2)(a))}}function M(o){return async u=>{await u(D());const a=await(0,s.i)().get(`/api/alert-notifications/${o}`);u((0,C.K)(a))}}},30433:(S,R,t)=>{t.d(R,{Pg:()=>E,YV:()=>C,dv:()=>y,t7:()=>P});var s=t(82152),e=t(34667);const E={id:-1,name:"",type:{value:"email",label:"Email"},sendReminder:!1,disableResolveMessage:!1,frequency:"15m",settings:{uploadImage:e.config.rendererAvailable,autoResolve:!0,httpMethod:"POST",severity:"critical"},secureSettings:{},secureFields:{},isDefault:!1},P=(0,s.Z)((r,c)=>r.map(f=>c?{value:f.value,label:f.label,description:f.description}:{value:f.value,label:f.label})),C=r=>{const c=Object.fromEntries(Object.entries(r.settings).map(([f,g])=>[f,g&&g.hasOwnProperty("value")?g.value:g]));return{...E,...r,frequency:r.frequency===""?E.frequency:r.frequency,type:r.type.value,settings:{...E.settings,...c},secureSettings:{...r.secureSettings}}},y=r=>({name:r.name,type:r.type.value,frequency:r.frequency??E.frequency,settings:{...Object.assign(E.settings,r.settings)},secureSettings:{...r.secureSettings}})}}]); //# sourceMappingURL=EditNotificationChannel.13952462442298c8bddb.js.map