summaryrefslogtreecommitdiff
path: root/public/assets/js/lib/views/users/users.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/lib/views/users/users.js')
-rw-r--r--public/assets/js/lib/views/users/users.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/public/assets/js/lib/views/users/users.js b/public/assets/js/lib/views/users/users.js
new file mode 100644
index 0000000..b7e6450
--- /dev/null
+++ b/public/assets/js/lib/views/users/users.js
@@ -0,0 +1,88 @@
+var UsersView = View.extend({
+
+ el: "#user_list",
+
+ events: {
+ },
+
+ action: "/api/users",
+
+ initialize: function(opt){
+ opt = opt || {}
+ this.showAll = !!opt.all
+ this.template = this.$(".template").html()
+ this.form = new NewKeywordForm ({ parent: this })
+ if (!this.showAll) {
+ $('.all_link').attr('href', '/users/all').html('Show all users')
+ } else {
+ $('.all_link').attr('href', '/users').html('Show active users')
+ }
+ },
+
+ load: function(){
+ $.get(this.action, this.populate.bind(this))
+ },
+
+ populate: function(data){
+ console.log(data)
+ // var keywordThreads = {}
+ // data.threadGroups.forEach(kw => {
+ // keywordThreads[kw.keyword] = kw
+ // })
+ var showAll = this.showAll
+ var userStats = data.userStats
+ data.users
+ // .map(a => [parseInt((keywordThreads[a.keyword] || {})['sum(`viewed`)']) || 0, a])
+ // .sort((b,a) => cmp(a[0], b[0]))
+ // .map(a => a[1])
+ .map(user => {
+ // var user = users[user.username.toLowerCase()] || return
+ // var viewed = thread['sum(`viewed`)']
+ // var views = viewed ? hush_views(viewed) : ['','']
+ // var threadCountNum = thread['count(*)']
+ // var threadCount = threadCountNum ? hush_threads(threadCountNum) : ['','']
+ // "id", "username", "realname", "firstseen", "lastseen",
+ // "location", "website", "avatar",
+ var stats = userStats[user.username] || {}
+ if (!showAll && !stats.threads && !stats.files && !stats.comments) {
+ return
+ }
+ var threadCount = stats.threads ? hush_threads(stats.threads) : ['','']
+ var fileCount = stats.files ? hush_null(stats.files, 'f') : ['','']
+ var fileSize = stats.files ? hush_size(stats.fileSize) : ['','']
+ var commentCount = stats.comments ? hush_null(stats.comments, 'c') : ['','']
+ var firstseen_datetime = verbose_date(user.firstseen)
+ var lastseen = get_age(user.lastseen, true)
+ var avatar = profile_image(user.username)
+ var t = this.template
+ .replace(/{{username}}/g, sanitizeHTML(user.username))
+ .replace(/{{id}}/g, user.id)
+ .replace(/{{avatar}}/g, user.avatar)
+ .replace(/{{location}}/g, sanitizeHTML(user.location))
+ .replace(/{{realname}}/g, sanitizeHTML(user.realname))
+ .replace(/{{firstseen_date}}/g, firstseen_datetime[0])
+ .replace(/{{firstseen_time}}/g, firstseen_datetime[1])
+ .replace(/{{firstseen_date_class}}/g, carbon_date(user.firstseen) )
+ .replace(/{{lastseen}}/g, lastseen )
+ .replace(/{{lastseen_date_class}}/g, carbon_date(lastseen) )
+ .replace(/{{threadcount}}/, threadCount[1])
+ .replace(/{{threadcount_class}}/, threadCount[0])
+ .replace(/{{filecount}}/, fileCount[1])
+ .replace(/{{filecount_class}}/, fileCount[0])
+ .replace(/{{filesize}}/, fileSize[1])
+ .replace(/{{filesize_class}}/, fileSize[0])
+ .replace(/{{commentcount}}/, commentCount[1])
+ .replace(/{{commentcount_class}}/, commentCount[0])
+ var $t = $(t)
+ if (!user.firstseen) {
+ $t.find('.date').html('')
+ }
+ // if (!user.avatar) {
+ // $t.find('.avatar').addClass('hidden')
+ // }
+ this.$el.append($t)
+ })
+ $("body").removeClass('loading')
+ },
+
+})