|
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