Update dashboard filters and packet views
This commit is contained in:
@@ -24,13 +24,16 @@ type pageData struct {
|
||||
AvailableDates []string
|
||||
Search string
|
||||
Department string
|
||||
Paket string
|
||||
Rows []ArrivalRow
|
||||
FilteredRows []ArrivalRow
|
||||
Summary ArrivalSummary
|
||||
Departments []DepartmentStat
|
||||
DepartmentOptions []string
|
||||
PaketOptions []PaketOption
|
||||
OverviewJSON template.JS
|
||||
DepartmentJSON template.JS
|
||||
PaketChartJSON template.JS
|
||||
Page int
|
||||
PageSize int
|
||||
HasMore bool
|
||||
@@ -76,15 +79,27 @@ func buildArrivalData(r *http.Request) (pageData, int, error) {
|
||||
return pageData{}, http.StatusInternalServerError, err
|
||||
}
|
||||
summary, deptStats := BuildArrivalStats(rows)
|
||||
filteredRows := FilterArrivalRows(rows, r.URL.Query().Get("search"), r.URL.Query().Get("dept"))
|
||||
filteredRows := FilterArrivalRows(rows, r.URL.Query().Get("search"), r.URL.Query().Get("dept"), r.URL.Query().Get("paket"))
|
||||
deptOptions := UniqueDepartments(rows)
|
||||
paketOptions := UniquePakets(rows)
|
||||
|
||||
stationMap, err := GetStationProgress(mcuID, selectedDate)
|
||||
if err != nil {
|
||||
return pageData{}, http.StatusInternalServerError, err
|
||||
}
|
||||
for i := range filteredRows {
|
||||
filteredRows[i].Stations = stationMap[filteredRows[i].PreregisterID]
|
||||
stations := stationMap[filteredRows[i].PreregisterID]
|
||||
filteredRows[i].Stations = stations
|
||||
for _, s := range stations {
|
||||
switch s.Tone {
|
||||
case "success":
|
||||
filteredRows[i].DoneCount++
|
||||
case "warning":
|
||||
filteredRows[i].ProgressCount++
|
||||
default:
|
||||
filteredRows[i].PendingCount++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
outerDepts := []map[string]any{}
|
||||
@@ -111,6 +126,26 @@ func buildArrivalData(r *http.Request) (pageData, int, error) {
|
||||
"counts": stationCounts,
|
||||
}
|
||||
|
||||
paketStats, err := GetPaketStats(mcuID, selectedDate)
|
||||
if err != nil {
|
||||
return pageData{}, http.StatusInternalServerError, err
|
||||
}
|
||||
paketLabels := make([]string, len(paketStats))
|
||||
paketTotal := make([]int, len(paketStats))
|
||||
paketDone := make([]int, len(paketStats))
|
||||
paketRemaining := make([]int, len(paketStats))
|
||||
for i, p := range paketStats {
|
||||
paketLabels[i] = p.Name
|
||||
paketTotal[i] = p.Total
|
||||
paketDone[i] = p.Completed
|
||||
paketRemaining[i] = p.Total - p.Completed
|
||||
}
|
||||
paketChart := map[string]any{
|
||||
"labels": paketLabels,
|
||||
"done": paketDone,
|
||||
"remaining": paketRemaining,
|
||||
}
|
||||
|
||||
page := parsePage(r.URL.Query().Get("page"))
|
||||
pagedRows, hasMore := PaginateArrivalRows(filteredRows, page, defaultPageSize)
|
||||
visibleCount := page * defaultPageSize
|
||||
@@ -125,13 +160,16 @@ func buildArrivalData(r *http.Request) (pageData, int, error) {
|
||||
AvailableDates: dates,
|
||||
Search: r.URL.Query().Get("search"),
|
||||
Department: r.URL.Query().Get("dept"),
|
||||
Paket: r.URL.Query().Get("paket"),
|
||||
Rows: rows,
|
||||
FilteredRows: pagedRows,
|
||||
Summary: summary,
|
||||
Departments: deptStats,
|
||||
DepartmentOptions: deptOptions,
|
||||
PaketOptions: paketOptions,
|
||||
OverviewJSON: toJS(overview),
|
||||
DepartmentJSON: toJS(stationChart),
|
||||
PaketChartJSON: toJS(paketChart),
|
||||
Page: page,
|
||||
PageSize: defaultPageSize,
|
||||
HasMore: hasMore,
|
||||
|
||||
Reference in New Issue
Block a user