mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
commit
444e5815e9
@ -13,10 +13,6 @@ type TicketArray struct {
|
|||||||
Tickets []Ticket
|
Tickets []Ticket
|
||||||
}
|
}
|
||||||
|
|
||||||
type SingleTicket struct {
|
|
||||||
Ticket *Ticket `json:"ticket"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Ticket struct {
|
type Ticket struct {
|
||||||
Id uint64 `json:"id"`
|
Id uint64 `json:"id"`
|
||||||
URL string `json:"url"`
|
URL string `json:"url"`
|
||||||
@ -70,14 +66,14 @@ func listTickets(pag ...string) (*TicketArray, error) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func newTickets() ([]Ticket, error) {
|
func newTickets(ticketStatus string) ([]Ticket, error) {
|
||||||
newTickets := []Ticket{}
|
newTickets := []Ticket{}
|
||||||
tickets, err := listTickets()
|
tickets, err := listTickets()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
for _, Ticket := range tickets.Tickets {
|
for _, Ticket := range tickets.Tickets {
|
||||||
if Ticket.Status == "new" {
|
if Ticket.Status == ticketStatus && Ticket.Status != "closed" && Ticket.Status != "solved" {
|
||||||
newTickets = append(newTickets, Ticket)
|
newTickets = append(newTickets, Ticket)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
|
"github.com/gdamore/tcell"
|
||||||
|
|
||||||
"github.com/senorprogrammer/wtf/wtf"
|
"github.com/senorprogrammer/wtf/wtf"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -13,15 +15,18 @@ type Widget struct {
|
|||||||
|
|
||||||
func NewWidget() *Widget {
|
func NewWidget() *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
TextWidget: wtf.NewTextWidget(" Zendesk ", "zendesk", false),
|
TextWidget: wtf.NewTextWidget(" Zendesk ", "zendesk", true),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
|
|
||||||
return &widget
|
return &widget
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------- Exported Functions -------------------- */
|
/* -------------------- Exported Functions -------------------- */
|
||||||
func (widget *Widget) Refresh() {
|
func (widget *Widget) Refresh() {
|
||||||
tickets, err := newTickets()
|
ticketStatus := wtf.Config.UString("wtf.mods.zendesk.status")
|
||||||
|
tickets, err := newTickets(ticketStatus)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -66,3 +71,22 @@ func (widget *Widget) parseRequester(ticket Ticket) interface{} {
|
|||||||
fromName := fromValMap["name"]
|
fromName := fromValMap["name"]
|
||||||
return fromName
|
return fromName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (widget *Widget) openTicket() {
|
||||||
|
wtf.OpenFile("https://" + subdomain + ".zendesk.com")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
|
switch string(event.Rune()) {
|
||||||
|
case "f":
|
||||||
|
widget.openTicket()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
switch event.Key() {
|
||||||
|
case tcell.KeyEnter:
|
||||||
|
widget.openTicket()
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return event
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user