All files / ee/app/assets/javascripts/epic/components epic_app.vue

80% Statements 4/5
50% Branches 1/2
100% Functions 2/2
80% Lines 4/5

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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95  1x                                                                           3x 3x               3x                                                                                            
<script>
// eslint-disable-next-line no-restricted-imports
import { mapState } from 'vuex';
import initRelatedItemsTree from 'ee/related_items_tree/related_items_tree_bundle';
import IssuableBody from '~/issues/show/components/app.vue';
import { PathIdSeparator } from '~/related_issues/constants';
import EpicSidebar from 'jh_else_ee/epic/components/epic_sidebar.vue';
import SidebarContext from '../sidebar_context';
import EpicHeader from './epic_header.vue';
import EpicHeaderActions from './epic_header_actions.vue';
 
export default {
  PathIdSeparator,
  components: {
    IssuableBody,
    EpicHeader,
    EpicHeaderActions,
    EpicSidebar,
  },
  computed: {
    ...mapState([
      'author',
      'created',
      'endpoint',
      'updateEndpoint',
      'groupPath',
      'markdownPreviewPath',
      'markdownDocsPath',
      'canUpdate',
      'canDestroy',
      'initialTitleHtml',
      'initialTitleText',
      'initialDescriptionHtml',
      'initialDescriptionText',
      'lockVersion',
      'state',
      'confidential',
    ]),
    formattedAuthor() {
      const { url, username } = this.author;
      return {
        ...this.author,
        username: username.startsWith('@') ? username.substring(1) : username,
        webUrl: url,
      };
    },
  },
  mounted() {
    new SidebarContext(); // eslint-disable-line no-new
    initRelatedItemsTree();
  },
};
</script>
 
<template>
  <div class="epic-page-container">
    <div
      class="issuable-details detail-page-description content-block gl-pt-3 gl-pb-0 gl-border-none"
    >
      <issuable-body
        :author="formattedAuthor"
        :created-at="created"
        :endpoint="endpoint"
        :update-endpoint="updateEndpoint"
        :project-path="groupPath"
        :project-id="0"
        :markdown-preview-path="markdownPreviewPath"
        :markdown-docs-path="markdownDocsPath"
        :can-update="canUpdate"
        :can-destroy="canDestroy"
        :show-delete-button="canDestroy"
        :initial-title-html="initialTitleHtml"
        :initial-title-text="initialTitleText"
        :lock-version="lockVersion"
        :initial-description-html="initialDescriptionHtml"
        :initial-description-text="initialDescriptionText"
        :issuable-status="state"
        :is-confidential="confidential"
        enable-autocomplete
        project-namespace
        issuable-ref
        issuable-type="epic"
      >
        <template #actions>
          <epic-header-actions />
        </template>
        <template #header>
          <epic-header :formatted-author="formattedAuthor" />
        </template>
      </issuable-body>
    </div>
    <epic-sidebar />
  </div>
</template>