removed profile webpack bundle tag
This commit is contained in:
parent
8c310424ca
commit
fffc131795
19 changed files with 93 additions and 114 deletions
|
@ -114,11 +114,6 @@ var Dispatcher;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'profiles':
|
|
||||||
import('./pages/profiles/index')
|
|
||||||
.then(callDefault)
|
|
||||||
.catch(fail);
|
|
||||||
break;
|
|
||||||
case 'projects':
|
case 'projects':
|
||||||
import('./pages/projects')
|
import('./pages/projects')
|
||||||
.then(callDefault)
|
.then(callDefault)
|
||||||
|
|
19
app/assets/javascripts/pages/profiles/index.js
Normal file
19
app/assets/javascripts/pages/profiles/index.js
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
import '~/profile/gl_crop';
|
||||||
|
import Profile from '~/profile/profile';
|
||||||
|
import { getPagePath } from '~/lib/utils/common_utils';
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
$(document).on('input.ssh_key', '#key_key', () => {
|
||||||
|
const $title = $('#key_title');
|
||||||
|
const comment = $(this).val().match(/^\S+ \S+ (.+)\n?$/);
|
||||||
|
|
||||||
|
// Extract the SSH Key title from its comment
|
||||||
|
if (comment && comment.length > 1) {
|
||||||
|
$title.val(comment[1]).change();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (getPagePath() === 'profiles') {
|
||||||
|
new Profile(); // eslint-disable-line no-new
|
||||||
|
}
|
||||||
|
});
|
|
@ -1,7 +1,7 @@
|
||||||
import NotificationsForm from '../../../notifications_form';
|
import NotificationsForm from '../../../notifications_form';
|
||||||
import notificationsDropdown from '../../../notifications_dropdown';
|
import notificationsDropdown from '../../../notifications_dropdown';
|
||||||
|
|
||||||
export default () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
new NotificationsForm(); // eslint-disable-line no-new
|
new NotificationsForm(); // eslint-disable-line no-new
|
||||||
notificationsDropdown();
|
notificationsDropdown();
|
||||||
};
|
});
|
||||||
|
|
|
@ -1,103 +1,85 @@
|
||||||
/* 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 */
|
/* 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 Cookies from 'js-cookie';
|
||||||
import { getPagePath } from '~/lib/utils/common_utils';
|
|
||||||
import axios from '~/lib/utils/axios_utils';
|
import axios from '~/lib/utils/axios_utils';
|
||||||
import { __ } from '~/locale';
|
import { __ } from '~/locale';
|
||||||
import flash from '../flash';
|
import flash from '../flash';
|
||||||
|
|
||||||
((global) => {
|
export default class Profile {
|
||||||
class Profile {
|
constructor({ form } = {}) {
|
||||||
constructor({ form } = {}) {
|
this.onSubmitForm = this.onSubmitForm.bind(this);
|
||||||
this.onSubmitForm = this.onSubmitForm.bind(this);
|
this.form = form || $('.edit-user');
|
||||||
this.form = form || $('.edit-user');
|
this.newRepoActivated = Cookies.get('new_repo');
|
||||||
this.newRepoActivated = Cookies.get('new_repo');
|
this.setRepoRadio();
|
||||||
this.setRepoRadio();
|
this.bindEvents();
|
||||||
this.bindEvents();
|
this.initAvatarGlCrop();
|
||||||
this.initAvatarGlCrop();
|
}
|
||||||
|
|
||||||
|
initAvatarGlCrop() {
|
||||||
|
const cropOpts = {
|
||||||
|
filename: '.js-avatar-filename',
|
||||||
|
previewImage: '.avatar-image .avatar',
|
||||||
|
modalCrop: '.modal-profile-crop',
|
||||||
|
pickImageEl: '.js-choose-user-avatar-button',
|
||||||
|
uploadImageBtn: '.js-upload-user-avatar',
|
||||||
|
modalCropImg: '.modal-profile-crop-image'
|
||||||
|
};
|
||||||
|
this.avatarGlCrop = $('.js-user-avatar-input').glCrop(cropOpts).data('glcrop');
|
||||||
|
}
|
||||||
|
|
||||||
|
bindEvents() {
|
||||||
|
$('.js-preferences-form').on('change.preference', 'input[type=radio]', this.submitForm);
|
||||||
|
$('input[name="user[multi_file]"]').on('change', this.setNewRepoCookie);
|
||||||
|
$('#user_notification_email').on('change', this.submitForm);
|
||||||
|
$('#user_notified_of_own_activity').on('change', this.submitForm);
|
||||||
|
this.form.on('submit', this.onSubmitForm);
|
||||||
|
}
|
||||||
|
|
||||||
|
submitForm() {
|
||||||
|
return $(this).parents('form').submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
onSubmitForm(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
return this.saveForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
saveForm() {
|
||||||
|
const self = this;
|
||||||
|
const formData = new FormData(this.form[0]);
|
||||||
|
const avatarBlob = this.avatarGlCrop.getBlob();
|
||||||
|
|
||||||
|
if (avatarBlob != null) {
|
||||||
|
formData.append('user[avatar]', avatarBlob, 'avatar.png');
|
||||||
}
|
}
|
||||||
|
|
||||||
initAvatarGlCrop() {
|
axios({
|
||||||
const cropOpts = {
|
method: this.form.attr('method'),
|
||||||
filename: '.js-avatar-filename',
|
url: this.form.attr('action'),
|
||||||
previewImage: '.avatar-image .avatar',
|
data: formData,
|
||||||
modalCrop: '.modal-profile-crop',
|
})
|
||||||
pickImageEl: '.js-choose-user-avatar-button',
|
.then(({ data }) => flash(data.message, 'notice'))
|
||||||
uploadImageBtn: '.js-upload-user-avatar',
|
.then(() => {
|
||||||
modalCropImg: '.modal-profile-crop-image'
|
window.scrollTo(0, 0);
|
||||||
};
|
// Enable submit button after requests ends
|
||||||
this.avatarGlCrop = $('.js-user-avatar-input').glCrop(cropOpts).data('glcrop');
|
self.form.find(':input[disabled]').enable();
|
||||||
}
|
})
|
||||||
|
.catch(error => flash(error.message));
|
||||||
|
}
|
||||||
|
|
||||||
bindEvents() {
|
setNewRepoCookie() {
|
||||||
$('.js-preferences-form').on('change.preference', 'input[type=radio]', this.submitForm);
|
if (this.value === 'off') {
|
||||||
$('input[name="user[multi_file]"]').on('change', this.setNewRepoCookie);
|
Cookies.remove('new_repo');
|
||||||
$('#user_notification_email').on('change', this.submitForm);
|
} else {
|
||||||
$('#user_notified_of_own_activity').on('change', this.submitForm);
|
Cookies.set('new_repo', true, { expires_in: 365 });
|
||||||
this.form.on('submit', this.onSubmitForm);
|
|
||||||
}
|
|
||||||
|
|
||||||
submitForm() {
|
|
||||||
return $(this).parents('form').submit();
|
|
||||||
}
|
|
||||||
|
|
||||||
onSubmitForm(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
return this.saveForm();
|
|
||||||
}
|
|
||||||
|
|
||||||
saveForm() {
|
|
||||||
const self = this;
|
|
||||||
const formData = new FormData(this.form[0]);
|
|
||||||
const avatarBlob = this.avatarGlCrop.getBlob();
|
|
||||||
|
|
||||||
if (avatarBlob != null) {
|
|
||||||
formData.append('user[avatar]', avatarBlob, 'avatar.png');
|
|
||||||
}
|
|
||||||
|
|
||||||
axios({
|
|
||||||
method: this.form.attr('method'),
|
|
||||||
url: this.form.attr('action'),
|
|
||||||
data: formData,
|
|
||||||
})
|
|
||||||
.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() {
|
|
||||||
if (this.value === 'off') {
|
|
||||||
Cookies.remove('new_repo');
|
|
||||||
} else {
|
|
||||||
Cookies.set('new_repo', true, { expires_in: 365 });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setRepoRadio() {
|
|
||||||
const multiEditRadios = $('input[name="user[multi_file]"]');
|
|
||||||
if (this.newRepoActivated || this.newRepoActivated === 'true') {
|
|
||||||
multiEditRadios.filter('[value=on]').prop('checked', true);
|
|
||||||
} else {
|
|
||||||
multiEditRadios.filter('[value=off]').prop('checked', true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$(function() {
|
setRepoRadio() {
|
||||||
$(document).on('input.ssh_key', '#key_key', function() {
|
const multiEditRadios = $('input[name="user[multi_file]"]');
|
||||||
const $title = $('#key_title');
|
if (this.newRepoActivated || this.newRepoActivated === 'true') {
|
||||||
const comment = $(this).val().match(/^\S+ \S+ (.+)\n?$/);
|
multiEditRadios.filter('[value=on]').prop('checked', true);
|
||||||
|
} else {
|
||||||
// Extract the SSH Key title from its comment
|
multiEditRadios.filter('[value=off]').prop('checked', true);
|
||||||
if (comment && comment.length > 1) {
|
|
||||||
return $title.val(comment[1]).change();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (getPagePath() === 'profiles') {
|
|
||||||
return new Profile();
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
})(window.gl || (window.gl = {}));
|
}
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
import './gl_crop';
|
|
||||||
import './profile';
|
|
|
@ -1,2 +0,0 @@
|
||||||
- content_for :page_specific_javascripts do
|
|
||||||
= webpack_bundle_tag('profile')
|
|
|
@ -1,6 +1,5 @@
|
||||||
- page_title "Account"
|
- page_title "Account"
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
- if current_user.ldap_user?
|
- if current_user.ldap_user?
|
||||||
.alert.alert-info
|
.alert.alert-info
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
- page_title "Authentication log"
|
- page_title "Authentication log"
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
.row.prepend-top-default
|
.row.prepend-top-default
|
||||||
.col-lg-4.profile-settings-sidebar
|
.col-lg-4.profile-settings-sidebar
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
- page_title 'Chat'
|
- page_title 'Chat'
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
.row.prepend-top-default
|
.row.prepend-top-default
|
||||||
.col-lg-4.profile-settings-sidebar
|
.col-lg-4.profile-settings-sidebar
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
- page_title "Emails"
|
- page_title "Emails"
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
.row.prepend-top-default
|
.row.prepend-top-default
|
||||||
.col-lg-4.profile-settings-sidebar
|
.col-lg-4.profile-settings-sidebar
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
- page_title "GPG Keys"
|
- page_title "GPG Keys"
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
.row.prepend-top-default
|
.row.prepend-top-default
|
||||||
.col-lg-4.profile-settings-sidebar
|
.col-lg-4.profile-settings-sidebar
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
- page_title "SSH Keys"
|
- page_title "SSH Keys"
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
.row.prepend-top-default
|
.row.prepend-top-default
|
||||||
.col-lg-4.profile-settings-sidebar
|
.col-lg-4.profile-settings-sidebar
|
||||||
|
|
|
@ -2,5 +2,4 @@
|
||||||
- breadcrumb_title @key.title
|
- breadcrumb_title @key.title
|
||||||
- page_title @key.title, "SSH Keys"
|
- page_title @key.title, "SSH Keys"
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
= render "key_details"
|
= render "key_details"
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
- page_title "Notifications"
|
- page_title "Notifications"
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
%div
|
%div
|
||||||
- if @user.errors.any?
|
- if @user.errors.any?
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
- page_title "Personal Access Tokens"
|
- page_title "Personal Access Tokens"
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
|
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
.row.prepend-top-default
|
.row.prepend-top-default
|
||||||
.col-lg-4.profile-settings-sidebar
|
.col-lg-4.profile-settings-sidebar
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
- page_title 'Preferences'
|
- page_title 'Preferences'
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
= form_for @user, url: profile_preferences_path, remote: true, method: :put, html: { class: 'row prepend-top-default js-preferences-form' } do |f|
|
= form_for @user, url: profile_preferences_path, remote: true, method: :put, html: { class: 'row prepend-top-default js-preferences-form' } do |f|
|
||||||
.col-lg-4.application-theme
|
.col-lg-4.application-theme
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
- breadcrumb_title "Edit Profile"
|
- breadcrumb_title "Edit Profile"
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
= bootstrap_form_for @user, url: profile_path, method: :put, html: { multipart: true, class: 'edit-user prepend-top-default js-quick-submit' }, authenticity_token: true do |f|
|
= bootstrap_form_for @user, url: profile_path, method: :put, html: { multipart: true, class: 'edit-user prepend-top-default js-quick-submit' }, authenticity_token: true do |f|
|
||||||
= form_errors(@user)
|
= form_errors(@user)
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
- add_to_breadcrumbs("Two-Factor Authentication", profile_account_path)
|
- add_to_breadcrumbs("Two-Factor Authentication", profile_account_path)
|
||||||
- @content_class = "limit-container-width" unless fluid_layout
|
- @content_class = "limit-container-width" unless fluid_layout
|
||||||
|
|
||||||
= render 'profiles/head'
|
|
||||||
|
|
||||||
- content_for :page_specific_javascripts do
|
- content_for :page_specific_javascripts do
|
||||||
- if inject_u2f_api?
|
- if inject_u2f_api?
|
||||||
|
|
|
@ -73,7 +73,6 @@ var config = {
|
||||||
pdf_viewer: './blob/pdf_viewer.js',
|
pdf_viewer: './blob/pdf_viewer.js',
|
||||||
pipelines: './pipelines/pipelines_bundle.js',
|
pipelines: './pipelines/pipelines_bundle.js',
|
||||||
pipelines_details: './pipelines/pipeline_details_bundle.js',
|
pipelines_details: './pipelines/pipeline_details_bundle.js',
|
||||||
profile: './profile/profile_bundle.js',
|
|
||||||
project_import_gl: './projects/project_import_gitlab_project.js',
|
project_import_gl: './projects/project_import_gitlab_project.js',
|
||||||
protected_branches: './protected_branches',
|
protected_branches: './protected_branches',
|
||||||
protected_tags: './protected_tags',
|
protected_tags: './protected_tags',
|
||||||
|
|
Loading…
Reference in a new issue