Skip to content

Commit

Permalink
Fixed assessment view filter (#64)
Browse files Browse the repository at this point in the history
  • Loading branch information
oxisto authored Nov 6, 2023
1 parent 653b99e commit e89f85d
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 24 deletions.
50 changes: 27 additions & 23 deletions src/routes/(app)/cloud/[id]/assessments/+page.svelte
Original file line number Diff line number Diff line change
@@ -1,38 +1,40 @@
<script lang="ts">
import StarterHint from '$lib/components/StarterHint.svelte';
import { CheckCircle, NoSymbol, QueueList, XCircle } from '@steeze-ui/heroicons';
import type { PageData } from './$types';
import { Icon } from '@steeze-ui/svelte-icon';
import type { AssessmentResult } from '$lib/api/assessment';
import Button from '$lib/components/Button.svelte';
import { page } from '$app/stores';
import { goto } from '$app/navigation';
import { page } from '$app/stores';
import type { AssessmentResult } from '$lib/api/assessment';
import AssessmentIcon from '$lib/components/AssessmentIcon.svelte';
import { Result } from 'postcss';
import Button from '$lib/components/Button.svelte';
import StarterHint from '$lib/components/StarterHint.svelte';
import { QueueList } from '@steeze-ui/heroicons';
import type { PageData } from './$types';
export let data: PageData;
$: currentPage = data.page ? data.page : 1;
let rowsPerPage = 9;
$: totalPages = Math.ceil(filteredData.length / rowsPerPage);
$: filteredData =
data.filterIds === undefined &&
(data.filterResourceId === undefined || data.filterResourceId === null)
? data.results
: data.results.filter((result) => {
return (
data.filterIds === undefined ||
(data.filterIds?.includes(result.id) &&
(data.filterResourceId === null ||
data.filterResourceId === undefined ||
result.resourceId.split('/')[result.resourceId.split('/').length - 1] ===
data.filterResourceId))
);
});
$: filteredData = filter(data.results, data.filterIds, data.filterResourceId);
$: currentData = paginate(filteredData, currentPage);
function filter(
results: AssessmentResult[],
ids: string[],
resourceId: string | null
): AssessmentResult[] {
if (ids.length > 0) {
results = results.filter((r) => ids.includes(r.id));
}
if (resourceId !== null) {
results = results.filter(
(r) => r.resourceId.split('/')[r.resourceId.split('/').length - 1] == resourceId
);
}
return results;
}
function paginate(results: AssessmentResult[], page: number) {
const startIndex = (page - 1) * rowsPerPage;
const endIndex = startIndex + rowsPerPage;
Expand Down Expand Up @@ -70,6 +72,8 @@
}
</script>

{data.filterResourceId}

{#if data.resources.length == 0}
<StarterHint type="assessment results" icon={QueueList}>
<span slot="component">Clouditor Assessment component</span>
Expand Down
2 changes: 1 addition & 1 deletion src/routes/(app)/cloud/[id]/assessments/+page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const load = (async ({ fetch, params, url }) => {
throw error(405, 'Required parameter missing');
}

const filterIds = url.searchParams.get('filterIds')?.split(',');
const filterIds = url.searchParams.get('filterIds')?.split(',') ?? [];
const filterResourceId = url.searchParams.get('filterResourceId');
const page = Number(url.searchParams.get('page'));
const results = await listCloudServiceAssessmentResults(params.id, fetch);
Expand Down

0 comments on commit e89f85d

Please sign in to comment.