diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index defa278c0892541b67300a11d07f797da1871013..36a3fb5039e87d20ef5043fceb5fce15829c0757 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -1,7 +1,7 @@ -/* eslint-disable no-restricted-properties, no-var, camelcase, -no-unused-expressions, one-var, default-case, +/* eslint-disable no-restricted-properties, camelcase, +no-unused-expressions, default-case, consistent-return, no-alert, no-param-reassign, no-else-return, -vars-on-top, no-shadow, no-useless-escape, +no-shadow, no-useless-escape, class-methods-use-this */ /* global ResolveService */ @@ -224,7 +224,7 @@ export default class Notes { } keydownNoteText(e) { - var $textarea, + let $textarea, discussionNoteForm, editNote, myLastNote, @@ -325,7 +325,7 @@ export default class Notes { * if there aren't new notes coming from the server */ setPollingInterval(shouldReset) { - var nthInterval; + let nthInterval; if (shouldReset == null) { shouldReset = true; } @@ -339,7 +339,7 @@ export default class Notes { } handleQuickActions(noteEntity) { - var votesBlock; + let votesBlock; if (noteEntity.commands_changes) { if ('merge' in noteEntity.commands_changes) { Notes.checkMergeRequestStatus(); @@ -462,7 +462,7 @@ export default class Notes { * Render note in discussion area. To render inline notes use renderDiscussionNote. */ renderDiscussionNote(noteEntity, $form) { - var discussionContainer, form, row, lineType, diffAvatarContainer; + let discussionContainer, form, row, lineType, diffAvatarContainer; if (!Notes.isNewNote(noteEntity, this.note_ids)) { return; @@ -491,15 +491,15 @@ export default class Notes { } if (discussionContainer.length === 0) { if (noteEntity.diff_discussion_html) { - var $discussion = $(noteEntity.diff_discussion_html).renderGFM(); + let $discussion = $(noteEntity.diff_discussion_html).renderGFM(); if (!this.isParallelView() || row.hasClass('js-temp-notes-holder') || noteEntity.on_image) { // insert the note and the reply button after the temp row row.after($discussion); } else { // Merge new discussion HTML in - var $notes = $discussion.find(`.notes[data-discussion-id="${noteEntity.discussion_id}"]`); - var contentContainerClass = $notes + let $notes = $discussion.find(`.notes[data-discussion-id="${noteEntity.discussion_id}"]`); + let contentContainerClass = $notes .closest('.notes-content') .attr('class') .split(' ') @@ -537,7 +537,7 @@ export default class Notes { } renderDiscussionAvatar(diffAvatarContainer, noteEntity) { - var avatarHolder = diffAvatarContainer.find('.diff-comment-avatar-holders'); + let avatarHolder = diffAvatarContainer.find('.diff-comment-avatar-holders'); if (!avatarHolder.length) { avatarHolder = document.createElement('diff-note-avatars'); @@ -557,7 +557,7 @@ export default class Notes { * Resets buttons. */ resetMainTargetForm(e) { - var form; + let form; form = $('.js-main-target-form'); // remove validation errors form.find('.js-errors').remove(); @@ -572,7 +572,7 @@ export default class Notes { .data('autosave') .reset(); - var event = document.createEvent('Event'); + let event = document.createEvent('Event'); event.initEvent('autosize:update', true, false); form.find('.js-autosize')[0].dispatchEvent(event); @@ -580,7 +580,7 @@ export default class Notes { } reenableTargetFormSubmitButton() { - var form; + let form; form = $('.js-main-target-form'); return form.find('.js-note-text').trigger('input'); } @@ -591,7 +591,7 @@ export default class Notes { * Sets some hidden fields in the form. */ setupMainTargetNoteForm(enableGFM) { - var form; + let form; // find the form form = $('.js-new-note-form'); // Set a global clone of the form for later cloning @@ -626,7 +626,7 @@ export default class Notes { * show the form */ setupNoteForm(form, enableGFM = defaultAutocompleteConfig) { - var textarea, key; + let textarea, key; this.glForm = new GLForm(form, enableGFM); textarea = form.find('.js-note-text'); key = [ @@ -686,8 +686,8 @@ export default class Notes { */ addDiscussionNote($form, note, isNewDiffComment) { if ($form.attr('data-resolve-all') != null) { - var discussionId = $form.data('discussionId'); - var mergeRequestId = $form.data('noteableIid'); + let discussionId = $form.data('discussionId'); + let mergeRequestId = $form.data('noteableIid'); if (ResolveService != null) { ResolveService.toggleResolveForDiscussion(mergeRequestId, discussionId); @@ -707,7 +707,7 @@ export default class Notes { * Updates the current note field. */ updateNote(noteEntity, $targetNote) { - var $noteEntityEl, $note_li; + let $noteEntityEl, $note_li; // Convert returned HTML to a jQuery object so we can modify it further $noteEntityEl = $(noteEntity.html); this.revertNoteEditForm($targetNote); @@ -724,17 +724,17 @@ export default class Notes { } checkContentToAllowEditing($el) { - var initialContent = $el + let initialContent = $el .find('.original-note-content') .text() .trim(); - var currentContent = $el.find('.js-note-text').val(); - var isAllowed = true; + let currentContent = $el.find('.js-note-text').val(); + let isAllowed = true; if (currentContent === initialContent) { this.removeNoteEditForm($el); } else { - var isWidgetVisible = isInViewport($el.get(0)); + let isWidgetVisible = isInViewport($el.get(0)); if (!isWidgetVisible) { scrollToElement($el); @@ -756,13 +756,13 @@ export default class Notes { showEditForm(e) { e.preventDefault(); - var $target = $(e.target); - var $editForm = $(this.getEditFormSelector($target)); - var $note = $target.closest('.note'); - var $currentlyEditing = $('.note.is-editing:visible'); + let $target = $(e.target); + let $editForm = $(this.getEditFormSelector($target)); + let $note = $target.closest('.note'); + let $currentlyEditing = $('.note.is-editing:visible'); if ($currentlyEditing.length) { - var isEditAllowed = this.checkContentToAllowEditing($currentlyEditing); + let isEditAllowed = this.checkContentToAllowEditing($currentlyEditing); if (!isEditAllowed) { return; @@ -802,8 +802,8 @@ export default class Notes { revertNoteEditForm($target) { $target = $target || $('.note.is-editing:visible'); - var selector = this.getEditFormSelector($target); - var $editForm = $(selector); + let selector = this.getEditFormSelector($target); + let $editForm = $(selector); $editForm.insertBefore('.diffs'); $editForm.find('.js-comment-save-button').enable(); @@ -811,7 +811,7 @@ export default class Notes { } getEditFormSelector($el) { - var selector = '.note-edit-form:not(.mr-note-edit-form)'; + let selector = '.note-edit-form:not(.mr-note-edit-form)'; if ($el.parents('#diffs').length) { selector = '.note-edit-form.mr-note-edit-form'; @@ -821,7 +821,7 @@ export default class Notes { } removeNoteEditForm($note) { - var form = $note.find('.diffs .current-note-edit-form'); + let form = $note.find('.diffs .current-note-edit-form'); $note.removeClass('is-editing'); form.removeClass('current-note-edit-form'); @@ -837,7 +837,7 @@ export default class Notes { * Removes the whole discussion if the last note is being removed. */ removeNote(e) { - var noteElId, $note; + let noteElId, $note; $note = $(e.currentTarget).closest('.note'); noteElId = $note.attr('id'); $(`.note[id="${noteElId}"]`).each((i, el) => { @@ -915,7 +915,7 @@ export default class Notes { } replyToDiscussionNote(target) { - var form, replyLink; + let form, replyLink; form = this.cleanForm(this.formClone.clone()); replyLink = $(target).closest('.js-discussion-reply-button'); // insert the form after the button @@ -942,7 +942,7 @@ export default class Notes { diffFileData = dataHolder.closest('.image'); } - var discussionID = dataHolder.data('discussionId'); + let discussionID = dataHolder.data('discussionId'); if (discussionID) { form.attr('data-discussion-id', discussionID); @@ -985,7 +985,7 @@ export default class Notes { form.removeClass('js-main-target-form').addClass('discussion-form js-discussion-note-form'); if (typeof gl.diffNotesCompileComponents !== 'undefined') { - var $commentBtn = form.find('comment-and-resolve-btn'); + let $commentBtn = form.find('comment-and-resolve-btn'); $commentBtn.attr(':discussion-id', `'${discussionID}'`); gl.diffNotesCompileComponents(); @@ -1042,7 +1042,7 @@ export default class Notes { } toggleDiffNote({ target, lineType, forceShow, showReplyInput = false }) { - var $link, addForm, hasNotes, newForm, noteForm, replyButton, row, rowCssToAdd; + let $link, addForm, hasNotes, newForm, noteForm, replyButton, row, rowCssToAdd; $link = $(target); row = $link.closest('tr'); const nextRow = row.next(); @@ -1111,7 +1111,7 @@ export default class Notes { * Removes the form and if necessary it's temporary row. */ removeDiscussionNoteForm(form) { - var glForm, row; + let glForm, row; row = form.closest('tr'); glForm = form.data('glForm'); glForm.destroy(); @@ -1158,7 +1158,7 @@ export default class Notes { * Updates the file name for the selected attachment. */ updateFormAttachment() { - var filename, form; + let filename, form; form = $(this).closest('form'); // get only the basename filename = $(this) @@ -1175,7 +1175,7 @@ export default class Notes { } updateTargetButtons(e) { - var closebtn, closetext, form, reopenbtn, reopentext, textarea; + let closebtn, closetext, form, reopenbtn, reopentext, textarea; textarea = $(e.target); form = textarea.parents('form'); reopenbtn = form.find('.js-note-target-reopen'); @@ -1215,16 +1215,16 @@ export default class Notes { } putEditFormInPlace($el) { - var $editForm = $(this.getEditFormSelector($el)); - var $note = $el.closest('.note'); + let $editForm = $(this.getEditFormSelector($el)); + let $note = $el.closest('.note'); $editForm.insertAfter($note.find('.note-text')); - var $originalContentEl = $note.find('.original-note-content'); - var originalContent = $originalContentEl.text().trim(); - var postUrl = $originalContentEl.data('postUrl'); - var targetId = $originalContentEl.data('targetId'); - var targetType = $originalContentEl.data('targetType'); + let $originalContentEl = $note.find('.original-note-content'); + let originalContent = $originalContentEl.text().trim(); + let postUrl = $originalContentEl.data('postUrl'); + let targetId = $originalContentEl.data('targetId'); + let targetType = $originalContentEl.data('targetType'); this.glForm = new GLForm($editForm.find('form'), this.enableGFM);