more JSLint fixes

This commit is contained in:
Javier Abadia 2014-04-26 19:13:34 +02:00
parent 2e143c7b58
commit 6585928cf3
4 changed files with 120 additions and 98 deletions

View File

@ -1,4 +1,4 @@
"use strict"
"use strict";
/**
* Library for handling the storing of map tiles in IndexedDB.
@ -30,7 +30,7 @@ define([],function()
}
return true;
}
};
/**
* Adds an object to the database
@ -43,19 +43,19 @@ define([],function()
{
var transaction = this._db.transaction(["tilepath"],"readwrite");
transaction.oncomplete = function(event)
transaction.oncomplete = function()
{
callback(true);
};
transaction.onerror = function(event)
{
callback(false,event.target.error.message)
callback(false,event.target.error.message);
};
var objectStore = transaction.objectStore("tilepath");
var request = objectStore.put(urlDataPair);
request.onsuccess = function(event)
request.onsuccess = function()
{
//console.log("item added to db " + event.target.result);
};
@ -63,9 +63,9 @@ define([],function()
catch(err)
{
console.log("TilesStore: " + err.stack);
callback(false,err.stack);
callback(false, err.stack);
}
}
};
/**
* Retrieve a record.
@ -74,27 +74,29 @@ define([],function()
*/
this.retrieve = function(/* String */ url,callback)
{
if(this._db != null)
if(this._db !== null)
{
var objectStore = this._db.transaction(["tilepath"]).objectStore("tilepath");
var request = objectStore.get(url);
request.onsuccess = function(event)
{
var result = event.target.result;
if(result == null){
if(!result)
{
callback(false,"not found");
}
else{
else
{
callback(true,result);
}
}
};
request.onerror = function(err)
{
console.log(err);
callback(false,err);
}
callback(false, err);
};
}
}
};
/**
* Deletes entire database
@ -102,25 +104,25 @@ define([],function()
*/
this.deleteAll = function(callback)
{
if(this._db != null)
if(this._db !== null)
{
var request = this._db.transaction(["tilepath"],"readwrite")
.objectStore("tilepath")
.clear();
request.onsuccess = function(event)
request.onsuccess = function()
{
callback(true);
}
};
request.onerror = function(err)
{
callback(false,err);
}
callback(false, err);
};
}
else
{
callback(false,null);
}
}
};
/**
* Delete an individual entry
@ -129,23 +131,25 @@ define([],function()
*/
this.delete = function(/* String */ url,callback)
{
if(this._db != null)
if(this._db !== null)
{
var request = this._db.transaction(["tilepath"],"readwrite")
.objectStore("tilepath")
.delete(url);
request.onsuccess = function(event){
request.onsuccess = function()
{
callback(true);
}
request.onerror = function(err){
callback(false,err);
}
};
request.onerror = function(err)
{
callback(false, err);
};
}
else
{
callback(false,null);
}
}
};
/**
* Retrieve all tiles from indexeddb
@ -153,7 +157,7 @@ define([],function()
*/
this.getAllTiles = function(callback)
{
if(this._db != null){
if(this._db !== null){
var transaction = this._db.transaction(["tilepath"])
.objectStore("tilepath")
.openCursor();
@ -167,26 +171,28 @@ define([],function()
callback(url,img,null);
cursor.continue();
}
else{
else
{
callback(null, null, "end");
}
}.bind(this);
transaction.onerror = function(err){
transaction.onerror = function(err)
{
callback(null, null, err);
}
};
}
else
{
callback(null, null, "no db");
}
}
};
/**
* Provides the size of database in bytes
* @param callback callback(size, null) or callback(null, error)
*/
this.usedSpace = function(callback){
if(this._db != null){
if(this._db !== null){
var usage = { sizeBytes: 0, tileCount: 0 };
var transaction = this._db.transaction(["tilepath"])
@ -202,27 +208,30 @@ define([],function()
usage.tileCount += 1;
cursor.continue();
}
else{
else
{
callback(usage,null);
}
}.bind(this);
transaction.onerror = function(err){
callback(null,err);
}
transaction.onerror = function(err)
{
callback(null, err);
};
}
else{
else
{
callback(null,null);
}
}
};
this._stringBytes = function(str) {
return str.length /**2*/ ;
}
};
this.init = function(callback)
{
var request = indexedDB.open(DB_NAME, 4);
callback = callback? callback : function(success) { console.log("TilesStore::init() success:", success)}.bind(this);
callback = callback || function(success) { console.log("TilesStore::init() success:", success); }.bind(this);
request.onerror = function(event)
{
@ -239,7 +248,7 @@ define([],function()
db.deleteObjectStore("tilepath");
}
var objectStore = db.createObjectStore("tilepath", { keyPath: "url" });
db.createObjectStore("tilepath", { keyPath: "url" });
}.bind(this);
request.onsuccess = function(event)
@ -248,7 +257,7 @@ define([],function()
console.log("database opened successfully");
callback(true);
}.bind(this);
}
}
};
};
return TilesStore;
});

View File

@ -1,4 +1,4 @@
"use strict"
"use strict";
define([],function()
{

View File

@ -1,4 +1,4 @@
"use strict"
"use strict";
define([
"dojo/query",
@ -48,9 +48,13 @@ define([
};
if( /*false &&*/ layer.offline.store.isSupported() )
layer.offline.store.init(callback);
{
layer.offline.store.init(callback);
}
else
return callback(false, "indexedDB not supported");
{
return callback(false, "indexedDB not supported");
}
layer.resampling = false;
@ -91,7 +95,7 @@ define([
var img = query("img[src="+tileid+"]")[0];
var imgURL;
console.assert(typeof img != "undefined","undefined image detected");
console.assert(img !== "undefined", "undefined image detected");
if( success )
{
@ -134,7 +138,7 @@ define([
level: level,
tileCount: cellIds.length,
sizeBytes: cellIds.length * tileSize
}
};
return levelEstimation;
};
@ -151,8 +155,9 @@ define([
/* create list of tiles to store */
var tilingScheme = new TilingScheme(this,geometry);
var cells = [];
var level;
for(var level=minLevel; level<=maxLevel; level++)
for(level=minLevel; level<=maxLevel; level++)
{
var level_cell_ids = tilingScheme.getAllCellIdsInExtent(extent,level);
@ -162,7 +167,7 @@ define([
});
// if the number of requested tiles is excessive, we just stop
if( cells.length > 5000 && level != maxLevel)
if( cells.length > 5000 && level !== maxLevel)
{
console.log("enough is enough!");
break;
@ -217,7 +222,7 @@ define([
{
var store = this.offline.store;
store.deleteAll(callback);
}
};
/**
* Gets the size in bytes of the local tile cache.
@ -243,9 +248,9 @@ define([
if(url)
{
var components = url.split("/");
var level = parseInt(components[ components.length - 3]);
var col = parseInt(components[ components.length - 2]);
var row = parseInt(components[ components.length - 1]);
var level = parseInt(components[ components.length - 3],10);
var col = parseInt(components[ components.length - 2],10);
var row = parseInt(components[ components.length - 1],10);
var cellId = [row,col];
var polygon = tilingScheme.getCellPolygonFromCellId(cellId, level);
//if( level == 15)
@ -256,7 +261,7 @@ define([
callback(null,err);
}
});
}
};
/**
* Saves tile cache into a portable csv format.
@ -271,35 +276,33 @@ define([
csv.push("url,img");
store.getAllTiles(function(url,img,evt)
{
if(evt=="end")
if(evt==="end")
{
var blob = new Blob([ csv.join("\r\n") ], {type:"text/plain;charset=utf-8"});
var saver = FileSaver.saveAs(blob, fileName);
if( saver.readyState == saver.DONE )
if( saver.readyState === saver.DONE )
{
if( saver.error )
return callback(false,"Error saving file " + fileName);
else
return callback(true, "Saved " + (csv.length-1) + " tiles (" + Math.floor(blob.size / 1024 / 1024 * 100) / 100 + " Mb) into " + fileName);
}
else
{
saver.onerror = function(evt) {
callback(false,"Error saving file " + fileName);
}
saver.onwriteend = function(evt)
{
callback(true, "Saved " + (csv.length-1) + " tiles (" + Math.floor(blob.size / 1024 / 1024 * 100) / 100 + " Mb) into " + fileName);
return callback(false,"Error saving file " + fileName);
}
return callback(true, "Saved " + (csv.length-1) + " tiles (" + Math.floor(blob.size / 1024 / 1024 * 100) / 100 + " Mb) into " + fileName);
}
saver.onerror = function() {
callback(false,"Error saving file " + fileName);
};
saver.onwriteend = function()
{
callback(true, "Saved " + (csv.length-1) + " tiles (" + Math.floor(blob.size / 1024 / 1024 * 100) / 100 + " Mb) into " + fileName);
};
}
else
{
csv.push(url+","+img);
}
})
}
});
};
/**
* Reads a csv file into local tile cache.
@ -311,7 +314,7 @@ define([
console.log("reading",file);
var store = this.offline.store;
var layer = this;
var i;
if (window.File && window.FileReader && window.FileList && window.Blob)
{
@ -322,26 +325,31 @@ define([
var csvContent = evt.target.result;
var tiles = csvContent.split("\r\n");
var tileCount = 0;
var pair, tile;
if(tiles[0] != "url,img")
if(tiles[0] !== "url,img")
{
return callback(false, "File " + file.name + " doesn't contain tiles that can be loaded");
}
for(var i=1; i<tiles.length; i++)
for(i=1; i<tiles.length; i++)
{
var pair = tiles[i].split(',');
var tile = {
pair = tiles[i].split(',');
tile = {
url: pair[0],
img: pair[1]
}
};
console.log("read",tile.url);
store.store(tile,function(success)
{
console.log(".");
if( success )
{
tileCount += 1;
}
if( tileCount == tiles.length-1)
if( tileCount === tiles.length-1)
{
console.log("finished!");
window.setTimeout(function() { /* refresh layer by zooming in and out, or some way that really refreshes the layer */ }, 1000);
@ -356,7 +364,7 @@ define([
{
callback(false, 'The File APIs are not fully supported in this browser.');
}
}
};
/* internal methods */
@ -369,7 +377,8 @@ define([
*/
layer.estimateTileSize = function(callback)
{
if(layer._lastTileUrl){
if(layer._lastTileUrl)
{
var url = this.offline.proxyPath? this.offline.proxyPath + "?" + layer._lastTileUrl : layer._lastTileUrl;
request.get(url,{
handleAs: "text/plain; charset=x-user-defined",
@ -400,7 +409,7 @@ define([
extent.xmin -= buffer; extent.ymin -= buffer;
extent.xmax += buffer; extent.ymax += buffer;
return extent;
}
};
/**
* Helper method that returns an array of tile urls within a given extent and level
@ -413,16 +422,15 @@ define([
level_cell_ids.forEach(function(cell_id)
{
cells.push(layer.url + "/" + level + "/" + cell_id[1] + "/" + cell_id[0])
cells.push(layer.url + "/" + level + "/" + cell_id[1] + "/" + cell_id[0]);
}.bind(this));
return cells;
}
};
layer._doNextTile = function(i, cells, reportProgress)
{
var cell = cells[i];
var error;
this._storeTile(cell.level,cell.row,cell.col, function(success, error)
{
@ -434,13 +442,17 @@ define([
var cancelRequested = reportProgress({countNow:i, countMax:cells.length, cell: cell, error: error, finishedDownloading:false});
if( cancelRequested || i==cells.length-1 )
reportProgress({ finishedDownloading: true, cancelRequested: cancelRequested})
if( cancelRequested || i === cells.length-1 )
{
reportProgress({ finishedDownloading: true, cancelRequested: cancelRequested});
}
else
{
this._doNextTile(i+1, cells, reportProgress);
}
}.bind(this))
}
}.bind(this));
};
layer._storeTile = function(level,row,col,callback) // callback(success, msg)
{
@ -456,14 +468,14 @@ define([
req.onload = function()
{
if( req.status == 200 && req.responseText != "")
if( req.status === 200 && req.responseText !== "")
{
var img = Base64Utils.wordToBase64(Base64Utils.stringToWord(this.responseText));
var tile = {
url: url,
img: img
}
};
store.store(tile,callback);
}
@ -472,12 +484,12 @@ define([
console.log("xhr failed for", imgurl);
callback(false, req.status + " " + req.statusText + ": " + req.response + " when downloading " + imgurl);
}
}
};
req.onerror = function(e)
{
console.log("xhr failed for", imgurl);
callback(false, e);
}
};
req.send(null);
};
}

View File

@ -1,4 +1,4 @@
"use strict"
"use strict";
define([
"esri/geometry"
@ -8,7 +8,7 @@ define([
var TilingScheme = function(layer)
{
this.tileInfo = layer.tileInfo;
}
};
TilingScheme.prototype =
{
@ -37,7 +37,7 @@ define([
[x2,y1],
[x2,y2],
[x1,y2],
[x1,y1],
[x1,y1]
]);
return polygon;
},
@ -56,14 +56,15 @@ define([
var cellIds = [];
for(i=i0; i<=i1; i++)
{
for(j=j0; j<=j1; j++)
{
cellIds.push([i,j]);
}
}
return cellIds;
}
}
};
return TilingScheme;
});