Commit d91faf5c authored by Phil Hughes's avatar Phil Hughes

Merge branch 'master' into 'ee-ph-es-notes-module'

# Conflicts:
#   app/assets/javascripts/main.js
parents bf93663b 173bc2a8
/* eslint-disable comma-dangle, space-before-function-paren, no-new */ /* eslint-disable comma-dangle, space-before-function-paren, no-new */
/* global MilestoneSelect */ /* global MilestoneSelect */
/* global Sidebar */
import Vue from 'vue'; import Vue from 'vue';
import weight from 'ee/sidebar/components/weight/weight.vue'; import weight from 'ee/sidebar/components/weight/weight.vue';
import Flash from '../../flash'; import Flash from '../../flash';
import Sidebar from '../../right_sidebar';
import eventHub from '../../sidebar/event_hub'; import eventHub from '../../sidebar/event_hub';
import assigneeTitle from '../../sidebar/components/assignees/assignee_title'; import assigneeTitle from '../../sidebar/components/assignees/assignee_title';
import assignees from '../../sidebar/components/assignees/assignees'; import assignees from '../../sidebar/components/assignees/assignees';
......
...@@ -11,7 +11,7 @@ import NewBranchForm from './new_branch_form'; ...@@ -11,7 +11,7 @@ import NewBranchForm from './new_branch_form';
/* global NotificationsDropdown */ /* global NotificationsDropdown */
import groupAvatar from './group_avatar'; import groupAvatar from './group_avatar';
import GroupLabelSubscription from './group_label_subscription'; import GroupLabelSubscription from './group_label_subscription';
/* global LineHighlighter */ import LineHighlighter from './line_highlighter';
import BuildArtifacts from './build_artifacts'; import BuildArtifacts from './build_artifacts';
import CILintEditor from './ci_lint_editor'; import CILintEditor from './ci_lint_editor';
import groupsSelect from './groups_select'; import groupsSelect from './groups_select';
...@@ -21,7 +21,7 @@ import NamespaceSelect from './namespace_select'; ...@@ -21,7 +21,7 @@ import NamespaceSelect from './namespace_select';
import NewCommitForm from './new_commit_form'; import NewCommitForm from './new_commit_form';
import Project from './project'; import Project from './project';
import projectAvatar from './project_avatar'; import projectAvatar from './project_avatar';
/* global MergeRequest */ import MergeRequest from './merge_request';
import Compare from './compare'; import Compare from './compare';
import initCompareAutocomplete from './compare_autocomplete'; import initCompareAutocomplete from './compare_autocomplete';
/* global PathLocks */ /* global PathLocks */
...@@ -30,7 +30,7 @@ import ProjectNew from './project_new'; ...@@ -30,7 +30,7 @@ import ProjectNew from './project_new';
import projectImport from './project_import'; import projectImport from './project_import';
import Labels from './labels'; import Labels from './labels';
import LabelManager from './label_manager'; import LabelManager from './label_manager';
/* global Sidebar */ import Sidebar from './right_sidebar';
/* global WeightSelect */ /* global WeightSelect */
/* global AdminEmailSelect */ /* global AdminEmailSelect */
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/* global WeightSelect */ /* global WeightSelect */
import LabelsSelect from './labels_select'; import LabelsSelect from './labels_select';
import IssuableContext from './issuable_context'; import IssuableContext from './issuable_context';
/* global Sidebar */ import Sidebar from './right_sidebar';
import DueDateSelectors from './due_date_select'; import DueDateSelectors from './due_date_select';
...@@ -17,5 +17,5 @@ export default () => { ...@@ -17,5 +17,5 @@ export default () => {
new WeightSelect(); new WeightSelect();
new IssuableContext(sidebarOptions.currentUser); new IssuableContext(sidebarOptions.currentUser);
new DueDateSelectors(); new DueDateSelectors();
window.sidebar = new Sidebar(); Sidebar.initialize();
}; };
...@@ -175,4 +175,4 @@ LineHighlighter.prototype.__setLocationHash__ = function(value) { ...@@ -175,4 +175,4 @@ LineHighlighter.prototype.__setLocationHash__ = function(value) {
}, document.title, value); }, document.title, value);
}; };
window.LineHighlighter = LineHighlighter; export default LineHighlighter;
...@@ -50,7 +50,6 @@ import './layout_nav'; ...@@ -50,7 +50,6 @@ import './layout_nav';
import LazyLoader from './lazy_loader'; import LazyLoader from './lazy_loader';
import './line_highlighter'; import './line_highlighter';
import initLogoAnimation from './logo'; import initLogoAnimation from './logo';
import './merge_request';
import './milestone_select'; import './milestone_select';
import './notifications_dropdown'; import './notifications_dropdown';
import './notifications_form'; import './notifications_form';
...@@ -59,7 +58,6 @@ import './preview_markdown'; ...@@ -59,7 +58,6 @@ import './preview_markdown';
import './project_import'; import './project_import';
import './projects_dropdown'; import './projects_dropdown';
import './render_gfm'; import './render_gfm';
import './right_sidebar';
import initBreadcrumbs from './breadcrumb'; import initBreadcrumbs from './breadcrumb';
// EE-only scripts // EE-only scripts
......
...@@ -7,142 +7,138 @@ import './merge_request_tabs'; ...@@ -7,142 +7,138 @@ import './merge_request_tabs';
import IssuablesHelper from './helpers/issuables_helper'; import IssuablesHelper from './helpers/issuables_helper';
import { addDelimiter } from './lib/utils/text_utility'; import { addDelimiter } from './lib/utils/text_utility';
(function() { function MergeRequest(opts) {
this.MergeRequest = (function() { // Initialize MergeRequest behavior
function MergeRequest(opts) { //
// Initialize MergeRequest behavior // Options:
// // action - String, current controller action
// Options: //
// action - String, current controller action this.opts = opts != null ? opts : {};
// this.submitNoteForm = this.submitNoteForm.bind(this);
this.opts = opts != null ? opts : {}; this.$el = $('.merge-request');
this.submitNoteForm = this.submitNoteForm.bind(this); this.$('.show-all-commits').on('click', (function(_this) {
this.$el = $('.merge-request'); return function() {
this.$('.show-all-commits').on('click', (function(_this) { return _this.showAllCommits();
return function() {
return _this.showAllCommits();
};
})(this));
this.initTabs();
this.initMRBtnListeners();
this.initCommitMessageListeners();
this.closeReopenReportToggle = IssuablesHelper.initCloseReopenReport();
if ($("a.btn-close").length) {
this.taskList = new TaskList({
dataType: 'merge_request',
fieldName: 'description',
selector: '.detail-page-description',
onSuccess: (result) => {
document.querySelector('#task_status').innerText = result.task_status;
document.querySelector('#task_status_short').innerText = result.task_status_short;
}
});
}
}
// Local jQuery finder
MergeRequest.prototype.$ = function(selector) {
return this.$el.find(selector);
}; };
})(this));
MergeRequest.prototype.initTabs = function() {
if (window.mrTabs) { this.initTabs();
window.mrTabs.unbindEvents(); this.initMRBtnListeners();
this.initCommitMessageListeners();
this.closeReopenReportToggle = IssuablesHelper.initCloseReopenReport();
if ($("a.btn-close").length) {
this.taskList = new TaskList({
dataType: 'merge_request',
fieldName: 'description',
selector: '.detail-page-description',
onSuccess: (result) => {
document.querySelector('#task_status').innerText = result.task_status;
document.querySelector('#task_status_short').innerText = result.task_status_short;
} }
window.mrTabs = new gl.MergeRequestTabs(this.opts); });
}; }
}
MergeRequest.prototype.showAllCommits = function() {
this.$('.first-commits').remove(); // Local jQuery finder
return this.$('.all-commits').removeClass('hide'); MergeRequest.prototype.$ = function(selector) {
}; return this.$el.find(selector);
};
MergeRequest.prototype.initMRBtnListeners = function() {
var _this; MergeRequest.prototype.initTabs = function() {
_this = this; if (window.mrTabs) {
return $('a.btn-close, a.btn-reopen').on('click', function(e) { window.mrTabs.unbindEvents();
var $this, shouldSubmit; }
$this = $(this); window.mrTabs = new gl.MergeRequestTabs(this.opts);
shouldSubmit = $this.hasClass('btn-comment'); };
if (shouldSubmit && $this.data('submitted')) {
return; MergeRequest.prototype.showAllCommits = function() {
} this.$('.first-commits').remove();
return this.$('.all-commits').removeClass('hide');
if (this.closeReopenReportToggle) this.closeReopenReportToggle.setDisable(); };
if (shouldSubmit) { MergeRequest.prototype.initMRBtnListeners = function() {
if ($this.hasClass('btn-comment-and-close') || $this.hasClass('btn-comment-and-reopen')) { var _this;
e.preventDefault(); _this = this;
e.stopImmediatePropagation(); return $('a.btn-close, a.btn-reopen').on('click', function(e) {
var $this, shouldSubmit;
_this.submitNoteForm($this.closest('form'), $this); $this = $(this);
} shouldSubmit = $this.hasClass('btn-comment');
} if (shouldSubmit && $this.data('submitted')) {
}); return;
}; }
MergeRequest.prototype.submitNoteForm = function(form, $button) {
var noteText;
noteText = form.find("textarea.js-note-text").val();
if (noteText.trim().length > 0) {
form.submit();
$button.data('submitted', true);
return $button.trigger('click');
}
};
MergeRequest.prototype.initCommitMessageListeners = function() {
$(document).on('click', 'a.js-with-description-link', function(e) {
var textarea = $('textarea.js-commit-message');
e.preventDefault();
textarea.val(textarea.data('messageWithDescription')); if (this.closeReopenReportToggle) this.closeReopenReportToggle.setDisable();
$('.js-with-description-hint').hide();
$('.js-without-description-hint').show();
});
$(document).on('click', 'a.js-without-description-link', function(e) { if (shouldSubmit) {
var textarea = $('textarea.js-commit-message'); if ($this.hasClass('btn-comment-and-close') || $this.hasClass('btn-comment-and-reopen')) {
e.preventDefault(); e.preventDefault();
e.stopImmediatePropagation();
textarea.val(textarea.data('messageWithoutDescription')); _this.submitNoteForm($this.closest('form'), $this);
$('.js-with-description-hint').show();
$('.js-without-description-hint').hide();
});
};
MergeRequest.prototype.updateStatusText = function(classToRemove, classToAdd, newStatusText) {
$('.detail-page-header .status-box')
.removeClass(classToRemove)
.addClass(classToAdd)
.find('span')
.text(newStatusText);
};
MergeRequest.prototype.decreaseCounter = function(by = 1) {
const $el = $('.nav-links .js-merge-counter');
const count = Math.max((parseInt($el.text().replace(/[^\d]/, ''), 10) - by), 0);
$el.text(addDelimiter(count));
};
MergeRequest.prototype.hideCloseButton = function() {
const el = document.querySelector('.merge-request .js-issuable-actions');
const closeDropdownItem = el.querySelector('li.close-item');
if (closeDropdownItem) {
closeDropdownItem.classList.add('hidden');
// Selects the next dropdown item
el.querySelector('li.report-item').click();
} else {
// No dropdown just hide the Close button
el.querySelector('.btn-close').classList.add('hidden');
} }
// Dropdown for mobile screen }
el.querySelector('li.js-close-item').classList.add('hidden'); });
}; };
return MergeRequest; MergeRequest.prototype.submitNoteForm = function(form, $button) {
})(); var noteText;
}).call(window); noteText = form.find("textarea.js-note-text").val();
if (noteText.trim().length > 0) {
form.submit();
$button.data('submitted', true);
return $button.trigger('click');
}
};
MergeRequest.prototype.initCommitMessageListeners = function() {
$(document).on('click', 'a.js-with-description-link', function(e) {
var textarea = $('textarea.js-commit-message');
e.preventDefault();
textarea.val(textarea.data('messageWithDescription'));
$('.js-with-description-hint').hide();
$('.js-without-description-hint').show();
});
$(document).on('click', 'a.js-without-description-link', function(e) {
var textarea = $('textarea.js-commit-message');
e.preventDefault();
textarea.val(textarea.data('messageWithoutDescription'));
$('.js-with-description-hint').show();
$('.js-without-description-hint').hide();
});
};
MergeRequest.prototype.updateStatusText = function(classToRemove, classToAdd, newStatusText) {
$('.detail-page-header .status-box')
.removeClass(classToRemove)
.addClass(classToAdd)
.find('span')
.text(newStatusText);
};
MergeRequest.prototype.decreaseCounter = function(by = 1) {
const $el = $('.nav-links .js-merge-counter');
const count = Math.max((parseInt($el.text().replace(/[^\d]/, ''), 10) - by), 0);
$el.text(addDelimiter(count));
};
MergeRequest.prototype.hideCloseButton = function() {
const el = document.querySelector('.merge-request .js-issuable-actions');
const closeDropdownItem = el.querySelector('li.close-item');
if (closeDropdownItem) {
closeDropdownItem.classList.add('hidden');
// Selects the next dropdown item
el.querySelector('li.report-item').click();
} else {
// No dropdown just hide the Close button
el.querySelector('.btn-close').classList.add('hidden');
}
// Dropdown for mobile screen
el.querySelector('li.js-close-item').classList.add('hidden');
};
export default MergeRequest;
<script> <script>
/* global LineHighlighter */
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import LineHighlighter from '../../line_highlighter';
import syntaxHighlight from '../../syntax_highlight'; import syntaxHighlight from '../../syntax_highlight';
export default { export default {
......
This diff is collapsed.
/* global Mousetrap */ /* global Mousetrap */
/* global sidebar */
import _ from 'underscore'; import _ from 'underscore';
import 'mousetrap'; import 'mousetrap';
import Sidebar from './right_sidebar';
import ShortcutsNavigation from './shortcuts_navigation'; import ShortcutsNavigation from './shortcuts_navigation';
import { CopyAsGFM } from './behaviors/copy_as_gfm'; import { CopyAsGFM } from './behaviors/copy_as_gfm';
...@@ -69,7 +69,7 @@ export default class ShortcutsIssuable extends ShortcutsNavigation { ...@@ -69,7 +69,7 @@ export default class ShortcutsIssuable extends ShortcutsNavigation {
} }
static openSidebarDropdown(name) { static openSidebarDropdown(name) {
sidebar.openDropdown(name); Sidebar.instance.openDropdown(name);
return false; return false;
} }
} }
/* global Sidebar */
/* eslint-disable no-new */ /* eslint-disable no-new */
import _ from 'underscore'; import _ from 'underscore';
import '~/right_sidebar'; import Sidebar from '~/right_sidebar';
describe('Issuable right sidebar collapsed todo toggle', () => { describe('Issuable right sidebar collapsed todo toggle', () => {
const fixtureName = 'issues/open-issue.html.raw'; const fixtureName = 'issues/open-issue.html.raw';
......
/* eslint-disable space-before-function-paren, no-var, no-param-reassign, quotes, prefer-template, no-else-return, new-cap, dot-notation, no-return-assign, comma-dangle, no-new, one-var, one-var-declaration-per-line, jasmine/no-spec-dupes, no-underscore-dangle, max-len */ /* eslint-disable space-before-function-paren, no-var, no-param-reassign, quotes, prefer-template, no-else-return, new-cap, dot-notation, no-return-assign, comma-dangle, no-new, one-var, one-var-declaration-per-line, jasmine/no-spec-dupes, no-underscore-dangle, max-len */
/* global LineHighlighter */
import '~/line_highlighter'; import LineHighlighter from '~/line_highlighter';
(function() { (function() {
describe('LineHighlighter', function() { describe('LineHighlighter', function() {
......
/* eslint-disable space-before-function-paren, no-return-assign */ /* eslint-disable space-before-function-paren, no-return-assign */
/* global MergeRequest */
import '~/merge_request'; import MergeRequest from '~/merge_request';
import CloseReopenReportToggle from '~/close_reopen_report_toggle'; import CloseReopenReportToggle from '~/close_reopen_report_toggle';
import IssuablesHelper from '~/helpers/issuables_helper'; import IssuablesHelper from '~/helpers/issuables_helper';
......
/* eslint-disable space-before-function-paren, no-var, one-var, one-var-declaration-per-line, new-parens, no-return-assign, new-cap, vars-on-top, max-len */ /* eslint-disable space-before-function-paren, no-var, one-var, one-var-declaration-per-line, new-parens, no-return-assign, new-cap, vars-on-top, max-len */
/* global Sidebar */
import '~/commons/bootstrap'; import '~/commons/bootstrap';
import '~/right_sidebar'; import Sidebar from '~/right_sidebar';
(function() { (function() {
var $aside, $icon, $labelsIcon, $page, $toggle, assertSidebarState; var $aside, $icon, $labelsIcon, $page, $toggle, assertSidebarState;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment