Merge pull request #7358 from jdfreder/persistence-page-specific

Associate widget state persistence with current URL.
This commit is contained in:
Matthias Bussonnier 2015-01-01 11:01:07 +01:00
commit 41f24bbe2c

View File

@ -103,10 +103,20 @@ define([
};
// Use local storage to persist widgets across page refresh by default.
// LocalStorage is per domain, so we need to explicitly set the URL
// that the widgets are associated with so they don't show on other
// pages hosted by the noteboook server.
var url = [window.location.protocol, '//', window.location.host, window.location.pathname].join('');
WidgetManager.set_state_callbacks(function() {
return JSON.parse(localStorage.widgets || '{}');
if (localStorage.widgets && localStorage.widgets[url]) {
return JSON.parse(localStorage.widgets[url]);
}
return {};
}, function(state) {
localStorage.widgets = JSON.stringify(state);
if (localStorage.widgets === undefined) {
localStorage.widgets = {};
}
localStorage.widgets[url] = JSON.stringify(state);
});
//--------------------------------------------------------------------