41 lines
1.5 KiB
Go
41 lines
1.5 KiB
Go
|
|
package houston
|
||
|
|
|
||
|
|
import (
|
||
|
|
"github.com/slack-go/slack"
|
||
|
|
"gorm.io/gorm"
|
||
|
|
)
|
||
|
|
|
||
|
|
func BuildIncidentUpdateTitleModal(db *gorm.DB, channel slack.Channel, title string) slack.ModalViewRequest {
|
||
|
|
titleText := slack.NewTextBlockObject("plain_text", "Set Title of Incident", false, false)
|
||
|
|
closeText := slack.NewTextBlockObject("plain_text", "Close", false, false)
|
||
|
|
submitText := slack.NewTextBlockObject("plain_text", "Submit", false, false)
|
||
|
|
|
||
|
|
headerText := slack.NewTextBlockObject("mrkdwn", "Title", false, false)
|
||
|
|
headerSection := slack.NewSectionBlock(headerText, nil, nil)
|
||
|
|
|
||
|
|
incidentTitleText := slack.NewTextBlockObject("plain_text", "Incident Title", false, false)
|
||
|
|
incidentTitlePlaceholder := slack.NewTextBlockObject("plain_text", "Write something", false, false)
|
||
|
|
incidentTitleElement := slack.NewPlainTextInputBlockElement(incidentTitlePlaceholder, "incident_title")
|
||
|
|
incidentTitleElement.InitialValue = title
|
||
|
|
incidentBelowText := slack.NewTextBlockObject("plain_text", "The title to set for the incident.", false, false)
|
||
|
|
incidentTitle := slack.NewInputBlock("Incident title", incidentTitleText, incidentBelowText, incidentTitleElement)
|
||
|
|
|
||
|
|
blocks := slack.Blocks{
|
||
|
|
BlockSet: []slack.Block{
|
||
|
|
headerSection,
|
||
|
|
incidentTitle,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
|
||
|
|
return slack.ModalViewRequest{
|
||
|
|
Type: slack.ViewType("modal"),
|
||
|
|
Title: titleText,
|
||
|
|
Close: closeText,
|
||
|
|
Submit: submitText,
|
||
|
|
Blocks: blocks,
|
||
|
|
PrivateMetadata: channel.ID,
|
||
|
|
CallbackID: "setIncidentTitle",
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|