diff --git a/socialdragon/assets/js/app.js b/socialdragon/assets/js/app.js index 59e472f..8df8012 100644 --- a/socialdragon/assets/js/app.js +++ b/socialdragon/assets/js/app.js @@ -6,15 +6,17 @@ Vue.component('modal', { var app = new Vue({ delimiters: ['[[', ']]'], - el: '#app, #image-modal', + el: '#app', data: { mode: state, items: data, currentItem: false, - showModal: false + showModal: false, + inboxCount: false }, created: function () { window.addEventListener('keyup', this.handleKeyup); + this.loadStats(); }, methods: { detailPopup: function (itm, event) { @@ -68,6 +70,19 @@ var app = new Vue({ this.showModal = false; } } + }, + loadStats: function () { + var req = new XMLHttpRequest(); + req.addEventListener("load", function () { + stats = JSON.parse(req.responseText); + if (stats) { + app.inboxCount = stats.Count.Items.Inbox; + } else { + console.warn("Loading stats failed!"); + } + }); + req.open("GET", "/admin/stats"); + req.send(); } } }) @@ -79,6 +94,11 @@ exampleSocket.onopen = function (event) { }; exampleSocket.onmessage = function (event) { item = JSON.parse(event.data); + if (item.State === 0) { + app.inboxCount++; + } else { + app.loadStats(); + } if (item.State === state) { app.items.push(item); } diff --git a/socialdragon/templates/admin.html b/socialdragon/templates/admin.html index 5df9580..2257df4 100644 --- a/socialdragon/templates/admin.html +++ b/socialdragon/templates/admin.html @@ -2,7 +2,7 @@ -
+
{{ template "menu.html" . }} -
+
diff --git a/socialdragon/templates/menu.html b/socialdragon/templates/menu.html index b7b1b56..16068bc 100644 --- a/socialdragon/templates/menu.html +++ b/socialdragon/templates/menu.html @@ -6,7 +6,7 @@
diff --git a/socialdragon/webapp.go b/socialdragon/webapp.go index 85f2e48..e344dd1 100644 --- a/socialdragon/webapp.go +++ b/socialdragon/webapp.go @@ -61,12 +61,10 @@ func rejectSnap(c *gin.Context) { func stats(c *gin.Context) { var ST Stats - database.Db.Begin() database.Db.Model(database.Item{}).Where("state = ?", database.Inbox).Count(&ST.Count.Items.Inbox) database.Db.Model(database.Item{}).Where("state = ?", database.Approved).Count(&ST.Count.Items.Approved) database.Db.Model(database.Item{}).Where("state = ?", database.Rejected).Count(&ST.Count.Items.Rejected) database.Db.Model(database.User{}).Where("blocked = ?", false).Count(&ST.Count.Users.Unblocked) database.Db.Model(database.User{}).Where("blocked = ?", true).Count(&ST.Count.Users.Blocked) - database.Db.Commit() c.JSON(200, ST) }