29
29
Ext . define ( "conjoon.dev.cn_mailsim.data.MessageItemSim" , {
30
30
31
31
extend : "Ext.ux.ajax.JsonSimlet" ,
32
-
32
+
33
33
requires : [
34
34
"conjoon.dev.cn_mailsim.data.table.MessageTable"
35
35
] ,
@@ -276,14 +276,23 @@ Ext.define("conjoon.dev.cn_mailsim.data.MessageItemSim", {
276
276
277
277
data : function ( ctx ) {
278
278
279
- var me = this ,
279
+ let me = this ,
280
280
keys = me . extractCompoundKey ( ctx . url ) ,
281
281
id ,
282
282
MessageTable = conjoon . dev . cn_mailsim . data . table . MessageTable ,
283
283
messageItems = MessageTable . getMessageItems ( ) ,
284
284
ret = { } ,
285
285
mailAccountId ,
286
- mailFolderId ;
286
+ mailFolderId ,
287
+ fields = ctx . params . attributes ? ctx . params . attributes . split ( "," ) : [ ] ,
288
+ messageItemIds = ctx . params . messageItemIds ? ctx . params . messageItemIds . split ( "," ) : [ ] ;
289
+
290
+ let excludeFields = [ ] ;
291
+
292
+ // * found, map excludeFields
293
+ if ( fields . indexOf ( "*" ) !== - 1 ) {
294
+ excludeFields = fields . filter ( field => field !== "*" ) ;
295
+ }
287
296
288
297
289
298
if ( [ "MessageBodyDraft" , "MessageItem" , "MessageBody" , "MessageDraft" ] . indexOf ( ctx . params . target ) === - 1 ) {
@@ -368,16 +377,35 @@ Ext.define("conjoon.dev.cn_mailsim.data.MessageItemSim", {
368
377
return { data : item } ;
369
378
370
379
} else if ( ! id ) {
371
-
380
+ /* eslint-disable-next-line no-console*/
381
+ console . log ( "GET MessageItems " , ctx , keys ) ;
372
382
var items = [ ] ;
373
383
for ( let i in messageItems ) {
374
384
let messageItem = messageItems [ i ] ;
375
385
if ( messageItem . mailAccountId === keys . mailAccountId &&
376
386
messageItem . mailFolderId === keys . mailFolderId ) {
387
+
388
+ if ( messageItemIds . length ) {
389
+ if ( messageItemIds . indexOf ( messageItem . id ) === - 1 ) {
390
+ continue ;
391
+ }
392
+ }
393
+
394
+ excludeFields . forEach ( field => delete messageItem [ field ] ) ;
395
+
377
396
items . push ( messageItem ) ;
378
397
}
379
398
}
380
399
400
+ /* eslint-disable-next-line no-console*/
401
+ console . log ( "GET MessageItems response" , items ) ;
402
+ if ( ! ctx . xhr . options || ! ctx . xhr . options . proxy ) {
403
+ // if we are here, then the simmanager detected no proxy and the
404
+ // items have to be wrapped in an object with the assumed proxy-reader's "rootProperty",
405
+ // since the request was not triggered
406
+ // from a store's proxy
407
+ return { data : items } ;
408
+ }
381
409
return items ;
382
410
} else {
383
411
return messageItems ;
@@ -504,4 +532,4 @@ Ext.define("conjoon.dev.cn_mailsim.data.MessageItemSim", {
504
532
}
505
533
506
534
507
- } ) ;
535
+ } ) ;
0 commit comments