-
-
- 연결된 카테고리가 존재하므로 패키지 삭제가 불가합니다.
-
-
-
+
+
+ {{ $t('OPSFLOW.WORKSPACE') }}
+
+ {{ $t('OPSFLOW.CATEGORY') }}
+
+
+
+
+
+ {{ getStatusLabel(value) }}
+
+
+
+
+
+
+ {{ getStatusLabel(value) }}
+
+
+
diff --git a/apps/web/src/services/ops-flow/composables/use-category-field.ts b/apps/web/src/services/ops-flow/composables/use-category-field.ts
index 049644baa3..df7e7d2222 100644
--- a/apps/web/src/services/ops-flow/composables/use-category-field.ts
+++ b/apps/web/src/services/ops-flow/composables/use-category-field.ts
@@ -90,7 +90,6 @@ export const useCategoryField = ({
};
const prevSelectedCategoryItems = ref
([]);
- const prevSelectedCategoryIds = computed(() => prevSelectedCategoryItems.value.map((c) => c.name));
const setInitialCategoriesByPackageId = async (packageId?: string) => {
allCategoryItems.value = await loadAllCategoryItems();
prevSelectedCategoryItems.value = packageId ? categoryItemsByPackage.value[packageId] ?? [] : [];
@@ -139,9 +138,11 @@ export const useCategoryField = ({
throw new Error(`Failed to bind default package to categories:\n${errorMessages.join('\n')}`);
}
};
+ const addedCategoryItems = computed(() => selectedCategoryItems.value.filter((item) => !prevSelectedCategoryItems.value.some((c) => c.name === item.name)));
+ const removedCategoryItems = computed(() => prevSelectedCategoryItems.value.filter((item) => !selectedCategoryItems.value.some((c) => c.name === item.name)));
const applyPackageToCategories = async (packageId: string) => {
- const addedCategories = selectedCategoryIds.value.filter((id) => !prevSelectedCategoryIds.value.includes(id));
- const removedCategories = prevSelectedCategoryIds.value.filter((id) => !selectedCategoryIds.value.includes(id));
+ const addedCategories = addedCategoryItems.value.map((item) => item.name);
+ const removedCategories = removedCategoryItems.value.map((item) => item.name);
const responses = await Promise.allSettled([
addPackageToCategories(packageId, addedCategories),
bindDefaultPackageToCategories(removedCategories),
@@ -166,5 +167,7 @@ export const useCategoryField = ({
setInitialCategoriesByPackageId,
setInitialCategory,
applyPackageToCategories,
+ addedCategoryItems,
+ removedCategoryItems,
};
};
diff --git a/apps/web/src/services/ops-flow/composables/use-workspace-field.ts b/apps/web/src/services/ops-flow/composables/use-workspace-field.ts
index bfed271d34..ecc0bf226f 100644
--- a/apps/web/src/services/ops-flow/composables/use-workspace-field.ts
+++ b/apps/web/src/services/ops-flow/composables/use-workspace-field.ts
@@ -64,7 +64,6 @@ export const useWorkspaceField = () => {
};
const prevSelectedWorkspaceItems = ref([]);
- const prevSelectedWorkspaceIds = computed(() => prevSelectedWorkspaceItems.value.map((w) => w.name));
const setInitialWorkspaces = async (packageId?: string) => {
await workspaceReferenceStore.load();
prevSelectedWorkspaceItems.value = packageId ? workspaceItemsByPackage.value[packageId] ?? [] : [];
@@ -106,9 +105,11 @@ export const useWorkspaceField = () => {
throw new Error(`Failed to remove package from workspaces:\n${errorMessages.join('\n')}`);
}
};
+ const addedWorkspaceItems = computed(() => selectedWorkspaceItems.value.filter((item) => !prevSelectedWorkspaceItems.value.some((w) => w.name === item.name)));
+ const removedWorkspaceItems = computed(() => prevSelectedWorkspaceItems.value.filter((item) => !selectedWorkspaceItems.value.some((w) => w.name === item.name)));
const applyPackageToWorkspaces = async (packageId: string) => {
- const addedWorkspaces = selectedWorkspaceIds.value.filter((id) => !prevSelectedWorkspaceIds.value.includes(id));
- const removedWorkspaces = prevSelectedWorkspaceIds.value.filter((id) => !selectedWorkspaceIds.value.includes(id));
+ const addedWorkspaces = addedWorkspaceItems.value.map((item) => item.name);
+ const removedWorkspaces = removedWorkspaceItems.value.map((item) => item.name);
const responses = await Promise.allSettled([
addPackageToWorkspaces(packageId, addedWorkspaces),
removePackageFromWorkspaces(packageId, removedWorkspaces),
@@ -133,5 +134,7 @@ export const useWorkspaceField = () => {
setSelectedWorkspaces,
setInitialWorkspaces,
applyPackageToWorkspaces,
+ addedWorkspaceItems,
+ removedWorkspaceItems,
};
};
diff --git a/packages/language-pack/console-translation-2.8.babel b/packages/language-pack/console-translation-2.8.babel
index cc518ee7c0..84fefa2a58 100644
--- a/packages/language-pack/console-translation-2.8.babel
+++ b/packages/language-pack/console-translation-2.8.babel
@@ -77421,6 +77421,69 @@
PACKAGE
+
+ ADDED
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ ja-JP
+ false
+
+
+ ko-KR
+ false
+
+
+
+
+ AFFECTED_DESC
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ ja-JP
+ false
+
+
+ ko-KR
+ false
+
+
+
+
+ CHANGE_STATUS
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ ja-JP
+ false
+
+
+ ko-KR
+ false
+
+
+
DELETE_UNAVAILABLE
false
@@ -77463,6 +77526,27 @@
+
+ REMOVED
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ ja-JP
+ false
+
+
+ ko-KR
+ false
+
+
+
SET_DEFAULT_DESC
false
@@ -77526,6 +77610,27 @@
+
+ UNCHANGED
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ ja-JP
+ false
+
+
+ ko-KR
+ false
+
+
+
UNSET
false
@@ -77547,6 +77652,27 @@
+
+ UPDATE_CONFIRMATION
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ ja-JP
+ false
+
+
+ ko-KR
+ false
+
+
+
diff --git a/packages/language-pack/en.json b/packages/language-pack/en.json
index f32597cc42..f8046275ad 100644
--- a/packages/language-pack/en.json
+++ b/packages/language-pack/en.json
@@ -4239,12 +4239,18 @@
"DESC": "This groups types of {tasks}. Users select the appropriate category when submitting a {task}, helping the assignee manage {tasks} more efficiently."
},
"PACKAGE": {
+ "ADDED": "Added",
+ "AFFECTED_DESC": "The affected {workspace} and {category} are as follows.",
+ "CHANGE_STATUS": "Change Status",
"DELETE_UNAVAILABLE": "The package cannot be deleted because there are linked categories.",
"DESC": "A set of features provided to users based on their contract, representing the full scope of the service.",
+ "REMOVED": "Removed",
"SET_DEFAULT_DESC": "This will make it the primary package for related operations.",
"SET_TARGET_AS_DEFAULT": "Set {target} as the default package",
"SPECIFIC_WORKSPACE": "Specific Workspaces",
- "UNSET": "Unset"
+ "UNCHANGED": "Unchanged",
+ "UNSET": "Unset",
+ "UPDATE_CONFIRMATION": "Package Update Confirmation"
},
"STATUS": {
"DELETE_CONTINUE": "Deleting this status will automatically change the status of all associated {task} to {default}. Do you want to proceed?",
diff --git a/packages/language-pack/ja.json b/packages/language-pack/ja.json
index 1fa0225c8f..b07a7d4ffa 100644
--- a/packages/language-pack/ja.json
+++ b/packages/language-pack/ja.json
@@ -4239,12 +4239,18 @@
"DESC": ""
},
"PACKAGE": {
+ "ADDED": "",
+ "AFFECTED_DESC": "",
+ "CHANGE_STATUS": "",
"DELETE_UNAVAILABLE": "",
"DESC": "",
+ "REMOVED": "",
"SET_DEFAULT_DESC": "",
"SET_TARGET_AS_DEFAULT": "",
"SPECIFIC_WORKSPACE": "",
- "UNSET": ""
+ "UNCHANGED": "",
+ "UNSET": "",
+ "UPDATE_CONFIRMATION": ""
},
"STATUS": {
"DELETE_CONTINUE": "",
diff --git a/packages/language-pack/ko.json b/packages/language-pack/ko.json
index d04aa678fd..f79ddccdd3 100644
--- a/packages/language-pack/ko.json
+++ b/packages/language-pack/ko.json
@@ -4239,12 +4239,18 @@
"DESC": "이는 {tasks}의 유형을 그룹화한 것입니다. 사용자는 {task}{taskObjectParticle} 제출할 때 적절한 카테고리를 선택하여 담당자가 {tasks}{tasksObjectParticle} 더 효율적으로 관리할 수 있도록 돕습니다."
},
"PACKAGE": {
+ "ADDED": "추가됨",
+ "AFFECTED_DESC": "영향 받는 {workspace}와 {category}는 다음과 같습니다.",
+ "CHANGE_STATUS": "변경 여부",
"DELETE_UNAVAILABLE": "연결된 카테고리가 존재하므로 패키지 삭제가 불가합니다.",
"DESC": "계약에 따라 사용자에게 제공되는 기능의 집합으로, 전체 서비스의 범위를 나타냅니다.",
+ "REMOVED": "삭제됨",
"SET_DEFAULT_DESC": "이 패키지를 관련 작업에 사용할 기본 패키지로 변경합니다.",
"SET_TARGET_AS_DEFAULT": "{target} 패키지를 기본으로 설정",
"SPECIFIC_WORKSPACE": "워크스페이스 선택",
- "UNSET": "설정하지 않음"
+ "UNCHANGED": "변경 없음",
+ "UNSET": "설정하지 않음",
+ "UPDATE_CONFIRMATION": "패키지 변경사항 확인"
},
"STATUS": {
"DELETE_CONTINUE": "이 상태를 삭제하면 연결된 모든 {task}의 상태가 {default}로 일괄 변경됩니다. 계속 하시겠습니까?",