diff --git a/src/pages/RolesPage.vue b/src/pages/RolesPage.vue index 08777ce..c5c38b1 100644 --- a/src/pages/RolesPage.vue +++ b/src/pages/RolesPage.vue @@ -103,8 +103,20 @@ function handleSizeChange(nextSize: number): void { } async function fetchPermissions(): Promise { - const response: any = await permissionsApi.list({ page: 1, per_page: 500 }) - permissionOptions.value = response.data.data || [] + let nextPage = 1 + const all: any[] = [] + while (true) { + const response: any = await permissionsApi.list({ page: nextPage, per_page: 100 }) + const chunk = response.data.data || [] + all.push(...chunk) + const currentPage = Number(response.data.current_page || nextPage) + const lastPage = Number(response.data.last_page || currentPage) + if (currentPage >= lastPage) { + break + } + nextPage += 1 + } + permissionOptions.value = all } function openCreate(): void { diff --git a/src/pages/UsersPage.vue b/src/pages/UsersPage.vue index cbbfae6..26a7057 100644 --- a/src/pages/UsersPage.vue +++ b/src/pages/UsersPage.vue @@ -74,7 +74,7 @@ - + @@ -200,12 +200,24 @@ async function fetchList(): Promise { async function fetchOptions(): Promise { try { - const [rolesResponse, permissionsResponse]: any = await Promise.all([ + const [rolesResponse]: any = await Promise.all([ rolesApi.list({ page: 1, per_page: 100 }), - permissionsApi.list({ page: 1, per_page: 200 }), ]) roleOptions.value = rolesResponse.data.data || [] - permissionOptions.value = permissionsResponse.data.data || [] + let nextPage = 1 + const allPermissions: any[] = [] + while (true) { + const response: any = await permissionsApi.list({ page: nextPage, per_page: 100 }) + const chunk = response.data.data || [] + allPermissions.push(...chunk) + const currentPage = Number(response.data.current_page || nextPage) + const lastPage = Number(response.data.last_page || currentPage) + if (currentPage >= lastPage) { + break + } + nextPage += 1 + } + permissionOptions.value = allPermissions } catch (error: any) { roleOptions.value = [] permissionOptions.value = []