Browse Source

Convert the `ViewHistory` to an ES6 class

Jonas Jenwald 8 years ago
parent
commit
16b4132ebf
  1. 44
      web/view_history.js

44
web/view_history.js

@ -13,7 +13,7 @@
* limitations under the License. * limitations under the License.
*/ */
var DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20;
/** /**
* View History - This is a utility for saving various view parameters for * View History - This is a utility for saving various view parameters for
@ -24,13 +24,12 @@ var DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20;
* - FIREFOX or MOZCENTRAL - uses sessionStorage. * - FIREFOX or MOZCENTRAL - uses sessionStorage.
* - GENERIC or CHROME - uses localStorage, if it is available. * - GENERIC or CHROME - uses localStorage, if it is available.
*/ */
var ViewHistory = (function ViewHistoryClosure() { class ViewHistory {
function ViewHistory(fingerprint, cacheSize) { constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) {
this.fingerprint = fingerprint; this.fingerprint = fingerprint;
this.cacheSize = cacheSize || DEFAULT_VIEW_HISTORY_CACHE_SIZE; this.cacheSize = cacheSize;
this.isInitializedPromiseResolved = false; this.isInitializedPromiseResolved = false;
this.initializedPromise = this.initializedPromise = this._readFromStorage().then((databaseStr) => {
this._readFromStorage().then(function (databaseStr) {
this.isInitializedPromiseResolved = true; this.isInitializedPromiseResolved = true;
var database = JSON.parse(databaseStr || '{}'); var database = JSON.parse(databaseStr || '{}');
@ -53,12 +52,11 @@ var ViewHistory = (function ViewHistoryClosure() {
} }
this.file = database.files[index]; this.file = database.files[index];
this.database = database; this.database = database;
}.bind(this)); });
} }
ViewHistory.prototype = { _writeToStorage() {
_writeToStorage: function ViewHistory_writeToStorage() { return new Promise((resolve) => {
return new Promise(function (resolve) {
var databaseStr = JSON.stringify(this.database); var databaseStr = JSON.stringify(this.database);
if (typeof PDFJSDev !== 'undefined' && if (typeof PDFJSDev !== 'undefined' &&
@ -68,10 +66,10 @@ var ViewHistory = (function ViewHistoryClosure() {
localStorage.setItem('pdfjs.history', databaseStr); localStorage.setItem('pdfjs.history', databaseStr);
} }
resolve(); resolve();
}.bind(this)); });
}, }
_readFromStorage: function ViewHistory_readFromStorage() { _readFromStorage() {
return new Promise(function(resolve) { return new Promise(function(resolve) {
if (typeof PDFJSDev !== 'undefined' && if (typeof PDFJSDev !== 'undefined' &&
PDFJSDev.test('FIREFOX || MOZCENTRAL')) { PDFJSDev.test('FIREFOX || MOZCENTRAL')) {
@ -81,7 +79,7 @@ var ViewHistory = (function ViewHistoryClosure() {
// TODO: Remove this key-name conversion after a suitable time-frame. // TODO: Remove this key-name conversion after a suitable time-frame.
// Note that we only remove the old 'database' entry if it looks like // Note that we only remove the old 'database' entry if it looks like
// it was created by PDF.js. to avoid removing someone else's data. // it was created by PDF.js, to avoid removing someone else's data.
if (!value) { if (!value) {
var databaseStr = localStorage.getItem('database'); var databaseStr = localStorage.getItem('database');
if (databaseStr) { if (databaseStr) {
@ -95,21 +93,20 @@ var ViewHistory = (function ViewHistoryClosure() {
} catch (ex) { } } catch (ex) { }
} }
} }
resolve(value); resolve(value);
} }
}); });
}, }
set: function ViewHistory_set(name, val) { set(name, val) {
if (!this.isInitializedPromiseResolved) { if (!this.isInitializedPromiseResolved) {
return; return;
} }
this.file[name] = val; this.file[name] = val;
return this._writeToStorage(); return this._writeToStorage();
}, }
setMultiple: function ViewHistory_setMultiple(properties) { setMultiple(properties) {
if (!this.isInitializedPromiseResolved) { if (!this.isInitializedPromiseResolved) {
return; return;
} }
@ -117,18 +114,15 @@ var ViewHistory = (function ViewHistoryClosure() {
this.file[name] = properties[name]; this.file[name] = properties[name];
} }
return this._writeToStorage(); return this._writeToStorage();
}, }
get: function ViewHistory_get(name, defaultValue) { get(name, defaultValue) {
if (!this.isInitializedPromiseResolved) { if (!this.isInitializedPromiseResolved) {
return defaultValue; return defaultValue;
} }
return this.file[name] || defaultValue; return this.file[name] || defaultValue;
} }
}; }
return ViewHistory;
})();
export { export {
ViewHistory, ViewHistory,

Loading…
Cancel
Save