parent
d38eb9bb26
commit
23cdae8eee
|
@ -69,5 +69,3 @@ rules:
|
||||||
FunctionExpression:
|
FunctionExpression:
|
||||||
parameters: 1
|
parameters: 1
|
||||||
body: 1
|
body: 1
|
||||||
## Destructuring: https://eslint.org/docs/rules/prefer-destructuring
|
|
||||||
prefer-destructuring: off
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ export default class AjaxLoadingSpinner {
|
||||||
}
|
}
|
||||||
|
|
||||||
static toggleLoadingIcon(iconElement) {
|
static toggleLoadingIcon(iconElement) {
|
||||||
const classList = iconElement.classList;
|
const { classList } = iconElement;
|
||||||
classList.toggle(iconElement.dataset.icon);
|
classList.toggle(iconElement.dataset.icon);
|
||||||
classList.toggle('fa-spinner');
|
classList.toggle('fa-spinner');
|
||||||
classList.toggle('fa-spin');
|
classList.toggle('fa-spin');
|
||||||
|
|
|
@ -52,7 +52,7 @@ export default function initCopyToClipboard() {
|
||||||
* data types to the intended values.
|
* data types to the intended values.
|
||||||
*/
|
*/
|
||||||
$(document).on('copy', 'body > textarea[readonly]', (e) => {
|
$(document).on('copy', 'body > textarea[readonly]', (e) => {
|
||||||
const clipboardData = e.originalEvent.clipboardData;
|
const { clipboardData } = e.originalEvent;
|
||||||
if (!clipboardData) return;
|
if (!clipboardData) return;
|
||||||
|
|
||||||
const text = e.target.value;
|
const text = e.target.value;
|
||||||
|
|
|
@ -321,7 +321,7 @@ export class CopyAsGFM {
|
||||||
}
|
}
|
||||||
|
|
||||||
static copyAsGFM(e, transformer) {
|
static copyAsGFM(e, transformer) {
|
||||||
const clipboardData = e.originalEvent.clipboardData;
|
const { clipboardData } = e.originalEvent;
|
||||||
if (!clipboardData) return;
|
if (!clipboardData) return;
|
||||||
|
|
||||||
const documentFragment = getSelectedFragment();
|
const documentFragment = getSelectedFragment();
|
||||||
|
@ -338,7 +338,7 @@ export class CopyAsGFM {
|
||||||
}
|
}
|
||||||
|
|
||||||
static pasteGFM(e) {
|
static pasteGFM(e) {
|
||||||
const clipboardData = e.originalEvent.clipboardData;
|
const { clipboardData } = e.originalEvent;
|
||||||
if (!clipboardData) return;
|
if (!clipboardData) return;
|
||||||
|
|
||||||
const text = clipboardData.getData('text/plain');
|
const text = clipboardData.getData('text/plain');
|
||||||
|
|
|
@ -84,7 +84,7 @@ class BalsamiqViewer {
|
||||||
renderTemplate(preview) {
|
renderTemplate(preview) {
|
||||||
const resource = this.getResource(preview.resourceID);
|
const resource = this.getResource(preview.resourceID);
|
||||||
const name = BalsamiqViewer.parseTitle(resource);
|
const name = BalsamiqViewer.parseTitle(resource);
|
||||||
const image = preview.image;
|
const { image } = preview;
|
||||||
|
|
||||||
const template = PREVIEW_TEMPLATE({
|
const template = PREVIEW_TEMPLATE({
|
||||||
name,
|
name,
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default function loadBalsamiqFile() {
|
||||||
|
|
||||||
if (!(viewer instanceof Element)) return;
|
if (!(viewer instanceof Element)) return;
|
||||||
|
|
||||||
const endpoint = viewer.dataset.endpoint;
|
const { endpoint } = viewer.dataset;
|
||||||
|
|
||||||
const balsamiqViewer = new BalsamiqViewer(viewer);
|
const balsamiqViewer = new BalsamiqViewer(viewer);
|
||||||
balsamiqViewer.loadFile(endpoint).catch(onError);
|
balsamiqViewer.loadFile(endpoint).catch(onError);
|
||||||
|
|
|
@ -5,7 +5,7 @@ export default () => {
|
||||||
|
|
||||||
[].slice.call(document.querySelectorAll('.js-material-changer')).forEach((el) => {
|
[].slice.call(document.querySelectorAll('.js-material-changer')).forEach((el) => {
|
||||||
el.addEventListener('click', (e) => {
|
el.addEventListener('click', (e) => {
|
||||||
const target = e.target;
|
const { target } = e;
|
||||||
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
removeIssue() {
|
removeIssue() {
|
||||||
const issue = this.issue;
|
const { issue } = this;
|
||||||
const lists = issue.getLists();
|
const lists = issue.getLists();
|
||||||
const listLabelIds = lists.map(list => list.label.id);
|
const listLabelIds = lists.map(list => list.label.id);
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ export default () => {
|
||||||
this.filterManager.updateTokens();
|
this.filterManager.updateTokens();
|
||||||
},
|
},
|
||||||
updateDetailIssue(newIssue) {
|
updateDetailIssue(newIssue) {
|
||||||
const sidebarInfoEndpoint = newIssue.sidebarInfoEndpoint;
|
const { sidebarInfoEndpoint } = newIssue;
|
||||||
if (sidebarInfoEndpoint && newIssue.subscribed === undefined) {
|
if (sidebarInfoEndpoint && newIssue.subscribed === undefined) {
|
||||||
newIssue.setFetchingState('subscriptions', true);
|
newIssue.setFetchingState('subscriptions', true);
|
||||||
BoardService.getIssueInfo(sidebarInfoEndpoint)
|
BoardService.getIssueInfo(sidebarInfoEndpoint)
|
||||||
|
@ -144,7 +144,7 @@ export default () => {
|
||||||
Store.detail.issue = {};
|
Store.detail.issue = {};
|
||||||
},
|
},
|
||||||
toggleSubscription(id) {
|
toggleSubscription(id) {
|
||||||
const issue = Store.detail.issue;
|
const { issue } = Store.detail;
|
||||||
if (issue.id === id && issue.toggleSubscriptionEndpoint) {
|
if (issue.id === id && issue.toggleSubscriptionEndpoint) {
|
||||||
issue.setFetchingState('subscriptions', true);
|
issue.setFetchingState('subscriptions', true);
|
||||||
BoardService.toggleIssueSubscription(issue.toggleSubscriptionEndpoint)
|
BoardService.toggleIssueSubscription(issue.toggleSubscriptionEndpoint)
|
||||||
|
|
|
@ -26,7 +26,7 @@ class ModalStore {
|
||||||
|
|
||||||
toggleIssue(issueObj) {
|
toggleIssue(issueObj) {
|
||||||
const issue = issueObj;
|
const issue = issueObj;
|
||||||
const selected = issue.selected;
|
const { selected } = issue;
|
||||||
|
|
||||||
issue.selected = !selected;
|
issue.selected = !selected;
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ export default class Clusters {
|
||||||
}
|
}
|
||||||
|
|
||||||
initApplications() {
|
initApplications() {
|
||||||
const store = this.store;
|
const { store } = this;
|
||||||
const el = document.querySelector('#js-cluster-applications');
|
const el = document.querySelector('#js-cluster-applications');
|
||||||
|
|
||||||
this.applications = new Vue({
|
this.applications = new Vue({
|
||||||
|
|
|
@ -122,7 +122,7 @@ export default class ImageFile {
|
||||||
return $('.swipe.view', this.file).each((function(_this) {
|
return $('.swipe.view', this.file).each((function(_this) {
|
||||||
return function(index, view) {
|
return function(index, view) {
|
||||||
var $swipeWrap, $swipeBar, $swipeFrame, wrapPadding, ref;
|
var $swipeWrap, $swipeBar, $swipeFrame, wrapPadding, ref;
|
||||||
ref = _this.prepareFrames(view), maxWidth = ref[0], maxHeight = ref[1];
|
ref = _this.prepareFrames(view), [maxWidth, maxHeight] = ref;
|
||||||
$swipeFrame = $('.swipe-frame', view);
|
$swipeFrame = $('.swipe-frame', view);
|
||||||
$swipeWrap = $('.swipe-wrap', view);
|
$swipeWrap = $('.swipe-wrap', view);
|
||||||
$swipeBar = $('.swipe-bar', view);
|
$swipeBar = $('.swipe-bar', view);
|
||||||
|
@ -159,7 +159,7 @@ export default class ImageFile {
|
||||||
return $('.onion-skin.view', this.file).each((function(_this) {
|
return $('.onion-skin.view', this.file).each((function(_this) {
|
||||||
return function(index, view) {
|
return function(index, view) {
|
||||||
var $frame, $track, $dragger, $frameAdded, framePadding, ref, dragging = false;
|
var $frame, $track, $dragger, $frameAdded, framePadding, ref, dragging = false;
|
||||||
ref = _this.prepareFrames(view), maxWidth = ref[0], maxHeight = ref[1];
|
ref = _this.prepareFrames(view), [maxWidth, maxHeight] = ref;
|
||||||
$frame = $('.onion-skin-frame', view);
|
$frame = $('.onion-skin-frame', view);
|
||||||
$frameAdded = $('.frame.added', view);
|
$frameAdded = $('.frame.added', view);
|
||||||
$track = $('.drag-track', view);
|
$track = $('.drag-track', view);
|
||||||
|
|
|
@ -281,7 +281,7 @@ export default class CreateMergeRequestDropdown {
|
||||||
|
|
||||||
if (event.target === this.branchInput) {
|
if (event.target === this.branchInput) {
|
||||||
target = 'branch';
|
target = 'branch';
|
||||||
value = this.branchInput.value;
|
({ value } = this.branchInput);
|
||||||
} else if (event.target === this.refInput) {
|
} else if (event.target === this.refInput) {
|
||||||
target = 'ref';
|
target = 'ref';
|
||||||
value =
|
value =
|
||||||
|
|
|
@ -111,7 +111,7 @@ const DiffNoteAvatars = Vue.extend({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
addNoCommentClass() {
|
addNoCommentClass() {
|
||||||
const notesCount = this.notesCount;
|
const { notesCount } = this;
|
||||||
|
|
||||||
$(this.$el).closest('.js-avatar-container')
|
$(this.$el).closest('.js-avatar-container')
|
||||||
.toggleClass('no-comment-btn', notesCount > 0)
|
.toggleClass('no-comment-btn', notesCount > 0)
|
||||||
|
|
|
@ -73,7 +73,7 @@ const JumpToDiscussion = Vue.extend({
|
||||||
}).toArray();
|
}).toArray();
|
||||||
};
|
};
|
||||||
|
|
||||||
const discussions = this.discussions;
|
const { discussions } = this;
|
||||||
|
|
||||||
if (activeTab === 'diffs') {
|
if (activeTab === 'diffs') {
|
||||||
discussionsSelector = '.diffs .notes[data-discussion-id]';
|
discussionsSelector = '.diffs .notes[data-discussion-id]';
|
||||||
|
|
|
@ -18,7 +18,7 @@ import './components/new_issue_for_discussion';
|
||||||
export default () => {
|
export default () => {
|
||||||
const projectPathHolder =
|
const projectPathHolder =
|
||||||
document.querySelector('.merge-request') || document.querySelector('.commit-box');
|
document.querySelector('.merge-request') || document.querySelector('.commit-box');
|
||||||
const projectPath = projectPathHolder.dataset.projectPath;
|
const { projectPath } = projectPathHolder.dataset;
|
||||||
const COMPONENT_SELECTOR =
|
const COMPONENT_SELECTOR =
|
||||||
'resolve-btn, resolve-discussion-btn, jump-to-discussion, comment-and-resolve-btn, new-issue-for-discussion-btn';
|
'resolve-btn, resolve-discussion-btn, jump-to-discussion, comment-and-resolve-btn, new-issue-for-discussion-btn';
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions(['toggleDiscussion']),
|
...mapActions(['toggleDiscussion']),
|
||||||
getTooltipText(noteData) {
|
getTooltipText(noteData) {
|
||||||
let note = noteData.note;
|
let { note } = noteData;
|
||||||
|
|
||||||
if (note.length > LENGTH_OF_AVATAR_TOOLTIP) {
|
if (note.length > LENGTH_OF_AVATAR_TOOLTIP) {
|
||||||
note = truncate(note, LENGTH_OF_AVATAR_TOOLTIP);
|
note = truncate(note, LENGTH_OF_AVATAR_TOOLTIP);
|
||||||
|
|
|
@ -124,7 +124,7 @@ export default {
|
||||||
const newLineNumber = this.metaData.newPos || 0;
|
const newLineNumber = this.metaData.newPos || 0;
|
||||||
const offset = newLineNumber - oldLineNumber;
|
const offset = newLineNumber - oldLineNumber;
|
||||||
const bottom = this.isBottom;
|
const bottom = this.isBottom;
|
||||||
const fileHash = this.fileHash;
|
const { fileHash } = this;
|
||||||
const view = this.diffViewType;
|
const view = this.diffViewType;
|
||||||
let unfold = true;
|
let unfold = true;
|
||||||
let lineNumber = newLineNumber - 1;
|
let lineNumber = newLineNumber - 1;
|
||||||
|
|
|
@ -89,7 +89,7 @@ export default {
|
||||||
return isLeftExpanded || isRightExpanded;
|
return isLeftExpanded || isRightExpanded;
|
||||||
},
|
},
|
||||||
getLineCode(line, side) {
|
getLineCode(line, side) {
|
||||||
const lineCode = side.lineCode;
|
const { lineCode } = side;
|
||||||
if (lineCode) {
|
if (lineCode) {
|
||||||
return lineCode;
|
return lineCode;
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,7 +292,7 @@
|
||||||
if (this.model &&
|
if (this.model &&
|
||||||
this.model.last_deployment &&
|
this.model.last_deployment &&
|
||||||
this.model.last_deployment.deployable) {
|
this.model.last_deployment.deployable) {
|
||||||
const deployable = this.model.last_deployment.deployable;
|
const { deployable } = this.model.last_deployment;
|
||||||
return `${deployable.name} #${deployable.id}`;
|
return `${deployable.name} #${deployable.id}`;
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
|
|
|
@ -146,7 +146,7 @@ export default class EnvironmentsStore {
|
||||||
* @return {Array}
|
* @return {Array}
|
||||||
*/
|
*/
|
||||||
updateEnvironmentProp(environment, prop, newValue) {
|
updateEnvironmentProp(environment, prop, newValue) {
|
||||||
const environments = this.state.environments;
|
const { environments } = this.state;
|
||||||
|
|
||||||
const updatedEnvironments = environments.map((env) => {
|
const updatedEnvironments = environments.map((env) => {
|
||||||
const updateEnv = Object.assign({}, env);
|
const updateEnv = Object.assign({}, env);
|
||||||
|
@ -161,7 +161,7 @@ export default class EnvironmentsStore {
|
||||||
}
|
}
|
||||||
|
|
||||||
getOpenFolders() {
|
getOpenFolders() {
|
||||||
const environments = this.state.environments;
|
const { environments } = this.state;
|
||||||
|
|
||||||
return environments.filter(env => env.isFolder && env.isOpen);
|
return environments.filter(env => env.isFolder && env.isOpen);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ export default class DropdownUtils {
|
||||||
|
|
||||||
// Remove the symbol for filter
|
// Remove the symbol for filter
|
||||||
if (value[0] === filterSymbol) {
|
if (value[0] === filterSymbol) {
|
||||||
symbol = value[0];
|
[symbol] = value;
|
||||||
value = value.slice(1);
|
value = value.slice(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ export default class DropdownUtils {
|
||||||
|
|
||||||
// Determines the full search query (visual tokens + input)
|
// Determines the full search query (visual tokens + input)
|
||||||
static getSearchQuery(untilInput = false) {
|
static getSearchQuery(untilInput = false) {
|
||||||
const container = FilteredSearchContainer.container;
|
const { container } = FilteredSearchContainer;
|
||||||
const tokens = [].slice.call(container.querySelectorAll('.tokens-container li'));
|
const tokens = [].slice.call(container.querySelectorAll('.tokens-container li'));
|
||||||
const values = [];
|
const values = [];
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ export default class DropdownUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
static getInputSelectionPosition(input) {
|
static getInputSelectionPosition(input) {
|
||||||
const selectionStart = input.selectionStart;
|
const { selectionStart } = input;
|
||||||
let inputValue = input.value;
|
let inputValue = input.value;
|
||||||
// Replace all spaces inside quote marks with underscores
|
// Replace all spaces inside quote marks with underscores
|
||||||
// (will continue to match entire string until an end quote is found if any)
|
// (will continue to match entire string until an end quote is found if any)
|
||||||
|
|
|
@ -159,7 +159,7 @@ export default class FilteredSearchDropdownManager {
|
||||||
load(key, firstLoad = false) {
|
load(key, firstLoad = false) {
|
||||||
const mappingKey = this.mapping[key];
|
const mappingKey = this.mapping[key];
|
||||||
const glClass = mappingKey.gl;
|
const glClass = mappingKey.gl;
|
||||||
const element = mappingKey.element;
|
const { element } = mappingKey;
|
||||||
let forceShowList = false;
|
let forceShowList = false;
|
||||||
|
|
||||||
if (!mappingKey.reference) {
|
if (!mappingKey.reference) {
|
||||||
|
|
|
@ -235,7 +235,7 @@ export default class FilteredSearchManager {
|
||||||
|
|
||||||
checkForEnter(e) {
|
checkForEnter(e) {
|
||||||
if (e.keyCode === 38 || e.keyCode === 40) {
|
if (e.keyCode === 38 || e.keyCode === 40) {
|
||||||
const selectionStart = this.filteredSearchInput.selectionStart;
|
const { selectionStart } = this.filteredSearchInput;
|
||||||
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.filteredSearchInput.setSelectionRange(selectionStart, selectionStart);
|
this.filteredSearchInput.setSelectionRange(selectionStart, selectionStart);
|
||||||
|
@ -496,7 +496,7 @@ export default class FilteredSearchManager {
|
||||||
// Replace underscore with hyphen in the sanitizedkey.
|
// Replace underscore with hyphen in the sanitizedkey.
|
||||||
// e.g. 'my_reaction' => 'my-reaction'
|
// e.g. 'my_reaction' => 'my-reaction'
|
||||||
sanitizedKey = sanitizedKey.replace('_', '-');
|
sanitizedKey = sanitizedKey.replace('_', '-');
|
||||||
const symbol = match.symbol;
|
const { symbol } = match;
|
||||||
let quotationsToUse = '';
|
let quotationsToUse = '';
|
||||||
|
|
||||||
if (sanitizedValue.indexOf(' ') !== -1) {
|
if (sanitizedValue.indexOf(' ') !== -1) {
|
||||||
|
|
|
@ -101,7 +101,7 @@ export default class FilteredSearchVisualTokens {
|
||||||
|
|
||||||
static updateLabelTokenColor(tokenValueContainer, tokenValue) {
|
static updateLabelTokenColor(tokenValueContainer, tokenValue) {
|
||||||
const filteredSearchInput = FilteredSearchContainer.container.querySelector('.filtered-search');
|
const filteredSearchInput = FilteredSearchContainer.container.querySelector('.filtered-search');
|
||||||
const baseEndpoint = filteredSearchInput.dataset.baseEndpoint;
|
const { baseEndpoint } = filteredSearchInput.dataset;
|
||||||
const labelsEndpoint = FilteredSearchVisualTokens.getEndpointWithQueryParams(
|
const labelsEndpoint = FilteredSearchVisualTokens.getEndpointWithQueryParams(
|
||||||
`${baseEndpoint}/labels.json`,
|
`${baseEndpoint}/labels.json`,
|
||||||
filteredSearchInput.dataset.endpointQueryParams,
|
filteredSearchInput.dataset.endpointQueryParams,
|
||||||
|
@ -215,7 +215,7 @@ export default class FilteredSearchVisualTokens {
|
||||||
static addFilterVisualToken(tokenName, tokenValue, canEdit) {
|
static addFilterVisualToken(tokenName, tokenValue, canEdit) {
|
||||||
const { lastVisualToken, isLastVisualTokenValid }
|
const { lastVisualToken, isLastVisualTokenValid }
|
||||||
= FilteredSearchVisualTokens.getLastVisualTokenBeforeInput();
|
= FilteredSearchVisualTokens.getLastVisualTokenBeforeInput();
|
||||||
const addVisualTokenElement = FilteredSearchVisualTokens.addVisualTokenElement;
|
const { addVisualTokenElement } = FilteredSearchVisualTokens;
|
||||||
|
|
||||||
if (isLastVisualTokenValid) {
|
if (isLastVisualTokenValid) {
|
||||||
addVisualTokenElement(tokenName, tokenValue, false, canEdit);
|
addVisualTokenElement(tokenName, tokenValue, false, canEdit);
|
||||||
|
|
|
@ -29,7 +29,7 @@ class RecentSearchesRoot {
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const state = this.store.state;
|
const { state } = this.store;
|
||||||
this.vm = new Vue({
|
this.vm = new Vue({
|
||||||
el: this.wrapperElement,
|
el: this.wrapperElement,
|
||||||
components: {
|
components: {
|
||||||
|
|
|
@ -80,7 +80,7 @@ class GfmAutoComplete {
|
||||||
let tpl = '/${name} ';
|
let tpl = '/${name} ';
|
||||||
let referencePrefix = null;
|
let referencePrefix = null;
|
||||||
if (value.params.length > 0) {
|
if (value.params.length > 0) {
|
||||||
referencePrefix = value.params[0][0];
|
[[referencePrefix]] = value.params;
|
||||||
if (/^[@%~]/.test(referencePrefix)) {
|
if (/^[@%~]/.test(referencePrefix)) {
|
||||||
tpl += '<%- referencePrefix %>';
|
tpl += '<%- referencePrefix %>';
|
||||||
}
|
}
|
||||||
|
@ -458,7 +458,7 @@ class GfmAutoComplete {
|
||||||
static isLoading(data) {
|
static isLoading(data) {
|
||||||
let dataToInspect = data;
|
let dataToInspect = data;
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
dataToInspect = data[0];
|
[dataToInspect] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
const loadingState = GfmAutoComplete.defaultLoadingData[0];
|
const loadingState = GfmAutoComplete.defaultLoadingData[0];
|
||||||
|
|
|
@ -613,7 +613,7 @@ GitLabDropdown = (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
GitLabDropdown.prototype.renderItem = function(data, group, index) {
|
GitLabDropdown.prototype.renderItem = function(data, group, index) {
|
||||||
var field, fieldName, html, selected, text, url, value, rowHidden;
|
var field, html, selected, text, url, value, rowHidden;
|
||||||
|
|
||||||
if (!this.options.renderRow) {
|
if (!this.options.renderRow) {
|
||||||
value = this.options.id ? this.options.id(data) : data.id;
|
value = this.options.id ? this.options.id(data) : data.id;
|
||||||
|
@ -651,7 +651,7 @@ GitLabDropdown = (function() {
|
||||||
html = this.options.renderRow.call(this.options, data, this);
|
html = this.options.renderRow.call(this.options, data, this);
|
||||||
} else {
|
} else {
|
||||||
if (!selected) {
|
if (!selected) {
|
||||||
fieldName = this.options.fieldName;
|
const { fieldName } = this.options;
|
||||||
|
|
||||||
if (value) {
|
if (value) {
|
||||||
field = this.dropdown.parent().find(`input[name='${fieldName}'][value='${value}']`);
|
field = this.dropdown.parent().find(`input[name='${fieldName}'][value='${value}']`);
|
||||||
|
@ -705,7 +705,8 @@ GitLabDropdown = (function() {
|
||||||
|
|
||||||
GitLabDropdown.prototype.highlightTextMatches = function(text, term) {
|
GitLabDropdown.prototype.highlightTextMatches = function(text, term) {
|
||||||
const occurrences = fuzzaldrinPlus.match(text, term);
|
const occurrences = fuzzaldrinPlus.match(text, term);
|
||||||
const indexOf = [].indexOf;
|
const { indexOf } = [];
|
||||||
|
|
||||||
return text.split('').map(function(character, i) {
|
return text.split('').map(function(character, i) {
|
||||||
if (indexOf.call(occurrences, i) !== -1) {
|
if (indexOf.call(occurrences, i) !== -1) {
|
||||||
return "<b>" + character + "</b>";
|
return "<b>" + character + "</b>";
|
||||||
|
@ -721,9 +722,9 @@ GitLabDropdown = (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
GitLabDropdown.prototype.rowClicked = function(el) {
|
GitLabDropdown.prototype.rowClicked = function(el) {
|
||||||
var field, fieldName, groupName, isInput, selectedIndex, selectedObject, value, isMarking;
|
var field, groupName, isInput, selectedIndex, selectedObject, value, isMarking;
|
||||||
|
|
||||||
fieldName = this.options.fieldName;
|
const { fieldName } = this.options;
|
||||||
isInput = $(this.el).is('input');
|
isInput = $(this.el).is('input');
|
||||||
if (this.renderedData) {
|
if (this.renderedData) {
|
||||||
groupName = el.data('group');
|
groupName = el.data('group');
|
||||||
|
|
|
@ -29,7 +29,7 @@ export default () => {
|
||||||
groupsApp,
|
groupsApp,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
const dataset = this.$options.el.dataset;
|
const { dataset } = this.$options.el;
|
||||||
const hideProjects = dataset.hideProjects === 'true';
|
const hideProjects = dataset.hideProjects === 'true';
|
||||||
const store = new GroupsStore(hideProjects);
|
const store = new GroupsStore(hideProjects);
|
||||||
const service = new GroupsService(dataset.endpoint);
|
const service = new GroupsService(dataset.endpoint);
|
||||||
|
@ -42,7 +42,7 @@ export default () => {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
const dataset = this.$options.el.dataset;
|
const { dataset } = this.$options.el;
|
||||||
let groupFilterList = null;
|
let groupFilterList = null;
|
||||||
const form = document.querySelector(dataset.formSel);
|
const form = document.querySelector(dataset.formSel);
|
||||||
const filter = document.querySelector(dataset.filterSel);
|
const filter = document.querySelector(dataset.filterSel);
|
||||||
|
|
|
@ -30,7 +30,7 @@ export default {
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
pathWithEllipsis() {
|
pathWithEllipsis() {
|
||||||
const path = this.file.path;
|
const { path } = this.file;
|
||||||
|
|
||||||
return path.length < MAX_PATH_LENGTH
|
return path.length < MAX_PATH_LENGTH
|
||||||
? path
|
? path
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
let { result } = target;
|
let { result } = target;
|
||||||
|
|
||||||
if (!isText) {
|
if (!isText) {
|
||||||
|
// eslint-disable-next-line prefer-destructuring
|
||||||
result = result.split('base64,')[1];
|
result = result.split('base64,')[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { computeDiff } from './diff';
|
||||||
|
|
||||||
// eslint-disable-next-line no-restricted-globals
|
// eslint-disable-next-line no-restricted-globals
|
||||||
self.addEventListener('message', (e) => {
|
self.addEventListener('message', (e) => {
|
||||||
const data = e.data;
|
const { data } = e;
|
||||||
|
|
||||||
// eslint-disable-next-line no-restricted-globals
|
// eslint-disable-next-line no-restricted-globals
|
||||||
self.postMessage({
|
self.postMessage({
|
||||||
|
|
|
@ -8,7 +8,7 @@ import { setPageTitle } from '../utils';
|
||||||
import { viewerTypes } from '../../constants';
|
import { viewerTypes } from '../../constants';
|
||||||
|
|
||||||
export const closeFile = ({ commit, state, dispatch }, file) => {
|
export const closeFile = ({ commit, state, dispatch }, file) => {
|
||||||
const path = file.path;
|
const { path } = file;
|
||||||
const indexOfClosedFile = state.openFiles.findIndex(f => f.key === file.key);
|
const indexOfClosedFile = state.openFiles.findIndex(f => f.key === file.key);
|
||||||
const fileWasActive = file.active;
|
const fileWasActive = file.active;
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,8 @@ export function setPositionDataAttribute(el, options) {
|
||||||
// Update position data attribute so that the
|
// Update position data attribute so that the
|
||||||
// new comment form can use this data for ajax request
|
// new comment form can use this data for ajax request
|
||||||
const { x, y, width, height } = options;
|
const { x, y, width, height } = options;
|
||||||
const position = el.dataset.position;
|
const { position } = el.dataset;
|
||||||
|
|
||||||
const positionObject = Object.assign({}, JSON.parse(position), {
|
const positionObject = Object.assign({}, JSON.parse(position), {
|
||||||
x,
|
x,
|
||||||
y,
|
y,
|
||||||
|
|
|
@ -40,8 +40,7 @@ export function getTargetSelection(event) {
|
||||||
const x = event.offsetX;
|
const x = event.offsetX;
|
||||||
const y = event.offsetY;
|
const y = event.offsetY;
|
||||||
|
|
||||||
const width = imageEl.width;
|
const { width, height } = imageEl;
|
||||||
const height = imageEl.height;
|
|
||||||
|
|
||||||
const actualWidth = imageEl.naturalWidth;
|
const actualWidth = imageEl.naturalWidth;
|
||||||
const actualHeight = imageEl.naturalHeight;
|
const actualHeight = imageEl.naturalHeight;
|
||||||
|
|
|
@ -10,7 +10,7 @@ class AutoWidthDropdownSelect {
|
||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
const dropdownClass = this.dropdownClass;
|
const { dropdownClass } = this;
|
||||||
this.$selectElement.select2({
|
this.$selectElement.select2({
|
||||||
dropdownCssClass: dropdownClass,
|
dropdownCssClass: dropdownClass,
|
||||||
...AutoWidthDropdownSelect.selectOptions(this.dropdownClass),
|
...AutoWidthDropdownSelect.selectOptions(this.dropdownClass),
|
||||||
|
|
|
@ -4,7 +4,7 @@ import jobHeader from './components/header.vue';
|
||||||
import detailsBlock from './components/sidebar_details_block.vue';
|
import detailsBlock from './components/sidebar_details_block.vue';
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
const dataset = document.getElementById('js-job-details-vue').dataset;
|
const { dataset } = document.getElementById('js-job-details-vue');
|
||||||
const mediator = new JobMediator({ endpoint: dataset.endpoint });
|
const mediator = new JobMediator({ endpoint: dataset.endpoint });
|
||||||
|
|
||||||
mediator.fetchJob();
|
mediator.fetchJob();
|
||||||
|
|
|
@ -56,7 +56,7 @@ export default class LabelsSelect {
|
||||||
.map(function () {
|
.map(function () {
|
||||||
return this.value;
|
return this.value;
|
||||||
}).get();
|
}).get();
|
||||||
const handleClick = options.handleClick;
|
const { handleClick } = options;
|
||||||
|
|
||||||
$sidebarLabelTooltip.tooltip();
|
$sidebarLabelTooltip.tooltip();
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ export default class LabelsSelect {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (label.color != null) {
|
if (label.color != null) {
|
||||||
color = label.color[0];
|
[color] = label.color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (color) {
|
if (color) {
|
||||||
|
@ -243,7 +243,8 @@ export default class LabelsSelect {
|
||||||
var $dropdownParent = $dropdown.parent();
|
var $dropdownParent = $dropdown.parent();
|
||||||
var $dropdownInputField = $dropdownParent.find('.dropdown-input-field');
|
var $dropdownInputField = $dropdownParent.find('.dropdown-input-field');
|
||||||
var isSelected = el !== null ? el.hasClass('is-active') : false;
|
var isSelected = el !== null ? el.hasClass('is-active') : false;
|
||||||
var title = selected.title;
|
|
||||||
|
var { title } = selected;
|
||||||
var selectedLabels = this.selected;
|
var selectedLabels = this.selected;
|
||||||
|
|
||||||
if ($dropdownInputField.length && $dropdownInputField.val().length) {
|
if ($dropdownInputField.length && $dropdownInputField.val().length) {
|
||||||
|
@ -382,7 +383,7 @@ export default class LabelsSelect {
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var labels = gl.issueBoards.BoardsStore.detail.issue.labels;
|
var { labels } = gl.issueBoards.BoardsStore.detail.issue;
|
||||||
labels = labels.filter(function (selectedLabel) {
|
labels = labels.filter(function (selectedLabel) {
|
||||||
return selectedLabel.id !== label.id;
|
return selectedLabel.id !== label.id;
|
||||||
});
|
});
|
||||||
|
|
|
@ -164,7 +164,7 @@ export const scrollToElement = element => {
|
||||||
if (!(element instanceof $)) {
|
if (!(element instanceof $)) {
|
||||||
$el = $(element);
|
$el = $(element);
|
||||||
}
|
}
|
||||||
const top = $el.offset().top;
|
const { top } = $el.offset();
|
||||||
|
|
||||||
return $('body, html').animate(
|
return $('body, html').animate(
|
||||||
{
|
{
|
||||||
|
@ -203,9 +203,7 @@ export const getSelectedFragment = () => {
|
||||||
|
|
||||||
export const insertText = (target, text) => {
|
export const insertText = (target, text) => {
|
||||||
// Firefox doesn't support `document.execCommand('insertText', false, text)` on textareas
|
// Firefox doesn't support `document.execCommand('insertText', false, text)` on textareas
|
||||||
const selectionStart = target.selectionStart;
|
const { selectionStart, selectionEnd, value } = target;
|
||||||
const selectionEnd = target.selectionEnd;
|
|
||||||
const value = target.value;
|
|
||||||
|
|
||||||
const textBefore = value.substring(0, selectionStart);
|
const textBefore = value.substring(0, selectionStart);
|
||||||
const textAfter = value.substring(selectionEnd, value.length);
|
const textAfter = value.substring(selectionEnd, value.length);
|
||||||
|
@ -245,7 +243,8 @@ export const nodeMatchesSelector = (node, selector) => {
|
||||||
|
|
||||||
// IE11 doesn't support `node.matches(selector)`
|
// IE11 doesn't support `node.matches(selector)`
|
||||||
|
|
||||||
let parentNode = node.parentNode;
|
let { parentNode } = node;
|
||||||
|
|
||||||
if (!parentNode) {
|
if (!parentNode) {
|
||||||
parentNode = document.createElement('div');
|
parentNode = document.createElement('div');
|
||||||
// eslint-disable-next-line no-param-reassign
|
// eslint-disable-next-line no-param-reassign
|
||||||
|
@ -281,6 +280,8 @@ export const normalizeCRLFHeaders = headers => {
|
||||||
|
|
||||||
headersArray.forEach(header => {
|
headersArray.forEach(header => {
|
||||||
const keyValue = header.split(': ');
|
const keyValue = header.split(': ');
|
||||||
|
|
||||||
|
// eslint-disable-next-line prefer-destructuring
|
||||||
headersObject[keyValue[0]] = keyValue[1];
|
headersObject[keyValue[0]] = keyValue[1];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ export function formatRelevantDigits(number) {
|
||||||
let relevantDigits = 0;
|
let relevantDigits = 0;
|
||||||
let formattedNumber = '';
|
let formattedNumber = '';
|
||||||
if (!Number.isNaN(Number(number))) {
|
if (!Number.isNaN(Number(number))) {
|
||||||
digitsLeft = number.toString().split('.')[0];
|
[digitsLeft] = number.toString().split('.');
|
||||||
switch (digitsLeft.length) {
|
switch (digitsLeft.length) {
|
||||||
case 1:
|
case 1:
|
||||||
relevantDigits = 3;
|
relevantDigits = 3;
|
||||||
|
|
|
@ -156,7 +156,7 @@ import Cookies from 'js-cookie';
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const files = this.state.conflictsData.files;
|
const { files } = this.state.conflictsData;
|
||||||
let count = 0;
|
let count = 0;
|
||||||
|
|
||||||
files.forEach((file) => {
|
files.forEach((file) => {
|
||||||
|
@ -313,7 +313,7 @@ import Cookies from 'js-cookie';
|
||||||
},
|
},
|
||||||
|
|
||||||
isReadyToCommit() {
|
isReadyToCommit() {
|
||||||
const files = this.state.conflictsData.files;
|
const { files } = this.state.conflictsData;
|
||||||
const hasCommitMessage = $.trim(this.state.conflictsData.commitMessage).length;
|
const hasCommitMessage = $.trim(this.state.conflictsData.commitMessage).length;
|
||||||
let unresolved = 0;
|
let unresolved = 0;
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ import syntaxHighlight from '../syntax_highlight';
|
||||||
export default function initMergeConflicts() {
|
export default function initMergeConflicts() {
|
||||||
const INTERACTIVE_RESOLVE_MODE = 'interactive';
|
const INTERACTIVE_RESOLVE_MODE = 'interactive';
|
||||||
const conflictsEl = document.querySelector('#conflicts');
|
const conflictsEl = document.querySelector('#conflicts');
|
||||||
const mergeConflictsStore = gl.mergeConflicts.mergeConflictsStore;
|
const { mergeConflictsStore } = gl.mergeConflicts;
|
||||||
const mergeConflictsService = new MergeConflictsService({
|
const mergeConflictsService = new MergeConflictsService({
|
||||||
conflictsPath: conflictsEl.dataset.conflictsPath,
|
conflictsPath: conflictsEl.dataset.conflictsPath,
|
||||||
resolveConflictsPath: conflictsEl.dataset.resolveConflictsPath,
|
resolveConflictsPath: conflictsEl.dataset.resolveConflictsPath,
|
||||||
|
|
|
@ -64,7 +64,7 @@ import Notes from './notes';
|
||||||
/* eslint-enable max-len */
|
/* eslint-enable max-len */
|
||||||
|
|
||||||
// Store the `location` object, allowing for easier stubbing in tests
|
// Store the `location` object, allowing for easier stubbing in tests
|
||||||
let location = window.location;
|
let { location } = window;
|
||||||
|
|
||||||
export default class MergeRequestTabs {
|
export default class MergeRequestTabs {
|
||||||
constructor({ action, setUrl, stubLocation } = {}) {
|
constructor({ action, setUrl, stubLocation } = {}) {
|
||||||
|
@ -279,7 +279,7 @@ export default class MergeRequestTabs {
|
||||||
|
|
||||||
mountPipelinesView() {
|
mountPipelinesView() {
|
||||||
const pipelineTableViewEl = document.querySelector('#commit-pipeline-table-view');
|
const pipelineTableViewEl = document.querySelector('#commit-pipeline-table-view');
|
||||||
const CommitPipelinesTable = gl.CommitPipelinesTable;
|
const { CommitPipelinesTable } = gl;
|
||||||
this.commitPipelinesTable = new CommitPipelinesTable({
|
this.commitPipelinesTable = new CommitPipelinesTable({
|
||||||
propsData: {
|
propsData: {
|
||||||
endpoint: pipelineTableViewEl.dataset.endpoint,
|
endpoint: pipelineTableViewEl.dataset.endpoint,
|
||||||
|
|
|
@ -41,10 +41,10 @@ function queryTimeSeries(query, graphWidth, graphHeight, graphHeightOffset, xDom
|
||||||
} else {
|
} else {
|
||||||
const unusedColors = _.difference(defaultColorOrder, usedColors);
|
const unusedColors = _.difference(defaultColorOrder, usedColors);
|
||||||
if (unusedColors.length > 0) {
|
if (unusedColors.length > 0) {
|
||||||
pick = unusedColors[0];
|
[pick] = unusedColors;
|
||||||
} else {
|
} else {
|
||||||
usedColors = [];
|
usedColors = [];
|
||||||
pick = defaultColorOrder[0];
|
[pick] = defaultColorOrder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
usedColors.push(pick);
|
usedColors.push(pick);
|
||||||
|
|
|
@ -101,8 +101,8 @@ export default (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
BranchGraph.prototype.buildGraph = function() {
|
BranchGraph.prototype.buildGraph = function() {
|
||||||
var cuday, cumonth, day, j, len, mm, r, ref;
|
var cuday, cumonth, day, j, len, mm, ref;
|
||||||
r = this.r;
|
const { r } = this;
|
||||||
cuday = 0;
|
cuday = 0;
|
||||||
cumonth = "";
|
cumonth = "";
|
||||||
r.rect(0, 0, 40, this.barHeight).attr({
|
r.rect(0, 0, 40, this.barHeight).attr({
|
||||||
|
@ -121,7 +121,7 @@ export default (function() {
|
||||||
font: "12px Monaco, monospace",
|
font: "12px Monaco, monospace",
|
||||||
fill: "#BBB"
|
fill: "#BBB"
|
||||||
});
|
});
|
||||||
cuday = day[0];
|
[cuday] = day;
|
||||||
}
|
}
|
||||||
if (cumonth !== day[1]) {
|
if (cumonth !== day[1]) {
|
||||||
// Months
|
// Months
|
||||||
|
@ -129,6 +129,8 @@ export default (function() {
|
||||||
font: "12px Monaco, monospace",
|
font: "12px Monaco, monospace",
|
||||||
fill: "#EEE"
|
fill: "#EEE"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// eslint-disable-next-line prefer-destructuring
|
||||||
cumonth = day[1];
|
cumonth = day[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -169,8 +171,8 @@ export default (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
BranchGraph.prototype.bindEvents = function() {
|
BranchGraph.prototype.bindEvents = function() {
|
||||||
var element;
|
const { element } = this;
|
||||||
element = this.element;
|
|
||||||
return $(element).scroll((function(_this) {
|
return $(element).scroll((function(_this) {
|
||||||
return function(event) {
|
return function(event) {
|
||||||
return _this.renderPartialGraph();
|
return _this.renderPartialGraph();
|
||||||
|
@ -207,11 +209,13 @@ export default (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
BranchGraph.prototype.appendLabel = function(x, y, commit) {
|
BranchGraph.prototype.appendLabel = function(x, y, commit) {
|
||||||
var label, r, rect, shortrefs, text, textbox, triangle;
|
var label, rect, shortrefs, text, textbox, triangle;
|
||||||
|
|
||||||
if (!commit.refs) {
|
if (!commit.refs) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
r = this.r;
|
|
||||||
|
const { r } = this;
|
||||||
shortrefs = commit.refs;
|
shortrefs = commit.refs;
|
||||||
// Truncate if longer than 15 chars
|
// Truncate if longer than 15 chars
|
||||||
if (shortrefs.length > 17) {
|
if (shortrefs.length > 17) {
|
||||||
|
@ -242,11 +246,8 @@ export default (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
BranchGraph.prototype.appendAnchor = function(x, y, commit) {
|
BranchGraph.prototype.appendAnchor = function(x, y, commit) {
|
||||||
var anchor, options, r, top;
|
const { r, top, options } = this;
|
||||||
r = this.r;
|
const anchor = r.circle(x, y, 10).attr({
|
||||||
top = this.top;
|
|
||||||
options = this.options;
|
|
||||||
anchor = r.circle(x, y, 10).attr({
|
|
||||||
fill: "#000",
|
fill: "#000",
|
||||||
opacity: 0,
|
opacity: 0,
|
||||||
cursor: "pointer"
|
cursor: "pointer"
|
||||||
|
@ -262,14 +263,15 @@ export default (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
BranchGraph.prototype.drawDot = function(x, y, commit) {
|
BranchGraph.prototype.drawDot = function(x, y, commit) {
|
||||||
var avatar_box_x, avatar_box_y, r;
|
const { r } = this;
|
||||||
r = this.r;
|
|
||||||
r.circle(x, y, 3).attr({
|
r.circle(x, y, 3).attr({
|
||||||
fill: this.colors[commit.space],
|
fill: this.colors[commit.space],
|
||||||
stroke: "none"
|
stroke: "none"
|
||||||
});
|
});
|
||||||
avatar_box_x = this.offsetX + this.unitSpace * this.mspace + 10;
|
|
||||||
avatar_box_y = y - 10;
|
const avatar_box_x = this.offsetX + this.unitSpace * this.mspace + 10;
|
||||||
|
const avatar_box_y = y - 10;
|
||||||
|
|
||||||
r.rect(avatar_box_x, avatar_box_y, 20, 20).attr({
|
r.rect(avatar_box_x, avatar_box_y, 20, 20).attr({
|
||||||
stroke: this.colors[commit.space],
|
stroke: this.colors[commit.space],
|
||||||
"stroke-width": 2
|
"stroke-width": 2
|
||||||
|
@ -282,10 +284,10 @@ export default (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
BranchGraph.prototype.drawLines = function(x, y, commit) {
|
BranchGraph.prototype.drawLines = function(x, y, commit) {
|
||||||
var arrow, color, i, j, len, offset, parent, parentCommit, parentX1, parentX2, parentY, r, ref, results, route;
|
var arrow, color, i, len, offset, parent, parentCommit, parentX1, parentX2, parentY, route;
|
||||||
r = this.r;
|
const { r } = this;
|
||||||
ref = commit.parents;
|
const ref = commit.parents;
|
||||||
results = [];
|
const results = [];
|
||||||
|
|
||||||
for (i = 0, len = ref.length; i < len; i += 1) {
|
for (i = 0, len = ref.length; i < len; i += 1) {
|
||||||
parent = ref[i];
|
parent = ref[i];
|
||||||
|
@ -331,11 +333,10 @@ export default (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
BranchGraph.prototype.markCommit = function(commit) {
|
BranchGraph.prototype.markCommit = function(commit) {
|
||||||
var r, x, y;
|
|
||||||
if (commit.id === this.options.commit_id) {
|
if (commit.id === this.options.commit_id) {
|
||||||
r = this.r;
|
const { r } = this;
|
||||||
x = this.offsetX + this.unitSpace * (this.mspace - commit.space);
|
const x = this.offsetX + this.unitSpace * (this.mspace - commit.space);
|
||||||
y = this.offsetY + this.unitTime * commit.time;
|
const y = this.offsetY + this.unitTime * commit.time;
|
||||||
r.path(["M", x + 5, y, "L", x + 15, y + 4, "L", x + 15, y - 4, "Z"]).attr({
|
r.path(["M", x + 5, y, "L", x + 15, y + 4, "L", x + 15, y - 4, "Z"]).attr({
|
||||||
fill: "#000",
|
fill: "#000",
|
||||||
"fill-opacity": .5,
|
"fill-opacity": .5,
|
||||||
|
|
|
@ -52,7 +52,7 @@ export default class NewBranchForm {
|
||||||
|
|
||||||
validate() {
|
validate() {
|
||||||
var errorMessage, errors, formatter, unique, validator;
|
var errorMessage, errors, formatter, unique, validator;
|
||||||
const indexOf = [].indexOf;
|
const { indexOf } = [];
|
||||||
|
|
||||||
this.branchNameError.empty();
|
this.branchNameError.empty();
|
||||||
unique = function(values, value) {
|
unique = function(values, value) {
|
||||||
|
|
|
@ -311,7 +311,7 @@ export default class Notes {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.then(({ data }) => {
|
.then(({ data }) => {
|
||||||
const notes = data.notes;
|
const { notes } = data;
|
||||||
this.last_fetched_at = data.last_fetched_at;
|
this.last_fetched_at = data.last_fetched_at;
|
||||||
this.setPollingInterval(data.notes.length);
|
this.setPollingInterval(data.notes.length);
|
||||||
$.each(notes, (i, note) => this.renderNote(note));
|
$.each(notes, (i, note) => this.renderNote(note));
|
||||||
|
|
|
@ -72,7 +72,7 @@ export default {
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.fetchNotes();
|
this.fetchNotes();
|
||||||
const parentElement = this.$el.parentElement;
|
const { parentElement } = this.$el;
|
||||||
|
|
||||||
if (parentElement && parentElement.classList.contains('js-vue-notes-event')) {
|
if (parentElement && parentElement.classList.contains('js-vue-notes-event')) {
|
||||||
parentElement.addEventListener('toggleAward', event => {
|
parentElement.addEventListener('toggleAward', event => {
|
||||||
|
|
|
@ -28,7 +28,7 @@ export default {
|
||||||
},
|
},
|
||||||
poll(data = {}) {
|
poll(data = {}) {
|
||||||
const endpoint = data.notesData.notesPath;
|
const endpoint = data.notesData.notesPath;
|
||||||
const lastFetchedAt = data.lastFetchedAt;
|
const { lastFetchedAt } = data;
|
||||||
const options = {
|
const options = {
|
||||||
headers: {
|
headers: {
|
||||||
'X-Last-Fetched-At': lastFetchedAt ? `${lastFetchedAt}` : undefined,
|
'X-Last-Fetched-At': lastFetchedAt ? `${lastFetchedAt}` : undefined,
|
||||||
|
|
|
@ -96,7 +96,7 @@
|
||||||
this.enteredUsername = '';
|
this.enteredUsername = '';
|
||||||
},
|
},
|
||||||
onSecondaryAction() {
|
onSecondaryAction() {
|
||||||
const form = this.$refs.form;
|
const { form } = this.$refs;
|
||||||
|
|
||||||
form.action = this.blockUserUrl;
|
form.action = this.blockUserUrl;
|
||||||
this.$refs.method.value = 'put';
|
this.$refs.method.value = 'put';
|
||||||
|
|
|
@ -61,7 +61,7 @@ export default class Todos {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
const target = e.target;
|
const { target } = e;
|
||||||
target.setAttribute('disabled', true);
|
target.setAttribute('disabled', true);
|
||||||
target.classList.add('disabled');
|
target.classList.add('disabled');
|
||||||
|
|
||||||
|
|
|
@ -80,10 +80,11 @@ export default (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
ContributorsStatGraph.prototype.redraw_authors = function() {
|
ContributorsStatGraph.prototype.redraw_authors = function() {
|
||||||
var author_commits, x_domain;
|
|
||||||
$("ol").html("");
|
$("ol").html("");
|
||||||
x_domain = ContributorsGraph.prototype.x_domain;
|
|
||||||
author_commits = ContributorsStatGraphUtil.get_author_data(this.parsed_log, this.field, x_domain);
|
const { x_domain } = ContributorsGraph.prototype;
|
||||||
|
const author_commits = ContributorsStatGraphUtil.get_author_data(this.parsed_log, this.field, x_domain);
|
||||||
|
|
||||||
return _.each(author_commits, (function(_this) {
|
return _.each(author_commits, (function(_this) {
|
||||||
return function(d) {
|
return function(d) {
|
||||||
_this.redraw_author_commit_info(d);
|
_this.redraw_author_commit_info(d);
|
||||||
|
@ -102,7 +103,7 @@ export default (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
ContributorsStatGraph.prototype.change_date_header = function() {
|
ContributorsStatGraph.prototype.change_date_header = function() {
|
||||||
const x_domain = ContributorsGraph.prototype.x_domain;
|
const { x_domain } = ContributorsGraph.prototype;
|
||||||
const formattedDateRange = sprintf(
|
const formattedDateRange = sprintf(
|
||||||
s__('ContributorsPage|%{startDate} – %{endDate}'),
|
s__('ContributorsPage|%{startDate} – %{endDate}'),
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,7 +28,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
const autoDevOpsExtraSettings = document.querySelector('.js-extra-settings');
|
const autoDevOpsExtraSettings = document.querySelector('.js-extra-settings');
|
||||||
|
|
||||||
autoDevOpsSettings.addEventListener('click', event => {
|
autoDevOpsSettings.addEventListener('click', event => {
|
||||||
const target = event.target;
|
const { target } = event;
|
||||||
if (target.classList.contains('js-toggle-extra-settings')) {
|
if (target.classList.contains('js-toggle-extra-settings')) {
|
||||||
autoDevOpsExtraSettings.classList.toggle(
|
autoDevOpsExtraSettings.classList.toggle(
|
||||||
'hidden',
|
'hidden',
|
||||||
|
|
|
@ -10,7 +10,7 @@ import eventHub from './event_hub';
|
||||||
Vue.use(Translate);
|
Vue.use(Translate);
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
const dataset = document.querySelector('.js-pipeline-details-vue').dataset;
|
const { dataset } = document.querySelector('.js-pipeline-details-vue');
|
||||||
|
|
||||||
const mediator = new PipelinesMediator({ endpoint: dataset.endpoint });
|
const mediator = new PipelinesMediator({ endpoint: dataset.endpoint });
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ export default class PipelinesService {
|
||||||
|
|
||||||
getPipelines(data = {}) {
|
getPipelines(data = {}) {
|
||||||
const { scope, page } = data;
|
const { scope, page } = data;
|
||||||
const CancelToken = axios.CancelToken;
|
const { CancelToken } = axios;
|
||||||
|
|
||||||
this.cancelationSource = CancelToken.source();
|
this.cancelationSource = CancelToken.source();
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ MarkdownPreview.prototype.showPreview = function ($form) {
|
||||||
this.fetchMarkdownPreview(mdText, url, (function (response) {
|
this.fetchMarkdownPreview(mdText, url, (function (response) {
|
||||||
var body;
|
var body;
|
||||||
if (response.body.length > 0) {
|
if (response.body.length > 0) {
|
||||||
body = response.body;
|
({ body } = response);
|
||||||
} else {
|
} else {
|
||||||
body = this.emptyMessage;
|
body = this.emptyMessage;
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,11 +85,10 @@ import _ from 'underscore';
|
||||||
cropBoxResizable: false,
|
cropBoxResizable: false,
|
||||||
toggleDragModeOnDblclick: false,
|
toggleDragModeOnDblclick: false,
|
||||||
built: function() {
|
built: function() {
|
||||||
var $image, container, cropBoxHeight, cropBoxWidth;
|
const $image = $(this);
|
||||||
$image = $(this);
|
const container = $image.cropper('getContainerData');
|
||||||
container = $image.cropper('getContainerData');
|
const { cropBoxWidth, cropBoxHeight } = _this;
|
||||||
cropBoxWidth = _this.cropBoxWidth;
|
|
||||||
cropBoxHeight = _this.cropBoxHeight;
|
|
||||||
return $image.cropper('setCropBoxData', {
|
return $image.cropper('setCropBoxData', {
|
||||||
width: cropBoxWidth,
|
width: cropBoxWidth,
|
||||||
height: cropBoxHeight,
|
height: cropBoxHeight,
|
||||||
|
@ -136,7 +135,7 @@ import _ from 'underscore';
|
||||||
}
|
}
|
||||||
|
|
||||||
dataURLtoBlob(dataURL) {
|
dataURLtoBlob(dataURL) {
|
||||||
var array, binary, i, k, len, v;
|
var array, binary, i, len, v;
|
||||||
binary = atob(dataURL.split(',')[1]);
|
binary = atob(dataURL.split(',')[1]);
|
||||||
array = [];
|
array = [];
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ export default class ProjectFindFile {
|
||||||
|
|
||||||
// render result
|
// render result
|
||||||
renderList(filePaths, searchText) {
|
renderList(filePaths, searchText) {
|
||||||
var blobItemUrl, filePath, html, i, j, len, matches, results;
|
var blobItemUrl, filePath, html, i, len, matches, results;
|
||||||
this.element.find(".tree-table > tbody").empty();
|
this.element.find(".tree-table > tbody").empty();
|
||||||
results = [];
|
results = [];
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
successCallback(res) {
|
successCallback(res) {
|
||||||
const pipelines = res.data.pipelines;
|
const { pipelines } = res.data;
|
||||||
if (pipelines.length > 0) {
|
if (pipelines.length > 0) {
|
||||||
// The pipeline entity always keeps the latest pipeline info on the `details.status`
|
// The pipeline entity always keeps the latest pipeline info on the `details.status`
|
||||||
this.ciStatus = pipelines[0].details.status;
|
this.ciStatus = pipelines[0].details.status;
|
||||||
|
|
|
@ -31,7 +31,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
projectsDropdownApp,
|
projectsDropdownApp,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
const dataset = this.$options.el.dataset;
|
const { dataset } = this.$options.el;
|
||||||
const store = new ProjectsStore();
|
const store = new ProjectsStore();
|
||||||
const service = new ProjectsService(dataset.userName);
|
const service = new ProjectsService(dataset.userName);
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default () => new Vue({
|
||||||
registryApp,
|
registryApp,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
const dataset = document.querySelector(this.$options.el).dataset;
|
const { dataset } = document.querySelector(this.$options.el);
|
||||||
return {
|
return {
|
||||||
endpoint: dataset.endpoint,
|
endpoint: dataset.endpoint,
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,7 +20,7 @@ export const fetchList = ({ commit }, { repo, page }) => {
|
||||||
commit(types.TOGGLE_REGISTRY_LIST_LOADING, repo);
|
commit(types.TOGGLE_REGISTRY_LIST_LOADING, repo);
|
||||||
|
|
||||||
return Vue.http.get(repo.tagsPath, { params: { page } }).then(response => {
|
return Vue.http.get(repo.tagsPath, { params: { page } }).then(response => {
|
||||||
const headers = response.headers;
|
const { headers } = response;
|
||||||
|
|
||||||
return response.json().then(resp => {
|
return response.json().then(resp => {
|
||||||
commit(types.TOGGLE_REGISTRY_LIST_LOADING, repo);
|
commit(types.TOGGLE_REGISTRY_LIST_LOADING, repo);
|
||||||
|
|
|
@ -42,8 +42,7 @@ export default class SmartInterval {
|
||||||
/* public */
|
/* public */
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
const cfg = this.cfg;
|
const { cfg, state } = this;
|
||||||
const state = this.state;
|
|
||||||
|
|
||||||
if (cfg.immediateExecution && !this.isLoading) {
|
if (cfg.immediateExecution && !this.isLoading) {
|
||||||
cfg.immediateExecution = false;
|
cfg.immediateExecution = false;
|
||||||
|
@ -100,7 +99,7 @@ export default class SmartInterval {
|
||||||
/* private */
|
/* private */
|
||||||
|
|
||||||
initInterval() {
|
initInterval() {
|
||||||
const cfg = this.cfg;
|
const { cfg } = this;
|
||||||
|
|
||||||
if (!cfg.lazyStart) {
|
if (!cfg.lazyStart) {
|
||||||
this.start();
|
this.start();
|
||||||
|
@ -151,7 +150,7 @@ export default class SmartInterval {
|
||||||
}
|
}
|
||||||
|
|
||||||
incrementInterval() {
|
incrementInterval() {
|
||||||
const cfg = this.cfg;
|
const { cfg } = this;
|
||||||
const currentInterval = this.getCurrentInterval();
|
const currentInterval = this.getCurrentInterval();
|
||||||
if (cfg.hiddenInterval && !this.isPageVisible()) return;
|
if (cfg.hiddenInterval && !this.isPageVisible()) return;
|
||||||
let nextInterval = currentInterval * cfg.incrementByFactorOf;
|
let nextInterval = currentInterval * cfg.incrementByFactorOf;
|
||||||
|
@ -166,7 +165,7 @@ export default class SmartInterval {
|
||||||
isPageVisible() { return this.state.pageVisibility === 'visible'; }
|
isPageVisible() { return this.state.pageVisibility === 'visible'; }
|
||||||
|
|
||||||
stopTimer() {
|
stopTimer() {
|
||||||
const state = this.state;
|
const { state } = this;
|
||||||
|
|
||||||
state.intervalId = window.clearInterval(state.intervalId);
|
state.intervalId = window.clearInterval(state.intervalId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,14 +38,14 @@ function simulateEvent(el, type, options = {}) {
|
||||||
|
|
||||||
function isLast(target) {
|
function isLast(target) {
|
||||||
const el = typeof target.el === 'string' ? document.getElementById(target.el.substr(1)) : target.el;
|
const el = typeof target.el === 'string' ? document.getElementById(target.el.substr(1)) : target.el;
|
||||||
const children = el.children;
|
const { children } = el;
|
||||||
|
|
||||||
return children.length - 1 === target.index;
|
return children.length - 1 === target.index;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTarget(target) {
|
function getTarget(target) {
|
||||||
const el = typeof target.el === 'string' ? document.getElementById(target.el.substr(1)) : target.el;
|
const el = typeof target.el === 'string' ? document.getElementById(target.el.substr(1)) : target.el;
|
||||||
const children = el.children;
|
const { children } = el;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
children[target.index] ||
|
children[target.index] ||
|
||||||
|
|
|
@ -250,7 +250,6 @@ function UsersSelect(currentUser, els, options = {}) {
|
||||||
|
|
||||||
let anyUser;
|
let anyUser;
|
||||||
let index;
|
let index;
|
||||||
let j;
|
|
||||||
let len;
|
let len;
|
||||||
let name;
|
let name;
|
||||||
let obj;
|
let obj;
|
||||||
|
@ -501,7 +500,7 @@ function UsersSelect(currentUser, els, options = {}) {
|
||||||
if (this.multiSelect) {
|
if (this.multiSelect) {
|
||||||
selected = getSelected().find(u => user.id === u);
|
selected = getSelected().find(u => user.id === u);
|
||||||
|
|
||||||
const fieldName = this.fieldName;
|
const { fieldName } = this;
|
||||||
const field = $dropdown.closest('.selectbox').find("input[name='" + fieldName + "'][value='" + user.id + "']");
|
const field = $dropdown.closest('.selectbox').find("input[name='" + fieldName + "'][value='" + user.id + "']");
|
||||||
|
|
||||||
if (field.length) {
|
if (field.length) {
|
||||||
|
@ -553,7 +552,7 @@ function UsersSelect(currentUser, els, options = {}) {
|
||||||
minimumInputLength: 0,
|
minimumInputLength: 0,
|
||||||
query: function(query) {
|
query: function(query) {
|
||||||
return _this.users(query.term, options, function(users) {
|
return _this.users(query.term, options, function(users) {
|
||||||
var anyUser, data, emailUser, index, j, len, name, nullUser, obj, ref;
|
var anyUser, data, emailUser, index, len, name, nullUser, obj, ref;
|
||||||
data = {
|
data = {
|
||||||
results: users
|
results: users
|
||||||
};
|
};
|
||||||
|
|
|
@ -191,7 +191,7 @@ export default {
|
||||||
if (data.ci_status === this.mr.ciStatus) return;
|
if (data.ci_status === this.mr.ciStatus) return;
|
||||||
if (!data.pipeline) return;
|
if (!data.pipeline) return;
|
||||||
|
|
||||||
const label = data.pipeline.details.status.label;
|
const { label } = data.pipeline.details.status;
|
||||||
const title = `Pipeline ${label}`;
|
const title = `Pipeline ${label}`;
|
||||||
const message = `Pipeline ${label} for "${data.title}"`;
|
const message = `Pipeline ${label} for "${data.title}"`;
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ export default {
|
||||||
// `params` should be an Array contains a Boolean, like `[true]`
|
// `params` should be an Array contains a Boolean, like `[true]`
|
||||||
// Passing parameter as Boolean didn't work.
|
// Passing parameter as Boolean didn't work.
|
||||||
eventHub.$on('SetBranchRemoveFlag', (params) => {
|
eventHub.$on('SetBranchRemoveFlag', (params) => {
|
||||||
this.mr.isRemovingSourceBranch = params[0];
|
[this.mr.isRemovingSourceBranch] = params;
|
||||||
});
|
});
|
||||||
|
|
||||||
eventHub.$on('FailedToMerge', (mergeError) => {
|
eventHub.$on('FailedToMerge', (mergeError) => {
|
||||||
|
|
|
@ -42,7 +42,7 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onImgLoad() {
|
onImgLoad() {
|
||||||
const contentImg = this.$refs.contentImg;
|
const { contentImg } = this.$refs;
|
||||||
|
|
||||||
if (contentImg) {
|
if (contentImg) {
|
||||||
this.isZoomable =
|
this.isZoomable =
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { __ } from '~/locale';
|
||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
import SkeletonLoadingContainer from '~/vue_shared/components/skeleton_loading_container.vue';
|
import SkeletonLoadingContainer from '~/vue_shared/components/skeleton_loading_container.vue';
|
||||||
|
|
||||||
const CancelToken = axios.CancelToken;
|
const { CancelToken } = axios;
|
||||||
let axiosSource;
|
let axiosSource;
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
},
|
},
|
||||||
getItems() {
|
getItems() {
|
||||||
const total = this.pageInfo.totalPages;
|
const total = this.pageInfo.totalPages;
|
||||||
const page = this.pageInfo.page;
|
const { page } = this.pageInfo;
|
||||||
const items = [];
|
const items = [];
|
||||||
|
|
||||||
if (page > 1) {
|
if (page > 1) {
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Enable prefer-structuring in JS files
|
||||||
|
merge_request: 19943
|
||||||
|
author: gfyoung
|
||||||
|
type: other
|
|
@ -26,7 +26,7 @@ describe('Mesh object', () => {
|
||||||
const object = new MeshObject(
|
const object = new MeshObject(
|
||||||
new BoxGeometry(10, 10, 10),
|
new BoxGeometry(10, 10, 10),
|
||||||
);
|
);
|
||||||
const radius = object.geometry.boundingSphere.radius;
|
const { radius } = object.geometry.boundingSphere;
|
||||||
|
|
||||||
expect(radius).not.toBeGreaterThan(4);
|
expect(radius).not.toBeGreaterThan(4);
|
||||||
});
|
});
|
||||||
|
@ -35,7 +35,7 @@ describe('Mesh object', () => {
|
||||||
const object = new MeshObject(
|
const object = new MeshObject(
|
||||||
new BoxGeometry(1, 1, 1),
|
new BoxGeometry(1, 1, 1),
|
||||||
);
|
);
|
||||||
const radius = object.geometry.boundingSphere.radius;
|
const { radius } = object.geometry.boundingSphere;
|
||||||
|
|
||||||
expect(radius).toBeLessThan(1);
|
expect(radius).toBeLessThan(1);
|
||||||
});
|
});
|
||||||
|
|
|
@ -16,7 +16,7 @@ describe('Pipelines table in Commits and Merge requests', function () {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
mock = new MockAdapter(axios);
|
mock = new MockAdapter(axios);
|
||||||
|
|
||||||
const pipelines = getJSONFixture(jsonFixtureName).pipelines;
|
const { pipelines } = getJSONFixture(jsonFixtureName);
|
||||||
|
|
||||||
PipelinesTable = Vue.extend(pipelinesTable);
|
PipelinesTable = Vue.extend(pipelinesTable);
|
||||||
pipeline = pipelines.find(p => p.user !== null && p.commit !== null);
|
pipeline = pipelines.find(p => p.user !== null && p.commit !== null);
|
||||||
|
|
|
@ -88,7 +88,7 @@ describe('Deploy keys key', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('expands all project labels after click', done => {
|
it('expands all project labels after click', done => {
|
||||||
const length = vm.deployKey.deploy_keys_projects.length;
|
const { length } = vm.deployKey.deploy_keys_projects;
|
||||||
vm.$el.querySelectorAll('.deploy-project-label')[1].click();
|
vm.$el.querySelectorAll('.deploy-project-label')[1].click();
|
||||||
|
|
||||||
Vue.nextTick(() => {
|
Vue.nextTick(() => {
|
||||||
|
|
|
@ -92,7 +92,7 @@ describe('DiffLineGutterContent', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return discussions for the given lineCode', () => {
|
it('should return discussions for the given lineCode', () => {
|
||||||
const lineCode = getDiffFileMock().highlightedDiffLines[1].lineCode;
|
const { lineCode } = getDiffFileMock().highlightedDiffLines[1];
|
||||||
const component = createComponent({ lineCode, showCommentButton: true });
|
const component = createComponent({ lineCode, showCommentButton: true });
|
||||||
|
|
||||||
setDiscussions(component);
|
setDiscussions(component);
|
||||||
|
|
|
@ -103,7 +103,7 @@ describe('RecentSearchesDropdownContent', () => {
|
||||||
describe('processedItems', () => {
|
describe('processedItems', () => {
|
||||||
it('with items', () => {
|
it('with items', () => {
|
||||||
vm = createComponent(propsDataWithItems);
|
vm = createComponent(propsDataWithItems);
|
||||||
const processedItems = vm.processedItems;
|
const { processedItems } = vm;
|
||||||
|
|
||||||
expect(processedItems.length).toEqual(2);
|
expect(processedItems.length).toEqual(2);
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ describe('RecentSearchesDropdownContent', () => {
|
||||||
|
|
||||||
it('with no items', () => {
|
it('with no items', () => {
|
||||||
vm = createComponent(propsDataWithoutItems);
|
vm = createComponent(propsDataWithoutItems);
|
||||||
const processedItems = vm.processedItems;
|
const { processedItems } = vm;
|
||||||
|
|
||||||
expect(processedItems.length).toEqual(0);
|
expect(processedItems.length).toEqual(0);
|
||||||
});
|
});
|
||||||
|
@ -131,13 +131,13 @@ describe('RecentSearchesDropdownContent', () => {
|
||||||
describe('hasItems', () => {
|
describe('hasItems', () => {
|
||||||
it('with items', () => {
|
it('with items', () => {
|
||||||
vm = createComponent(propsDataWithItems);
|
vm = createComponent(propsDataWithItems);
|
||||||
const hasItems = vm.hasItems;
|
const { hasItems } = vm;
|
||||||
expect(hasItems).toEqual(true);
|
expect(hasItems).toEqual(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('with no items', () => {
|
it('with no items', () => {
|
||||||
vm = createComponent(propsDataWithoutItems);
|
vm = createComponent(propsDataWithoutItems);
|
||||||
const hasItems = vm.hasItems;
|
const { hasItems } = vm;
|
||||||
expect(hasItems).toEqual(false);
|
expect(hasItems).toEqual(false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -15,8 +15,7 @@ describe('RecentSearchesRoot', () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
VueSpy = spyOnDependency(RecentSearchesRoot, 'Vue').and.callFake((options) => {
|
VueSpy = spyOnDependency(RecentSearchesRoot, 'Vue').and.callFake((options) => {
|
||||||
data = options.data;
|
({ data, template } = options);
|
||||||
template = options.template;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
RecentSearchesRoot.prototype.render.call(recentSearchesRoot);
|
RecentSearchesRoot.prototype.render.call(recentSearchesRoot);
|
||||||
|
|
|
@ -18,7 +18,7 @@ describe('GL Style Field Errors', function() {
|
||||||
expect(this.$form).toBeDefined();
|
expect(this.$form).toBeDefined();
|
||||||
expect(this.$form.length).toBe(1);
|
expect(this.$form.length).toBe(1);
|
||||||
expect(this.fieldErrors).toBeDefined();
|
expect(this.fieldErrors).toBeDefined();
|
||||||
const inputs = this.fieldErrors.state.inputs;
|
const { inputs } = this.fieldErrors.state;
|
||||||
expect(inputs.length).toBe(4);
|
expect(inputs.length).toBe(4);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ describe('AppComponent', () => {
|
||||||
it('should return list of groups from store', () => {
|
it('should return list of groups from store', () => {
|
||||||
spyOn(vm.store, 'getGroups');
|
spyOn(vm.store, 'getGroups');
|
||||||
|
|
||||||
const groups = vm.groups;
|
const { groups } = vm;
|
||||||
expect(vm.store.getGroups).toHaveBeenCalled();
|
expect(vm.store.getGroups).toHaveBeenCalled();
|
||||||
expect(groups).not.toBeDefined();
|
expect(groups).not.toBeDefined();
|
||||||
});
|
});
|
||||||
|
@ -77,7 +77,7 @@ describe('AppComponent', () => {
|
||||||
it('should return pagination info from store', () => {
|
it('should return pagination info from store', () => {
|
||||||
spyOn(vm.store, 'getPaginationInfo');
|
spyOn(vm.store, 'getPaginationInfo');
|
||||||
|
|
||||||
const pageInfo = vm.pageInfo;
|
const { pageInfo } = vm;
|
||||||
expect(vm.store.getPaginationInfo).toHaveBeenCalled();
|
expect(vm.store.getPaginationInfo).toHaveBeenCalled();
|
||||||
expect(pageInfo).not.toBeDefined();
|
expect(pageInfo).not.toBeDefined();
|
||||||
});
|
});
|
||||||
|
@ -293,7 +293,7 @@ describe('AppComponent', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
groupItem = Object.assign({}, mockParentGroupItem);
|
groupItem = Object.assign({}, mockParentGroupItem);
|
||||||
groupItem.children = mockChildren;
|
groupItem.children = mockChildren;
|
||||||
childGroupItem = groupItem.children[0];
|
[childGroupItem] = groupItem.children;
|
||||||
groupItem.isChildrenLoading = false;
|
groupItem.isChildrenLoading = false;
|
||||||
vm.targetGroup = childGroupItem;
|
vm.targetGroup = childGroupItem;
|
||||||
vm.targetParentGroup = groupItem;
|
vm.targetParentGroup = groupItem;
|
||||||
|
|
|
@ -41,7 +41,7 @@ describe('GroupItemComponent', () => {
|
||||||
describe('rowClass', () => {
|
describe('rowClass', () => {
|
||||||
it('should return map of classes based on group details', () => {
|
it('should return map of classes based on group details', () => {
|
||||||
const classes = ['is-open', 'has-children', 'has-description', 'being-removed'];
|
const classes = ['is-open', 'has-children', 'has-description', 'being-removed'];
|
||||||
const rowClass = vm.rowClass;
|
const { rowClass } = vm;
|
||||||
|
|
||||||
expect(Object.keys(rowClass).length).toBe(classes.length);
|
expect(Object.keys(rowClass).length).toBe(classes.length);
|
||||||
Object.keys(rowClass).forEach((className) => {
|
Object.keys(rowClass).forEach((className) => {
|
||||||
|
|
|
@ -63,7 +63,7 @@ describe('Multi-file editor library dirty diff controller', () => {
|
||||||
[type]: true,
|
[type]: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
const range = getDecorator(change).range;
|
const { range } = getDecorator(change);
|
||||||
|
|
||||||
expect(range.startLineNumber).toBe(1);
|
expect(range.startLineNumber).toBe(1);
|
||||||
expect(range.endLineNumber).toBe(2);
|
expect(range.endLineNumber).toBe(2);
|
||||||
|
|
|
@ -22,7 +22,7 @@ describe('NamespaceSelect', () => {
|
||||||
const dropdown = document.createElement('div');
|
const dropdown = document.createElement('div');
|
||||||
// eslint-disable-next-line no-new
|
// eslint-disable-next-line no-new
|
||||||
new NamespaceSelect({ dropdown });
|
new NamespaceSelect({ dropdown });
|
||||||
glDropdownOptions = $.fn.glDropdown.calls.argsFor(0)[0];
|
[glDropdownOptions] = $.fn.glDropdown.calls.argsFor(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('prevents click events', () => {
|
it('prevents click events', () => {
|
||||||
|
@ -43,7 +43,7 @@ describe('NamespaceSelect', () => {
|
||||||
dropdown.dataset.isFilter = 'true';
|
dropdown.dataset.isFilter = 'true';
|
||||||
// eslint-disable-next-line no-new
|
// eslint-disable-next-line no-new
|
||||||
new NamespaceSelect({ dropdown });
|
new NamespaceSelect({ dropdown });
|
||||||
glDropdownOptions = $.fn.glDropdown.calls.argsFor(0)[0];
|
[glDropdownOptions] = $.fn.glDropdown.calls.argsFor(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does not prevent click events', () => {
|
it('does not prevent click events', () => {
|
||||||
|
|
|
@ -14,6 +14,7 @@ describe('Markdown component', () => {
|
||||||
beforeEach((done) => {
|
beforeEach((done) => {
|
||||||
json = getJSONFixture('blob/notebook/basic.json');
|
json = getJSONFixture('blob/notebook/basic.json');
|
||||||
|
|
||||||
|
// eslint-disable-next-line prefer-destructuring
|
||||||
cell = json.cells[1];
|
cell = json.cells[1];
|
||||||
|
|
||||||
vm = new Component({
|
vm = new Component({
|
||||||
|
|
|
@ -24,7 +24,7 @@ describe('Pipelines Table Row', () => {
|
||||||
preloadFixtures(jsonFixtureName);
|
preloadFixtures(jsonFixtureName);
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
const pipelines = getJSONFixture(jsonFixtureName).pipelines;
|
const { pipelines } = getJSONFixture(jsonFixtureName);
|
||||||
|
|
||||||
pipeline = pipelines.find(p => p.user !== null && p.commit !== null);
|
pipeline = pipelines.find(p => p.user !== null && p.commit !== null);
|
||||||
pipelineWithoutAuthor = pipelines.find(p => p.user === null && p.commit !== null);
|
pipelineWithoutAuthor = pipelines.find(p => p.user === null && p.commit !== null);
|
||||||
|
|
|
@ -11,7 +11,7 @@ describe('Pipelines Table', () => {
|
||||||
preloadFixtures(jsonFixtureName);
|
preloadFixtures(jsonFixtureName);
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
const pipelines = getJSONFixture(jsonFixtureName).pipelines;
|
const { pipelines } = getJSONFixture(jsonFixtureName);
|
||||||
|
|
||||||
PipelinesTableComponent = Vue.extend(pipelinesTableComp);
|
PipelinesTableComponent = Vue.extend(pipelinesTableComp);
|
||||||
pipeline = pipelines.find(p => p.user !== null && p.commit !== null);
|
pipeline = pipelines.find(p => p.user !== null && p.commit !== null);
|
||||||
|
|
|
@ -87,7 +87,7 @@ describe('SmartInterval', function () {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
interval.cancel();
|
interval.cancel();
|
||||||
|
|
||||||
const intervalId = interval.state.intervalId;
|
const { intervalId } = interval.state;
|
||||||
const currentInterval = interval.getCurrentInterval();
|
const currentInterval = interval.getCurrentInterval();
|
||||||
const intervalLowerLimit = interval.cfg.startingInterval;
|
const intervalLowerLimit = interval.cfg.startingInterval;
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ describe('SmartInterval', function () {
|
||||||
|
|
||||||
interval.resume();
|
interval.resume();
|
||||||
|
|
||||||
const intervalId = interval.state.intervalId;
|
const { intervalId } = interval.state;
|
||||||
|
|
||||||
expect(intervalId).toBeTruthy();
|
expect(intervalId).toBeTruthy();
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ describe('File Icon component', () => {
|
||||||
size: 120,
|
size: 120,
|
||||||
});
|
});
|
||||||
|
|
||||||
const classList = vm.$el.firstChild.classList;
|
const { classList } = vm.$el.firstChild;
|
||||||
const containsSizeClass = classList.contains('s120');
|
const containsSizeClass = classList.contains('s120');
|
||||||
const containsCustomClass = classList.contains('extraclasses');
|
const containsCustomClass = classList.contains('extraclasses');
|
||||||
expect(containsSizeClass).toBe(true);
|
expect(containsSizeClass).toBe(true);
|
||||||
|
|
|
@ -44,7 +44,7 @@ describe('Sprite Icon Component', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should properly render img css', function () {
|
it('should properly render img css', function () {
|
||||||
const classList = icon.$el.classList;
|
const { classList } = icon.$el;
|
||||||
const containsSizeClass = classList.contains('s32');
|
const containsSizeClass = classList.contains('s32');
|
||||||
const containsCustomClass = classList.contains('extraclasses');
|
const containsCustomClass = classList.contains('extraclasses');
|
||||||
expect(containsSizeClass).toBe(true);
|
expect(containsSizeClass).toBe(true);
|
||||||
|
|
|
@ -51,7 +51,7 @@ describe('User Avatar Image Component', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should properly render img css', function () {
|
it('should properly render img css', function () {
|
||||||
const classList = vm.$el.classList;
|
const { classList } = vm.$el;
|
||||||
const containsAvatar = classList.contains('avatar');
|
const containsAvatar = classList.contains('avatar');
|
||||||
const containsSizeClass = classList.contains('s99');
|
const containsSizeClass = classList.contains('s99');
|
||||||
const containsCustomClass = classList.contains(DEFAULT_PROPS.cssClasses);
|
const containsCustomClass = classList.contains(DEFAULT_PROPS.cssClasses);
|
||||||
|
@ -73,7 +73,7 @@ describe('User Avatar Image Component', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should add lazy attributes', function () {
|
it('should add lazy attributes', function () {
|
||||||
const classList = vm.$el.classList;
|
const { classList } = vm.$el;
|
||||||
const lazyClass = classList.contains('lazy');
|
const lazyClass = classList.contains('lazy');
|
||||||
|
|
||||||
expect(lazyClass).toBe(true);
|
expect(lazyClass).toBe(true);
|
||||||
|
|
|
@ -21,7 +21,7 @@ describe('User Avatar Link Component', function () {
|
||||||
propsData: this.propsData,
|
propsData: this.propsData,
|
||||||
}).$mount();
|
}).$mount();
|
||||||
|
|
||||||
this.userAvatarImage = this.userAvatarLink.$children[0];
|
[this.userAvatarImage] = this.userAvatarLink.$children;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return a defined Vue component', function () {
|
it('should return a defined Vue component', function () {
|
||||||
|
|
Loading…
Reference in New Issue