diff options
author | Fatih Acet <acetfatih@gmail.com> | 2018-02-07 21:47:09 +0000 |
---|---|---|
committer | Fatih Acet <acetfatih@gmail.com> | 2018-02-07 21:47:09 +0000 |
commit | 4c3dd91f18a0d7fb4aafe807b37520d07563af6a (patch) | |
tree | 6e579b848c9a86fa7f1556a045bf48651f63efc5 | |
parent | 463957f5ccaf15c8675ba88facdf75f3c9a0fa4e (diff) | |
parent | 3d4c40a014e045d68ac80b6ebe2a4e498805a261 (diff) | |
download | gitlab-ce-4c3dd91f18a0d7fb4aafe807b37520d07563af6a.tar.gz |
Merge branch 'axios-profile' into 'master'
Replace $.ajax in profile.js with axios
See merge request gitlab-org/gitlab-ce!16895
-rw-r--r-- | app/assets/javascripts/profile/profile.js | 33 | ||||
-rw-r--r-- | spec/features/profiles/user_visits_profile_spec.rb | 9 |
2 files changed, 25 insertions, 17 deletions
diff --git a/app/assets/javascripts/profile/profile.js b/app/assets/javascripts/profile/profile.js index ba4ac850346..e116ee23601 100644 --- a/app/assets/javascripts/profile/profile.js +++ b/app/assets/javascripts/profile/profile.js @@ -1,7 +1,9 @@ /* eslint-disable comma-dangle, no-unused-vars, class-methods-use-this, quotes, consistent-return, func-names, prefer-arrow-callback, space-before-function-paren, max-len */ import Cookies from 'js-cookie'; -import Flash from '../flash'; -import { getPagePath } from '../lib/utils/common_utils'; +import { getPagePath } from '~/lib/utils/common_utils'; +import axios from '~/lib/utils/axios_utils'; +import { __ } from '~/locale'; +import flash from '../flash'; ((global) => { class Profile { @@ -57,8 +59,8 @@ import { getPagePath } from '../lib/utils/common_utils'; onUpdateNotifs(e, data) { return data.saved ? - new Flash("Notification settings saved", "notice") : - new Flash("Failed to save new settings", "alert"); + flash(__('Notification settings saved'), 'notice') : + flash(__('Failed to save new settings')); } saveForm() { @@ -70,21 +72,18 @@ import { getPagePath } from '../lib/utils/common_utils'; formData.append('user[avatar]', avatarBlob, 'avatar.png'); } - return $.ajax({ + axios({ + method: this.form.attr('method'), url: this.form.attr('action'), - type: this.form.attr('method'), data: formData, - dataType: "json", - processData: false, - contentType: false, - success: response => new Flash(response.message, 'notice'), - error: jqXHR => new Flash(jqXHR.responseJSON.message, 'alert'), - complete: () => { - window.scrollTo(0, 0); - // Enable submit button after requests ends - return self.form.find(':input[disabled]').enable(); - } - }); + }) + .then(({ data }) => flash(data.message, 'notice')) + .then(() => { + window.scrollTo(0, 0); + // Enable submit button after requests ends + self.form.find(':input[disabled]').enable(); + }) + .catch(error => flash(error.message)); } setNewRepoCookie() { diff --git a/spec/features/profiles/user_visits_profile_spec.rb b/spec/features/profiles/user_visits_profile_spec.rb index 6601d3039ed..a5d80439143 100644 --- a/spec/features/profiles/user_visits_profile_spec.rb +++ b/spec/features/profiles/user_visits_profile_spec.rb @@ -12,4 +12,13 @@ describe 'User visits their profile' do it 'shows correct menu item' do expect(page).to have_active_navigation('Profile') end + + describe 'profile settings', :js do + it 'saves updates' do + fill_in 'user_bio', with: 'bio' + click_button 'Update profile settings' + + expect(page).to have_content('Profile was successfully updated') + end + end end |