283 lines
13 KiB
Go
283 lines
13 KiB
Go
package goMetrix
|
|
|
|
import (
|
|
"Toolbox/goDataverseStrict/metrics"
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
"sort"
|
|
)
|
|
|
|
const (
|
|
addr = "localhost:8008"
|
|
dir = ""
|
|
//PLATZHALTER = "Þłæŧ←ħæłŧ€¶"
|
|
)
|
|
|
|
func sortMyDingse[dings metrics.MetricsType | metrics.MetricsDataCountType | metrics.SearchType | metrics.ReturnformatType, bums metrics.InputLevel0 | metrics.InputLevel1 | metrics.InputLevel2 | metrics.InputLevel3 | bool](dstring map[dings]bums) (raus []dings) {
|
|
var klaus []string
|
|
|
|
for i, _ := range dstring {
|
|
klaus = append(klaus, string(i))
|
|
}
|
|
|
|
sort.Strings(klaus)
|
|
|
|
return
|
|
}
|
|
|
|
func Handler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
var a [4]string
|
|
|
|
for i := int8(0); i <= 3; i++ {
|
|
tmp, _ := metrics.FilterStacklist(metrics.OneJumpPoints, i)
|
|
for j, v := range tmp {
|
|
if i == 3 || (i < 3 && len(v) > 0) {
|
|
log.Println("Hallo", j, v, len(v))
|
|
}
|
|
|
|
a[i] += fmt.Sprintf("<span id=\"%s\" %s>", metrics.IDRequestHideDisplayPrefix+string(v), func() string {
|
|
if i < 3 && len(v) > 0 {
|
|
return ""
|
|
} else { // i == 3 Resolve-Format ist vorerst nicht verhandelbar, nur zu DEBUG-Zwecken sichtbar machen.
|
|
return "class=\"element-hide\""
|
|
}
|
|
}())
|
|
|
|
a[i] += fmt.Sprintf("<input type=\"radio\" id=\"%s\" name=\"form_types_radio\" value=\"%s\" %s/><label for=\"%s\"><b>%s</b></label>",
|
|
metrics.IDRequestCriteriaPrefix+string(v),
|
|
string(v),
|
|
func() string {
|
|
if j == 0 && v != "" {
|
|
return "checked"
|
|
} else {
|
|
return ""
|
|
}
|
|
}(),
|
|
metrics.IDRequestCriteriaPrefix+string(v),
|
|
string(v))
|
|
if i == 2 {
|
|
switch v {
|
|
default: //Total ist default //case string(metrics.ST1_tota
|
|
//a[i] += ""
|
|
case string(metrics.ST2tomonth):
|
|
a[i] += `<label for="` + metrics.IDRequestTextPrefix + string(metrics.ST2tomonth) + `"> Bis <yyyy-mm> (inklusive)</label>
|
|
<input name="form_searches" type="text" size="10" id="` + metrics.IDRequestTextPrefix + string(metrics.ST2tomonth) + `" value="2022-03" onSelect="this.enabled;getElementById('` + metrics.IDRequestTextPrefix + string(metrics.ST1total) + `').checked=false" onchange="checkoneuncheckany(ids,'` + metrics.IDRequestTextPrefix + string(metrics.ST2tomonth) + `')" onmouseover="enableonedisableany(ids, '` + metrics.IDRequestTextPrefix + string(metrics.ST2tomonth) + `')">`
|
|
case string(metrics.ST3pastdays):
|
|
a[i] += `<label for="` + metrics.IDRequestTextPrefix + string(metrics.ST3pastdays) + `"> Die letzten Tage</label>
|
|
<input name="form_searches" type="text" size="10" id="` + metrics.IDRequestTextPrefix + string(metrics.ST3pastdays) + `" value="30" onchange="checkoneuncheckany(ids,'` + metrics.IDRequestTextPrefix + string(metrics.ST3pastdays) + `')" onmouseover="enableonedisableany(ids, '` + metrics.IDRequestTextPrefix + string(metrics.ST3pastdays) + `')">`
|
|
case string(metrics.ST4monthly):
|
|
a[i] += `<label for="` + metrics.IDRequestTextPrefix + string(metrics.ST4monthly) + `"> <yyyy-mm> bis <yyyy-mm></label>
|
|
<input name="form_searches" type="text" size="25" id="` + metrics.IDRequestTextPrefix + string(metrics.ST4monthly) + `" value="2020-11 bis 2021-08" onchange="checkoneuncheckany(ids,'` + metrics.IDRequestTextPrefix + string(metrics.ST4monthly) + `')" onmouseover="enableonedisableany(ids, '` + metrics.IDRequestTextPrefix + string(metrics.ST4monthly) + `')">
|
|
`
|
|
case string(metrics.ST5tree):
|
|
a[i] += `<label for="` + metrics.IDRequestTextPrefix + string(metrics.ST5tree) + `"></label>
|
|
<input name="form_searches" type="text" size="10" id="` + metrics.IDRequestTextPrefix + string(metrics.ST5tree) + `" value="2022-12" onchange="checkoneuncheckany(ids,'` + metrics.IDRequestTextPrefix + string(metrics.ST5tree) + `')" onmouseover="enableonedisableany(ids, '` + metrics.IDRequestTextPrefix + string(metrics.ST5tree) + `')">`
|
|
}
|
|
}
|
|
a[i] += `<br></span>`
|
|
}
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
<label for="`+metrics.IDRequestTextPrefix+string(metrics.ST1_total)+`">Total</label>
|
|
<input name="form_searches" type="checkbox" id="`+metrics.IDRequestTextPrefix+string(metrics.ST1_total)+`" onchange="checkoneuncheckany(ids,'`+metrics.IDRequestTextPrefix+string(metrics.ST1_total)+`')" onmouseover="enableonedisableany(ids, '`+metrics.IDRequestTextPrefix+string(metrics.ST1_total)+`')" checked>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
/*
|
|
//for i1, v1 := range metrics.OneJumpPointSet {
|
|
for _, i1 := range sortMyDingse(metrics.OldOneJumpPointSet) {
|
|
v1 := metrics.OldOneJumpPointSet[i1]
|
|
|
|
s1 += fmt.Sprintf("<input type=\"radio\" id=\"input_%s\" name=\"form_types_radio\" value=\"%s\"><label for=\"input_%s\">%s</label><br>", string(i1), string(i1), string(i1), string(i1))
|
|
if !done2 {
|
|
done2 = true
|
|
//for i2, v2 := range v1 {
|
|
for _, i2 := range sortMyDingse(v1) {
|
|
v2 := v1[i2]
|
|
|
|
s2 += fmt.Sprintf("<input type=\"radio\" id=\"input_%s\" name=\"form_types_radio\" value=\"%s\" disabled><label for=\"input_%s\">%s</label><br>", string(i2), string(i2), string(i2), string(i2))
|
|
if !done3 {
|
|
done3 = true
|
|
//for i3, v3 := range v2 {
|
|
for _, i3 := range sortMyDingse(v2) {
|
|
v3 := v2[i3]
|
|
|
|
s3 += fmt.Sprintf("<input type=\"radio\" id=\"input_%s\" name=\"form_types_radio\" value=\"%s\" disabled><label for=\"input_%s\">%s</label><br>", string(i3), string(i3), string(i3), string(i3))
|
|
if !done4 {
|
|
done4 = true
|
|
//for i4, _ := range v3 {
|
|
for _, i4 := range sortMyDingse(v3) {
|
|
//v4 := v3[i4]
|
|
|
|
s4 += fmt.Sprintf("<input type=\"radio\" id=\"input_%s\" name=\"form_types_radio\" value=\"%s\" disabled><label for=\"input_%s\">%s</label><br>", string(i4), string(i4), string(i4), string(i4))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
|
|
fmt.Fprintf(w, `<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<title>goMetrix</title>
|
|
<link rel="stylesheet" href="/css/metrics.css">
|
|
<script src="https://golang.org/misc/wasm/wasm_exec.js"></script>
|
|
<script>
|
|
if (!WebAssembly.instantiateStreaming) {
|
|
// polyfill
|
|
WebAssembly.instantiateStreaming = async (resp, importObject) => {
|
|
const source = await (await resp).arrayBuffer();
|
|
return await WebAssembly.instantiate(source, importObject);
|
|
};
|
|
}
|
|
|
|
const go = new Go();
|
|
let mod, inst;
|
|
WebAssembly.instantiateStreaming(fetch("/wasm/app.wasm"), go.importObject)
|
|
.then((result) => {
|
|
go.run(result.instance);
|
|
})
|
|
.catch((err) => {
|
|
console.error(err);
|
|
});
|
|
</script>
|
|
<script>
|
|
const ids = new Array(
|
|
"`+metrics.IDRequestTextPrefix+string(metrics.ST1total)+`",
|
|
"`+metrics.IDRequestTextPrefix+string(metrics.ST2tomonth)+`",
|
|
"`+metrics.IDRequestTextPrefix+string(metrics.ST3pastdays)+`",
|
|
"`+metrics.IDRequestTextPrefix+string(metrics.ST4monthly)+`",
|
|
"`+metrics.IDRequestTextPrefix+string(metrics.ST5tree)+`"
|
|
);
|
|
|
|
function pseudoSubmit2(){
|
|
alert("läuft");
|
|
}
|
|
|
|
function enableonedisableany(ids, id) {
|
|
for (let i = 0; i < ids.length; i++){
|
|
//alert(ids[i]);
|
|
//document.getElementById(ids[i]).checked = false;
|
|
document.getElementById(ids[i]).disabled = true;
|
|
}
|
|
document.getElementById(id).disabled = false;
|
|
}
|
|
|
|
function checkoneuncheckany(ids,id){
|
|
for (let i = 0; i < ids.length; i++){
|
|
document.getElementById(ids[i]).checked = false;
|
|
}
|
|
document.getElementById(id).checked = true;
|
|
}
|
|
</script>
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="formarea">
|
|
<p>
|
|
<table><tr>
|
|
<td valign="top" width="20%"><form id="form_metrictype">`+a[0]+`</form></td>
|
|
<td valign="top" width="20%"><form id="form_metricsdatacount">`+a[1]+`</form></td>
|
|
<td valign="top" width="50%"><form id="form_searchtype">`+a[2]+`</form></td>
|
|
<td valign="top" width="5%"><form id="form_returnformat">`+a[3]+`</form></td>
|
|
<td valign="top" width="5%"><input type="submit" onclick="pseudoSubmit2();" id="`+metrics.IDFormSubmit+`" value="Ok" /></td>
|
|
</td></tr></table>
|
|
|
|
|
|
|
|
</p>
|
|
<!--<p>
|
|
<form id="form_results">
|
|
<input type="hidden" name="form_results_radio" value="`+string(metrics.RT1json)+`" checked>
|
|
<input type="radio" id="`+metrics.IDRequestTextPrefix+string(metrics.RT1json)+`" name="form_results_radio" value="`+string(metrics.RT1json)+`" checked>
|
|
<label for="`+metrics.IDRequestTextPrefix+string(metrics.RT1json)+`">`+string(metrics.RT1json)+`</label><br>
|
|
<input type="radio" id="`+metrics.IDRequestTextPrefix+string(metrics.RT2csv)+`" name="form_results_radio" value="`+string(metrics.RT2csv)+`">
|
|
<label for="`+metrics.IDRequestTextPrefix+string(metrics.RT2csv)+`">`+string(metrics.RT2csv)+`</label><br>
|
|
</form>
|
|
</p>-->
|
|
<!--<p>
|
|
<form id="form_searches">
|
|
<label for="`+metrics.IDRequestTextPrefix+string(metrics.ST1total)+`">Total</label>
|
|
<input name="form_searches" type="checkbox" id="`+metrics.IDRequestTextPrefix+string(metrics.ST1total)+`" onchange="checkoneuncheckany(ids,'`+metrics.IDRequestTextPrefix+string(metrics.ST1total)+`')" onmouseover="enableonedisableany(ids, '`+metrics.IDRequestTextPrefix+string(metrics.ST1total)+`')" checked>
|
|
<label for="`+metrics.IDRequestTextPrefix+string(metrics.ST2tomonth)+`">Bis <yyyy-mm> (inklusive)</label>
|
|
<input name="form_searches" type="text" size="10" id="`+metrics.IDRequestTextPrefix+string(metrics.ST2tomonth)+`" value="2022-03" onSelect="this.enabled;getElementById('`+metrics.IDRequestTextPrefix+string(metrics.ST1total)+`').checked=false" onchange="checkoneuncheckany(ids,'`+metrics.IDRequestTextPrefix+string(metrics.ST2tomonth)+`')" onmouseover="enableonedisableany(ids, '`+metrics.IDRequestTextPrefix+string(metrics.ST2tomonth)+`')">
|
|
<label for="`+metrics.IDRequestTextPrefix+string(metrics.ST3pastdays)+`">Die letzten Tage</label>
|
|
<input name="form_searches" type="text" size="10" id="`+metrics.IDRequestTextPrefix+string(metrics.ST3pastdays)+`" value="30" onchange="checkoneuncheckany(ids,'`+metrics.IDRequestTextPrefix+string(metrics.ST3pastdays)+`')" onmouseover="enableonedisableany(ids, '`+metrics.IDRequestTextPrefix+string(metrics.ST3pastdays)+`')">
|
|
<label for="`+metrics.IDRequestTextPrefix+string(metrics.ST4monthly)+`"><yyyy-mm> bis <yyyy-mm></label>
|
|
<input name="form_searches" type="text" size="25" id="`+metrics.IDRequestTextPrefix+string(metrics.ST4monthly)+`" value="2020-11 bis 2021-08" onchange="checkoneuncheckany(ids,'`+metrics.IDRequestTextPrefix+string(metrics.ST4monthly)+`')" onmouseover="enableonedisableany(ids, '`+metrics.IDRequestTextPrefix+string(metrics.ST4monthly)+`')">
|
|
<label for="`+metrics.IDRequestTextPrefix+string(metrics.ST5tree)+`">Tree</label>
|
|
<input name="form_searches" type="text" size="10" id="`+metrics.IDRequestTextPrefix+string(metrics.ST5tree)+`" value="2022-12" onchange="checkoneuncheckany(ids,'`+metrics.IDRequestTextPrefix+string(metrics.ST5tree)+`')" onmouseover="enableonedisableany(ids, '`+metrics.IDRequestTextPrefix+string(metrics.ST5tree)+`')">
|
|
</form>
|
|
</p>-->
|
|
</div>
|
|
<!--<div id="testarea"></div>-->
|
|
<div id="injectarea">🐧<!--🐧--></div>
|
|
<div id="chartarea"></div>
|
|
<script id="scriptarea"></script>
|
|
</body>
|
|
</html>`)
|
|
|
|
/*
|
|
DEBUG:
|
|
|
|
fmt.Fprintf(w, "😱<br>")
|
|
|
|
md, me := metrics.MetricsTotal("http://localhost:8080", "f6933c5d-8e97-4e7a-b21a-c57447cca421", metrics.RT1json, metrics.MT1dataverses)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
md, me = metrics.MetricsTotal("http://localhost:8080", "f6933c5d-8e97-4e7a-b21a-c57447cca421", metrics.RT2csv, metrics.MT4downloads)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
md, me = metrics.MetricsTotal("http://localhost:8080", "f6933c5d-8e97-4e7a-b21a-c57447cca421", metrics.RT1json, metrics.MT2datasets)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
md, me = metrics.MetricsTotal("http://localhost:8080", "f6933c5d-8e97-4e7a-b21a-c57447cca421", metrics.RT2csv, metrics.MT3files)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
ts, _ := time.Parse("2006-01", "2021-06")
|
|
md, me = metrics.MetricsToMonth("http://localhost:8080", "", metrics.RT2csv, metrics.MT2datasets, ts)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
md, me = metrics.MetricsToMonth("http://localhost:8080", "", metrics.RT2csv, metrics.MT4downloads, ts)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
md, me = metrics.MetricsPastDays("http://localhost:8080", "", metrics.RT2csv, metrics.MT2datasets, 30)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
md, me = metrics.MetricsMonthly("http://localhost:8080", "", metrics.RT2csv, metrics.MT4downloads)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
md, me = metrics.MetricsMonthly("http://localhost:8080", "", metrics.RT1json, metrics.MT4downloads)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
md, me = metrics.MetricsReallyMonthly("http://localhost:8080", "", metrics.RT1json, metrics.MT4downloads)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
//fmt.Println(metrics.ListUsers("http://localhost:8080", "f6933c5d-8e97-4e7a-b21a-c57447cca421", true))
|
|
|
|
ts, _ = time.Parse("2006-01", "2020-12")
|
|
md, me = metrics.MetricsTree("http://localhost:8080", "", metrics.RT1json, ts)
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
md, me = metrics.MetricsTree("http://localhost:8080", "", metrics.RT1json, time.Time{})
|
|
fmt.Fprintf(w, "%s<br> %s<br><br>", me, md)
|
|
|
|
//fmt.Fprintf(w, "%v", time.Now().Format("2006-02"))
|
|
*/
|
|
}
|