Convert the ViewHistory
to an ES6 class
This commit is contained in:
parent
366277d180
commit
16b4132ebf
@ -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,82 +52,77 @@ 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' &&
|
||||||
PDFJSDev.test('FIREFOX || MOZCENTRAL')) {
|
PDFJSDev.test('FIREFOX || MOZCENTRAL')) {
|
||||||
sessionStorage.setItem('pdfjs.history', databaseStr);
|
sessionStorage.setItem('pdfjs.history', databaseStr);
|
||||||
} else {
|
} else {
|
||||||
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')) {
|
||||||
resolve(sessionStorage.getItem('pdfjs.history'));
|
resolve(sessionStorage.getItem('pdfjs.history'));
|
||||||
} else {
|
} else {
|
||||||
var value = localStorage.getItem('pdfjs.history');
|
var value = localStorage.getItem('pdfjs.history');
|
||||||
|
|
||||||
// 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) {
|
||||||
try {
|
try {
|
||||||
var database = JSON.parse(databaseStr);
|
var database = JSON.parse(databaseStr);
|
||||||
if (typeof database.files[0].fingerprint === 'string') {
|
if (typeof database.files[0].fingerprint === 'string') {
|
||||||
localStorage.setItem('pdfjs.history', databaseStr);
|
localStorage.setItem('pdfjs.history', databaseStr);
|
||||||
localStorage.removeItem('database');
|
localStorage.removeItem('database');
|
||||||
value = databaseStr;
|
value = databaseStr;
|
||||||
}
|
}
|
||||||
} 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;
|
|
||||||
return this._writeToStorage();
|
|
||||||
},
|
|
||||||
|
|
||||||
setMultiple: function ViewHistory_setMultiple(properties) {
|
|
||||||
if (!this.isInitializedPromiseResolved) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (var name in properties) {
|
|
||||||
this.file[name] = properties[name];
|
|
||||||
}
|
|
||||||
return this._writeToStorage();
|
|
||||||
},
|
|
||||||
|
|
||||||
get: function ViewHistory_get(name, defaultValue) {
|
|
||||||
if (!this.isInitializedPromiseResolved) {
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
return this.file[name] || defaultValue;
|
|
||||||
}
|
}
|
||||||
};
|
this.file[name] = val;
|
||||||
|
return this._writeToStorage();
|
||||||
|
}
|
||||||
|
|
||||||
return ViewHistory;
|
setMultiple(properties) {
|
||||||
})();
|
if (!this.isInitializedPromiseResolved) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (var name in properties) {
|
||||||
|
this.file[name] = properties[name];
|
||||||
|
}
|
||||||
|
return this._writeToStorage();
|
||||||
|
}
|
||||||
|
|
||||||
|
get(name, defaultValue) {
|
||||||
|
if (!this.isInitializedPromiseResolved) {
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
return this.file[name] || defaultValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
ViewHistory,
|
ViewHistory,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user