mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Closes #37. Help into Git and Github modules
This commit is contained in:
parent
c7ff101e08
commit
5353d6ddf7
@ -47,8 +47,9 @@ func Fetch() (*calendar.Events, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
t := fromMidnight().Format(time.RFC3339)
|
startTime := fromMidnight().Format(time.RFC3339)
|
||||||
events, err := srv.Events.List("primary").ShowDeleted(false).SingleEvents(true).TimeMin(t).MaxResults(int64(Config.UInt("wtf.mods.gcal.eventCount", 10))).OrderBy("startTime").Do()
|
eventLimit := int64(Config.UInt("wtf.mods.gcal.eventCount", 10))
|
||||||
|
events, err := srv.Events.List("primary").ShowDeleted(false).SingleEvents(true).TimeMin(startTime).MaxResults(eventLimit).OrderBy("startTime").Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -79,10 +79,11 @@ func (widget *Widget) contentFrom(events *calendar.Events) string {
|
|||||||
conflict := widget.conflicts(event, events)
|
conflict := widget.conflicts(event, events)
|
||||||
|
|
||||||
str = str + fmt.Sprintf(
|
str = str + fmt.Sprintf(
|
||||||
"%s [%s]%s[white]\n [%s]%s %s[white]\n\n",
|
"%s [%s]%s[white]\n %s[%s]%s %s[white]\n\n",
|
||||||
widget.dayDivider(event, prevEvent),
|
widget.dayDivider(event, prevEvent),
|
||||||
widget.titleColor(event),
|
widget.titleColor(event),
|
||||||
widget.eventSummary(event, conflict),
|
widget.eventSummary(event, conflict),
|
||||||
|
widget.location(event),
|
||||||
widget.descriptionColor(event),
|
widget.descriptionColor(event),
|
||||||
widget.eventTimestamp(event),
|
widget.eventTimestamp(event),
|
||||||
widget.until(event),
|
widget.until(event),
|
||||||
@ -176,6 +177,22 @@ func (widget *Widget) titleColor(event *calendar.Event) string {
|
|||||||
return color
|
return color
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (widget *Widget) location(event *calendar.Event) string {
|
||||||
|
if Config.UBool("wtf.mods.gcal.withLocation", true) == false {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if event.Location == "" {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"[%s]%s\n ",
|
||||||
|
widget.descriptionColor(event),
|
||||||
|
event.Location,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
// until returns the number of hours or days until the event
|
// until returns the number of hours or days until the event
|
||||||
// If the event is in the past, returns nil
|
// If the event is in the past, returns nil
|
||||||
func (widget *Widget) until(event *calendar.Event) string {
|
func (widget *Widget) until(event *calendar.Event) string {
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
|
|
||||||
"github.com/gdamore/tcell"
|
"github.com/gdamore/tcell"
|
||||||
"github.com/olebedev/config"
|
"github.com/olebedev/config"
|
||||||
|
"github.com/rivo/tview"
|
||||||
"github.com/senorprogrammer/wtf/wtf"
|
"github.com/senorprogrammer/wtf/wtf"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -25,14 +26,19 @@ const helpText = `
|
|||||||
type Widget struct {
|
type Widget struct {
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
|
app *tview.Application
|
||||||
Data []*GitRepo
|
Data []*GitRepo
|
||||||
Idx int
|
Idx int
|
||||||
|
pages *tview.Pages
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWidget() *Widget {
|
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
TextWidget: wtf.NewTextWidget(" Git ", "git", true),
|
TextWidget: wtf.NewTextWidget(" Git ", "git", true),
|
||||||
|
|
||||||
|
app: app,
|
||||||
Idx: 0,
|
Idx: 0,
|
||||||
|
pages: pages,
|
||||||
}
|
}
|
||||||
|
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
@ -99,6 +105,9 @@ func (widget *Widget) gitRepos(repoPaths []string) []*GitRepo {
|
|||||||
|
|
||||||
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
|
case "/":
|
||||||
|
widget.showHelp()
|
||||||
|
return nil
|
||||||
case "h":
|
case "h":
|
||||||
widget.Prev()
|
widget.Prev()
|
||||||
return nil
|
return nil
|
||||||
@ -118,3 +127,15 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
return event
|
return event
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (widget *Widget) showHelp() {
|
||||||
|
closeFunc := func() {
|
||||||
|
widget.pages.RemovePage("help")
|
||||||
|
widget.app.SetFocus(widget.View)
|
||||||
|
}
|
||||||
|
|
||||||
|
modal := wtf.NewBillboardModal(helpText, closeFunc)
|
||||||
|
|
||||||
|
widget.pages.AddPage("help", modal, false, true)
|
||||||
|
widget.app.SetFocus(modal)
|
||||||
|
}
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
|
|
||||||
"github.com/gdamore/tcell"
|
"github.com/gdamore/tcell"
|
||||||
"github.com/olebedev/config"
|
"github.com/olebedev/config"
|
||||||
|
"github.com/rivo/tview"
|
||||||
"github.com/senorprogrammer/wtf/wtf"
|
"github.com/senorprogrammer/wtf/wtf"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -12,7 +13,7 @@ import (
|
|||||||
var Config *config.Config
|
var Config *config.Config
|
||||||
|
|
||||||
const helpText = `
|
const helpText = `
|
||||||
Keyboard commands for Git:
|
Keyboard commands for Github:
|
||||||
|
|
||||||
/: Show/hide this help window
|
/: Show/hide this help window
|
||||||
h: Previous git repository
|
h: Previous git repository
|
||||||
@ -26,14 +27,19 @@ const helpText = `
|
|||||||
type Widget struct {
|
type Widget struct {
|
||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
|
app *tview.Application
|
||||||
Data []*GithubRepo
|
Data []*GithubRepo
|
||||||
Idx int
|
Idx int
|
||||||
|
pages *tview.Pages
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWidget() *Widget {
|
func NewWidget(app *tview.Application, pages *tview.Pages) *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
TextWidget: wtf.NewTextWidget(" Github ", "github", true),
|
TextWidget: wtf.NewTextWidget(" Github ", "github", true),
|
||||||
|
|
||||||
|
app: app,
|
||||||
Idx: 0,
|
Idx: 0,
|
||||||
|
pages: pages,
|
||||||
}
|
}
|
||||||
|
|
||||||
widget.View.SetInputCapture(widget.keyboardIntercept)
|
widget.View.SetInputCapture(widget.keyboardIntercept)
|
||||||
@ -99,6 +105,9 @@ func (widget *Widget) currentData() *GithubRepo {
|
|||||||
|
|
||||||
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
||||||
switch string(event.Rune()) {
|
switch string(event.Rune()) {
|
||||||
|
case "/":
|
||||||
|
widget.showHelp()
|
||||||
|
return nil
|
||||||
case "h":
|
case "h":
|
||||||
widget.Prev()
|
widget.Prev()
|
||||||
return nil
|
return nil
|
||||||
@ -121,3 +130,15 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey {
|
|||||||
return event
|
return event
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (widget *Widget) showHelp() {
|
||||||
|
closeFunc := func() {
|
||||||
|
widget.pages.RemovePage("help")
|
||||||
|
widget.app.SetFocus(widget.View)
|
||||||
|
}
|
||||||
|
|
||||||
|
modal := wtf.NewBillboardModal(helpText, closeFunc)
|
||||||
|
|
||||||
|
widget.pages.AddPage("help", modal, false, true)
|
||||||
|
widget.app.SetFocus(modal)
|
||||||
|
}
|
||||||
|
4
wtf.go
4
wtf.go
@ -186,8 +186,8 @@ func main() {
|
|||||||
bamboohr.NewWidget(),
|
bamboohr.NewWidget(),
|
||||||
clocks.NewWidget(),
|
clocks.NewWidget(),
|
||||||
gcal.NewWidget(),
|
gcal.NewWidget(),
|
||||||
git.NewWidget(),
|
git.NewWidget(app, pages),
|
||||||
github.NewWidget(),
|
github.NewWidget(app, pages),
|
||||||
jira.NewWidget(),
|
jira.NewWidget(),
|
||||||
newrelic.NewWidget(),
|
newrelic.NewWidget(),
|
||||||
opsgenie.NewWidget(),
|
opsgenie.NewWidget(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user