diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2020-04-04 21:44:26 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2020-04-04 21:44:26 +0200 |
| commit | d3a31c89081f7d2d268c53fef64c502407ef42bb (patch) | |
| tree | 0716404c61db49a495f19b31df4b8a57bf6db3b0 /public/assets/js/lib | |
| parent | da5de0257fc9c9d8c4c7f589d84ced2ef19b9f04 (diff) | |
user list
Diffstat (limited to 'public/assets/js/lib')
| -rw-r--r-- | public/assets/js/lib/router.js | 6 | ||||
| -rw-r--r-- | public/assets/js/lib/views/users/users.js | 55 |
2 files changed, 45 insertions, 16 deletions
diff --git a/public/assets/js/lib/router.js b/public/assets/js/lib/router.js index f856283..ebdfa78 100644 --- a/public/assets/js/lib/router.js +++ b/public/assets/js/lib/router.js @@ -23,6 +23,7 @@ var SiteRouter = Router.extend({ "/mail/read/:id": 'message', "/mail/reply/:id": 'compose', "/users": 'users', + "/users/all": 'usersAll', "/profile": 'profile', "/profile/:username": 'profile', "/profile/:username/edit": 'editProfile', @@ -90,6 +91,11 @@ var SiteRouter = Router.extend({ app.view = new UsersView () app.view.load() }, + + usersAll: function(username){ + app.view = new UsersView ({ all: true }) + app.view.load() + }, profile: function(username){ app.view = new ProfileView () diff --git a/public/assets/js/lib/views/users/users.js b/public/assets/js/lib/views/users/users.js index cbb0fde..a45123d 100644 --- a/public/assets/js/lib/views/users/users.js +++ b/public/assets/js/lib/views/users/users.js @@ -1,6 +1,6 @@ var UsersView = View.extend({ - el: "#users_list", + el: "#user_list", events: { }, @@ -8,8 +8,15 @@ var UsersView = View.extend({ 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(){ @@ -22,6 +29,8 @@ var UsersView = View.extend({ // 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])) @@ -34,31 +43,45 @@ var UsersView = View.extend({ // var threadCount = threadCountNum ? hush_threads(threadCountNum) : ['',''] // "id", "username", "realname", "firstseen", "lastseen", // "location", "website", "avatar", - var create_datetime = verbose_date(keyword.createdate) - var age = get_age(thread.lastmodified) - var id = thread.id + get_revision(thread) + console.log(user) + var stats = userStats[user.username] || {} + console.log(stats) + 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 commentCount = stats.comments ? hush_null(stats.comments, 'c') : ['',''] + var firstseen_datetime = verbose_date(user.firstseen) + var lastseen = get_age(user.lastseen) var t = this.template - .replace(/{{keyword}}/g, sanitizeHTML(keyword.keyword)) - .replace(/{{id}}/g, id) - .replace(/{{username}}/g, keyword.username) - .replace(/{{title}}/g, thread.title) - .replace(/{{create_date}}/g, create_datetime[0]) - .replace(/{{create_time}}/g, create_datetime[1]) - .replace(/{{date_class}}/g, carbon_date(thread.lastmodified) ) - .replace(/{{views}}/g, views[1]) + .replace(/{{username}}/g, sanitizeHTML(user.username)) + .replace(/{{id}}/g, user.id) + .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(/{{commentcount}}/, commentCount[1]) + .replace(/{{commentcount_class}}/, commentCount[0]) // .replace(/{{comments}}/g, comments[1]) // .replace(/{{files}}/g, files[1]) // .replace(/{{size}}/g, size[1] ) - .replace(/{{views_class}}/g, views[0]) // .replace(/{{comments_class}}/g, comments[0]) // .replace(/{{files_class}}/g, files[0]) // .replace(/{{show_files}}/g, thread.file_count == 0 ? "hidden" : "") // .replace(/{{size_class}}/g, size[0] ) - .replace(/{{color}}/g, thread.color || "blue" ) - - this.$el.append(t) + // .replace(/{{color}}/g, thread.color || "blue" ) + var $t = $(t) + if (!user.firstseen) { + $t.find('.date').html('') + } + this.$el.append($t) }) $("body").removeClass('loading') }, |
