Verified Commit 2024aa5f authored by Mike Greiling's avatar Mike Greiling 💬
Browse files

refactor ConfirmDangerModal into ES module

parent 3551d6a3
Loading
Loading
Loading
Loading
+13 −28
Changes for app/assets/javascripts/confirm_danger_modal.js: 13 added lines, 28 removed lines.
Original line number Diff line number Diff line
/* eslint-disable func-names, space-before-function-paren, wrap-iife, one-var, no-var, camelcase, one-var-declaration-per-line, no-else-return, max-len */

import $ from 'jquery';
import { rstrip } from './lib/utils/common_utils';

window.ConfirmDangerModal = (function() {
  function ConfirmDangerModal(form, text, arg) {
    var project_path, submit, warningMessage;
    warningMessage = (arg != null ? arg : {}).warningMessage;
    this.form = form;
    $('.js-confirm-text').html(text || '');
    if (warningMessage) {
      $('.js-warning-text').html(warningMessage);
    }
export default function initConfirmDangerModal($form, text) {
  $('.js-confirm-text').text(text || '');
  $('.js-confirm-danger-input').val('');
  $('#modal-confirm-danger').modal('show');
    project_path = $('.js-confirm-danger-match').text();
    submit = $('.js-confirm-danger-submit');
    submit.disable();
    $('.js-confirm-danger-input').off('input');
    $('.js-confirm-danger-input').on('input', function() {
      if (rstrip($(this).val()) === project_path) {
        return submit.enable();

  const confirmTextMatch = $('.js-confirm-danger-match').text();
  const $submit = $('.js-confirm-danger-submit');
  $submit.disable();

  $('.js-confirm-danger-input').off('input').on('input', function handleInput() {
    const confirmText = rstrip($(this).val());
    if (confirmText === confirmTextMatch) {
      $submit.enable();
    } else {
        return submit.disable();
      $submit.disable();
    }
  });
    $('.js-confirm-danger-submit').off('click');
    $('.js-confirm-danger-submit').on('click', (function(_this) {
      return function() {
        return _this.form.submit();
      };
    })(this));
  $('.js-confirm-danger-submit').off('click').on('click', () => $form.submit());
}

  return ConfirmDangerModal;
})();
+5 −8
Changes for app/assets/javascripts/main.js: 5 added lines, 8 removed lines.
Original line number Diff line number Diff line
/* eslint-disable import/first */
/* global ConfirmDangerModal */
/* global $ */

import jQuery from 'jquery';
@@ -21,7 +20,7 @@ import './behaviors/';
// everything else
import loadAwardsHandler from './awards_handler';
import bp from './breakpoints';
import './confirm_danger_modal';
import initConfirmDangerModal from './confirm_danger_modal';
import Flash, { removeFlashClickListener } from './flash';
import './gl_dropdown';
import initTodoToggle from './header';
@@ -218,13 +217,11 @@ document.addEventListener('DOMContentLoaded', () => {
  });

  $document.on('click', '.js-confirm-danger', (e) => {
    const btn = $(e.target);
    const form = btn.closest('form');
    const text = btn.data('confirmDangerMessage');
    e.preventDefault();

    // eslint-disable-next-line no-new
    new ConfirmDangerModal(form, text);
    const $btn = $(e.target);
    const $form = $btn.closest('form');
    const text = $btn.data('confirmDangerMessage');
    initConfirmDangerModal($form, text);
  });

  $document.on('breakpoint:change', (e, breakpoint) => {