@@ -14,6 +14,7 @@ package ru.mail.controller
1414 import flash.net.URLRequest ;
1515 import flash.system.Security ;
1616 import flash.utils.Timer ;
17+ import flash.utils.setTimeout ;
1718
1819 import ru.mail.commands.LoadFileCommand ;
1920 import ru.mail.commands.UploadCommand ;
@@ -97,6 +98,9 @@ package ru.mail.controller
9798 if (options[ "flashId" ] ) {
9899 JSCaller. flashId = options[ "flashId" ];
99100 }
101+ // abort timeout
102+ _model . timeout = options[ "timeout" ];
103+ LoggerJS. log ("timeout=" + _model . timeout );
100104
101105 setupChain();
102106 configureListeners();
@@ -630,12 +634,13 @@ package ru.mail.controller
630634 * @param fileID
631635 *
632636 */
633- public function cancelFile (fileID :String ):void
637+ public function cancelFile (fileID :String , force : Boolean = false ):void
634638 {
635639 trace ("{AppController} - cancelFile" , fileID);
636640
637641 var file : BaseFileVO = _model . filesBuilder. getFileByID(fileID);
638642 if (! file ) {
643+ LoggerJS. log ("abort: file with id " + fileID + " doen't exist" );
639644 trace ("file with id " + fileID + " doen't exist" );
640645 return ;
641646 }
@@ -646,9 +651,17 @@ package ru.mail.controller
646651 if (file . loadCommand) {
647652 (file . loadCommand as LoadFileCommand). cancel ();
648653 }
649- _model . filesBuilder. removeFile(file );
650- file = null ;
651- LoggerJS. log ("abort complete" );
654+ if (_model . timeout && ! force) {
655+ LoggerJS. log ("abort remove set timeout" );
656+ file . timeout = setTimeout(function (_model : AttachmentsModel, file : BaseFileVO): void {
657+ LoggerJS. log ("abort remove on timeout" );
658+ _model . filesBuilder. removeFile(file );
659+ },_model . timeout , _model , file );
660+ } else {
661+ LoggerJS. log ("abort remove immediately" );
662+ _model . filesBuilder. removeFile(file );
663+ file = null ;
664+ }
652665 }
653666
654667 /**
@@ -660,7 +673,7 @@ package ru.mail.controller
660673 var files: Vector .< BaseFileVO> = _model . filesBuilder. items ;
661674
662675 for each (var file : BaseFileVO in files) {
663- cancelFile(file . fileID);
676+ cancelFile(file . fileID, true );
664677 }
665678 _model . filesBuilder. removeAllFiles();
666679 }
0 commit comments