@@ -136,7 +136,6 @@ export function useService(passwordDialogRef) {
136136 connection_type = 'remote' ;
137137 connected_file = file ;
138138
139- let coinsList = [ ] ;
140139 let collectionSettings = await initSettings ( ) ;
141140 let statusesList = [ ] ;
142141 let settingsDb = { } ;
@@ -171,9 +170,6 @@ export function useService(passwordDialogRef) {
171170 await globalStatus . startLoading ( 'Load collection' ) ;
172171
173172 try {
174- const responseCoins = await api . get ( '/api/coins' , { params : { f : file } } )
175- coinsList = responseCoins . data
176-
177173 const responseFilters = await api . get ( '/api/filters' , { params : { f : file } } )
178174 statusesList = responseFilters . data
179175 }
@@ -186,13 +182,12 @@ export function useService(passwordDialogRef) {
186182 }
187183 }
188184
189- return { collectionSettings, coinsList , statusesList} ;
185+ return { collectionSettings, statusesList} ;
190186 }
191187
192188 const openLocalFile = async ( file ) => {
193189 connection_type = 'local' ;
194190
195- let coinsList = [ ] ;
196191 let statusesList = [ ] ;
197192 let collectionSettings = await initSettings ( )
198193
@@ -232,18 +227,50 @@ export function useService(passwordDialogRef) {
232227 if ( versionValid ) {
233228 const passwordValid = await checkDbPassword ( collectionSettings )
234229 if ( passwordValid ) {
235- const sql = `
236- SELECT coins.id, images.image, title, status, subjectshort, value, unit, year, mintmark, series, country
237- FROM coins LEFT OUTER JOIN images ON images.id = coins.image
238- `
239- coinsList = await executeQuery ( sql )
240-
241230 const sql_statuses = 'SELECT DISTINCT status FROM coins' ;
242- statusesList = ( await executeQuery ( sql_statuses ) ) [ 0 ]
231+ statusesList = ( await executeQuery ( sql_statuses ) ) . flat ( )
243232 }
244233 }
245234
246- return { collectionSettings, coinsList, statusesList} ;
235+ return { collectionSettings, statusesList} ;
236+ }
237+
238+ const loadCoins = async ( statusFilter = null ) => {
239+ if ( connection_type === 'local' )
240+ return loadCoinsLocal ( statusFilter ) ;
241+ else if ( connection_type === 'remote' )
242+ return loadCoinsRemote ( statusFilter , connected_file ) ;
243+ }
244+
245+ const loadCoinsRemote = async ( statusFilter , file ) => {
246+ let coinsList = [ ] ;
247+
248+ try {
249+ const responseCoins = await api . get ( '/api/coins' , { params : { f : file , status_filter : statusFilter } } )
250+ coinsList = responseCoins . data
251+ }
252+ catch ( err ) {
253+ globalStatus . error . value = err
254+ }
255+
256+ return coinsList ;
257+ }
258+
259+ const loadCoinsLocal = async ( statusFilter ) => {
260+ let coinsList = [ ] ;
261+
262+ let sql = `
263+ SELECT coins.id, images.image, title, status, subjectshort, value, unit, year, mintmark, series, country
264+ FROM coins LEFT OUTER JOIN images ON images.id = coins.image
265+ `
266+ let params = [ ] ;
267+ if ( statusFilter ) {
268+ sql += ' WHERE status = ?' ;
269+ params . push ( statusFilter ) ;
270+ }
271+ coinsList = await executeQuery ( sql , params )
272+
273+ return coinsList ;
247274 }
248275
249276 const loadImage = async ( coinId , type ) => {
@@ -421,6 +448,7 @@ export function useService(passwordDialogRef) {
421448 getServerFileList,
422449 openRemoteFile,
423450 openLocalFile,
451+ loadCoins,
424452 loadImage,
425453 getDetails,
426454 getPhotos,
0 commit comments