removed profile webpack bundle tag

This commit is contained in:
Constance Okoghenun 2018-02-23 17:18:24 +01:00
parent 8c310424ca
commit fffc131795
19 changed files with 93 additions and 114 deletions

View file

@ -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)

View 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
}
});

View file

@ -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();
}; });

View file

@ -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 = {})); }

View file

@ -1,2 +0,0 @@
import './gl_crop';
import './profile';

View file

@ -1,2 +0,0 @@
- content_for :page_specific_javascripts do
= webpack_bundle_tag('profile')

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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?

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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?

View file

@ -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',