mirror of
https://code.sup39.dev/repos/Wqawg
synced 2024-12-27 19:24:52 +09:00
UI: Add reopen-this-ticket button to ticket page
This commit is contained in:
parent
ebe676d94b
commit
91ed2c82b5
4 changed files with 34 additions and 2 deletions
|
@ -951,6 +951,7 @@ instance YesodBreadcrumbs App where
|
||||||
|
|
||||||
TicketNewR d -> ("New Ticket", Just $ DeckR d)
|
TicketNewR d -> ("New Ticket", Just $ DeckR d)
|
||||||
TicketCloseR _ _ -> ("", Nothing)
|
TicketCloseR _ _ -> ("", Nothing)
|
||||||
|
TicketOpenR _ _ -> ("", Nothing)
|
||||||
TicketFollowR _ _ -> ("", Nothing)
|
TicketFollowR _ _ -> ("", Nothing)
|
||||||
TicketUnfollowR _ _ -> ("", Nothing)
|
TicketUnfollowR _ _ -> ("", Nothing)
|
||||||
TicketReplyR d t -> ("Reply", Just $ TicketR d t)
|
TicketReplyR d t -> ("Reply", Just $ TicketR d t)
|
||||||
|
|
|
@ -27,6 +27,7 @@ module Vervis.Handler.Ticket
|
||||||
, getTicketNewR
|
, getTicketNewR
|
||||||
, postTicketNewR
|
, postTicketNewR
|
||||||
, postTicketCloseR
|
, postTicketCloseR
|
||||||
|
, postTicketOpenR
|
||||||
|
|
||||||
, postTicketFollowR
|
, postTicketFollowR
|
||||||
, postTicketUnfollowR
|
, postTicketUnfollowR
|
||||||
|
@ -520,6 +521,36 @@ postTicketCloseR deckHash taskHash = do
|
||||||
setMessage "Resolve activity sent"
|
setMessage "Resolve activity sent"
|
||||||
redirect $ TicketR deckHash taskHash
|
redirect $ TicketR deckHash taskHash
|
||||||
|
|
||||||
|
postTicketOpenR :: KeyHashid Deck -> KeyHashid TicketDeck -> Handler ()
|
||||||
|
postTicketOpenR deckHash taskHash = do
|
||||||
|
deckID <- decodeKeyHashid404 deckHash
|
||||||
|
taskID <- decodeKeyHashid404 taskHash
|
||||||
|
|
||||||
|
personEntity@(Entity personID person) <- requireAuth
|
||||||
|
personHash <- encodeKeyHashid personID
|
||||||
|
encodeRouteHome <- getEncodeRouteHome
|
||||||
|
let uTicket = encodeRouteHome $ TicketR deckHash taskHash
|
||||||
|
result <- runExceptT $ do
|
||||||
|
(maybeSummary, audience, undo) <- C.unresolve personHash uTicket
|
||||||
|
grantID <- do
|
||||||
|
maybeItem <- lift $ runDB $ getGrant CollabTopicDeckCollab CollabTopicDeckDeck deckID personID
|
||||||
|
fromMaybeE maybeItem "You need to be a collaborator in the Deck to reopen tickets"
|
||||||
|
grantHash <- encodeKeyHashid grantID
|
||||||
|
let uCap = encodeRouteHome $ DeckOutboxItemR deckHash grantHash
|
||||||
|
(localRecips, remoteRecips, fwdHosts, action) <-
|
||||||
|
C.makeServerInput (Just uCap) maybeSummary audience $ AP.UndoActivity undo
|
||||||
|
let cap =
|
||||||
|
Left (LocalActorDeck deckID, LocalActorDeck deckHash, grantID)
|
||||||
|
handleViaActor personID (Just cap) localRecips remoteRecips fwdHosts action
|
||||||
|
|
||||||
|
case result of
|
||||||
|
Left e -> do
|
||||||
|
setMessage $ toHtml e
|
||||||
|
redirect $ TicketR deckHash taskHash
|
||||||
|
Right resolveID -> do
|
||||||
|
setMessage "Undo activity sent"
|
||||||
|
redirect $ TicketR deckHash taskHash
|
||||||
|
|
||||||
postTicketFollowR :: KeyHashid Deck -> KeyHashid TicketDeck -> Handler ()
|
postTicketFollowR :: KeyHashid Deck -> KeyHashid TicketDeck -> Handler ()
|
||||||
postTicketFollowR _ = error "Temporarily disabled"
|
postTicketFollowR _ = error "Temporarily disabled"
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ $# .
|
||||||
Status: #
|
Status: #
|
||||||
$maybe (closed, closer) <- resolved
|
$maybe (closed, closer) <- resolved
|
||||||
Closed on #{showDate closed} by ^{personLinkFedW closer}
|
Closed on #{showDate closed} by ^{personLinkFedW closer}
|
||||||
$# ^{buttonW POST "Reopen this ticket" (ProjectTicketOpenR deckHash ticketHash)}
|
^{buttonW POST "Reopen this ticket" (TicketOpenR deckHash ticketHash)}
|
||||||
$nothing
|
$nothing
|
||||||
Open
|
Open
|
||||||
^{buttonW POST "Close this ticket" (TicketCloseR deckHash ticketHash)}
|
^{buttonW POST "Close this ticket" (TicketCloseR deckHash ticketHash)}
|
||||||
|
|
|
@ -240,7 +240,7 @@
|
||||||
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/edit TicketEditR GET POST
|
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/edit TicketEditR GET POST
|
||||||
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/delete TicketDeleteR POST
|
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/delete TicketDeleteR POST
|
||||||
/decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/close TicketCloseR POST
|
/decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/close TicketCloseR POST
|
||||||
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/open TicketOpenR POST
|
/decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/open TicketOpenR POST
|
||||||
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/claim TicketClaimR POST
|
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/claim TicketClaimR POST
|
||||||
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/unclaim TicketUnclaimR POST
|
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/unclaim TicketUnclaimR POST
|
||||||
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/assign TicketAssignR GET POST
|
-- /decks/#DeckKeyHashid/tickets/#TicketDeckKeyHashid/assign TicketAssignR GET POST
|
||||||
|
|
Loading…
Reference in a new issue