update templates and frontend

This commit is contained in:
Lou Knauer 2022-01-17 13:31:40 +01:00
parent 1a9f67fa28
commit 7f3bbdd576
7 changed files with 53 additions and 41 deletions

@ -1 +1 @@
Subproject commit cc48461a810dbd3565000150fc99332743de92ba
Subproject commit 68543017064707625d788d1e7f987434d0bb0714

View File

@ -111,7 +111,7 @@ var programConfig ProgramConfig = ProgramConfig{
"plot_general_lineWidth": 1,
"plot_list_jobsPerPage": 10,
"plot_list_selectedMetrics": []string{"cpu_load", "mem_used", "flops_any", "mem_bw", "clock"},
"plot_view_plotsPerRow": 4,
"plot_view_plotsPerRow": 2,
"plot_view_showPolarplot": true,
"plot_view_showRoofline": true,
"plot_view_showStatTable": true,
@ -372,6 +372,7 @@ func monitoringRoutes(router *mux.Router, resolver *graph.Resolver) {
}
if query.Get("project") != "" {
filterPresets["project"] = query.Get("project")
filterPresets["projectMatch"] = "eq"
}
if query.Get("state") != "" && schema.JobState(query.Get("state")).Valid() {
filterPresets["state"] = query.Get("state")
@ -437,9 +438,26 @@ func monitoringRoutes(router *mux.Router, resolver *graph.Resolver) {
return
}
templates.Render(rw, r, "monitoring/users.html", &templates.Page{
Title: "Users - ClusterCockpit",
Config: conf,
templates.Render(rw, r, "monitoring/list.html", &templates.Page{
Title: "Users - ClusterCockpit",
Config: conf,
FilterPresets: buildFilterPresets(r.URL.Query()),
Infos: map[string]interface{}{"listType": "USER"},
})
})
router.HandleFunc("/monitoring/projects/", func(rw http.ResponseWriter, r *http.Request) {
conf, err := config.GetUIConfig(r)
if err != nil {
http.Error(rw, err.Error(), http.StatusInternalServerError)
return
}
templates.Render(rw, r, "monitoring/list.html", &templates.Page{
Title: "Projects - ClusterCockpit",
Config: conf,
FilterPresets: buildFilterPresets(r.URL.Query()),
Infos: map[string]interface{}{"listType": "PROJECT"},
})
})

View File

@ -20,6 +20,7 @@
<ul>
<li><a href="/monitoring/jobs/">All jobs</a></li>
<li><a href="/monitoring/users/">All users</a></li>
<li><a href="/monitoring/projects/">All projects</a></li>
</ul>
</div>
{{else}}
@ -37,8 +38,8 @@
<tr>
<th>Name</th>
<th>Jobs</th>
<th>System View</th>
<th>Analysis View</th>
<!-- <th>System View</th> -->
<!-- <th>Analysis View</th> -->
</tr>
</thead>
<tbody>
@ -46,8 +47,8 @@
<tr>
<td>{{.Name}}</td>
<td><a href="/monitoring/jobs/?cluster={{.Name}}">Jobs</a></td>
<td><a href="/monitoring/systems/?cluster={{.Name}}">System View</a></td>
<td><a href="/monitoring/analysis/?cluster={{.Name}}">Analysis View</a></td>
<!-- <td><a href="/monitoring/systems/?cluster={{.Name}}">System View</a></td> -->
<!-- <td><a href="/monitoring/analysis/?cluster={{.Name}}">Analysis View</a></td> -->
</tr>
{{end}}
</tbody>

View File

@ -12,18 +12,7 @@
jobId: "{{ .Infos.jobId }}",
clusterId: "{{ .Infos.clusterId }}"
};
const clusterCockpitConfigPromise = Promise.resolve({
plot_general_colorscheme: {{ .Config.plot_general_colorscheme }},
plot_general_lineWidth: {{ .Config.plot_general_lineWidth }},
plot_general_colorBackground: {{ .Config.plot_general_colorBackground }},
plot_view_showRoofline: {{ .Config.plot_view_showRoofline }},
plot_view_showPolarplot: {{ .Config.plot_view_showPolarplot }},
plot_view_showStatTable: {{ .Config.plot_view_showStatTable }},
plot_view_plotsPerRow: {{ .Config.plot_view_plotsPerRow }},
job_view_selectedMetrics: {{ .Config.job_view_selectedMetrics }},
job_view_nodestats_selectedMetrics: {{ .Config.job_view_nodestats_selectedMetrics }},
job_view_polarPlotMetrics: {{ .Config.plot_view_polarPlotMetrics }},
});
const clusterCockpitConfig = {{ .Config }};
</script>
<script src='/build/job.js'></script>
{{end}}

View File

@ -0,0 +1,15 @@
{{define "content"}}
<div id="svelte-app"></div>
{{end}}
{{define "stylesheets"}}
<link rel='stylesheet' href='/build/list.css'>
{{end}}
{{define "javascript"}}
<script>
const listType = {{ .Infos.listType }};
const filterPresets = {{ .FilterPresets }};
const clusterCockpitConfig = {{ .Config }};
</script>
<script src='/build/list.js'></script>
{{end}}

View File

@ -1,14 +0,0 @@
{{define "content"}}
<div id="svelte-app"></div>
{{end}}
{{define "stylesheets"}}
<link rel='stylesheet' href='/build/users.css'>
{{end}}
{{define "javascript"}}
<script>
const filterPresets = null;
const clusterCockpitConfigPromise = Promise.resolve({});
</script>
<script src='/build/users.js'></script>
{{end}}

View File

@ -4,10 +4,11 @@ import (
"html/template"
"log"
"net/http"
"os"
)
var templatesDir string
var debugMode bool = true
var debugMode bool = os.Getenv("DEBUG") == "1"
var templates map[string]*template.Template = map[string]*template.Template{}
type Page struct {
@ -28,11 +29,13 @@ func init() {
base := template.Must(template.ParseFiles(templatesDir + "base.html"))
files := []string{
"home.html", "404.html", "login.html",
"monitoring/jobs.html", "monitoring/job.html",
"monitoring/users.html", "monitoring/user.html",
"monitoring/analysis.html",
"monitoring/systems.html",
"monitoring/node.html",
"monitoring/jobs.html",
"monitoring/job.html",
"monitoring/list.html",
"monitoring/user.html",
// "monitoring/analysis.html",
// "monitoring/systems.html",
// "monitoring/node.html",
}
for _, file := range files {