Adds support of the indeterminate loading progress
This commit is contained in:
		
							parent
							
								
									da861bef30
								
							
						
					
					
						commit
						cd1a645881
					
				| @ -145,6 +145,7 @@ PdfDataListener.prototype = { | |||||||
|       } |       } | ||||||
|       this.data.set(chunk, this.loaded); |       this.data.set(chunk, this.loaded); | ||||||
|       this.loaded = willBeLoaded; |       this.loaded = willBeLoaded; | ||||||
|  |       this.onprogress(this.loaded); | ||||||
|     } else { |     } else { | ||||||
|       this.data.set(chunk, offset); |       this.data.set(chunk, offset); | ||||||
|       this.loaded = offset + chunk.length; |       this.loaded = offset + chunk.length; | ||||||
|  | |||||||
| @ -135,12 +135,10 @@ var WorkerMessageHandler = { | |||||||
|         { |         { | ||||||
|           url: source.url, |           url: source.url, | ||||||
|           progress: function getPDFProgress(evt) { |           progress: function getPDFProgress(evt) { | ||||||
|             if (evt.lengthComputable) { |             handler.send('DocProgress', { | ||||||
|               handler.send('DocProgress', { |               loaded: evt.loaded, | ||||||
|                 loaded: evt.loaded, |               total: evt.lengthComputable ? evt.total : void(0) | ||||||
|                 total: evt.total |             }); | ||||||
|               }); |  | ||||||
|             } |  | ||||||
|           }, |           }, | ||||||
|           error: function getPDFError(e) { |           error: function getPDFError(e) { | ||||||
|             handler.send('DocError', 'Unexpected server response of ' + |             handler.send('DocError', 'Unexpected server response of ' + | ||||||
|  | |||||||
| @ -1025,6 +1025,28 @@ canvas { | |||||||
|   border-bottom-right-radius: 2px; |   border-bottom-right-radius: 2px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | #loadingBar .progress.indeterminate { | ||||||
|  |   width: 100%; | ||||||
|  |   height: 25px; | ||||||
|  |   background-image: -moz-linear-gradient( 30deg, #404040, #404040 15%, #898989, #404040 85%, #404040); | ||||||
|  |   background-image: -webkit-linear-gradient( 30deg, #404040, #404040 15%, #898989, #404040 85%, #404040); | ||||||
|  |   background-image: -ms-linear-gradient( 30deg, #404040, #404040 15%, #898989, #404040 85%, #404040); | ||||||
|  |   background-image: -o-linear-gradient( 30deg, #404040, #404040 15%, #898989, #404040 85%, #404040); | ||||||
|  |   background-size: 75px 25px; | ||||||
|  |   -moz-animation: progressIndeterminate 1s linear infinite; | ||||||
|  |   -webkit-animation: progressIndeterminate 1s linear infinite; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @-moz-keyframes progressIndeterminate { | ||||||
|  |   from { background-position: 0px 0px; } | ||||||
|  |   to { background-position: 75px 0px; } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @-webkit-keyframes progressIndeterminate { | ||||||
|  |   from { background-position: 0px 0px; } | ||||||
|  |   to { background-position: 75px 0px; } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .textLayer { | .textLayer { | ||||||
|   position: absolute; |   position: absolute; | ||||||
|   left: 0; |   left: 0; | ||||||
|  | |||||||
| @ -60,7 +60,6 @@ var ProgressBar = (function ProgressBarClosure() { | |||||||
|     this.height = opts.height || 100; |     this.height = opts.height || 100; | ||||||
|     this.width = opts.width || 100; |     this.width = opts.width || 100; | ||||||
|     this.units = opts.units || '%'; |     this.units = opts.units || '%'; | ||||||
|     this.percent = opts.percent || 0; |  | ||||||
| 
 | 
 | ||||||
|     // Initialize heights
 |     // Initialize heights
 | ||||||
|     this.div.style.height = this.height + this.units; |     this.div.style.height = this.height + this.units; | ||||||
| @ -69,10 +68,18 @@ var ProgressBar = (function ProgressBarClosure() { | |||||||
|   ProgressBar.prototype = { |   ProgressBar.prototype = { | ||||||
| 
 | 
 | ||||||
|     updateBar: function ProgressBar_updateBar() { |     updateBar: function ProgressBar_updateBar() { | ||||||
|  |       if (this._indeterminate) { | ||||||
|  |         this.div.classList.add('indeterminate'); | ||||||
|  |         return; | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|       var progressSize = this.width * this._percent / 100; |       var progressSize = this.width * this._percent / 100; | ||||||
| 
 | 
 | ||||||
|       if (this._percent > 95) |       if (this._percent > 95) | ||||||
|         this.div.classList.add('full'); |         this.div.classList.add('full'); | ||||||
|  |       else | ||||||
|  |         this.div.classList.remove('full'); | ||||||
|  |       this.div.classList.remove('indeterminate'); | ||||||
| 
 | 
 | ||||||
|       this.div.style.width = progressSize + this.units; |       this.div.style.width = progressSize + this.units; | ||||||
|     }, |     }, | ||||||
| @ -82,6 +89,7 @@ var ProgressBar = (function ProgressBarClosure() { | |||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     set percent(val) { |     set percent(val) { | ||||||
|  |       this._indeterminate = isNaN(val); | ||||||
|       this._percent = clamp(val, 0, 100); |       this._percent = clamp(val, 0, 100); | ||||||
|       this.updateBar(); |       this.updateBar(); | ||||||
|     } |     } | ||||||
| @ -572,6 +580,10 @@ var PDFView = { | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     var loadingBox = document.getElementById('loadingBox'); | ||||||
|  |     loadingBox.setAttribute('hidden', 'true'); | ||||||
|  | 
 | ||||||
| //#if !(FIREFOX || MOZCENTRAL)
 | //#if !(FIREFOX || MOZCENTRAL)
 | ||||||
|     var errorWrapper = document.getElementById('errorWrapper'); |     var errorWrapper = document.getElementById('errorWrapper'); | ||||||
|     errorWrapper.removeAttribute('hidden'); |     errorWrapper.removeAttribute('hidden'); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user