Skip to content

Commit

Permalink
ENH Add subsite change detection
Browse files Browse the repository at this point in the history
lekoala authored and GuySartorelli committed Apr 18, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 2f35dd0 commit adf1251
Showing 2 changed files with 35 additions and 2 deletions.
2 changes: 1 addition & 1 deletion client/dist/js/LeftAndMain_Subsites.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 34 additions & 1 deletion client/src/js/LeftAndMain_Subsites.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,42 @@
/* jslint browser: true, nomen: true */
/* global $, window, jQuery */
/* global $, ss, window, jQuery */
(function ($) {
// eslint-disable-next-line no-shadow
$.entwine('ss', ($) => {
$('#SubsitesSelect').entwine({
/**
* Store current subsite id and ask to reload the page if it detects any change
*/
detectSubsiteChange(selectedId) {
const sessionKey = 'admin_subsite_id';
let reloadPending = false;
try {
localStorage.setItem(sessionKey, selectedId);

window.addEventListener('storage', () => {
if (reloadPending) {
return;
}
const tabId = localStorage.getItem(sessionKey);
// eslint-disable-next-line eqeqeq
if (tabId && selectedId != tabId) {
const msg = ss.i18n._t('Admin.SUBSITECHANGED', 'You\'ve changed subsite in another tab, do you want to reload the page?');
reloadPending = true; // Don't trigger multiple confirm dialog
// eslint-disable-next-line no-alert
if (confirm(msg)) {
window.location.reload();
}
// Don't ask again if cancelled
}
});
} catch (e) {
// Maybe storage is full or not available, disable this feature and ignore error
}
},

onmatch() {
this.detectSubsiteChange(this.find('option[selected]').attr('value'));
},
onadd() {
this.on('change', function () {
window.location.search = $.query.set('SubsiteID', $(this).val());

0 comments on commit adf1251

Please sign in to comment.