All files / app/assets/javascripts/blob_edit blob_bundle.js

100% Statements 25/25
80% Branches 4/5
100% Functions 6/6
100% Lines 24/24

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56          7x   7x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x   6x     6x                     2x         6x 1x     6x 2x 2x 2x     6x     6x      
import $ from 'jquery';
import { createAlert } from '~/alert';
import NewCommitForm from '../new_commit_form';
 
export default () => {
  const editBlobForm = $('.js-edit-blob-form');
 
  if (editBlobForm.length) {
    const urlRoot = editBlobForm.data('relativeUrlRoot');
    const assetsPath = editBlobForm.data('assetsPrefix');
    const filePath = editBlobForm.data('blobFilename') && `${editBlobForm.data('blobFilename')}`;
    const currentAction = $('.js-file-title').data('currentAction');
    const projectId = editBlobForm.data('project-id');
    const projectPath = editBlobForm.data('project-path');
    const isMarkdown = editBlobForm.data('is-markdown');
    const previewMarkdownPath = editBlobForm.data('previewMarkdownPath');
    const commitButton = $('.js-commit-button');
    const commitButtonLoading = $('.js-commit-button-loading');
    const cancelLink = $('#cancel-changes');
 
    import('./edit_blob')
      .then(({ default: EditBlob } = {}) => {
        // eslint-disable-next-line no-new
        new EditBlob({
          assetsPath: `${urlRoot}${assetsPath}`,
          filePath,
          currentAction,
          projectId,
          projectPath,
          isMarkdown,
          previewMarkdownPath,
        });
      })
      .catch((e) =>
        createAlert({
          message: e.message,
        }),
      );
 
    cancelLink.on('click', () => {
      window.onbeforeunload = null;
    });
 
    commitButton.on('click', () => {
      commitButton.addClass('gl-display-none');
      commitButtonLoading.removeClass('gl-display-none');
      window.onbeforeunload = null;
    });
 
    new NewCommitForm(editBlobForm); // eslint-disable-line no-new
 
    // returning here blocks page navigation
    window.onbeforeunload = () => '';
  }
};