diff --git a/add.go b/add.go index 5fdff00..4eaf337 100644 --- a/add.go +++ b/add.go @@ -3,6 +3,7 @@ package main import ( "github.com/labstack/echo" "net/http" + "strconv" ) func addKonfi(c echo.Context) error { @@ -38,10 +39,16 @@ func addKonfi(c echo.Context) error { } else if SiteConf.Mode == 1 { // Mode nach Gemeinden + var err error gemeinde := new(Gemeinde) gemeinde.Name = c.FormValue("name") + gemeinde.KonfiCount, err = strconv.Atoi(c.FormValue("konfis")) - _, err := db.Insert(gemeinde) + if err != nil { + return c.JSON(http.StatusInternalServerError, Message{"error. (konfiCount not int)"}) + } + + _, err = db.Insert(gemeinde) if err == nil { return c.JSON(http.StatusOK, Message{"success"}) } diff --git a/assets/js/admin.js b/assets/js/admin.js index 420edb2..6330df7 100644 --- a/assets/js/admin.js +++ b/assets/js/admin.js @@ -1,12 +1,21 @@ function getList() { $.getJSON('/list?asc=asc', function (data) { - //console.log(data); + console.log(data); $("#list").html(''); $.each(data, function (i, item) { if(item.Gemeinde !== undefined) { - $("#list").append(' ' + item.Name + ' ' + item.Gemeinde + ' ' + item.KCoins + '    '); + $("#list").append('' + + '' + item.Name + ' ' + + '' + item.Gemeinde + ' ' + + '' + item.KCoins + '' + + '    '); } else { - $("#list").append(' ' + item.Name + ' ' + item.KCoins + '    '); + $("#list").append(' ' + + '' + item.Name + ' ' + + '' + item.KCoins + '' + + '' + item.KonfiCount + ' ' + + '' + (item.CoinsQuota).toFixed(2) + ' ' + + '    '); } }); }); @@ -32,6 +41,9 @@ function updateCoins(id) { if (msg.Message == 'success') { $('#kcoins_' + id).val("0"); $('#kcoins_display_' + id).html(msg.Data.KCoins); + if(msg.Data.CoinsQuota !== undefined) { + $('#kcoins_quota_' + id).html(msg.Data.CoinsQuota.toFixed(2)); + } } else { $('#msg').html('
Ein Fehler trat auf.
'); @@ -150,7 +162,7 @@ $('.ui.gemeindeadd.modal') $.ajax({ url: '/add', method: 'POST', - data: 'name=' + $('#name').val(), + data: 'name=' + $('#name').val() + '&konfis=' + $('#konfis').val(), success: function (msg) { $('.loader').removeClass('active'); console.log(msg); diff --git a/assets/js/load.js b/assets/js/load.js index 65b0ec3..1253dac 100644 --- a/assets/js/load.js +++ b/assets/js/load.js @@ -4,9 +4,17 @@ setInterval(function() { $( "#konfis" ).html(''); $.each( data, function( i, item ) { if (item.Gemeinde != undefined) { - $( "#konfis" ).append(' ' + item.Name + ' ' + item.Gemeinde + ' ' + item.KCoins + ''); + $( "#konfis" ).append(' ' + + '' + item.Name + ' ' + + '' + item.Gemeinde + ' ' + + '' + item.KCoins + '' + + ''); } else { - $( "#konfis" ).append(' ' + item.Name + ' ' + item.KCoins + ''); + $( "#konfis" ).append(' ' + + '' + item.Name + ' ' + + '' + item.KCoins + '' + + '' + (item.CoinsQuota).toFixed(2) + ' ' + + ''); } }); }); diff --git a/getList.go b/getList.go index 97924f4..774f02d 100644 --- a/getList.go +++ b/getList.go @@ -36,17 +36,22 @@ func getList(c echo.Context) error { var gemeinden []Gemeinde asc := c.QueryParam("asc") if asc == "" { - err := db.OrderBy("KCoins DESC").Find(&gemeinden) + err := db.Select("Gemeinde.*, (cast(KCoins AS FLOAT) / cast(KonfiCount AS FLOAT)) as CoinsQuota").OrderBy("CoinsQuota DESC").Find(&gemeinden) if err != nil { fmt.Println(err) } } else { - err := db.OrderBy("Name ASC").Find(&gemeinden) + err := db.Select("*, (cast(KCoins AS FLOAT) / cast(KonfiCount AS FLOAT)) AS CoinsQuota").OrderBy("Name ASC").Find(&gemeinden) if err != nil { fmt.Println(err) } } + // Alles durchgehen und den Schnitt ausrechnen + for i, gem := range gemeinden{ + gemeinden[i].CoinsQuota = float64(gem.KCoins) / float64(gem.KonfiCount) + } + //Template return c.JSON(http.StatusOK, gemeinden) } diff --git a/tpl/admin_mode_1.html b/tpl/admin_mode_1.html index f70c8b7..1977aaf 100644 --- a/tpl/admin_mode_1.html +++ b/tpl/admin_mode_1.html @@ -34,12 +34,14 @@ Name KonfiCoins + Konfis + KonfiCoins p.P. Bearbeiten - Laden... + Laden... @@ -75,10 +77,13 @@
Gemeinde hinzufügen
-
+
+
+ +
@@ -91,7 +96,7 @@
- + {{end}} diff --git a/tpl/index.html b/tpl/index.html index 2fe5f1b..30eaa3f 100644 --- a/tpl/index.html +++ b/tpl/index.html @@ -21,12 +21,15 @@ {{if eq .Mode 0}} Gemeinde {{end}} - Eingezahlte KonfiCoins + Eingezahlte KonfiCoins Gesamt + {{if eq .Mode 1}} + KonfiCoins p.P. + {{end}} - Laden... + Laden... @@ -34,7 +37,7 @@ - + {{end}} \ No newline at end of file diff --git a/update.go b/update.go index d2cbd38..bf3e309 100644 --- a/update.go +++ b/update.go @@ -54,7 +54,17 @@ func update(c echo.Context) error { gemeinde.KCoins = newCoins _, err := db.ID(id).Update(gemeinde) + if err != nil { + return c.JSON(http.StatusInternalServerError, Message{"Error."}) + } + + _, err = db.ID(id).Get(&gemeinde) + if err == nil { + + // Coins pP aausrechnen + gemeinde.CoinsQuota = float64(gemeinde.KCoins) / float64(gemeinde.KonfiCount) + return c.JSON(http.StatusOK, UpdatedMessageGemeinde{"success", gemeinde}) } diff --git a/utils.go b/utils.go index 9a7e15c..86b4cd6 100644 --- a/utils.go +++ b/utils.go @@ -15,6 +15,9 @@ type Gemeinde struct { ID int `xorm:"pk autoincr"` Name string KCoins int + + KonfiCount int + CoinsQuota float64 `xorm:"-"` } type Message struct {