From 1f49e32f412f5c6f0a0a8bd10a5a698fae842514 Mon Sep 17 00:00:00 2001 From: Abhilash Kotte Date: Tue, 8 Nov 2022 19:36:43 +0530 Subject: [PATCH] Allow creation & listing objectives in issues list Create objective via inline form above issues list Add objective type token to seach bar typetokens Link Objects to work-item show page Gaurded using FF okrs_mvc and in ultimate plan Issue: https://gitlab.com/gitlab-org/incubation-engineering/okr/meta/-/issues/9 --- .../list/components/issues_list_app.vue | 23 ++- .../javascripts/issues/list/constants.js | 5 + app/assets/javascripts/issues/list/index.js | 2 + .../list/components/issuable_list_root.vue | 1 + .../javascripts/work_items/constants.js | 5 +- .../list/components/issues_list_app.vue | 60 +++++++- .../components/create_work_item_objective.vue | 132 ++++++++++++++++++ .../list/components/issues_list_app_spec.js | 63 ++++++++- .../create_work_item_objective_spec.js | 118 ++++++++++++++++ ee/spec/frontend/work_items/mock_data.js | 50 +++++++ locale/gitlab.pot | 3 + 11 files changed, 450 insertions(+), 12 deletions(-) create mode 100644 ee/app/assets/javascripts/work_items/components/create_work_item_objective.vue create mode 100644 ee/spec/frontend/work_items/components/create_work_item_objective_spec.js create mode 100644 ee/spec/frontend/work_items/mock_data.js diff --git a/app/assets/javascripts/issues/list/components/issues_list_app.vue b/app/assets/javascripts/issues/list/components/issues_list_app.vue index 241b654df5c0f2..f9da68b8a9c2af 100644 --- a/app/assets/javascripts/issues/list/components/issues_list_app.vue +++ b/app/assets/javascripts/issues/list/components/issues_list_app.vue @@ -163,6 +163,16 @@ export default { required: false, default: () => [], }, + eeTypeTokenOptions: { + type: Array, + required: false, + default: () => [], + }, + eeWorkItemTypes: { + type: Array, + required: false, + default: () => [], + }, }, data() { return { @@ -239,14 +249,17 @@ export default { state: this.state, ...this.pageParams, ...this.apiFilterParams, - types: this.apiFilterParams.types || defaultWorkItemTypes, + types: this.apiFilterParams.types || this.defaultWorkItemTypes, }; }, namespace() { return this.isProject ? ITEM_TYPE.PROJECT : ITEM_TYPE.GROUP; }, + defaultWorkItemTypes() { + return [...defaultWorkItemTypes, ...this.eeWorkItemTypes]; + }, typeTokenOptions() { - return defaultTypeTokenOptions.concat(TYPE_TOKEN_TASK_OPTION); + return [...defaultTypeTokenOptions, TYPE_TOKEN_TASK_OPTION, ...this.eeTypeTokenOptions]; }, hasOrFeature() { return this.glFeatures.orIssuableQueries; @@ -872,7 +885,7 @@ export default { {{ issuable.downvotes }} - + + + +