@open-mercato/core 0.6.4-develop.4199.1.86677441c2 → 0.6.4-develop.4210.1.d412061cfe
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/dist/modules/api_docs/frontend/docs/api/Explorer.js +14 -14
- package/dist/modules/api_docs/frontend/docs/api/Explorer.js.map +2 -2
- package/dist/modules/attachments/components/AttachmentContentPreview.js +2 -2
- package/dist/modules/attachments/components/AttachmentContentPreview.js.map +2 -2
- package/dist/modules/audit_logs/backend/audit-logs/page.js +3 -3
- package/dist/modules/audit_logs/backend/audit-logs/page.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js +3 -7
- package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js.map +2 -2
- package/dist/modules/customers/components/detail/ActivityCard.js +2 -2
- package/dist/modules/customers/components/detail/ActivityCard.js.map +2 -2
- package/dist/modules/customers/components/detail/AssignRoleDialog.js +34 -49
- package/dist/modules/customers/components/detail/AssignRoleDialog.js.map +2 -2
- package/dist/modules/customers/components/detail/ChangelogEntryRow.js +2 -2
- package/dist/modules/customers/components/detail/ChangelogEntryRow.js.map +2 -2
- package/dist/modules/customers/components/detail/CompanyDetailHeader.js +10 -1
- package/dist/modules/customers/components/detail/CompanyDetailHeader.js.map +2 -2
- package/dist/modules/customers/components/detail/DealLinkedEntitiesTab.js +7 -51
- package/dist/modules/customers/components/detail/DealLinkedEntitiesTab.js.map +2 -2
- package/dist/modules/customers/components/detail/DetailTabsLayout.js +1 -1
- package/dist/modules/customers/components/detail/DetailTabsLayout.js.map +2 -2
- package/dist/modules/customers/components/detail/ManageTagsDialog.js +25 -33
- package/dist/modules/customers/components/detail/ManageTagsDialog.js.map +2 -2
- package/dist/modules/customers/components/detail/PersonCard.js +3 -2
- package/dist/modules/customers/components/detail/PersonCard.js.map +2 -2
- package/dist/modules/customers/components/detail/PersonDetailHeader.js +3 -2
- package/dist/modules/customers/components/detail/PersonDetailHeader.js.map +2 -2
- package/dist/modules/customers/components/detail/RoleAssignmentRow.js +4 -5
- package/dist/modules/customers/components/detail/RoleAssignmentRow.js.map +2 -2
- package/dist/modules/customers/components/detail/utils.js +0 -7
- package/dist/modules/customers/components/detail/utils.js.map +2 -2
- package/dist/modules/customers/widgets/injection/ai-assistant-trigger/widget.client.js +3 -8
- package/dist/modules/customers/widgets/injection/ai-assistant-trigger/widget.client.js.map +2 -2
- package/dist/modules/dictionaries/components/AppearanceSelector.js +3 -4
- package/dist/modules/dictionaries/components/AppearanceSelector.js.map +2 -2
- package/dist/modules/integrations/backend/integrations/[id]/page.js +17 -17
- package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
- package/dist/modules/planner/backend/planner/availability-rulesets/[id]/page.js +1 -1
- package/dist/modules/planner/backend/planner/availability-rulesets/[id]/page.js.map +2 -2
- package/dist/modules/planner/components/AvailabilityRulesEditor.js +65 -1
- package/dist/modules/planner/components/AvailabilityRulesEditor.js.map +2 -2
- package/dist/modules/planner/lib/deleteAvailabilityRuleSet.js +20 -0
- package/dist/modules/planner/lib/deleteAvailabilityRuleSet.js.map +7 -0
- package/dist/modules/resources/backend/resources/resources/[id]/page.js +2 -2
- package/dist/modules/resources/backend/resources/resources/[id]/page.js.map +2 -2
- package/dist/modules/sales/api/quotes/accept/route.js +14 -37
- package/dist/modules/sales/api/quotes/accept/route.js.map +3 -3
- package/dist/modules/sales/backend/sales/channels/[channelId]/edit/page.js +1 -1
- package/dist/modules/sales/backend/sales/channels/[channelId]/edit/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/documents/[id]/page.js +1 -1
- package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
- package/dist/modules/sales/commands/documents.js +6 -2
- package/dist/modules/sales/commands/documents.js.map +2 -2
- package/dist/modules/staff/backend/staff/team-members/[id]/page.js +3 -2
- package/dist/modules/staff/backend/staff/team-members/[id]/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +1 -1
- package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
- package/dist/modules/translations/components/TranslationDrawerAction.js +27 -65
- package/dist/modules/translations/components/TranslationDrawerAction.js.map +2 -2
- package/dist/modules/translations/components/TranslationManager.js +2 -2
- package/dist/modules/translations/components/TranslationManager.js.map +2 -2
- package/dist/modules/translations/widgets/injection/translation-manager/widget.client.js +54 -92
- package/dist/modules/translations/widgets/injection/translation-manager/widget.client.js.map +2 -2
- package/package.json +7 -7
- package/src/modules/api_docs/frontend/docs/api/Explorer.tsx +14 -14
- package/src/modules/attachments/components/AttachmentContentPreview.tsx +2 -2
- package/src/modules/audit_logs/backend/audit-logs/page.tsx +3 -3
- package/src/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.tsx +4 -8
- package/src/modules/customers/components/detail/ActivityCard.tsx +2 -4
- package/src/modules/customers/components/detail/AssignRoleDialog.tsx +28 -55
- package/src/modules/customers/components/detail/ChangelogEntryRow.tsx +6 -4
- package/src/modules/customers/components/detail/CompanyDetailHeader.tsx +7 -3
- package/src/modules/customers/components/detail/DealLinkedEntitiesTab.tsx +11 -49
- package/src/modules/customers/components/detail/DetailTabsLayout.tsx +1 -1
- package/src/modules/customers/components/detail/ManageTagsDialog.tsx +27 -36
- package/src/modules/customers/components/detail/PersonCard.tsx +3 -4
- package/src/modules/customers/components/detail/PersonDetailHeader.tsx +3 -4
- package/src/modules/customers/components/detail/RoleAssignmentRow.tsx +4 -7
- package/src/modules/customers/components/detail/utils.ts +0 -7
- package/src/modules/customers/widgets/injection/ai-assistant-trigger/widget.client.tsx +4 -9
- package/src/modules/dictionaries/components/AppearanceSelector.tsx +3 -4
- package/src/modules/integrations/backend/integrations/[id]/page.tsx +21 -21
- package/src/modules/planner/backend/planner/availability-rulesets/[id]/page.tsx +1 -1
- package/src/modules/planner/components/AvailabilityRulesEditor.tsx +62 -0
- package/src/modules/planner/lib/deleteAvailabilityRuleSet.ts +35 -0
- package/src/modules/resources/backend/resources/resources/[id]/page.tsx +2 -2
- package/src/modules/sales/api/quotes/accept/route.ts +22 -38
- package/src/modules/sales/backend/sales/channels/[channelId]/edit/page.tsx +1 -1
- package/src/modules/sales/backend/sales/documents/[id]/page.tsx +1 -1
- package/src/modules/sales/commands/documents.ts +16 -2
- package/src/modules/staff/backend/staff/team-members/[id]/page.tsx +3 -2
- package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +1 -1
- package/src/modules/staff/i18n/de.json +5 -0
- package/src/modules/staff/i18n/en.json +5 -0
- package/src/modules/staff/i18n/es.json +5 -0
- package/src/modules/staff/i18n/pl.json +5 -0
- package/src/modules/translations/components/TranslationDrawerAction.tsx +31 -66
- package/src/modules/translations/components/TranslationManager.tsx +2 -2
- package/src/modules/translations/widgets/injection/translation-manager/widget.client.tsx +53 -84
|
@@ -26,7 +26,9 @@ import {
|
|
|
26
26
|
} from "@open-mercato/core/modules/planner/components/unavailabilityReasons";
|
|
27
27
|
import { useT } from "@open-mercato/shared/lib/i18n/context";
|
|
28
28
|
import { useConfirmDialog } from "@open-mercato/ui/backend/confirm-dialog";
|
|
29
|
+
import { normalizeCrudServerError } from "@open-mercato/ui/backend/utils/serverErrors";
|
|
29
30
|
import { parseAvailabilityRuleWindow } from "@open-mercato/core/modules/planner/lib/availabilitySchedule";
|
|
31
|
+
import { deleteAvailabilityRuleSet } from "@open-mercato/core/modules/planner/lib/deleteAvailabilityRuleSet";
|
|
30
32
|
import { CrudForm } from "@open-mercato/ui/backend/CrudForm";
|
|
31
33
|
import { Calendar, Clock, List, PencilLine, Plus, Trash2 } from "lucide-react";
|
|
32
34
|
import {
|
|
@@ -272,6 +274,7 @@ function AvailabilityRulesEditor({
|
|
|
272
274
|
initialTimezone,
|
|
273
275
|
rulesetId,
|
|
274
276
|
onRulesetChange,
|
|
277
|
+
allowRuleSetDelete,
|
|
275
278
|
buildScheduleItems,
|
|
276
279
|
loadBookedEvents,
|
|
277
280
|
readOnly,
|
|
@@ -379,6 +382,11 @@ function AvailabilityRulesEditor({
|
|
|
379
382
|
ruleSetCreateTimezoneLabel: t(`${labelPrefix}.availability.ruleset.createTimezone`, "Timezone"),
|
|
380
383
|
ruleSetCreateSuccess: t(`${labelPrefix}.availability.ruleset.createSuccess`, "Schedule saved."),
|
|
381
384
|
ruleSetCreateError: t(`${labelPrefix}.availability.ruleset.createError`, "Failed to save schedule."),
|
|
385
|
+
ruleSetDelete: t(`${labelPrefix}.availability.ruleset.delete`, "Delete schedule"),
|
|
386
|
+
ruleSetDeleteConfirm: t(`${labelPrefix}.availability.ruleset.deleteConfirm`, 'Delete schedule "{{name}}"?'),
|
|
387
|
+
ruleSetDeleteSubmit: t(`${labelPrefix}.availability.ruleset.deleteSubmit`, "Delete"),
|
|
388
|
+
ruleSetDeleteSuccess: t(`${labelPrefix}.availability.ruleset.deleteSuccess`, "Schedule deleted."),
|
|
389
|
+
ruleSetDeleteError: t(`${labelPrefix}.availability.ruleset.deleteError`, "Failed to delete schedule."),
|
|
382
390
|
editTitle: t(`${modeBase}.form.title.edit`, "Edit availability"),
|
|
383
391
|
addTitle: t(`${modeBase}.form.title.create`, "Add availability"),
|
|
384
392
|
applyLabel: t(`${labelPrefix}.availability.actions.apply`, "Apply"),
|
|
@@ -879,6 +887,46 @@ function AvailabilityRulesEditor({
|
|
|
879
887
|
refreshAvailability,
|
|
880
888
|
isReadOnly
|
|
881
889
|
]);
|
|
890
|
+
const handleDeleteRuleSet = React.useCallback(async () => {
|
|
891
|
+
if (isReadOnly || !onRulesetChange || !rulesetId) return;
|
|
892
|
+
const selected = ruleSets.find((entry) => entry.id === rulesetId);
|
|
893
|
+
const name = selected?.name ?? rulesetId;
|
|
894
|
+
await deleteAvailabilityRuleSet({
|
|
895
|
+
ruleSetId: rulesetId,
|
|
896
|
+
confirmDelete: () => confirm({
|
|
897
|
+
title: listLabels.ruleSetDeleteConfirm.replace("{{name}}", name),
|
|
898
|
+
confirmText: listLabels.ruleSetDeleteSubmit,
|
|
899
|
+
variant: "destructive"
|
|
900
|
+
}),
|
|
901
|
+
deleteRuleSet: async (id) => {
|
|
902
|
+
await deleteCrud("planner/availability-rule-sets", id, { errorMessage: listLabels.ruleSetDeleteError });
|
|
903
|
+
},
|
|
904
|
+
clearAssignment: async () => {
|
|
905
|
+
setCustomOverridesEnabled(false);
|
|
906
|
+
await onRulesetChange(null);
|
|
907
|
+
await refreshAvailability();
|
|
908
|
+
},
|
|
909
|
+
refreshRuleSets,
|
|
910
|
+
onSuccess: () => flash(listLabels.ruleSetDeleteSuccess, "success"),
|
|
911
|
+
onError: (error2) => {
|
|
912
|
+
console.error("planner.availability-rule-sets.delete", error2);
|
|
913
|
+
const normalized = normalizeCrudServerError(error2);
|
|
914
|
+
flash(normalized.message ?? listLabels.ruleSetDeleteError, "error");
|
|
915
|
+
}
|
|
916
|
+
});
|
|
917
|
+
}, [
|
|
918
|
+
confirm,
|
|
919
|
+
isReadOnly,
|
|
920
|
+
listLabels.ruleSetDeleteConfirm,
|
|
921
|
+
listLabels.ruleSetDeleteError,
|
|
922
|
+
listLabels.ruleSetDeleteSubmit,
|
|
923
|
+
listLabels.ruleSetDeleteSuccess,
|
|
924
|
+
onRulesetChange,
|
|
925
|
+
refreshAvailability,
|
|
926
|
+
refreshRuleSets,
|
|
927
|
+
ruleSets,
|
|
928
|
+
rulesetId
|
|
929
|
+
]);
|
|
882
930
|
const ruleSetFormSchema = React.useMemo(
|
|
883
931
|
() => z.object({
|
|
884
932
|
name: z.string().min(1, t("ui.forms.errors.required", "Required"))
|
|
@@ -1198,7 +1246,23 @@ function AvailabilityRulesEditor({
|
|
|
1198
1246
|
listLabels.ruleSetCreateLabel
|
|
1199
1247
|
] }),
|
|
1200
1248
|
effectiveRulesetId && usingRuleSet ? /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: handleCustomize, disabled: isReadOnly, children: listLabels.ruleSetCustomize }) : null,
|
|
1201
|
-
effectiveRulesetId && !usingRuleSet ? /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: handleResetToRuleSet, disabled: isReadOnly, children: listLabels.ruleSetReset }) : null
|
|
1249
|
+
effectiveRulesetId && !usingRuleSet ? /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: handleResetToRuleSet, disabled: isReadOnly, children: listLabels.ruleSetReset }) : null,
|
|
1250
|
+
allowRuleSetDelete && rulesetId ? /* @__PURE__ */ jsxs(
|
|
1251
|
+
Button,
|
|
1252
|
+
{
|
|
1253
|
+
type: "button",
|
|
1254
|
+
variant: "destructive-outline",
|
|
1255
|
+
size: "sm",
|
|
1256
|
+
onClick: () => {
|
|
1257
|
+
void handleDeleteRuleSet();
|
|
1258
|
+
},
|
|
1259
|
+
disabled: isReadOnly,
|
|
1260
|
+
children: [
|
|
1261
|
+
/* @__PURE__ */ jsx(Trash2, { className: "size-4 mr-2", "aria-hidden": true }),
|
|
1262
|
+
listLabels.ruleSetDelete
|
|
1263
|
+
]
|
|
1264
|
+
}
|
|
1265
|
+
) : null
|
|
1202
1266
|
] }) : null,
|
|
1203
1267
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [
|
|
1204
1268
|
/* @__PURE__ */ jsx("span", { children: listLabels.timezoneLabel }),
|