Merge pull request #4692 from Snuffleupagus/viewHistory-setMultiple

Add support for setting multiple values at once in ViewHistory
This commit is contained in:
Yury Delendik 2014-04-27 23:26:38 -05:00
commit 42ed9025ef
2 changed files with 31 additions and 17 deletions

View File

@ -86,30 +86,43 @@ var ViewHistory = (function ViewHistoryClosure() {
this.database = database; this.database = database;
}, },
set: function ViewHistory_set(name, val) { _writeToStorage: function ViewHistory_writeToStorage() {
if (!this.isInitializedPromiseResolved) { var databaseStr = JSON.stringify(this.database);
return;
}
var file = this.file;
file[name] = val;
var database = JSON.stringify(this.database);
//#if B2G //#if B2G
// asyncStorage.setItem('database', database); // asyncStorage.setItem('database', databaseStr);
//#endif //#endif
//#if FIREFOX || MOZCENTRAL //#if FIREFOX || MOZCENTRAL
// try { // try {
// // See comment in try-catch block above. // // See comment in try-catch block above.
// sessionStorage.setItem('pdfjsHistory', database); // sessionStorage.setItem('pdfjsHistory', databaseStr);
// } catch (ex) {} // } catch (ex) {}
//#endif //#endif
//#if !(FIREFOX || MOZCENTRAL || B2G) //#if !(FIREFOX || MOZCENTRAL || B2G)
localStorage.setItem('database', database); localStorage.setItem('database', databaseStr);
//#endif //#endif
}, },
set: function ViewHistory_set(name, val) {
if (!this.isInitializedPromiseResolved) {
return;
}
this.file[name] = val;
this._writeToStorage();
},
setMultiple: function ViewHistory_setMultiple(properties) {
if (!this.isInitializedPromiseResolved) {
return;
}
for (var name in properties) {
this.file[name] = properties[name];
}
this._writeToStorage();
},
get: function ViewHistory_get(name, defaultValue) { get: function ViewHistory_get(name, defaultValue) {
if (!this.isInitializedPromiseResolved) { if (!this.isInitializedPromiseResolved) {
return defaultValue; return defaultValue;

View File

@ -1970,13 +1970,14 @@ function updateViewarea() {
PDFView.currentPosition = { page: pageNumber, left: intLeft, top: intTop }; PDFView.currentPosition = { page: pageNumber, left: intLeft, top: intTop };
} }
var store = PDFView.store; PDFView.store.initializedPromise.then(function() {
store.initializedPromise.then(function() { PDFView.store.setMultiple({
store.set('exists', true); 'exists': true,
store.set('page', pageNumber); 'page': pageNumber,
store.set('zoom', normalizedScaleValue); 'zoom': normalizedScaleValue,
store.set('scrollLeft', intLeft); 'scrollLeft': intLeft,
store.set('scrollTop', intTop); 'scrollTop': intTop
});
}); });
var href = PDFView.getAnchorUrl(pdfOpenParams); var href = PDFView.getAnchorUrl(pdfOpenParams);
document.getElementById('viewBookmark').href = href; document.getElementById('viewBookmark').href = href;