refact table

mine
derailed 2019-06-21 17:48:13 -06:00
parent 2ec1c85164
commit ad1aadd0a7
2 changed files with 76 additions and 64 deletions

View File

@ -129,7 +129,7 @@ func resourceViews(c k8s.Connection, m map[string]resCmd) {
}
}
func coreRes(m map[string]resCmd) {
func primRes(m map[string]resCmd) {
m["cm"] = resCmd{
title: "ConfigMaps",
crdCmd: crdCmd{
@ -138,6 +138,61 @@ func coreRes(m map[string]resCmd) {
viewFn: newResourceView,
listFn: resource.NewConfigMapList,
}
m["no"] = resCmd{
title: "Nodes",
crdCmd: crdCmd{
api: "",
},
viewFn: newNodeView,
listFn: resource.NewNodeList,
colorerFn: nsColorer,
}
m["ns"] = resCmd{
title: "Namespaces",
crdCmd: crdCmd{
api: "",
},
viewFn: newNamespaceView,
listFn: resource.NewNamespaceList,
colorerFn: nsColorer,
}
m["po"] = resCmd{
title: "Pods",
crdCmd: crdCmd{
api: "",
},
viewFn: newPodView,
listFn: resource.NewPodList,
colorerFn: podColorer,
}
m["sa"] = resCmd{
title: "ServiceAccounts",
crdCmd: crdCmd{
api: "",
},
viewFn: newResourceView,
listFn: resource.NewServiceAccountList,
enterFn: showSAPolicy,
}
m["sec"] = resCmd{
title: "Secrets",
crdCmd: crdCmd{
api: "",
},
viewFn: newSecretView,
listFn: resource.NewSecretList,
}
m["svc"] = resCmd{
title: "Services",
crdCmd: crdCmd{
api: "",
},
viewFn: newSvcView,
listFn: resource.NewServiceList,
}
}
func coreRes(m map[string]resCmd) {
m["ctx"] = resCmd{
title: "Contexts",
crdCmd: crdCmd{
@ -173,33 +228,6 @@ func coreRes(m map[string]resCmd) {
listFn: resource.NewEventList,
colorerFn: evColorer,
}
m["no"] = resCmd{
title: "Nodes",
crdCmd: crdCmd{
api: "",
},
viewFn: newNodeView,
listFn: resource.NewNodeList,
colorerFn: nsColorer,
}
m["ns"] = resCmd{
title: "Namespaces",
crdCmd: crdCmd{
api: "",
},
viewFn: newNamespaceView,
listFn: resource.NewNamespaceList,
colorerFn: nsColorer,
}
m["po"] = resCmd{
title: "Pods",
crdCmd: crdCmd{
api: "",
},
viewFn: newPodView,
listFn: resource.NewPodList,
colorerFn: podColorer,
}
m["pv"] = resCmd{
title: "PersistentVolumes",
crdCmd: crdCmd{
@ -227,31 +255,6 @@ func coreRes(m map[string]resCmd) {
listFn: resource.NewReplicationControllerList,
colorerFn: rsColorer,
}
m["sa"] = resCmd{
title: "ServiceAccounts",
crdCmd: crdCmd{
api: "",
},
viewFn: newResourceView,
listFn: resource.NewServiceAccountList,
enterFn: showSAPolicy,
}
m["sec"] = resCmd{
title: "Secrets",
crdCmd: crdCmd{
api: "",
},
viewFn: newSecretView,
listFn: resource.NewSecretList,
}
m["svc"] = resCmd{
title: "Services",
crdCmd: crdCmd{
api: "",
},
viewFn: newSvcView,
listFn: resource.NewServiceList,
}
}
func custRes(m map[string]resCmd) {

View File

@ -285,15 +285,7 @@ func (v *tableView) filtered() resource.TableData {
return filtered
}
func (v *tableView) doUpdate(data resource.TableData) {
v.currentNS = data.Namespace
if v.currentNS == resource.AllNamespaces && v.currentNS != "*" {
v.actions[KeyShiftP] = newKeyAction("Sort Namespace", v.sortColCmd(0), true)
} else {
delete(v.actions, KeyShiftP)
}
v.Clear()
func (v *tableView) adjustSorter(data resource.TableData) {
// Going from namespace to non namespace or vice-versa?
switch {
case v.sortCol.colCount == 0:
@ -306,9 +298,19 @@ func (v *tableView) doUpdate(data resource.TableData) {
if v.sortCol.index < 0 {
v.sortCol.index = 0
}
}
func (v *tableView) doUpdate(data resource.TableData) {
v.currentNS = data.Namespace
if v.currentNS == resource.AllNamespaces && v.currentNS != "*" {
v.actions[KeyShiftP] = newKeyAction("Sort Namespace", v.sortColCmd(0), true)
} else {
delete(v.actions, KeyShiftP)
}
v.Clear()
v.adjustSorter(data)
pads := make(maxyPad, len(data.Header))
computeMaxColumns(pads, v.sortCol.index, data)
var row int
fg := config.AsColor(v.app.styles.Table().Header.FgColor)
bg := config.AsColor(v.app.styles.Table().Header.BgColor)
@ -320,6 +322,13 @@ func (v *tableView) doUpdate(data resource.TableData) {
}
row++
v.sort(data, row)
}
func (v *tableView) sort(data resource.TableData, row int) {
pads := make(maxyPad, len(data.Header))
computeMaxColumns(pads, v.sortCol.index, data)
sortFn := defaultSort
if v.sortFn != nil {
sortFn = v.sortFn