From 1a254d0b75c5dc673b764441ae959ece4edd5237 Mon Sep 17 00:00:00 2001 From: Coung Ngo Date: Thu, 29 Apr 2021 17:45:54 +0100 Subject: [PATCH 1/2] Add missing things to issues page refactor Added behind `vue_issues_list` feature flag defaulted to off, as part of an ongoing refactor from Haml. This commit: - Adds `CLOSED` and `CLOSED (MOVED)` text to issue card - Adds closed and recently-created card styles - Disables `Edit issues` button when there are no issues - Hides CSV import/export buttons when user is not signed in - Shows `Weight` and `Blocking` sort options only when those features are available https://gitlab.com/gitlab-org/gitlab/-/issues/322755 --- .../components/issuable_item.vue | 19 ++- .../components/issues_list_app.vue | 30 ++++- .../javascripts/issues_list/constants.js | 83 ------------ app/assets/javascripts/issues_list/utils.js | 119 +++++++++++++++++- .../javascripts/lib/utils/datetime_utility.js | 3 + .../components/issuable_item_spec.js | 26 ++++ .../components/issues_list_app_spec.js | 44 ++++--- spec/frontend/issues_list/utils_spec.js | 34 +++++ 8 files changed, 254 insertions(+), 104 deletions(-) diff --git a/app/assets/javascripts/issuable_list/components/issuable_item.vue b/app/assets/javascripts/issuable_list/components/issuable_item.vue index 5d497369f5a5f5..bd2775c07b147d 100644 --- a/app/assets/javascripts/issuable_list/components/issuable_item.vue +++ b/app/assets/javascripts/issuable_list/components/issuable_item.vue @@ -3,7 +3,12 @@ import { GlLink, GlIcon, GlLabel, GlFormCheckbox, GlTooltipDirective } from '@gi import { getIdFromGraphQLId } from '~/graphql_shared/utils'; import { isScopedLabel } from '~/lib/utils/common_utils'; -import { getTimeago } from '~/lib/utils/datetime_utility'; +import { + differenceInSeconds, + getTimeago, + HOURS_IN_DAY, + SECONDS_IN_HOUR, +} from '~/lib/utils/datetime_utility'; import { isExternal, setUrlFragment } from '~/lib/utils/url_utility'; import { __, n__, sprintf } from '~/locale'; import IssuableAssignees from '~/vue_shared/components/issue/issue_assignees.vue'; @@ -50,6 +55,11 @@ export default { }, }, computed: { + createdInPastDay() { + const createdHoursAgo = + differenceInSeconds(new Date(this.issuable.createdAt), new Date()) / SECONDS_IN_HOUR; + return createdHoursAgo < HOURS_IN_DAY; + }, author() { return this.issuable.author; }, @@ -152,7 +162,12 @@ export default { + +