Add Calendar Events widget, integrate ICS calendar parsing, and refine related UI components

This commit is contained in:
2025-12-30 00:59:56 +01:00
parent a29beeda43
commit dfbc6066c9
14 changed files with 275 additions and 27 deletions
+12 -6
View File
@@ -33,10 +33,10 @@ func createDockerList(ctx context.Context, _ terminalapi.Terminal, _ interface{}
}
sort.Slice(ms, func(i, j int) bool { return ms[i].CPUPercent > ms[j].CPUPercent })
if err := list.Write(fmt.Sprintf("%-40s | %-6s | %-6s | %s\n", "Name", "CPU", "MEM", "Status"), text.WriteReplace()); err != nil {
if err := list.Write(fmt.Sprintf("%-30s | %-6s | %-6s | %s\n", "Name", "CPU", "MEM", "Status"), text.WriteReplace(), text.WriteCellOpts(cell.FgColor(cell.ColorWhite))); err != nil {
return err
}
if err := list.Write(fmt.Sprintf("─────────────────────────────────────────┼────────┼────────┼─────────────────────\n")); err != nil {
if err := list.Write(fmt.Sprintf("───────────────────────────────┼────────┼────────┼─────────────────────\n"), text.WriteCellOpts(cell.FgColor(cell.ColorWhite))); err != nil {
return err
}
for _, m := range ms {
@@ -53,22 +53,28 @@ func createDockerList(ctx context.Context, _ terminalapi.Terminal, _ interface{}
if strings.Contains(m.Status, "Paused") {
status = cell.ColorBlue
}
if err := list.Write(fmt.Sprintf("%-40s", m.Name), text.WriteCellOpts(cell.FgColor(status))); err != nil {
var name string
if len(m.Name) > 30 {
name = m.Name[:27] + "..."
} else {
name = m.Name
}
if err := list.Write(fmt.Sprintf("%-30s", name), text.WriteCellOpts(cell.FgColor(status))); err != nil {
return err
}
if err := list.Write(fmt.Sprint(" | ")); err != nil {
if err := list.Write(fmt.Sprint(" "), text.WriteCellOpts(cell.FgColor(cell.ColorWhite))); err != nil {
return err
}
if err := writePercent(m.CPUPercent, list); err != nil {
return err
}
if err := list.Write(fmt.Sprint(" | ")); err != nil {
if err := list.Write(fmt.Sprint(" "), text.WriteCellOpts(cell.FgColor(cell.ColorWhite))); err != nil {
return err
}
if err := writePercent(m.MemPercent, list); err != nil {
return err
}
if err := list.Write(fmt.Sprint(" | ")); err != nil {
if err := list.Write(fmt.Sprint(" "), text.WriteCellOpts(cell.FgColor(cell.ColorWhite))); err != nil {
return err
}
if err := list.Write(fmt.Sprintf("%s\n", m.Status), text.WriteCellOpts(cell.FgColor(status))); err != nil {