diff options
Diffstat (limited to 'public/assets/js')
| -rw-r--r-- | public/assets/js/lib/router.js | 33 | ||||
| -rw-r--r-- | public/assets/js/lib/views/profile/profile.js | 37 |
2 files changed, 57 insertions, 13 deletions
diff --git a/public/assets/js/lib/router.js b/public/assets/js/lib/router.js index 27c8617..5862503 100644 --- a/public/assets/js/lib/router.js +++ b/public/assets/js/lib/router.js @@ -3,19 +3,21 @@ var SiteRouter = Router.extend({ el: "body", routes: { - "/": 'login', - "/index/:keyword": 'index', - "/index": 'index', - "/login": 'login', - "/details/:id": 'details', - "/post": 'post', - "/post/:keyword": 'post', - "/search": 'search', - "/mail": 'mailbox', - "/mail/:mailbox": 'mailbox', - "/mail/compose": 'compose', - "/message/:id": 'message', - "/comment/:id/edit": 'editComment', + "/": 'login', + "/index/:keyword": 'index', + "/index": 'index', + "/login": 'login', + "/details/:id": 'details', + "/post": 'post', + "/post/:keyword": 'post', + "/search": 'search', + "/mail": 'mailbox', + "/mail/:mailbox": 'mailbox', + "/mail/compose": 'compose', + "/message/:id": 'message', + "/comment/:id/edit": 'editComment', + "/profile": 'profile', + "/profile/:username": 'profile', }, initialize: function(){ @@ -55,6 +57,11 @@ var SiteRouter = Router.extend({ app.view.load(keyword || "") }, + profile: function(username){ + app.view = new ProfileView () + app.view.load(username || auth.user.username) + }, + compose: function(){ app.view = new ComposeView () }, diff --git a/public/assets/js/lib/views/profile/profile.js b/public/assets/js/lib/views/profile/profile.js new file mode 100644 index 0000000..2180532 --- /dev/null +++ b/public/assets/js/lib/views/profile/profile.js @@ -0,0 +1,37 @@ +var ProfileView = View.extend({ + + el: "#profile", + + events: { + }, + + action: "/api/user/", + + initialize: function(opt){ + this.template = this.$(".template").html() + }, + + load: function(username){ + $.get(this.action + username, this.populate.bind(this)) + }, + + populate: function(user){ + $("body").removeClass('loading') + var $table = this.$("table") + this.$("img").attr("src", "/data/profile/" + sanitize(user.username) + ".jpg") + var fields = "username realname phone location".split(" ").map((key) => { + if (! user[key]) return; + var t = this.template.replace(/{{key}}/, sanitize(key)) + .replace(/{{value}}/, sanitize(user[key])) + $table.append(t) + }) + var fields = "firstseen lastseen".split(" ").map((key) => { + if (! user[key]) return; + var date = verbose_date(user[key]) + var t = this.template.replace(/{{key}}/, sanitize(key)) + .replace(/{{value}}/, date[0] + ' <small>' + date[1] + '</small>') + $table.append(t) + }) + }, + +}) |
