|
@@ -1,108 +0,0 @@
|
|
|
-/* eslint-disable
|
|
|
|
|
- handle-callback-err,
|
|
|
|
|
- max-len,
|
|
|
|
|
- no-return-assign,
|
|
|
|
|
- no-undef,
|
|
|
|
|
-*/
|
|
|
|
|
-// TODO: This file was created by bulk-decaffeinate.
|
|
|
|
|
-// Fix any style issues and re-enable lint.
|
|
|
|
|
-/*
|
|
|
|
|
- * decaffeinate suggestions:
|
|
|
|
|
- * DS102: Remove unnecessary code created because of implicit returns
|
|
|
|
|
- * DS207: Consider shorter variations of null checks
|
|
|
|
|
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
|
|
|
|
- */
|
|
|
|
|
-define(['base', 'algoliasearch'], function(App, AlgoliaSearch) {
|
|
|
|
|
- App.factory('Institutions', () =>
|
|
|
|
|
- AlgoliaSearch(
|
|
|
|
|
- window.algolia.institutions.app_id,
|
|
|
|
|
- window.algolia.institutions.api_key
|
|
|
|
|
- ).initIndex('institutions')
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- App.controller('UserProfileController', function($scope, $modal, $http) {
|
|
|
|
|
- $scope.institutions = []
|
|
|
|
|
- $http.get('/user/personal_info').then(function(response) {
|
|
|
|
|
- const { data } = response
|
|
|
|
|
- return ($scope.userInfoForm = {
|
|
|
|
|
- first_name: data.first_name || '',
|
|
|
|
|
- last_name: data.last_name || '',
|
|
|
|
|
- role: data.role || '',
|
|
|
|
|
- institution: data.institution || '',
|
|
|
|
|
- _csrf: window.csrfToken
|
|
|
|
|
- })
|
|
|
|
|
- })
|
|
|
|
|
-
|
|
|
|
|
- $scope.showForm = function() {
|
|
|
|
|
- GrooveWidget.toggle()
|
|
|
|
|
- return ($scope.formVisable = true)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $scope.getPercentComplete = function() {
|
|
|
|
|
- const results = _.filter(
|
|
|
|
|
- $scope.userInfoForm,
|
|
|
|
|
- value =>
|
|
|
|
|
- value == null || (value != null ? value.length : undefined) !== 0
|
|
|
|
|
- )
|
|
|
|
|
- return results.length * 20
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $scope.$watch(
|
|
|
|
|
- 'userInfoForm',
|
|
|
|
|
- function(value) {
|
|
|
|
|
- if (value != null) {
|
|
|
|
|
- return ($scope.percentComplete = $scope.getPercentComplete())
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- true
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- return ($scope.openUserProfileModal = () =>
|
|
|
|
|
- $modal.open({
|
|
|
|
|
- templateUrl: 'userProfileModalTemplate',
|
|
|
|
|
- controller: 'UserProfileModalController',
|
|
|
|
|
- scope: $scope
|
|
|
|
|
- }))
|
|
|
|
|
- })
|
|
|
|
|
-
|
|
|
|
|
- return App.controller('UserProfileModalController', function(
|
|
|
|
|
- $scope,
|
|
|
|
|
- $modalInstance,
|
|
|
|
|
- $http,
|
|
|
|
|
- Institutions
|
|
|
|
|
- ) {
|
|
|
|
|
- $scope.roles = [
|
|
|
|
|
- 'Student',
|
|
|
|
|
- 'Post-graduate student',
|
|
|
|
|
- 'Post-doctoral researcher',
|
|
|
|
|
- 'Lecturer',
|
|
|
|
|
- 'Professor'
|
|
|
|
|
- ]
|
|
|
|
|
-
|
|
|
|
|
- $modalInstance.result.finally(() => sendUpdate())
|
|
|
|
|
-
|
|
|
|
|
- var sendUpdate = function() {
|
|
|
|
|
- const request = $http.post('/user/settings', $scope.userInfoForm)
|
|
|
|
|
- request.then(function() {})
|
|
|
|
|
- return request.catch(() => console.log('the request failed'))
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- $scope.updateInstitutionsList = function(inputVal) {
|
|
|
|
|
- const query = $scope.userInfoForm.institution
|
|
|
|
|
- if ((query != null ? query.length : undefined) <= 3) {
|
|
|
|
|
- return // saves us algolia searches
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return Institutions.search(
|
|
|
|
|
- $scope.userInfoForm.institution,
|
|
|
|
|
- (err, response) =>
|
|
|
|
|
- ($scope.institutions = _.map(
|
|
|
|
|
- response.hits,
|
|
|
|
|
- institution => `${institution.name} (${institution.domain})`
|
|
|
|
|
- ))
|
|
|
|
|
- )
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return ($scope.done = () => $modalInstance.close())
|
|
|
|
|
- })
|
|
|
|
|
-})
|
|
|