cabloy 5.1.167 → 5.1.169
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/.cabloy-version +1 -1
- package/CHANGELOG.md +13 -0
- package/package.json +1 -1
- package/repo-e2e/specs/cabloy-basic.spec.ts +75 -0
- package/vona/pnpm-lock.yaml +267 -53
- package/vona/src/suite/a-training/modules/training-record/src/entity/record.tsx +2 -0
- package/zova/packages-zova/zova/package.json +2 -2
- package/zova/pnpm-lock.yaml +113 -84
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/.metadata/component/routedDialog.ts +2 -1
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/component/routedDialog/controller.tsx +8 -2
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/service/appModal.ts +60 -8
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/types/appModal.ts +43 -8
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/.metadata/index.ts +6 -6
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/component/blockPage/controller.tsx +95 -10
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/component/blockTable/controller.tsx +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/config/locale/en-us.ts +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/config/locale/zh-cn.ts +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/index.ts +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/lib/selection.ts +35 -0
- package/zova/src/suite/cabloy-basic/modules/basic-page/test/lib/selection.test.ts +24 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/.metadata/component/blockResourcePickerActions.ts +34 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/.metadata/index.ts +30 -8
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/.metadata/locales.ts +7 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/component/blockResourcePickerActions/controller.tsx +92 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/component/formFieldResourcePicker/controller.tsx +224 -11
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/config/locale/en-us.ts +8 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/config/locale/zh-cn.ts +7 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/index.ts +2 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/lib/resourcePicker.ts +29 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/lib/resourcePickerPageHost.ts +64 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/test/lib/resourcePicker.test.ts +32 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/test/lib/resourcePickerPageHost.test.ts +94 -0
- package/zova/src/suite/cabloy-basic/modules/basic-table/src/component/table/render.tsx +18 -12
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/package.json +1 -1
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/.metadata/component/resourcePickerContext.ts +31 -0
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/.metadata/index.ts +48 -5
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/.metadata/page/resourcePicker.ts +16 -0
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/component/resourcePickerContext/controller.tsx +26 -0
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/index.ts +2 -0
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/lib/resourcePicker.ts +43 -0
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/page/resourcePicker/controller.tsx +85 -0
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/routes.ts +9 -0
- package/zova/src/suite-vendor/a-cabloy/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-bean/cli/controller/metadata/generateFileComponent.ts +40 -1
- package/zova/src/suite-vendor/a-zova/modules/a-bean/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-router/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-router/src/lib/routerViewBase.tsx +5 -0
- package/zova/src/suite-vendor/a-zova/modules/a-routerstack/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-routerstack/src/component/routerViewStack/controller.tsx +7 -1
- package/zova/src/suite-vendor/a-zova/modules/a-table/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/controller.tsx +2 -0
- package/zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/render.tsx +13 -10
- package/zova/src/suite-vendor/a-zova/package.json +5 -5
package/.cabloy-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.1.
|
|
1
|
+
5.1.169
|
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -765,6 +765,81 @@ test(
|
|
|
765
765
|
},
|
|
766
766
|
);
|
|
767
767
|
|
|
768
|
+
test(
|
|
769
|
+
'ATP-BASIC-RESOURCE-PICKER-01: Training Record selects and cancels a routed Student picker',
|
|
770
|
+
{ tag: ['@admin', '@flow'] },
|
|
771
|
+
async ({ page }) => {
|
|
772
|
+
const pageErrors = collectPageErrors(page);
|
|
773
|
+
await loginAsAdmin(page);
|
|
774
|
+
|
|
775
|
+
const studentName = `Resource Picker E2E ${Date.now()}`;
|
|
776
|
+
const accessToken = (await page.context().cookies()).find(
|
|
777
|
+
cookie => cookie.name === 'token',
|
|
778
|
+
)?.value;
|
|
779
|
+
expect(accessToken).toBeTruthy();
|
|
780
|
+
const headers = { Authorization: `Bearer ${accessToken}` };
|
|
781
|
+
let studentId: string | number | undefined;
|
|
782
|
+
try {
|
|
783
|
+
const createResponse = await page.request.post('/api/training/student', {
|
|
784
|
+
data: { name: studentName, mobile: '13812345678', level: 1 },
|
|
785
|
+
headers,
|
|
786
|
+
});
|
|
787
|
+
expect(createResponse.ok()).toBeTruthy();
|
|
788
|
+
studentId = (await createResponse.json()).data;
|
|
789
|
+
expect(['string', 'number']).toContain(typeof studentId);
|
|
790
|
+
|
|
791
|
+
const response = await page.goto('/admin/rest/resource/training-record%3Arecord/create', {
|
|
792
|
+
waitUntil: 'load',
|
|
793
|
+
});
|
|
794
|
+
expect(response?.ok()).toBeTruthy();
|
|
795
|
+
await expect(page.locator('html')).toHaveAttribute('data-zova-hydrated', 'admin');
|
|
796
|
+
const browserUrl = page.url();
|
|
797
|
+
const studentField = page.getByRole('group', { name: 'Student *', exact: true });
|
|
798
|
+
const pickerTrigger = studentField.locator('button');
|
|
799
|
+
await expect(pickerTrigger).toBeVisible();
|
|
800
|
+
|
|
801
|
+
const initialSelect = waitForStudentSelect(page);
|
|
802
|
+
await pickerTrigger.click();
|
|
803
|
+
const dialog = page.getByRole('dialog');
|
|
804
|
+
await expect(dialog).toHaveCount(1);
|
|
805
|
+
await initialSelect;
|
|
806
|
+
expect(page.url()).toBe(browserUrl);
|
|
807
|
+
|
|
808
|
+
const row = dialog.locator('tbody tr').filter({ hasText: studentName });
|
|
809
|
+
await expect(row).toHaveCount(1);
|
|
810
|
+
await expect(dialog.getByRole('button', { name: 'Create', exact: true })).toBeVisible();
|
|
811
|
+
await expect(dialog.getByRole('button', { name: 'Search', exact: true })).toBeVisible();
|
|
812
|
+
await expect(row.getByRole('radio', { name: /^Select row / })).toHaveCount(1);
|
|
813
|
+
|
|
814
|
+
await row.getByRole('radio', { name: /^Select row / }).check();
|
|
815
|
+
await expect(row).toHaveAttribute('aria-selected', 'true');
|
|
816
|
+
await expect(dialog.locator('span.text-sm[role="status"]')).toHaveText('Selected one item');
|
|
817
|
+
await expect(dialog.getByRole('button', { name: 'Select', exact: true })).toBeEnabled();
|
|
818
|
+
await dialog.getByRole('button', { name: 'Select', exact: true }).click();
|
|
819
|
+
await expect(dialog).toHaveCount(0);
|
|
820
|
+
await expect(pickerTrigger).toHaveText(studentName);
|
|
821
|
+
expect(page.url()).toBe(browserUrl);
|
|
822
|
+
|
|
823
|
+
await pickerTrigger.click();
|
|
824
|
+
await expect(dialog).toHaveCount(1);
|
|
825
|
+
await expect(row).toHaveCount(1);
|
|
826
|
+
await dialog.getByRole('button', { name: 'Cancel', exact: true }).click();
|
|
827
|
+
await expect(dialog).toHaveCount(0);
|
|
828
|
+
await expect(pickerTrigger).toHaveText(studentName);
|
|
829
|
+
expect(page.url()).toBe(browserUrl);
|
|
830
|
+
expect(pageErrors).toEqual([]);
|
|
831
|
+
} finally {
|
|
832
|
+
if (studentId !== undefined) {
|
|
833
|
+
const deleteResponse = await page.request.delete(
|
|
834
|
+
`/api/training/student/deleteForce/${studentId}`,
|
|
835
|
+
{ headers },
|
|
836
|
+
);
|
|
837
|
+
expect(deleteResponse.ok()).toBeTruthy();
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
},
|
|
841
|
+
);
|
|
842
|
+
|
|
768
843
|
test(
|
|
769
844
|
'ATP-BASIC-FORM-01: Training Student content remains in the Basic Information tab',
|
|
770
845
|
{ tag: ['@admin', '@flow'] },
|