basic example using angular done

This commit is contained in:
Henry Oswald 2014-06-11 17:45:09 +01:00
parent e099a4a100
commit 6dc1e54dc7
4 changed files with 72 additions and 4 deletions

View file

@ -8,14 +8,17 @@ module.exports = UserController =
getLoggedInUsersPersonalInfo: (req, res, next = (error) ->) ->
# this is funcky as hell, we don't use the current session to get the user
# we use the auth token, actually destroying session from the chat api request
req.session.destroy()
if req.query?.auth_token?
req.session.destroy()
logger.log user: req.user, "reciving request for getting logged in users personal info"
return next(new Error("User is not logged in")) if !req.user?
UserController.sendFormattedPersonalInfo(req.user, res, next)
UserGetter.getUser req.session.user._id, { first_name: true, last_name: true, role:true, institution:true }, (error, user) ->
UserController.sendFormattedPersonalInfo(user, res, next)
getPersonalInfo: (req, res, next = (error) ->) ->
UserGetter.getUser req.params.user_id, { _id: true, first_name: true, last_name: true, email: true }, (error, user) ->
logger.log user: req.params.user_id, "reciving request for getting users personal info"
UserGetter.getUser req.params.user_id, { _id: true, first_name: true, last_name: true, email: true}, (error, user) ->
logger.log user_id: req.params.user_id, "reciving request for getting users personal info"
console.log user
return next(error) if error?
return res.send(404) if !user?
UserController.sendFormattedPersonalInfo(user, res, next)
@ -39,6 +42,7 @@ module.exports = UserController =
sendFormattedPersonalInfo: (user, res, next = (error) ->) ->
UserController._formatPersonalInfo user, (error, info) ->
return next(error) if error?
console.log info
res.send JSON.stringify(info)
_formatPersonalInfo: (user, callback = (error, info) ->) ->
@ -48,6 +52,8 @@ module.exports = UserController =
last_name: user.last_name
email: user.email
signUpDate: user.signUpDate
role: user.role
institution: user.institution
}

View file

@ -101,6 +101,31 @@ block content
ul#projectList
mixin projectList(projects)
#userProfileInformation(ng-app="userProfileInformationApp")
div(ng-controller="UpdateForm")
div(ng-hide="hidePersonalInfoSection")
div(ng-show="percentComplete == 100")
span Thanks!
div(ng-hide="percentComplete == 100")
.span3
.span8
.progress
.bar.bar-success(ng-style="{'width' : (percentComplete+'%')}")
span Account {{percentComplete}}% complete
button.btn(ng-hide="formVisable", ng-click="formVisable = true") Complete now
.span3(ng-show="formVisable")
form(enctype='multipart/form-data', method='post')
.input
input(type='text', name='first_name', ng-model="userInfoForm.first_name", ng-blur="sendUpdate()")
.input
input(type='text', name='last_name', ng-model="userInfoForm.last_name", ng-blur="sendUpdate()", placeholder='Last Name')
.input
input(type='text', name='institution', ng-model="userInfoForm.institution", placeholder='Institution', ng-blur="sendUpdate()")
.input
input(type='text', name='role', ng-model="userInfoForm.role", placeholder='Role', ng-blur="sendUpdate()")
.span3
.tag-list
h2 Tags
@ -142,3 +167,6 @@ block content
src=jsPath+'libs/require.js?fingerprint='+fingerprint(jsPath + 'libs/require.js')
)
script(src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js")
script(src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.js")
script(src=jsPath+"/UserDetailsUpdater.js")

View file

@ -0,0 +1,33 @@
app = angular.module("userProfileInformationApp", [])
app.controller "UpdateForm", ($scope, $http)->
$scope.hidePersonalInfoSection = true
$http.get("/user/personal_info").success (data)->
$scope.userInfoForm =
first_name: data.first_name
last_name: data.last_name
role: data.role
institution: data.institution
_csrf : window.csrfToken
if getPercentComplete() != 100
console.log "!!!!!!!"
$scope.percentComplete = getPercentComplete()
$scope.hidePersonalInfoSection = false
console.log $scope.percentComplete
$scope.sendUpdate = ->
$http.post "/user/personal_info", $scope.userInfoForm
$scope.percentComplete = getPercentComplete()
getPercentComplete = ->
results = _.filter $scope.userInfoForm, (value)-> value? and value?.length != 0
console.log results.length * 20
results.length * 20

View file

@ -6,6 +6,7 @@ require [
"libs/underscore"
"libs/fineuploader"
"libs/jquery.storage"
"UserDetailsUpdater"
], (tagsManager, moment)->
$('.isoDate').each (i, d)->