Fixed host switch (source and controls view)
This commit is contained in:
parent
fa80570157
commit
b02a0f0e51
1 changed files with 57 additions and 32 deletions
89
lib/popup.js
89
lib/popup.js
|
@ -383,26 +383,6 @@
|
||||||
popup.applyTitles();
|
popup.applyTitles();
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Change host by select
|
|
||||||
*/
|
|
||||||
|
|
||||||
popup.el.hostSelect.on('change', function(e) {
|
|
||||||
var host = $(this).val();
|
|
||||||
if( host !== popup.protocol + '//' + popup.host ) {
|
|
||||||
popup.el.hostGoToLink.removeClass('is-hidden');
|
|
||||||
popup.el.saveBtn.addClass('pure-button-disabled');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
popup.el.hostGoToLink.addClass('is-hidden');
|
|
||||||
popup.el.saveBtn.removeClass('pure-button-disabled');
|
|
||||||
}
|
|
||||||
|
|
||||||
var hostData = JSON.parse(localStorage.getItem(popup.key + '-' + host), true);
|
|
||||||
popup.applyData(hostData.data, true);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Click to goTo host link
|
* Click to goTo host link
|
||||||
*/
|
*/
|
||||||
|
@ -454,21 +434,66 @@
|
||||||
* Auto save draft
|
* Auto save draft
|
||||||
*/
|
*/
|
||||||
|
|
||||||
setInterval(function() {
|
var draftAutoSave = function() {
|
||||||
var draft = popup.getCurrentData(),
|
var draft = popup.getCurrentData(),
|
||||||
source = draft.source;
|
source = draft.source;
|
||||||
|
|
||||||
if( (source || !popup.data.source) && source !== popup.data.source ) {
|
|
||||||
|
|
||||||
popup.storage.setMode(popup.storage.MODE.private);
|
|
||||||
popup.storage.set('draft', draft);
|
|
||||||
|
|
||||||
// Auto switch 'enable checkbox' on source edit
|
if( (source || !popup.data.source) && source !== popup.data.source ) {
|
||||||
if( !popup.el.enableCheck.hasClass('not-auto-change') ) {
|
|
||||||
popup.el.enableCheck.prop('checked', true);
|
popup.storage.setMode(popup.storage.MODE.private);
|
||||||
|
popup.storage.set('draft', draft);
|
||||||
|
|
||||||
|
// Auto switch 'enable checkbox' on source edit
|
||||||
|
if( !popup.el.enableCheck.hasClass('not-auto-change') ) {
|
||||||
|
popup.el.enableCheck.prop('checked', true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
draftAutoSaveInterval = setInterval(draftAutoSave, 2000);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change host by select
|
||||||
|
*/
|
||||||
|
|
||||||
|
popup.el.hostSelect.on('change', function(e) {
|
||||||
|
var host = $(this).val(),
|
||||||
|
hostData = JSON.parse(localStorage.getItem(popup.key + '-' + host), true);;
|
||||||
|
|
||||||
|
if( host !== popup.protocol + '//' + popup.host ) {
|
||||||
|
// Stop making drafts
|
||||||
|
clearInterval(draftAutoSaveInterval);
|
||||||
|
|
||||||
|
// Show goto link
|
||||||
|
popup.el.hostGoToLink.removeClass('is-hidden');
|
||||||
|
|
||||||
|
// Hide controls
|
||||||
|
popup.el.saveBtn.addClass('pure-button-disabled');
|
||||||
|
popup.el.resetBtn.addClass('pure-button-disabled');
|
||||||
|
popup.el.draftRemoveLink.addClass('is-hidden');
|
||||||
|
|
||||||
|
// Apply other host data
|
||||||
|
popup.applyData(hostData.data, true);
|
||||||
}
|
}
|
||||||
}, 2000);
|
else {
|
||||||
|
// Start making drafts
|
||||||
|
draftAutoSaveInterval = setInterval(draftAutoSave, 2000);
|
||||||
|
|
||||||
|
// Hide goto link
|
||||||
|
popup.el.hostGoToLink.addClass('is-hidden');
|
||||||
|
|
||||||
|
// Show controls
|
||||||
|
popup.el.saveBtn.removeClass('pure-button-disabled');
|
||||||
|
popup.el.resetBtn.removeClass('pure-button-disabled');
|
||||||
|
if( popup.storage.get('draft') ) {
|
||||||
|
popup.el.draftRemoveLink.removeClass('is-hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply current host data
|
||||||
|
popup.applyData(hostData.draft || hostData.data, hostData.draft ? false : true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Protect 'enable checkbox' if was manually modified
|
* Protect 'enable checkbox' if was manually modified
|
||||||
|
|
Reference in a new issue