@@ -5,7 +5,6 @@ import { CARD_LIMIT, Dependencies } from '$lib/constants';
55import type { PageLoad } from './$types' ;
66import { redirect } from '@sveltejs/kit' ;
77import { base } from '$app/paths' ;
8- import { isCloud } from '$lib/system' ;
98
109export const load : PageLoad = async ( { params, url, route, depends, parent } ) => {
1110 const { scopes } = await parent ( ) ;
@@ -20,26 +19,69 @@ export const load: PageLoad = async ({ params, url, route, depends, parent }) =>
2019 const offset = pageToOffset ( page , limit ) ;
2120 const search = getSearch ( url ) ;
2221
23- const projects = await sdk . forConsole . projects . list ( {
24- queries : [
25- Query . offset ( offset ) ,
26- Query . equal ( 'teamId' , params . organization ) ,
27- Query . limit ( limit ) ,
28- Query . orderDesc ( '' ) ,
29- Query . select ( [ '$id' , 'name' , 'platforms' , 'region' , ...( isCloud ? [ 'status' ] : [ ] ) ] )
30- ] ,
31- search : search || undefined
32- } ) ;
22+ const archivedPageRaw = parseInt ( url . searchParams . get ( 'archivedPage' ) || '1' , 10 ) ;
23+ const archivedPage =
24+ Number . isFinite ( archivedPageRaw ) && archivedPageRaw > 0 ? archivedPageRaw : 1 ;
25+ const archivedOffset = pageToOffset ( archivedPage , limit ) ;
26+ const [ activeProjects , archivedProjects , activeTotal , archivedTotal ] = await Promise . all ( [
27+ sdk . forConsole . projects . list ( {
28+ queries : [
29+ Query . offset ( offset ) ,
30+ Query . equal ( 'teamId' , params . organization ) ,
31+ Query . or ( [ Query . equal ( 'status' , 'active' ) , Query . isNull ( 'status' ) ] ) ,
32+ Query . limit ( limit ) ,
33+ Query . orderDesc ( '' )
34+ ] ,
35+ search : search || undefined
36+ } ) ,
37+ sdk . forConsole . projects . list ( {
38+ queries : [
39+ Query . offset ( archivedOffset ) ,
40+ Query . equal ( 'teamId' , params . organization ) ,
41+ Query . equal ( 'status' , 'archived' ) ,
42+ Query . limit ( limit ) ,
43+ Query . orderDesc ( '' )
44+ ] ,
45+ search : search || undefined
46+ } ) ,
47+ sdk . forConsole . projects . list ( {
48+ queries : [
49+ Query . equal ( 'teamId' , params . organization ) ,
50+ Query . or ( [ Query . equal ( 'status' , 'active' ) , Query . isNull ( 'status' ) ] )
51+ ] ,
52+ search : search || undefined
53+ } ) ,
54+ sdk . forConsole . projects . list ( {
55+ queries : [
56+ Query . equal ( 'teamId' , params . organization ) ,
57+ Query . equal ( 'status' , 'archived' )
58+ ] ,
59+ search : search || undefined
60+ } )
61+ ] ) ;
3362
3463 // set `default` if no region!
35- for ( const project of projects . projects ) {
64+ for ( const project of activeProjects . projects ) {
65+ project . region ??= 'default' ;
66+ }
67+ for ( const project of archivedProjects . projects ) {
3668 project . region ??= 'default' ;
3769 }
3870
3971 return {
4072 offset,
4173 limit,
42- projects,
74+ projects : {
75+ ...activeProjects ,
76+ projects : activeProjects . projects ,
77+ total : activeTotal . total
78+ } ,
79+ activeProjectsPage : activeProjects . projects ,
80+ archivedProjectsPage : archivedProjects . projects ,
81+ activeTotalOverall : activeTotal . total ,
82+ archivedTotalOverall : archivedTotal . total ,
83+ archivedOffset,
84+ archivedPage,
4385 search
4486 } ;
4587} ;
0 commit comments