Added case and demo for user not found. Should be made prettier as soon as users can be queried by name

This commit is contained in:
Ruben Vereecken 2014-07-09 18:12:31 +02:00
parent b065a524c1
commit 5dc54c784d
7 changed files with 47 additions and 21 deletions

View file

@ -18,6 +18,9 @@ module.exports = class User extends CocoModel
permissions = @attributes['permissions'] or []
return 'admin' in permissions
isAnonymous: ->
@get 'anonymous'
displayName: ->
@get('name') or 'Anoner'

View file

@ -3,10 +3,14 @@ extends /templates/base
// User pages might have some user page specific header, if not remove this
block content
div
ol.breadcrumb
li
- var userName = user.get('name');
a(href="/user/#{user.id}") #{userName}
li.active
| #{currentUserView}
if user
ol.breadcrumb
li
- var userName = user.get('name');
a(href="/user/#{user.id}") #{userName}
li.active
| #{currentUserView}
else
// TODO Ruben make this all fancy as soon as we can query users by name
| User not found.

View file

@ -1,11 +1,12 @@
extends /templates/kinds/user
block append content
.row
each achievement, index in achievements
- var title = achievement.get('name');
- var description = achievement.get('description');
- var imgURL = achievement.get('icon');
- var locked = ! achievement.get('unlocked');
.col-lg-4.col-xs-12
include ../achievement_notify
if achievements
.row
each achievement, index in achievements
- var title = achievement.get('name');
- var description = achievement.get('description');
- var imgURL = achievement.get('icon');
- var locked = ! achievement.get('unlocked');
.col-lg-4.col-xs-12
include ../achievement_notify

View file

@ -10,22 +10,30 @@ module.exports = class UserView extends RootView
super options
@listenTo @, 'userLoaded', @onUserLoaded
@listenTo @, 'userNotFound', @ifUserNotFound
# TODO Ruben Assume ID for now
@user = User.getByID @nameOrID, {}, true,
success: =>
@trigger 'userLoaded', @user
success: (user) =>
@trigger 'userNotFound' unless user
@trigger 'userLoaded', user
error: =>
console.debug 'Error while fetching user'
@trigger 'userNotFound'
getRenderData: ->
context = super()
context.currentUserView = 'Achievements'
context.user = @user
context.user = @user unless @user?.isAnonymous()
context
isMe: -> @nameOrID is me.id
onUserLoaded: ->
console.log 'onUserLoaded'
onUserLoaded: (user) ->
console.log 'onUserLoaded', user
ifUserNotFound: ->
console.warn 'user not found'
onLoaded: ->
super()

View file

@ -34,6 +34,7 @@ module.exports = class UserAchievementsView extends UserView
getRenderData: ->
context = super()
context.achievements = @achievements.models
context.earnedAchievements = @earnedAchievements.models
if @user and not @user.isAnonymous()
context.achievements = @achievements.models
context.earnedAchievements = @earnedAchievements.models
context

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View file

@ -0,0 +1,9 @@
UserAchievementsView = require 'views/user/achievements'
module.exports = ->
view = new UserAchievementsView {}, 'thisiddoesntexist'
userRequest = jasmine.Ajax.requests.mostRecent()
userRequest.response status: 404
view.render()