@crystaldesign/diva-backoffice 26.1.0-rc.0 → 26.1.0-rc.2

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.
@@ -33494,51 +33494,67 @@ function PublishCustomCell (_ref) {
33494
33494
  var unpublishedChanges = hasUnpublishedChanges(publishedData === null || publishedData === void 0 ? void 0 : publishedData.publishDate, data === null || data === void 0 ? void 0 : data.lastUpdatedDate);
33495
33495
  var disabled = isPublishing || !(data !== null && data !== void 0 && data.basedCatalogId) && !(data !== null && data !== void 0 && data.basedPackageId) || !(data !== null && data !== void 0 && data.name);
33496
33496
  var fetchOrganizationsWithAutomaticPublishing = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
33497
- var fields, url, response, result, allowedOrgIds, filtered, allOrgIds;
33497
+ var url, response, result, allowedOrgIds, currentOrg, currentOrgParentIds, filtered, allOrgIds;
33498
33498
  return _regeneratorRuntime.wrap(function _callee$(_context) {
33499
33499
  while (1) switch (_context.prev = _context.next) {
33500
33500
  case 0:
33501
33501
  setLoadingOrganizations(true);
33502
33502
  _context.prev = 1;
33503
33503
  // Request organizations with automaticPublishing field from their settings
33504
- fields = encodeURIComponent('{_id,displayName,automaticPublishing}');
33505
- url = apiConfig.authService + "/organizations/".concat(organizationId, "/related?fields=").concat(fields);
33506
- _context.next = 6;
33504
+ url = apiConfig.authService + "/organizations/".concat(organizationId, "/related");
33505
+ _context.next = 5;
33507
33506
  return fetch(url, {
33508
33507
  headers: {
33509
33508
  Authorization: "Bearer ".concat(root.dataStore.jwt),
33510
33509
  'Content-Type': 'application/json'
33511
33510
  }
33512
33511
  });
33513
- case 6:
33512
+ case 5:
33514
33513
  response = _context.sent;
33515
33514
  if (response.ok) {
33516
- _context.next = 9;
33515
+ _context.next = 8;
33517
33516
  break;
33518
33517
  }
33519
33518
  throw new Error("Failed to fetch organizations: ".concat(response.status));
33520
- case 9:
33521
- _context.next = 11;
33519
+ case 8:
33520
+ _context.next = 10;
33522
33521
  return response.json();
33523
- case 11:
33522
+ case 10:
33524
33523
  result = _context.sent;
33525
33524
  // Get allowed organization IDs from the package
33526
- allowedOrgIds = data.allowedOrganizationIds || []; // Show organizations that are:
33525
+ allowedOrgIds = data.allowedOrganizationIds || []; // Find current organization to get its parents
33526
+ currentOrg = (result.data || []).find(function (o) {
33527
+ return o._id === organizationId;
33528
+ });
33529
+ currentOrgParentIds = (currentOrg === null || currentOrg === void 0 ? void 0 : currentOrg.parentOrganizations) || []; // Show organizations that are:
33527
33530
  // 1. In package settings with AutomaticPublishing === true, OR
33528
- // 2. In allowedOrganizationIds AND have automaticPublishing === true in their own organization settings
33531
+ // 2. Has access to the package AND have automaticPublishing === true in their own organization settings
33529
33532
  filtered = (result.data || []).filter(function (org) {
33530
33533
  var _data$settings;
33531
33534
  // EXCLUDE the current organization
33532
33535
  if (org._id === organizationId) {
33533
33536
  return false;
33534
33537
  }
33535
-
33536
- // Check if organization is in package settings with AutomaticPublishing === true
33537
- var isInPackageSettingsWithAutomaticPublishing = ((_data$settings = data.settings) === null || _data$settings === void 0 || (_data$settings = _data$settings[org._id]) === null || _data$settings === void 0 ? void 0 : _data$settings.automaticPublishing) === true;
33538
-
33539
- // Check if organization is in allowedOrganizationIds AND has automaticPublishing === true in their own settings
33540
- var isInAllowedAndHasAutomaticPublishing = allowedOrgIds.includes(org._id) && org.automaticPublishing === true;
33541
- return isInPackageSettingsWithAutomaticPublishing || isInAllowedAndHasAutomaticPublishing;
33538
+ // EXCLUDE parents of the current organization
33539
+ if (currentOrgParentIds.includes(org._id)) {
33540
+ return false;
33541
+ }
33542
+ // EXCLUDE siblings and their children
33543
+ var orgParentIds = org.parentOrganizations || [];
33544
+ var isChild = orgParentIds.includes(organizationId);
33545
+ var isOfSiblingBranch = !isChild && currentOrgParentIds.some(function (parentId) {
33546
+ return orgParentIds.includes(parentId);
33547
+ });
33548
+ if (isOfSiblingBranch) {
33549
+ return false;
33550
+ }
33551
+ var hasAutomaticPublishingForPackage = ((_data$settings = data.settings) === null || _data$settings === void 0 || (_data$settings = _data$settings[org._id]) === null || _data$settings === void 0 ? void 0 : _data$settings.automaticPublishing) === true;
33552
+ var hasAccessToPackage = orgParentIds.includes(data.organizationId) || allowedOrgIds.includes(org._id) || allowedOrgIds.some(function (id) {
33553
+ return orgParentIds.includes(id);
33554
+ });
33555
+ var hasAutomaticPublishing = org.automaticPublishing === true;
33556
+ var hasAccessToPackageAndAutomaticPublishing = hasAccessToPackage && hasAutomaticPublishing;
33557
+ return hasAutomaticPublishingForPackage || hasAccessToPackageAndAutomaticPublishing;
33542
33558
  });
33543
33559
  setAvailableOrganizations(filtered);
33544
33560
  // Set all organizations as selected by default
@@ -33547,21 +33563,21 @@ function PublishCustomCell (_ref) {
33547
33563
  });
33548
33564
  setSelectedOrganizationIds(allOrgIds);
33549
33565
  return _context.abrupt("return", filtered);
33550
- case 20:
33551
- _context.prev = 20;
33566
+ case 21:
33567
+ _context.prev = 21;
33552
33568
  _context.t0 = _context["catch"](1);
33553
33569
  modalState.showErrorModal("Error fetching organizations: ".concat(_context.t0 instanceof Error ? _context.t0.message : String(_context.t0)));
33554
33570
  setAvailableOrganizations([]);
33555
33571
  return _context.abrupt("return", []);
33556
- case 25:
33557
- _context.prev = 25;
33572
+ case 26:
33573
+ _context.prev = 26;
33558
33574
  setLoadingOrganizations(false);
33559
- return _context.finish(25);
33560
- case 28:
33575
+ return _context.finish(26);
33576
+ case 29:
33561
33577
  case "end":
33562
33578
  return _context.stop();
33563
33579
  }
33564
- }, _callee, null, [[1, 20, 25, 28]]);
33580
+ }, _callee, null, [[1, 21, 26, 29]]);
33565
33581
  })), [apiConfig.authService, organizationId, root.dataStore.jwt, modalState, data.allowedOrganizationIds, data.settings]);
33566
33582
  var performPublish = React.useCallback(/*#__PURE__*/function () {
33567
33583
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(publish) {
@@ -34337,6 +34353,59 @@ var TablePackages = observer(function () {
34337
34353
  };
34338
34354
  }, [apiConfig.enricherService, organizationId]);
34339
34355
  var configuration = useMemo(function () {
34356
+ var automaticPublishingCheck = function automaticPublishingCheck(data) {
34357
+ var _root$dataStore$curre2, _dependingPackages, _data$settings;
34358
+ var createdInCurrentOrganization = (data === null || data === void 0 ? void 0 : data.organizationId) == organizationId;
34359
+ var automaticPublishingEnabled = (_root$dataStore$curre2 = root.dataStore.currentOrganization) === null || _root$dataStore$curre2 === void 0 || (_root$dataStore$curre2 = _root$dataStore$curre2.settings) === null || _root$dataStore$curre2 === void 0 ? void 0 : _root$dataStore$curre2.automaticPublishing;
34360
+
34361
+ // Collect dependingPackages in this org and all parent orgs
34362
+ var dependingPackages = [];
34363
+ if (Array.isArray(data === null || data === void 0 ? void 0 : data.dependingPackages)) {
34364
+ var _root$dataStore$curre3;
34365
+ // Current organization
34366
+ dependingPackages = data.dependingPackages.filter(function (p) {
34367
+ return p.organizationId == organizationId;
34368
+ });
34369
+
34370
+ // Parent organizations (if field available; fallback to currentOrganization.parentOrganizations)
34371
+ var parentOrgs = ((_root$dataStore$curre3 = root.dataStore.currentOrganization) === null || _root$dataStore$curre3 === void 0 ? void 0 : _root$dataStore$curre3.parentOrganizations) || [];
34372
+ parentOrgs.forEach(function (parentOrg) {
34373
+ var parentDepending = data.dependingPackages.filter(function (p) {
34374
+ return p.organizationId == parentOrg._id;
34375
+ });
34376
+ dependingPackages = dependingPackages.concat(parentDepending);
34377
+ });
34378
+ }
34379
+ if (createdInCurrentOrganization && !(data !== null && data !== void 0 && data.basedPackageId)) return {
34380
+ editable: false,
34381
+ value: false,
34382
+ tooltip: t('backoffice.idmEnricher.packages.tooltips.automaticPublishing.currentOrganization', {
34383
+ defaultValue: 'Das Paket wurde in dieser Organisation erstellt und basiered nicht auf einem anderen Paket. Bitte direkt veröffentlichen.'
34384
+ })
34385
+ };
34386
+ if (automaticPublishingEnabled && dependingPackages.length > 0) return {
34387
+ editable: false,
34388
+ value: false,
34389
+ tooltip: t('backoffice.idmEnricher.packages.tooltips.automaticPublishing.dependingPackage', {
34390
+ defaultValue: 'Es gibt ein oder mehrere Pakete, die auf diesem Paket basieren. Automatisches Veröffentlichen ist nur im letzten Package einer Organisation erlaubt. Die Pakete sind: {{packages}}',
34391
+ packages: (_dependingPackages = dependingPackages) === null || _dependingPackages === void 0 ? void 0 : _dependingPackages.map(function (p) {
34392
+ return p.packageName;
34393
+ }).join(', ')
34394
+ })
34395
+ };
34396
+ if (automaticPublishingEnabled && dependingPackages.length === 0) return {
34397
+ editable: false,
34398
+ value: true,
34399
+ tooltip: t('backoffice.idmEnricher.packages.tooltips.automaticPublishing.automaticPublishingEnabled', {
34400
+ defaultValue: 'Das automatisierte Veröffentlichen ist auf Organisationsebene aktiviert. Das Paket kann nicht deaktiviert werden.'
34401
+ })
34402
+ };
34403
+ return {
34404
+ editable: true,
34405
+ value: (_data$settings = data.settings) === null || _data$settings === void 0 || (_data$settings = _data$settings[organizationId]) === null || _data$settings === void 0 ? void 0 : _data$settings.automaticPublishing,
34406
+ tooltip: null
34407
+ };
34408
+ };
34340
34409
  return {
34341
34410
  type: 'dotnetSSM',
34342
34411
  apiInterface: apiInterface,
@@ -34496,10 +34565,19 @@ var TablePackages = observer(function () {
34496
34565
  cellDataType: 'boolean',
34497
34566
  editable: function editable(_ref8) {
34498
34567
  var data = _ref8.data;
34499
- return data.organizationId != organizationId || data.basedPackageId;
34568
+ return automaticPublishingCheck(data).editable;
34569
+ },
34570
+ valueGetter: function valueGetter(_ref9) {
34571
+ var data = _ref9.data;
34572
+ return automaticPublishingCheck(data).value;
34573
+ },
34574
+ tooltipValueGetter: function tooltipValueGetter(_ref10) {
34575
+ var data = _ref10.data;
34576
+ return automaticPublishingCheck(data).tooltip;
34500
34577
  },
34501
34578
  isDictionary: true,
34502
- defaultValue: false
34579
+ defaultValue: false,
34580
+ additionalFields: ['dependingPackages']
34503
34581
  }, {
34504
34582
  headerName: 'backoffice.idmEnricher.packages.label.isApi2',
34505
34583
  field: 'isApi',
@@ -1 +1 @@
1
- {"version":3,"file":"PublishCustomCell.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/modules/TablePackages/PublishCustomCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAOzE,OAAO,EAAE,SAAS,EAAkB,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAK9E,MAAM,CAAC,OAAO,WAAW,EACvB,IAAI,EACJ,SAAS,EACT,OAAO,EACP,GAAG,EACH,UAAU,EACV,cAAc,GACf,EAAE,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,0BAsNxH"}
1
+ {"version":3,"file":"PublishCustomCell.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/modules/TablePackages/PublishCustomCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAOzE,OAAO,EAAE,SAAS,EAAkB,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAK9E,MAAM,CAAC,OAAO,WAAW,EACvB,IAAI,EACJ,SAAS,EACT,OAAO,EACP,GAAG,EACH,UAAU,EACV,cAAc,GACf,EAAE,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,0BAsOxH"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/modules/TablePackages/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AA4BpD,eAAO,MAAM,aAAa;;CA4WxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/modules/TablePackages/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AA4BpD,eAAO,MAAM,aAAa;;CAiaxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crystaldesign/diva-backoffice",
3
- "version": "26.1.0-rc.0",
3
+ "version": "26.1.0-rc.2",
4
4
  "license": "COMMERCIAL",
5
5
  "devDependencies": {
6
6
  "@testing-library/jest-dom": "^6.5.0",
@@ -15,13 +15,13 @@
15
15
  "dependencies": {
16
16
  "@ant-design/icons": "6.1.0",
17
17
  "@babel/runtime": "7.24.7",
18
- "@crystaldesign/content-box": "26.1.0-rc.0",
19
- "@crystaldesign/content-item": "26.1.0-rc.0",
20
- "@crystaldesign/diva-core": "26.1.0-rc.0",
21
- "@crystaldesign/diva-utils": "26.1.0-rc.0",
22
- "@crystaldesign/media-upload": "26.1.0-rc.0",
23
- "@crystaldesign/rtf-editor": "26.1.0-rc.0",
24
- "@crystaldesign/spreadsheet": "26.1.0-rc.0",
18
+ "@crystaldesign/content-box": "26.1.0-rc.2",
19
+ "@crystaldesign/content-item": "26.1.0-rc.2",
20
+ "@crystaldesign/diva-core": "26.1.0-rc.2",
21
+ "@crystaldesign/diva-utils": "26.1.0-rc.2",
22
+ "@crystaldesign/media-upload": "26.1.0-rc.2",
23
+ "@crystaldesign/rtf-editor": "26.1.0-rc.2",
24
+ "@crystaldesign/spreadsheet": "26.1.0-rc.2",
25
25
  "@google/model-viewer": "3.5.0",
26
26
  "ag-charts-community": "^10.1.0",
27
27
  "ag-charts-react": "^10.1.0",
@@ -51,5 +51,5 @@
51
51
  },
52
52
  "module": "build/esm/index.js",
53
53
  "types": "./build/types/backoffice/src/index.d.ts",
54
- "gitHead": "55a187dfabbbfe8808d49715d7a95ce4ba079d18"
54
+ "gitHead": "c82c77201d6abad4d4a48a67f9b40a1fe3662b7c"
55
55
  }