Project

General

Profile

« Previous | Next » 

Revision 84a83d19

Added by Andreas Kohlbecker over 12 years ago

fixing #2565 ?

View differences:

modules/cdm_dataportal/js/cache_all_taxa.js
1 1
function CacheBot(searchTaxaUrl, taxonPageUrl, pageSize, progressCallback, readyCallback, doneCallback, errorCallback){
2
		
2

  
3 3
	var taxonPageUrl = taxonPageUrl;
4 4
	var searchTaxaUrl = searchTaxaUrl;
5 5
	var pageSize;
6
	
6

  
7 7
	var progress = 0;
8 8
	var i = 0;
9 9
	var doRun = false;
10
	
10

  
11 11
	var dataPager = null;
12
	
12

  
13 13
	this.elapsedMillies = 0;
14 14
	this.estimatedMillies = 0;
15
	
15

  
16 16
	/**
17 17
	 * Log to the Firebug Console if Firebug is available
18 18
	 * @param msg the massage to show in the firebug Console
......
23 23
			console.log(msg);
24 24
		}
25 25
	}
26
	
26

  
27 27
	/**
28
	 * 
28
	 *
29 29
	 * @param data
30 30
	 * @param statusText
31 31
	 * @return
......
40 40
	 	}
41 41
	 	elapsedMillies = 0;
42 42
	};
43
	
43

  
44 44
	/**
45
	 * 
45
	 *
46 46
	 * @param callback
47 47
	 * @return
48 48
	 */
......
56 56
			url: uri,
57 57
			dataType: 'json',
58 58
			cache: false, // browser will not cache
59
			success: callback, 
59
			success: callback,
60 60
			error: function(XMLHttpRequest, statusText ){
61 61
					stop();
62 62
					errorCallback(statusText, 'A network error occurred, please start again.', unescape(uri), true);
63 63
				}
64 64
		});
65 65
	}
66
	
66

  
67 67
	/**
68
	 * 
68
	 *
69 69
	 */
70 70
	this.run = function(lastMillies){
71
		
72
		 // 
71

  
72
		 //
73 73
		var now = new Date();
74 74
		var nowMillies = now.getTime();
75 75
		if(lastMillies != undefined){
76 76
			elapsedMillies += (nowMillies - lastMillies);
77 77
			estimatedMillies = (elapsedMillies / i) * dataPager.count;
78 78
		}
79
		
79

  
80 80
		var parent = this;
81 81
		// get next page of data
82 82
		if( i > dataPager.lastRecord - 1 && i < dataPager.count && dataPager.nextIndex != undefined){
......
124 124
			}
125 125
		}
126 126
	};
127
	
127

  
128 128
	/**
129
	 * 
129
	 *
130 130
	 */
131 131
	this.start =  function(){
132 132
			doRun = true;
133 133
			this.run();
134 134
		};
135
	
135

  
136 136
	/**
137
	 * 
138
	 */	
137
	 *
138
	 */
139 139
    this.stop = function(){
140 140
			doRun = false;
141 141
		};
142
		
142

  
143 143
	// get list of taxa and initialize the Bot
144 144
	progressCallback(0, null, null, "Initializing, please wait ...");
145 145
	requestNextDataPage(function(data, statusText){
......
151 151

  
152 152
$(document).ready(function() {
153 153

  
154
	var searchTaxaUrl = $('#cache_site [name=searchTaxaUrl]').val();
155
	var taxonPageUrl = $('#cache_site [name=taxonPageUrl]').val();
156
	
157
	$('#cache_site [name=start]').attr('disabled', 'disabled');
158
	$('#cache_site [name=stop]').attr('disabled', 'disabled');
159
	$('#cache_site #progress').css({background: '#012456', color: '#349AAF', fontSize: '100%', padding: '10px'})
160
    $('#cache_site #progress').html(
154
	var searchTaxaUrl = $('#cdm-settings-cache [name=searchTaxaUrl]').val();
155
	var taxonPageUrl = $('#cdm-settings-cache [name=taxonPageUrl]').val();
156

  
157
	$('#cdm-settings-cache [name=start]').attr('disabled', 'disabled');
158
	$('#cdm-settings-cache [name=stop]').attr('disabled', 'disabled');
159
	$('#cdm-settings-cache #progress').css({background: '#012456', color: '#349AAF', fontSize: '100%', padding: '10px'})
160
    $('#cdm-settings-cache #progress').html(
161 161
    		'<div id="usermessage" style="font-size:95%; width: 50%; float:right; font-weight:light; padding:10px; border-left: 1px solid; height: 3.9em;"></div>'
162 162
    		+'<div id="counter" style="font-size:300%; padding:10px;"></div>'
163 163
    		+'<div id="time" style="clear:both; border-top:1px solid #349AAF;"></div>'
164 164
    		+'<div id="log" style="border-top:1px solid #349AAF; font-size:85%; overflow: auto; white-space:nowrap;"></div>');
165
    
165

  
166 166
	var formatTime = function(date){
167 167
		var h = parseInt(date.getTime() / 1000 / 60 / 60);
168 168
		var m = parseInt( (date.getTime() / 1000/ 60) % 60);
......
170 170
		return '' + h +'h '+ m +'m '+ s +'s ';
171 171
	}
172 172

  
173
	
173

  
174 174
	var progressCallback = function(progress, elapsedTime, estimatedTime, userMessage){
175 175
		var percent = Math.floor(progress * 10000) / 100;
176 176
		$('#counter').text(percent + '%');
177 177
		if(elapsedTime != null){
178 178
			var timehtml =
179
				'elapsed time: ' + formatTime(elapsedTime) 
179
				'elapsed time: ' + formatTime(elapsedTime)
180 180
				+ '<br />estimated time: ' + formatTime(estimatedTime)
181 181
				+ '<br />remainig time: ' + formatTime(new Date(estimatedTime.getTime() - elapsedTime.getTime()));
182 182
			$('#time').html(timehtml);
......
185 185
			userMessage = '';
186 186
		}
187 187
		$('#usermessage').html(userMessage);
188
		
188

  
189 189
	}
190
	
190

  
191 191
	var readyCallback = function(message){
192
		$('#cache_site [name=start]').removeAttr('disabled');
192
		$('#cdm-settings-cache [name=start]').removeAttr('disabled');
193 193
		if(message != undefined){
194
			$('#cache_site').append('<div class="error">'+message+'</div>');
194
			$('#cdm-settings-cache').append('<div class="error">'+message+'</div>');
195 195

  
196 196
		}
197 197
	}
198
	
198

  
199 199
	var doneCallback = function(progress){
200 200
		var percent = Math.floor(progress * 10000) / 100;
201
		$('#cache_site #progress').text('DONE');
202
		$('#cache_site [name=stop]').removeAttr('disabled');
201
		$('#cdm-settings-cache #progress').text('DONE');
202
		$('#cdm-settings-cache [name=stop]').removeAttr('disabled');
203 203
	}
204
	
204

  
205 205
	var errorCallback = function(errorMessage, userMessage, taxonUrl, doStop){
206 206
		var logentry = '<div>' + errorMessage + ' : ' + taxonUrl + '' + '</div>';
207 207
		if($('#log div').length == 0){
208
			$('#log').html(logentry);			
208
			$('#log').html(logentry);
209 209
		} else {
210 210
			$('#log div:last').append(logentry)
211 211
		}
......
214 214
		}
215 215
		$('#usermessage').html(userMessage);
216 216
		if(doStop){
217
			$('#cache_site [name=stop]').attr('disabled', 'disabled');
218
			$('#cache_site [name=start]').removeAttr('disabled');
217
			$('#cdm-settings-cache [name=stop]').attr('disabled', 'disabled');
218
			$('#cdm-settings-cache [name=start]').removeAttr('disabled');
219 219
		}
220 220
	}
221
	
221

  
222 222
	var cacheBot = new CacheBot(searchTaxaUrl, taxonPageUrl, 25, progressCallback, readyCallback, doneCallback, errorCallback);
223 223

  
224
	$('#cache_site [name=start]').click(function(){
224
	$('#cdm-settings-cache [name=start]').click(function(){
225 225
		cacheBot.start();
226
		$('#cache_site [name=start]').attr('disabled', 'disabled');
227
		$('#cache_site [name=stop]').removeAttr('disabled');
226
		$('#cdm-settings-cache [name=start]').attr('disabled', 'disabled');
227
		$('#cdm-settings-cache [name=stop]').removeAttr('disabled');
228 228
		$('#usermessage').html(' ');
229 229
	}).attr('disabled', 'disabled');
230
	$('#cache_site [name=stop]').click(function(){
230
	$('#cdm-settings-cache [name=stop]').click(function(){
231 231
		cacheBot.stop();
232
		$('#cache_site [name=stop]').attr('disabled', 'disabled');
232
		$('#cdm-settings-cache [name=stop]').attr('disabled', 'disabled');
233 233
	}).attr('disabled', 'disabled');
234 234
});

Also available in: Unified diff