1
1
import observer from '@cocreate/observer' ;
2
2
import crud from '@cocreate/crud-client' ;
3
- import action from '@cocreate/actions' ;
3
+ import actions from '@cocreate/actions' ;
4
4
import render from '@cocreate/render' ;
5
5
import '@cocreate/element-prototype' ;
6
6
@@ -263,14 +263,19 @@ async function fileFormAction(data) {
263
263
const action = data . name
264
264
const form = data . element . closest ( 'form' )
265
265
let inputs = form . querySelectorAll ( 'input[type="file"]' )
266
+ // if (action === 'export') {
267
+ // Export(inputs)
268
+ // } else if (action === 'download') {
269
+ // save(inputs[i])
270
+ // }
266
271
for ( let i = 0 ; i < inputs . length ; i ++ ) {
267
272
if ( action === 'upload' )
268
273
upload ( inputs [ i ] )
269
- else if ( action === 'download' || action === ' saveLocally' || action === 'saveAs' ) {
274
+ else if ( action === 'saveLocally' || action === 'saveAs' ) {
270
275
save ( inputs [ i ] )
271
276
}
272
277
else if ( action === 'export' ) {
273
- // Export(inputs[i])
278
+ Export ( inputs [ i ] )
274
279
}
275
280
else if ( action === 'import' ) {
276
281
Import ( inputs [ i ] )
@@ -405,7 +410,10 @@ async function Import(input) {
405
410
const data = files . reduce ( ( result , { src } ) => {
406
411
try {
407
412
const parsedSrc = JSON . parse ( src ) ;
408
- result . push ( parsedSrc ) ;
413
+ if ( Array . isArray ( parsedSrc ) )
414
+ result . push ( ...parsedSrc ) ;
415
+ else
416
+ result . push ( parsedSrc ) ;
409
417
} catch ( error ) {
410
418
console . error ( `Error parsing JSON: ${ error } ` ) ;
411
419
}
@@ -417,21 +425,41 @@ async function Import(input) {
417
425
return response
418
426
}
419
427
420
- async function Export ( btn ) {
421
- const item_id = btn . getAttribute ( 'template_id' ) ;
422
- let item = this . items . get ( item_id )
423
- if ( ! item ) return ;
428
+ async function Export ( btn , inputs ) {
429
+ let data = crud . getAttributes ( btn ) ;
430
+ const template_id = btn . getAttribute ( 'template_id' ) ;
424
431
432
+ if ( data . storage || data . database || data . collection ) {
433
+ let name = data . name
434
+ if ( data . document_id ) {
435
+ data . document = { _id : data . document_id }
436
+ delete data . document_id
437
+ delete data . name
438
+ }
439
+ data = await crud . readDocument ( data ) ;
425
440
426
- let Item = new Object ( item )
427
- Item . filter . startIndex = 0 ;
428
- delete Item . el
429
- delete Item . count
441
+ if ( name ) {
442
+ data = data . document [ 0 ] [ name ]
443
+ }
430
444
431
- let data ;
432
- if ( crud ) {
433
- data = await crud . readDocument ( Item ) ;
445
+ } else if ( template_id ) {
446
+ console . log ( 'export json data used to render templates' )
447
+ } else {
448
+ data = getFiles ( inputs )
434
449
}
450
+ // let item = this.items.get(item_id)
451
+ // if (!item) return;
452
+
453
+
454
+ // let Item = new Object(item)
455
+ // Item.filter.startIndex = 0;
456
+ // delete Item.el
457
+ // delete Item.count
458
+
459
+ // let data;
460
+ // if (crud) {
461
+ // data = await crud.readDocument(Item);
462
+ // }
435
463
// TODO: get from local data source
436
464
exportFile ( data ) ;
437
465
}
@@ -549,19 +577,20 @@ observer.init({
549
577
callback : mutation => renderFiles ( mutation . target )
550
578
} ) ;
551
579
552
- action . init ( {
553
- name : [ "upload" , "download" , "saveLocally" , "import" , "export" ] ,
554
- callback : ( data ) => {
555
- fileFormAction ( data )
556
- }
557
- } )
558
-
559
- action . init ( {
560
- name : [ "createFile" , "deleteFile" , "createDirectory" , "deleteDirectory" ] ,
561
- callback : ( data ) => {
562
- fileRenderAction ( data )
580
+ actions . init (
581
+ {
582
+ name : [ "upload" , "download" , "saveLocally" , "import" , "export" ] ,
583
+ callback : ( action ) => {
584
+ fileFormAction ( action )
585
+ }
586
+ } ,
587
+ {
588
+ name : [ "createFile" , "deleteFile" , "createDirectory" , "deleteDirectory" ] ,
589
+ callback : ( action ) => {
590
+ fileRenderAction ( action )
591
+ }
563
592
}
564
- } )
593
+ )
565
594
566
595
init ( )
567
596
0 commit comments