| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- /* 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', 'libs/algolia-2.5.2'], function(App, algolia) {
- App.factory('Institutions', () =>
- new 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())
- })
- })
|