diff --git a/README.md b/README.md
index 8199e28..449a055 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,6 @@ TODO::
* ~~Manuell (einzeln)~~
* CSV-Import
* ~~Kofis löschen~~
-* Konfis auf der Frontseite mit Websockets updaten
* ~~Logout~~
+* Konfis auf der Frontseite mit Websockets updaten
* Mode hinzufügen: in der Config soll man zwischen Gemeinden und Konfis umschalten können, so dass entweder die Gemeinden oder Konfis gegeneinander spielen
\ No newline at end of file
diff --git a/TemplateRender.go b/TemplateRender.go
index 0af6661..20a5a18 100644
--- a/TemplateRender.go
+++ b/TemplateRender.go
@@ -13,4 +13,3 @@ type Template struct {
func (t *Template) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
return t.templates.ExecuteTemplate(w, name, data)
}
-
diff --git a/add.go b/add.go
index b877523..2624ff3 100644
--- a/add.go
+++ b/add.go
@@ -16,8 +16,8 @@ func addKonfi(c echo.Context) error {
sess := GlobalSessions.SessionStart(rw, r)
logged := sess.Get("login")
- //Wenn das password stimmt
- if logged != nil{
+ //Wenn eingeloggt
+ if logged != nil {
kofi := new(Kofi)
kofi.Name = c.FormValue("name")
kofi.Gemeinde = c.FormValue("gemeinde")
diff --git a/admin.go b/admin.go
index df2ecb9..7e4d58f 100644
--- a/admin.go
+++ b/admin.go
@@ -9,7 +9,7 @@ type Loggedin struct {
Loggedin bool
}
-func adminHandler (c echo.Context) error {
+func adminHandler(c echo.Context) error {
rw := c.Response()
r := c.Request()
diff --git a/assets/js/load.js b/assets/js/load.js
index 1564399..b660eb1 100644
--- a/assets/js/load.js
+++ b/assets/js/load.js
@@ -6,4 +6,24 @@ setInterval(function() {
$( "#konfis" ).append('
' + item.Name + ' | ' + item.Gemeinde + ' | ' + item.KCoins + ' |
');
});
});
-}, 1000);
\ No newline at end of file
+}, 1000);
+/*
+var loc = window.location;
+var uri = 'ws:';
+
+if (loc.protocol === 'https:') {
+ uri = 'wss:';
+}
+uri += '//' + loc.host;
+uri += loc.pathname + 'ws';
+
+ws = new WebSocket(uri)
+
+ws.onopen = function() {
+ console.log('Connected');
+ ws.send('get');
+};
+
+ws.onmessage = function(evt) {
+ console.log(evt.data);
+};*/
\ No newline at end of file
diff --git a/config.go b/config.go
index 42e05ad..e1d25de 100644
--- a/config.go
+++ b/config.go
@@ -8,8 +8,8 @@ import (
//Configuration Struct
type Configuration struct {
AdminPassword string
- Interface string
- DBFile string
+ Interface string
+ DBFile string
}
var SiteConf Configuration = Configuration{}
diff --git a/db.go b/db.go
index 5b2afd0..03ae53d 100644
--- a/db.go
+++ b/db.go
@@ -1,15 +1,15 @@
package main
import (
- _ "github.com/mattn/go-sqlite3"
- "github.com/go-xorm/xorm"
- "github.com/go-xorm/core"
"fmt"
+ "github.com/go-xorm/core"
+ "github.com/go-xorm/xorm"
+ _ "github.com/mattn/go-sqlite3"
)
var db *xorm.Engine
-func DBinit() *xorm.Engine{
+func DBinit() *xorm.Engine {
SiteConf := initConfig()
db, err := xorm.NewEngine("sqlite3", SiteConf.DBFile)
if err != nil {
@@ -17,7 +17,7 @@ func DBinit() *xorm.Engine{
}
db.SetMapper(core.SameMapper{})
- db.ShowSQL(true)
+ db.ShowSQL(false)
db.Logger().SetLevel(core.LOG_DEBUG)
return db
-}
\ No newline at end of file
+}
diff --git a/delete.go b/delete.go
index 490001b..81adc3d 100644
--- a/delete.go
+++ b/delete.go
@@ -18,7 +18,7 @@ func deleteKonfi(c echo.Context) error {
logged := sess.Get("login")
//Wenn das password stimmt
- if logged != nil{
+ if logged != nil {
id, _ := strconv.Atoi(c.FormValue("id"))
//Löschen
diff --git a/getList.go b/getList.go
index ca5bfc6..27d5e18 100644
--- a/getList.go
+++ b/getList.go
@@ -1,9 +1,9 @@
package main
import (
+ "fmt"
"github.com/labstack/echo"
"net/http"
- "fmt"
)
func getList(c echo.Context) error {
diff --git a/login.go b/login.go
index 4761196..a2ca64b 100644
--- a/login.go
+++ b/login.go
@@ -17,12 +17,11 @@ func login(c echo.Context) error {
var pass string = c.FormValue("password")
//Wenn das password stimmt, einloggen
- if SiteConf.AdminPassword == pass{
+ if SiteConf.AdminPassword == pass {
sess.Set("login", true)
return c.JSON(http.StatusOK, Message{"success"})
} else {
return c.JSON(http.StatusOK, Message{"fail"})
}
-
}
diff --git a/main.go b/main.go
index df512f1..59a6098 100644
--- a/main.go
+++ b/main.go
@@ -3,12 +3,12 @@ package main
import (
"github.com/labstack/echo"
"github.com/labstack/echo/middleware"
- "html/template"
"github.com/labstack/gommon/log"
+ "html/template"
+ "fmt"
"github.com/astaxie/session"
_ "github.com/astaxie/session/providers/memory"
- "fmt"
)
//Initialize Session
@@ -64,6 +64,7 @@ func main() {
e.GET("/list", getList)
e.GET("/admin", adminHandler)
e.GET("/logout", logout)
+ e.GET("/ws", ws)
e.POST("/login", login)
e.POST("/update", update)
diff --git a/showList.go b/showList.go
index 800f1ce..52a8ede 100644
--- a/showList.go
+++ b/showList.go
@@ -5,7 +5,7 @@ import (
"net/http"
)
-func showList (c echo.Context) error {
+func showList(c echo.Context) error {
//Template
return c.Render(http.StatusOK, "index", Message{"schinken"})
}
diff --git a/update.go b/update.go
index e57262a..c5b22a6 100644
--- a/update.go
+++ b/update.go
@@ -18,7 +18,7 @@ func update(c echo.Context) error {
logged := sess.Get("login")
//Wenn das password stimmt
- if logged != nil{
+ if logged != nil {
id, _ := strconv.Atoi(c.FormValue("id"))
addcoins, _ := strconv.Atoi(c.FormValue("addcoins"))
diff --git a/utils.go b/utils.go
index 3ee20e0..0e7d602 100644
--- a/utils.go
+++ b/utils.go
@@ -3,10 +3,10 @@ package main
import "log"
type Kofi struct {
- ID int `xorm:"pk autoincr"`
- Name string
+ ID int `xorm:"pk autoincr"`
+ Name string
Gemeinde string
- KCoins int
+ KCoins int
}
type Message struct {
@@ -15,7 +15,7 @@ type Message struct {
type UpdatedMessage struct {
Message string
- Kofi Kofi
+ Kofi Kofi
}
//CheckError
@@ -23,4 +23,4 @@ func checkErr(err error) {
if err != nil {
log.Fatal(err)
}
-}
\ No newline at end of file
+}
diff --git a/ws.go b/ws.go
new file mode 100644
index 0000000..6154ddf
--- /dev/null
+++ b/ws.go
@@ -0,0 +1,41 @@
+package main
+
+import (
+ "github.com/labstack/echo"
+ "golang.org/x/net/websocket"
+ "fmt"
+ "encoding/json"
+)
+
+func ws(c echo.Context) error {
+ //Datenbankverbindung aufbauen
+ db := DBinit()
+
+ // Websocket
+ websocket.Handler(func(ws *websocket.Conn) {
+ defer ws.Close()
+ for {
+ msg := ""
+ err := websocket.Message.Receive(ws, &msg)
+ if err != nil {
+ c.Logger().Error(err)
+ }
+ fmt.Println(msg)
+
+ //Daten holen und anzeigen
+ var kofi []Kofi
+ err = db.OrderBy("KCoins DESC").Find(&kofi)
+ if err != nil {
+ fmt.Println(err)
+ }
+ kofiJson, err := json.Marshal(kofi)
+ // Wegschicken
+ err = websocket.Message.Send(ws, string(kofiJson))
+ if err != nil {
+ c.Logger().Error(err)
+ }
+ }
+
+ }).ServeHTTP(c.Response(), c.Request())
+ return nil
+}
\ No newline at end of file