All files / app/assets/javascripts/groups init_transfer_group_form.js

0% Statements 0/8
0% Branches 0/5
0% Functions 0/3
0% Lines 0/8

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 57 58 59 60 61 62 63 64 65 66 67 68 69 70                                                                                                                                           
import Vue from 'vue';
import VueApollo from 'vue-apollo';
import createDefaultClient from '~/lib/graphql';
import { sprintf } from '~/locale';
import { parseBoolean } from '~/lib/utils/common_utils';
import { helpPagePath } from '~/helpers/help_page_helper';
import TransferGroupForm, { i18n } from './components/transfer_group_form.vue';
 
export default () => {
  const el = document.querySelector('.js-transfer-group-form');
  if (!el) {
    return false;
  }
 
  Vue.use(VueApollo);
 
  const {
    targetFormId = null,
    buttonText: confirmButtonText = '',
    warningMessage = '',
    groupFullPath,
    groupId: resourceId,
    isPaidGroup,
  } = el.dataset;
 
  return new Vue({
    el,
    apolloProvider: new VueApollo({
      defaultClient: createDefaultClient(),
    }),
    provide: {
      confirmDangerMessage: sprintf(
        i18n.confirmationMessage,
        {
          groupName: groupFullPath,
          codeStart: '<code>',
          codeEnd: '</code>',
          projectLinkStart: `<a href="${helpPagePath(
            'user/group/manage.html#change-a-groups-path',
          )}">`,
          projectLinkEnd: '</a>',
          documentationLinkStart: `<a href="${helpPagePath(
            'user/project/repository/index.html#what-happens-when-a-repository-path-changes',
          )}">`,
          documentationLinkEnd: '</a>',
        },
        false,
      ),
      htmlConfirmationMessage: true,
      additionalInformation: warningMessage,
      confirmButtonText: i18n.confirmButtonText,
      resourceId,
    },
    render(createElement) {
      return createElement(TransferGroupForm, {
        props: {
          isPaidGroup: parseBoolean(isPaidGroup),
          confirmButtonText,
          confirmationPhrase: groupFullPath,
        },
        on: {
          confirm: () => {
            document.getElementById(targetFormId)?.submit();
          },
        },
      });
    },
  });
};