|
3 | 3 | var IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange;
|
4 | 4 | var IDBCursor = window.IDBCursor || window.webkitIDBCursor;
|
5 | 5 | IDBCursor.PREV = IDBCursor.PREV || "prev";
|
6 |
| - IDBCursor.NEXT = IDBCursor.PREV || "next"; |
| 6 | + IDBCursor.NEXT = IDBCursor.NEXT || "next"; |
7 | 7 |
|
8 | 8 | /**
|
9 | 9 | * Best to use the constant IDBTransaction since older version support numeric types while the latest spec
|
|
56 | 56 | try {
|
57 | 57 | var idbRequest = typeof req === "function" ? req(args) : req;
|
58 | 58 | idbRequest.onsuccess = function(e){
|
59 |
| - console.log("Success", idbRequest, e, this); |
| 59 | + //console.log("Success", idbRequest, e, this); |
60 | 60 | dfd.resolveWith(idbRequest, [idbRequest.result, e]);
|
61 | 61 | };
|
62 | 62 | idbRequest.onerror = function(e){
|
63 |
| - console.log("Error", idbRequest, e, this); |
| 63 | + //console.log("Error", idbRequest, e, this); |
64 | 64 | dfd.rejectWith(idbRequest, [idbRequest.error, e]);
|
65 | 65 | };
|
66 | 66 | if (typeof idbRequest.onblocked !== "undefined" && idbRequest.onblocked === null) {
|
67 | 67 | idbRequest.onblocked = function(e){
|
68 |
| - console.log("Blocked", idbRequest, e, this); |
| 68 | + //console.log("Blocked", idbRequest, e, this); |
| 69 | + var res; |
69 | 70 | try {
|
70 |
| - var res = idbRequest.result; |
| 71 | + res = idbRequest.result; |
71 | 72 | } catch (e) {
|
72 | 73 | res = null; // Required for Older Chrome versions, accessing result causes error
|
73 | 74 | }
|
|
76 | 77 | }
|
77 | 78 | if (typeof idbRequest.onupgradeneeded !== "undefined" && idbRequest.onupgradeneeded === null) {
|
78 | 79 | idbRequest.onupgradeneeded = function(e){
|
79 |
| - console.log("Upgrade", idbRequest, e, this); |
| 80 | + //console.log("Upgrade", idbRequest, e, this); |
80 | 81 | dfd.notifyWith(idbRequest, [idbRequest.result, e]);
|
81 | 82 | };
|
82 | 83 | }
|
|
126 | 127 | return wrap.request(function(args){
|
127 | 128 | return idbObjectStore[op].apply(idbObjectStore, args);
|
128 | 129 | }, arguments);
|
129 |
| - } |
| 130 | + }; |
130 | 131 | })(crudOps[i]);
|
131 | 132 | }
|
132 | 133 |
|
|
148 | 149 |
|
149 | 150 | result.createIndex = function(prop, options, indexName){
|
150 | 151 | if (arguments.length === 2 && typeof options === "string") {
|
151 |
| - indexName = arguments[1] |
| 152 | + indexName = arguments[1]; |
152 | 153 | options = null;
|
153 | 154 | }
|
154 | 155 | if (!indexName) {
|
|
161 | 162 |
|
162 | 163 | result.deleteIndex = function(indexName){
|
163 | 164 | return idbObjectStore.deleteIndex(indexName);
|
164 |
| - } |
| 165 | + }; |
165 | 166 |
|
166 | 167 | return result;
|
167 | 168 | },
|
|
183 | 184 | "cursor": function(idbCursor, callback){
|
184 | 185 | return $.Deferred(function(dfd){
|
185 | 186 | try {
|
186 |
| - console.log("Cursor request created", idbCursor); |
| 187 | + //console.log("Cursor request created", idbCursor); |
187 | 188 | var cursorReq = typeof idbCursor === "function" ? idbCursor() : idbCursor;
|
188 | 189 | cursorReq.onsuccess = function(e){
|
189 |
| - console.log("Cursor successful"); |
| 190 | + //console.log("Cursor successful"); |
190 | 191 | if (!cursorReq.result) {
|
191 | 192 | dfd.resolveWith(cursorReq, [null, e]);
|
192 | 193 | return;
|
|
209 | 210 | "key": cursorReq.result.key,
|
210 | 211 | "value": cursorReq.result.value
|
211 | 212 | };
|
212 |
| - console.log("Cursor in progress", elem, e); |
| 213 | + //console.log("Cursor in progress", elem, e); |
213 | 214 | dfd.notifyWith(cursorReq, [elem, e]);
|
214 | 215 | var result = callback.apply(cursorReq, [elem]);
|
215 |
| - console.log("Iteration function returned", result); |
| 216 | + //console.log("Iteration function returned", result); |
216 | 217 | try {
|
217 | 218 | if (result === false) {
|
218 | 219 | dfd.resolveWith(cursorReq, [null, e]);
|
|
223 | 224 | else cursorReq.result["continue"]();
|
224 | 225 | }
|
225 | 226 | } catch (e) {
|
226 |
| - console.log("Exception when trying to advance cursor", cursorReq, e); |
| 227 | + //console.log("Exception when trying to advance cursor", cursorReq, e); |
227 | 228 | dfd.rejectWith(cursorReq, [cursorReq.result, e]);
|
228 | 229 | }
|
229 | 230 | };
|
230 | 231 | cursorReq.onerror = function(e){
|
231 |
| - console.log("Cursor request errored out", e); |
| 232 | + //console.log("Cursor request errored out", e); |
232 | 233 | dfd.rejectWith(cursorReq, [cursorReq.result, e]);
|
233 | 234 | };
|
234 | 235 | } catch (e) {
|
235 |
| - console.log("An exception occured inside cursor", cursorReq, e) |
| 236 | + //console.log("An exception occured inside cursor", cursorReq, e); |
236 | 237 | e.type = "exception";
|
237 | 238 | dfd.rejectWith(cursorReq, [null, e]);
|
238 | 239 | }
|
|
245 | 246 | } catch (e) {
|
246 | 247 | idbIndex = null;
|
247 | 248 | }
|
248 |
| - //console.logidbIndex, index); |
| 249 | + ////console.logidbIndex, index); |
249 | 250 | return {
|
250 | 251 | "each": function(callback, range, direction){
|
251 | 252 | return wrap.cursor(function(){
|
|
282 | 283 | }
|
283 | 284 | };
|
284 | 285 | }
|
285 |
| - } |
| 286 | + }; |
286 | 287 |
|
287 | 288 | ////////////////////////////////////////////////////////////////////////////////////////////////////
|
288 | 289 |
|
|
331 | 332 | callback("onupgradeneeded", result, [event]);
|
332 | 333 | // Version transaction is now complete, to open ordinary transaction
|
333 | 334 | versionReq.result.db.close();
|
334 |
| - console.log("Database closed, and will try to open again, with same version"); |
| 335 | + //console.log("Database closed, and will try to open again, with same version"); |
335 | 336 | var newDbOpenReq = indexedDB.open(dbName);
|
336 | 337 | delete result.transaction;
|
337 | 338 | delete result.result;
|
338 | 339 |
|
339 | 340 | newDbOpenReq.onsuccess = function(e){
|
340 |
| - console.log("DB Opened without version change", newDbOpenReq.result); |
| 341 | + //console.log("DB Opened without version change", newDbOpenReq.result); |
341 | 342 | copyReq(newDbOpenReq);
|
342 | 343 | callback("onsuccess", result, [e], function(){
|
343 | 344 | newDbOpenReq.result.close();
|
|
347 | 348 | newDbOpenReq.onerror = function(e){
|
348 | 349 | copyReq(newDbOpenReq);
|
349 | 350 | callback("onerror", result, [e], function(){
|
350 |
| - console.log("Closed database in newRequest on error", newDbOpenReq); |
| 351 | + //console.log("Closed database in newRequest on error", newDbOpenReq); |
351 | 352 | newDbOpenReq.result.close();
|
352 | 353 | });
|
353 | 354 | };
|
354 | 355 | newDbOpenReq.onblocked = function(e){
|
355 |
| - console.log("DB Blocked without version change", newDbOpenReq.result); |
| 356 | + //console.log("DB Blocked without version change", newDbOpenReq.result); |
356 | 357 | copyReq(newDbOpenReq);
|
357 | 358 | callback("onblocked", result, [e], function(){
|
358 |
| - console.log("Closed database in newRequest on blocked", newDbOpenReq); |
| 359 | + //console.log("Closed database in newRequest on blocked", newDbOpenReq); |
359 | 360 | newDbOpenReq.result.close();
|
360 | 361 | });
|
361 | 362 | };
|
|
366 | 367 | };
|
367 | 368 | versionReq.onblocked = function(e){
|
368 | 369 | // This always gets called, resulting the blocking the DB upgrade
|
369 |
| - console.log("Version transaction blocked, so calling the on blocked method"); |
| 370 | + //console.log("Version transaction blocked, so calling the on blocked method"); |
370 | 371 | callback("onblocked", result, [e]);
|
371 | 372 | };
|
372 | 373 | } else if (oldVersion === newVersion) {
|
|
382 | 383 | };
|
383 | 384 | dbOpenReq.onerror = function(e){
|
384 | 385 | copyReq();
|
385 |
| - console.log("Error", dbOpenReq); |
| 386 | + //console.log("Error", dbOpenReq); |
386 | 387 | callback("onerror", result, [e]);
|
387 | 388 | };
|
388 | 389 | dbOpenReq.onblocked = function(e){
|
|
397 | 398 | };
|
398 | 399 |
|
399 | 400 | return result;
|
400 |
| - } |
| 401 | + }; |
401 | 402 |
|
402 | 403 |
|
403 | 404 | ////////////////////////////////////////////////////////////////////////////////////////////////////
|
404 | 405 |
|
405 | 406 |
|
406 | 407 | // Start with opening the database
|
407 | 408 | var dbPromise = wrap.request(function(){
|
408 |
| - console.log("Trying to open DB with", version); |
| 409 | + //console.log("Trying to open DB with", version); |
409 | 410 | return version ? openReqShim(dbName, version) : openReqShim(dbName);
|
410 | 411 | });
|
411 | 412 | dbPromise.then(function(db, e){
|
412 |
| - console.log("DB opened at", db.version); |
| 413 | + //console.log("DB opened at", db.version); |
413 | 414 | db.onversionchange = function(){
|
414 | 415 | // Try to automatically close the database if there is a version change request
|
415 | 416 | if (!(config && config.onversionchange && config.onversionchange() !== false)) {
|
416 | 417 | db.close();
|
417 | 418 | }
|
418 | 419 | };
|
419 | 420 | }, function(error, e){
|
420 |
| - //console.logerror, e); |
| 421 | + ////console.logerror, e); |
421 | 422 | // Nothing much to do if an error occurs
|
422 | 423 | }, function(db, e){
|
423 | 424 | if (e && e.type === "upgradeneeded") {
|
424 | 425 | if (config && config.schema) {
|
425 | 426 | // Assuming that version is always an integer
|
426 |
| - console.log("Upgrading DB to ", db.version); |
| 427 | + //console.log("Upgrading DB to ", db.version); |
427 | 428 | for (var i = e.oldVersion + 1; i <= e.newVersion; i++) {
|
428 | 429 | typeof config.schema[i] === "function" && config.schema[i].call(this, wrap.transaction(this.transaction));
|
429 | 430 | }
|
|
465 | 466 | mode = getDefaultTransaction(mode);
|
466 | 467 | return $.Deferred(function(dfd){
|
467 | 468 | dbPromise.then(function(db, e){
|
| 469 | + var idbTransaction; |
468 | 470 | try {
|
469 |
| - console.log("DB Opened, now trying to create a transaction", storeNames, mode); |
470 |
| - var idbTransaction = db.transaction(storeNames, mode); |
471 |
| - console.log("Created a transaction", idbTransaction, mode, storeNames); |
| 471 | + //console.log("DB Opened, now trying to create a transaction", storeNames, mode); |
| 472 | + idbTransaction = db.transaction(storeNames, mode); |
| 473 | + //console.log("Created a transaction", idbTransaction, mode, storeNames); |
472 | 474 | idbTransaction.onabort = idbTransaction.onerror = function(e){
|
473 | 475 | dfd.rejectWith(idbTransaction, [e]);
|
474 | 476 | };
|
475 | 477 | idbTransaction.oncomplete = function(e){
|
476 | 478 | dfd.resolveWith(idbTransaction, [e]);
|
477 | 479 | };
|
478 | 480 | } catch (e) {
|
479 |
| - console.log("Creating a traction failed", e, storeNames, mode, this); |
| 481 | + //console.log("Creating a traction failed", e, storeNames, mode, this); |
480 | 482 | e.type = "exception";
|
481 | 483 | dfd.rejectWith(this, [e]);
|
482 | 484 | return;
|
|
490 | 492 | }, function(err, e){
|
491 | 493 | dfd.rejectWith(this, [e, err]);
|
492 | 494 | }, function(res, e){
|
493 |
| - console.log("Database open is blocked or upgrade needed", res, e.type); |
| 495 | + //console.log("Database open is blocked or upgrade needed", res, e.type); |
494 | 496 | //dfd.notifyWith(this, ["", e]);
|
495 | 497 | });
|
496 | 498 |
|
|
503 | 505 | return $.Deferred(function(dfd){
|
504 | 506 | function onTransactionProgress(trans, callback){
|
505 | 507 | try {
|
506 |
| - console.log("Finally, returning the object store", trans); |
| 508 | + //console.log("Finally, returning the object store", trans); |
507 | 509 | callback(trans.objectStore(storeName)).then(function(result, e){
|
508 | 510 | dfd.resolveWith(this, [result, e]);
|
509 | 511 | }, function(err, e){
|
510 | 512 | dfd.rejectWith(this, [err, e]);
|
511 | 513 | });
|
512 | 514 | } catch (e) {
|
513 |
| - console.log("Duh, an exception occured", e); |
| 515 | + //console.log("Duh, an exception occured", e); |
514 | 516 | e.name = "exception";
|
515 | 517 | dfd.rejectWith(trans, [e, e]);
|
516 | 518 | }
|
517 | 519 | }
|
518 | 520 | me.transaction(storeName, getDefaultTransaction(mode)).then(function(){
|
519 |
| - console.log("Transaction completed"); |
| 521 | + //console.log("Transaction completed"); |
520 | 522 | // Nothing to do when transaction is complete
|
521 | 523 | }, function(err, e){
|
522 | 524 | // If transaction fails, CrudOp fails
|
523 | 525 | if (err.code === err.NOT_FOUND_ERR && (mode === true || typeof mode === "object")) {
|
524 |
| - console.log("Object Not found, so will try to create one now"); |
| 526 | + //console.log("Object Not found, so will try to create one now"); |
525 | 527 | var db = this.result;
|
526 | 528 | db.close();
|
527 | 529 | dbPromise = wrap.request(function(){
|
528 |
| - console.log("Now trying to open the database again", db.version); |
| 530 | + //console.log("Now trying to open the database again", db.version); |
529 | 531 | return openReqShim(dbName, (parseInt(db.version, 10) || 1) + 1);
|
530 | 532 | });
|
531 | 533 | dbPromise.then(function(db, e){
|
532 |
| - console.log("Database opened, tto open transaction", db.version); |
| 534 | + //console.log("Database opened, tto open transaction", db.version); |
533 | 535 | db.onversionchange = function(){
|
534 | 536 | // Try to automatically close the database if there is a version change request
|
535 | 537 | if (!(config && config.onversionchange && config.onversionchange() !== false)) {
|
536 | 538 | db.close();
|
537 | 539 | }
|
538 | 540 | };
|
539 | 541 | me.transaction(storeName, getDefaultTransaction(mode)).then(function(){
|
540 |
| - console.log("Transaction completed when trying to create object store"); |
| 542 | + //console.log("Transaction completed when trying to create object store"); |
541 | 543 | // Nothing much to do
|
542 | 544 | }, function(err, e){
|
543 | 545 | dfd.rejectWith(this, [err, e]);
|
544 | 546 | }, function(trans, e){
|
545 |
| - console.log("Transaction in progress, when object store was not found", this, trans, e); |
| 547 | + //console.log("Transaction in progress, when object store was not found", this, trans, e); |
546 | 548 | onTransactionProgress(trans, callback);
|
547 | 549 | });
|
548 | 550 | }, function(err, e){
|
549 | 551 | dfd.rejectWith(this, [err, e]);
|
550 | 552 | }, function(db, e){
|
551 | 553 | if (e.type === "upgradeneeded") {
|
552 | 554 | try {
|
553 |
| - console.log("Now trying to create an object store", e.type); |
| 555 | + //console.log("Now trying to create an object store", e.type); |
554 | 556 | db.createObjectStore(storeName, mode === true ? {
|
555 | 557 | "autoIncrement": true
|
556 | 558 | } : mode);
|
557 |
| - console.log("Object store created", storeName, db); |
| 559 | + //console.log("Object store created", storeName, db); |
558 | 560 | } catch (ex) {
|
559 |
| - console.log("Exception when trying ot create a new object store", ex) |
| 561 | + //console.log("Exception when trying ot create a new object store", ex); |
560 | 562 | dfd.rejectWith(this, [ex, e]);
|
561 | 563 | }
|
562 | 564 | }
|
563 | 565 | });
|
564 | 566 | } else {
|
565 |
| - console.log("Error in transaction inside object store", err); |
| 567 | + //console.log("Error in transaction inside object store", err); |
566 | 568 | dfd.rejectWith(this, [err, e]);
|
567 | 569 | }
|
568 | 570 | }, function(trans){
|
569 |
| - console.log("Transaction is in progress", trans); |
| 571 | + //console.log("Transaction is in progress", trans); |
570 | 572 | onTransactionProgress(trans, callback);
|
571 | 573 | });
|
572 | 574 | });
|
573 |
| - }; |
| 575 | + } |
574 | 576 |
|
575 | 577 | function crudOp(opName, args){
|
576 | 578 | return op(function(wrappedObjectStore){
|
|
590 | 592 | result[crud[i]] = (function(op){
|
591 | 593 | return function(){
|
592 | 594 | return crudOp(op, arguments);
|
593 |
| - } |
| 595 | + }; |
594 | 596 | })(crud[i]);
|
595 | 597 | }
|
596 | 598 |
|
|
609 | 611 | return indexOp("getKey", indexName, [key]);
|
610 | 612 | }
|
611 | 613 | };
|
612 |
| - } |
| 614 | + }; |
613 | 615 |
|
614 | 616 | return result;
|
615 | 617 | }
|
|
0 commit comments