mirror of
https://github.com/overleaf/overleaf.git
synced 2025-02-17 05:54:30 +00:00
basic example using angular done
This commit is contained in:
parent
e099a4a100
commit
6dc1e54dc7
4 changed files with 72 additions and 4 deletions
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
|
33
services/web/public/coffee/UserDetailsUpdater.coffee
Normal file
33
services/web/public/coffee/UserDetailsUpdater.coffee
Normal 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
|
|
@ -6,6 +6,7 @@ require [
|
|||
"libs/underscore"
|
||||
"libs/fineuploader"
|
||||
"libs/jquery.storage"
|
||||
"UserDetailsUpdater"
|
||||
], (tagsManager, moment)->
|
||||
|
||||
$('.isoDate').each (i, d)->
|
||||
|
|
Loading…
Reference in a new issue