Fix for FLUID-1947
Eli Cochran
eli at media.berkeley.edu
Mon Dec 15 06:22:26 UTC 2008
Mr. Clark,
Your changes look good. Excellent, in fact.
In thinking about that final afterFileComplete event, I realized that
there is one more minor little problem that can wait until after 0.6.
At the moment when the file errors, there is a call which hides the
total progressor and updates the Total status text. Unfortunately it
does a quick animation to 100% before it hides it even if the upload
was cancelled.
Thanks for the review and the improvements. Since yours is the last
patch, please commit. Although I suppose you should ask the king first.
- Eli
On Dec 13, 2008, at 9:30 AM, Colin Clark wrote:
> Eli,
>
> Wow, this is incredible detective work. Thanks very much for your
> clear overview of the issue.
>
> I gave your patch a detailed review, and it does indeed fix the
> issue. I found one thing that I think might be an error, and I made
> a few minor changes to improve readability. I've attached a new
> version of the patch to the FLUID-1947 issue:
>
> http://issues.fluidproject.org/browse/FLUID-1947
>
> So the one issue that I think might be an error is the removal of
> the call to the afterFileComplete event in stopDemo(). I believe we
> should still be firing an afterFileComplete event even if there was
> an error or the upload was stopped. In part, this will ensure that
> SWFUploadManager cleans up the state of the queue correctly. I put
> the call back in and tested, and it seems consistent with the
> behaviour of the server-backed version. Does this make sense, or am
> I missing something subtle here?
>
> Here's a summary of the other changes I made, all of which were
> minor readability tweaks:
>
> 1. I renamed pauseDemo to stopDemo to be consistent with the our
> naming conventions throughout the component.
> 3. I removed a unnecessary nested if statement in simulateUpload()
> by first checking if we're not uploading and bailing immediately.
> 4. I similarly removed a layer of indenting in finishUploading()
> using the same strategy.
>
> Can you take a look at this version of the patch and double-check
> that it is correct? If so, go ahead and commit.
>
> Colin
>
> On 12-Dec-08, at 8:33 PM, Eli Cochran wrote:
>
>> It took me a long time to get my head around FLUID-1947 but finally
>> I figured out that what was happening was because we insert a delay
>> between each file progress event. We do this to simulate what would
>> happen during and actual upload, and give the user a chance to
>> respond to the behavior of the component in a simulated upload.
>>
>> What was happening was that between the moment that we queued up
>> the next progress and the time that the progress actually happened,
>> the user could click the Stop Upload button thus firing a bunch of
>> other events. Depending on the timing of the click, different odd
>> things would happen.
>>
>> So instead of doing:
>>
>> check if we can progress
>> set next progress on the timer
>> timer fires next progress
>> next progress
>>
>>
>> We need to
>>
>> check if we can progress
>> set next progress on the timer
>> timer fires next progress
>> check if we can progress
>> next progress
>>
>> I also removed the delay on finishUploading because this was
>> another place where the user could slip an event in, and it wasn't
>> really necessary for the simulation. At the point that the
>> finishUpload fires, we should not wait but start in immediately
>> into the next file.
>>
>> And I switched the code to use that.queue.isUploading instead of
>> that.demoState.shouldPause which meant that pauseDemo could be
>> simplified a little bit and we're using a consistent variable to
>> checking the state of the upload.
>>
>> Obviously this needs a very detailed review.
>>
>> - Eli
>>
>>
>> <FLUID-1947.b.patch>
>>
>> . . . . . . . . . . . . . . . . . . .
>>
>> Eli Cochran
>> user interaction developer
>> ETS, UC Berkeley
>>
>>
>
> ---
> Colin Clark
> Technical Lead, Fluid Project
> Adaptive Technology Resource Centre, University of Toronto
> http://fluidproject.org
>
. . . . . . . . . . . . . . . . . . .
Eli Cochran
user interaction developer
ETS, UC Berkeley
More information about the fluid-work
mailing list