diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-06 13:14:47 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-06 13:14:47 +0000 |
commit | 7ab0cadbbdf42fdd316941b3260e294577d649f4 (patch) | |
tree | 26ed9d750eb7706174afddb43a9e6fab210f2176 /app/assets/javascripts/sidebar | |
parent | 3aad3a0b6ffb1a0fe36db41f81e8bbd3728e5f80 (diff) | |
download | gitlab-ce-7ab0cadbbdf42fdd316941b3260e294577d649f4.tar.gz |
Add latest changes from gitlab-org/gitlab@14-0-stable-ee
Diffstat (limited to 'app/assets/javascripts/sidebar')
3 files changed, 31 insertions, 13 deletions
diff --git a/app/assets/javascripts/sidebar/components/time_tracking/sidebar_time_tracking.vue b/app/assets/javascripts/sidebar/components/time_tracking/sidebar_time_tracking.vue index 58167b3934a..d472b67d976 100644 --- a/app/assets/javascripts/sidebar/components/time_tracking/sidebar_time_tracking.vue +++ b/app/assets/javascripts/sidebar/components/time_tracking/sidebar_time_tracking.vue @@ -17,6 +17,10 @@ export default { required: false, default: '', }, + issuableId: { + type: String, + required: true, + }, issuableIid: { type: String, required: true, @@ -60,6 +64,7 @@ export default { <div class="block"> <issuable-time-tracker :full-path="fullPath" + :issuable-id="issuableId" :issuable-iid="issuableIid" :limit-to-hours="limitToHours" /> diff --git a/app/assets/javascripts/sidebar/components/time_tracking/time_tracker.vue b/app/assets/javascripts/sidebar/components/time_tracking/time_tracker.vue index 3feff8639a1..87ddbbf256a 100644 --- a/app/assets/javascripts/sidebar/components/time_tracking/time_tracker.vue +++ b/app/assets/javascripts/sidebar/components/time_tracking/time_tracker.vue @@ -31,7 +31,11 @@ export default { directives: { GlModal: GlModalDirective, }, - inject: ['issuableType'], + inject: { + issuableType: { + default: null, + }, + }, props: { limitToHours: { type: Boolean, @@ -43,6 +47,11 @@ export default { required: false, default: '', }, + issuableId: { + type: String, + required: false, + default: '', + }, issuableIid: { type: String, required: false, @@ -83,15 +92,18 @@ export default { return timeTrackingQueries[this.issuableType].query; }, skip() { - // We don't fetch info via GraphQL in following cases - // 1. Time tracking info was provided via prop - // 2. issuableIid and fullPath are not provided. - if (!this.initialTimeTracking) { - return false; - } else if (this.issuableIid && this.fullPath) { - return false; + // Skip the query if either of the conditions are true + // 1. issuableType is not provided + // 2. Time tracking info was provided via prop + // 3. issuableIid and fullPath are not provided + if (!this.issuableType || !timeTrackingQueries[this.issuableType]) { + return true; + } else if (this.initialTimeTracking) { + return true; + } else if (!this.issuableIid || !this.fullPath) { + return true; } - return true; + return false; }, variables() { return { @@ -108,7 +120,7 @@ export default { }, computed: { isTimeTrackingInfoLoading() { - return this.$apollo?.queries.issuableTimeTracking.loading ?? false; + return this.$apollo?.queries.issuableTimeTracking?.loading ?? false; }, timeEstimate() { return this.timeTracking?.timeEstimate || 0; @@ -146,7 +158,7 @@ export default { isTimeReportSupported() { return ( [IssuableType.Issue, IssuableType.MergeRequest].includes(this.issuableType) && - this.issuableIid + this.issuableId ); }, }, @@ -240,7 +252,7 @@ export default { :title="__('Time tracking report')" :hide-footer="true" > - <time-tracking-report :limit-to-hours="limitToHours" :issuable-iid="issuableIid" /> + <time-tracking-report :limit-to-hours="limitToHours" :issuable-id="issuableId" /> </gl-modal> </template> <transition name="help-state-toggle"> diff --git a/app/assets/javascripts/sidebar/mount_sidebar.js b/app/assets/javascripts/sidebar/mount_sidebar.js index f53760eab93..67c72b17f1f 100644 --- a/app/assets/javascripts/sidebar/mount_sidebar.js +++ b/app/assets/javascripts/sidebar/mount_sidebar.js @@ -391,7 +391,7 @@ function mountSubscriptionsComponent() { function mountTimeTrackingComponent() { const el = document.getElementById('issuable-time-tracker'); - const { iid, fullPath, issuableType, timeTrackingLimitToHours } = getSidebarOptions(); + const { id, iid, fullPath, issuableType, timeTrackingLimitToHours } = getSidebarOptions(); if (!el) return; @@ -404,6 +404,7 @@ function mountTimeTrackingComponent() { createElement(SidebarTimeTracking, { props: { fullPath, + issuableId: id.toString(), issuableIid: iid.toString(), limitToHours: timeTrackingLimitToHours, }, |