|
2 | 2 | var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
|
3 | 3 | var IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange;
|
4 | 4 | var IDBCursor = window.IDBCursor || window.webkitIDBCursor;
|
| 5 | + IDBCursor.PREV = IDBCursor.PREV || "prev"; |
| 6 | + IDBCursor.NEXT = IDBCursor.PREV || "next"; |
5 | 7 |
|
6 | 8 | /**
|
7 | 9 | * Best to use the constant IDBTransaction since older version support numeric types while the latest spec
|
|
19 | 21 | result = mode;
|
20 | 22 | break;
|
21 | 23 | default:
|
22 |
| - result = IDBTransaction.READ_WRITE; |
| 24 | + result = IDBTransaction.READ_WRITE || "readwrite"; |
23 | 25 | }
|
24 | 26 | return result;
|
25 | 27 | }
|
|
54 | 56 | try {
|
55 | 57 | var idbRequest = typeof req === "function" ? req(args) : req;
|
56 | 58 | idbRequest.onsuccess = function(e){
|
57 |
| - //console.log"Success", idbRequest, e, this); |
| 59 | + console.log("Success", idbRequest, e, this); |
58 | 60 | dfd.resolveWith(idbRequest, [idbRequest.result, e]);
|
59 | 61 | };
|
60 | 62 | idbRequest.onerror = function(e){
|
61 |
| - //console.log"Error", idbRequest, e, this); |
| 63 | + console.log("Error", idbRequest, e, this); |
62 | 64 | dfd.rejectWith(idbRequest, [idbRequest.error, e]);
|
63 | 65 | };
|
64 | 66 | if (typeof idbRequest.onblocked !== "undefined" && idbRequest.onblocked === null) {
|
65 | 67 | idbRequest.onblocked = function(e){
|
66 |
| - //console.log"Blocked", idbRequest, e, this); |
| 68 | + console.log("Blocked", idbRequest, e, this); |
67 | 69 | try {
|
68 | 70 | var res = idbRequest.result;
|
69 | 71 | } catch (e) {
|
|
74 | 76 | }
|
75 | 77 | if (typeof idbRequest.onupgradeneeded !== "undefined" && idbRequest.onupgradeneeded === null) {
|
76 | 78 | idbRequest.onupgradeneeded = function(e){
|
77 |
| - //console.log"Upgrade", idbRequest, e, this); |
| 79 | + console.log("Upgrade", idbRequest, e, this); |
78 | 80 | dfd.notifyWith(idbRequest, [idbRequest.result, e]);
|
79 | 81 | };
|
80 | 82 | }
|
|
181 | 183 | "cursor": function(idbCursor, callback){
|
182 | 184 | return $.Deferred(function(dfd){
|
183 | 185 | try {
|
184 |
| - //console.log"Cursor request created", idbCursor); |
| 186 | + console.log("Cursor request created", idbCursor); |
185 | 187 | var cursorReq = typeof idbCursor === "function" ? idbCursor() : idbCursor;
|
186 | 188 | cursorReq.onsuccess = function(e){
|
187 |
| - //console.log"Cursor successful"); |
| 189 | + console.log("Cursor successful"); |
188 | 190 | if (!cursorReq.result) {
|
189 | 191 | dfd.resolveWith(cursorReq, [null, e]);
|
190 | 192 | return;
|
|
207 | 209 | "key": cursorReq.result.key,
|
208 | 210 | "value": cursorReq.result.value
|
209 | 211 | };
|
210 |
| - //console.log"Cursor in progress", elem, e); |
| 212 | + console.log("Cursor in progress", elem, e); |
211 | 213 | dfd.notifyWith(cursorReq, [elem, e]);
|
212 | 214 | var result = callback.apply(cursorReq, [elem]);
|
213 |
| - //console.log"Iteration function returned", result); |
| 215 | + console.log("Iteration function returned", result); |
214 | 216 | try {
|
215 | 217 | if (result === false) {
|
216 | 218 | dfd.resolveWith(cursorReq, [null, e]);
|
|
221 | 223 | else cursorReq.result["continue"]();
|
222 | 224 | }
|
223 | 225 | } catch (e) {
|
224 |
| - //console.log"Exception when trying to advance cursor", cursorReq, e); |
| 226 | + console.log("Exception when trying to advance cursor", cursorReq, e); |
225 | 227 | dfd.rejectWith(cursorReq, [cursorReq.result, e]);
|
226 | 228 | }
|
227 | 229 | };
|
228 | 230 | cursorReq.onerror = function(e){
|
229 |
| - //console.log"Cursor request errored out", e); |
| 231 | + console.log("Cursor request errored out", e); |
230 | 232 | dfd.rejectWith(cursorReq, [cursorReq.result, e]);
|
231 | 233 | };
|
232 | 234 | } catch (e) {
|
233 |
| - //console.log"An exception occured inside cursor", cursorReq, e) |
| 235 | + console.log("An exception occured inside cursor", cursorReq, e) |
234 | 236 | e.type = "exception";
|
235 | 237 | dfd.rejectWith(cursorReq, [null, e]);
|
236 | 238 | }
|
|
329 | 331 | callback("onupgradeneeded", result, [event]);
|
330 | 332 | // Version transaction is now complete, to open ordinary transaction
|
331 | 333 | versionReq.result.db.close();
|
332 |
| - //console.log"Database closed, and will try to open again, with same version"); |
| 334 | + console.log("Database closed, and will try to open again, with same version"); |
333 | 335 | var newDbOpenReq = indexedDB.open(dbName);
|
334 | 336 | delete result.transaction;
|
335 | 337 | delete result.result;
|
336 | 338 |
|
337 | 339 | newDbOpenReq.onsuccess = function(e){
|
338 |
| - //console.log"DB Opened without version change", newDbOpenReq.result); |
| 340 | + console.log("DB Opened without version change", newDbOpenReq.result); |
339 | 341 | copyReq(newDbOpenReq);
|
340 | 342 | callback("onsuccess", result, [e], function(){
|
341 | 343 | newDbOpenReq.result.close();
|
|
345 | 347 | newDbOpenReq.onerror = function(e){
|
346 | 348 | copyReq(newDbOpenReq);
|
347 | 349 | callback("onerror", result, [e], function(){
|
348 |
| - //console.log"Closed database in newRequest on error", newDbOpenReq); |
| 350 | + console.log("Closed database in newRequest on error", newDbOpenReq); |
349 | 351 | newDbOpenReq.result.close();
|
350 | 352 | });
|
351 | 353 | };
|
352 | 354 | newDbOpenReq.onblocked = function(e){
|
353 |
| - //console.log"DB Blocked without version change", newDbOpenReq.result); |
| 355 | + console.log("DB Blocked without version change", newDbOpenReq.result); |
354 | 356 | copyReq(newDbOpenReq);
|
355 | 357 | callback("onblocked", result, [e], function(){
|
356 |
| - //console.log"Closed database in newRequest on blocked", newDbOpenReq); |
| 358 | + console.log("Closed database in newRequest on blocked", newDbOpenReq); |
357 | 359 | newDbOpenReq.result.close();
|
358 | 360 | });
|
359 | 361 | };
|
|
364 | 366 | };
|
365 | 367 | versionReq.onblocked = function(e){
|
366 | 368 | // This always gets called, resulting the blocking the DB upgrade
|
367 |
| - //console.log"Version transaction blocked, so calling the on blocked method"); |
| 369 | + console.log("Version transaction blocked, so calling the on blocked method"); |
368 | 370 | callback("onblocked", result, [e]);
|
369 | 371 | };
|
370 | 372 | } else if (oldVersion === newVersion) {
|
|
380 | 382 | };
|
381 | 383 | dbOpenReq.onerror = function(e){
|
382 | 384 | copyReq();
|
383 |
| - //console.log"Error", dbOpenReq); |
| 385 | + console.log("Error", dbOpenReq); |
384 | 386 | callback("onerror", result, [e]);
|
385 | 387 | };
|
386 | 388 | dbOpenReq.onblocked = function(e){
|
|
403 | 405 |
|
404 | 406 | // Start with opening the database
|
405 | 407 | var dbPromise = wrap.request(function(){
|
406 |
| - //console.log"Trying to open DB with", version); |
| 408 | + console.log("Trying to open DB with", version); |
407 | 409 | return version ? openReqShim(dbName, version) : openReqShim(dbName);
|
408 | 410 | });
|
409 | 411 | dbPromise.then(function(db, e){
|
410 |
| - //console.log"DB opened at", db.version); |
| 412 | + console.log("DB opened at", db.version); |
411 | 413 | db.onversionchange = function(){
|
412 | 414 | // Try to automatically close the database if there is a version change request
|
413 | 415 | if (!(config && config.onversionchange && config.onversionchange() !== false)) {
|
|
421 | 423 | if (e && e.type === "upgradeneeded") {
|
422 | 424 | if (config && config.schema) {
|
423 | 425 | // Assuming that version is always an integer
|
424 |
| - //console.log"Upgrading DB to ", db.version); |
| 426 | + console.log("Upgrading DB to ", db.version); |
425 | 427 | for (var i = e.oldVersion + 1; i <= e.newVersion; i++) {
|
426 | 428 | typeof config.schema[i] === "function" && config.schema[i].call(this, wrap.transaction(this.transaction));
|
427 | 429 | }
|
|
464 | 466 | return $.Deferred(function(dfd){
|
465 | 467 | dbPromise.then(function(db, e){
|
466 | 468 | try {
|
467 |
| - //console.log"DB Opened, now trying to create a transaction", storeNames, mode); |
| 469 | + console.log("DB Opened, now trying to create a transaction", storeNames, mode); |
468 | 470 | var idbTransaction = db.transaction(storeNames, mode);
|
469 |
| - //console.log"Created a transaction", idbTransaction, mode, storeNames); |
| 471 | + console.log("Created a transaction", idbTransaction, mode, storeNames); |
470 | 472 | idbTransaction.onabort = idbTransaction.onerror = function(e){
|
471 | 473 | dfd.rejectWith(idbTransaction, [e]);
|
472 | 474 | };
|
473 | 475 | idbTransaction.oncomplete = function(e){
|
474 | 476 | dfd.resolveWith(idbTransaction, [e]);
|
475 | 477 | };
|
476 | 478 | } catch (e) {
|
477 |
| - //console.log"Creating a traction failed", e, storeNames, mode, this); |
| 479 | + console.log("Creating a traction failed", e, storeNames, mode, this); |
478 | 480 | e.type = "exception";
|
479 | 481 | dfd.rejectWith(this, [e]);
|
480 | 482 | return;
|
|
488 | 490 | }, function(err, e){
|
489 | 491 | dfd.rejectWith(this, [e, err]);
|
490 | 492 | }, function(res, e){
|
491 |
| - //console.log"Database open is blocked or upgrade needed", res, e.type); |
| 493 | + console.log("Database open is blocked or upgrade needed", res, e.type); |
492 | 494 | //dfd.notifyWith(this, ["", e]);
|
493 | 495 | });
|
494 | 496 |
|
|
501 | 503 | return $.Deferred(function(dfd){
|
502 | 504 | function onTransactionProgress(trans, callback){
|
503 | 505 | try {
|
504 |
| - //console.log"Finally, returning the object store", trans); |
| 506 | + console.log("Finally, returning the object store", trans); |
505 | 507 | callback(trans.objectStore(storeName)).then(function(result, e){
|
506 | 508 | dfd.resolveWith(this, [result, e]);
|
507 | 509 | }, function(err, e){
|
508 | 510 | dfd.rejectWith(this, [err, e]);
|
509 | 511 | });
|
510 | 512 | } catch (e) {
|
511 |
| - //console.log"Duh, an exception occured", e); |
| 513 | + console.log("Duh, an exception occured", e); |
512 | 514 | e.name = "exception";
|
513 | 515 | dfd.rejectWith(trans, [e, e]);
|
514 | 516 | }
|
515 | 517 | }
|
516 | 518 | me.transaction(storeName, getDefaultTransaction(mode)).then(function(){
|
517 |
| - //console.log"Transaction completed"); |
| 519 | + console.log("Transaction completed"); |
518 | 520 | // Nothing to do when transaction is complete
|
519 | 521 | }, function(err, e){
|
520 | 522 | // If transaction fails, CrudOp fails
|
521 | 523 | if (err.code === err.NOT_FOUND_ERR && (mode === true || typeof mode === "object")) {
|
522 |
| - //console.log"Object Not found, so will try to create one now"); |
| 524 | + console.log("Object Not found, so will try to create one now"); |
523 | 525 | var db = this.result;
|
524 | 526 | db.close();
|
525 | 527 | dbPromise = wrap.request(function(){
|
526 |
| - //console.log"Now trying to open the database again", db.version); |
| 528 | + console.log("Now trying to open the database again", db.version); |
527 | 529 | return openReqShim(dbName, (parseInt(db.version, 10) || 1) + 1);
|
528 | 530 | });
|
529 | 531 | dbPromise.then(function(db, e){
|
530 |
| - //console.log"Database opened, tto open transaction", db.version); |
| 532 | + console.log("Database opened, tto open transaction", db.version); |
531 | 533 | db.onversionchange = function(){
|
532 | 534 | // Try to automatically close the database if there is a version change request
|
533 | 535 | if (!(config && config.onversionchange && config.onversionchange() !== false)) {
|
534 | 536 | db.close();
|
535 | 537 | }
|
536 | 538 | };
|
537 | 539 | me.transaction(storeName, getDefaultTransaction(mode)).then(function(){
|
538 |
| - //console.log"Transaction completed when trying to create object store"); |
| 540 | + console.log("Transaction completed when trying to create object store"); |
539 | 541 | // Nothing much to do
|
540 | 542 | }, function(err, e){
|
541 | 543 | dfd.rejectWith(this, [err, e]);
|
542 | 544 | }, function(trans, e){
|
543 |
| - //console.log"Transaction in progress, when object store was not found", this, trans, e); |
| 545 | + console.log("Transaction in progress, when object store was not found", this, trans, e); |
544 | 546 | onTransactionProgress(trans, callback);
|
545 | 547 | });
|
546 | 548 | }, function(err, e){
|
547 | 549 | dfd.rejectWith(this, [err, e]);
|
548 | 550 | }, function(db, e){
|
549 | 551 | if (e.type === "upgradeneeded") {
|
550 | 552 | try {
|
551 |
| - //console.log"Now trying to create an object store", e.type); |
| 553 | + console.log("Now trying to create an object store", e.type); |
552 | 554 | db.createObjectStore(storeName, mode === true ? {
|
553 | 555 | "autoIncrement": true
|
554 | 556 | } : mode);
|
555 |
| - //console.log"Object store created", storeName, db); |
| 557 | + console.log("Object store created", storeName, db); |
556 | 558 | } catch (ex) {
|
557 |
| - //console.log"Exception when trying ot create a new object store", ex) |
| 559 | + console.log("Exception when trying ot create a new object store", ex) |
558 | 560 | dfd.rejectWith(this, [ex, e]);
|
559 | 561 | }
|
560 | 562 | }
|
561 | 563 | });
|
562 | 564 | } else {
|
563 |
| - //console.log"Error in transaction inside object store", err); |
| 565 | + console.log("Error in transaction inside object store", err); |
564 | 566 | dfd.rejectWith(this, [err, e]);
|
565 | 567 | }
|
566 | 568 | }, function(trans){
|
567 |
| - //console.log"Transaction is in progress", trans); |
| 569 | + console.log("Transaction is in progress", trans); |
568 | 570 | onTransactionProgress(trans, callback);
|
569 | 571 | });
|
570 | 572 | });
|
|
0 commit comments