diff --git a/lib/client/config.js b/lib/client/config.js index 427d27a8..fa3b8979 100644 --- a/lib/client/config.js +++ b/lib/client/config.js @@ -249,28 +249,35 @@ var CloudCmd, Util, DOM, io; } function onLocalStorageChange(checked) { - var elLocalStorage = DOM.getById('localStorage', Element), - elDiff = DOM.getById('diff', Element), - elBuffer = DOM.getById('buffer', Element), - elDirStorage = DOM.getById('dirStorage', Element), - isChecked = elDiff.checked || elBuffer.checked || elDirStorage.checked, + var isChecked, + names = ['diff', 'buffer', 'dirStorage', 'localStorage'], + elements = names.map(DOM.getById), + el = {}, msg = 'Diff, Buffer and Directory Storage do not work without localStorage'; - if (isChecked && !elLocalStorage.checked) { + elements.map(function(element) { + var name = element.id; + + el[name] = element; + + if (element.checked) + isChecked = true; + }); + + if (isChecked && !el.localStorage.checked) { alert(msg); - checked = - elDiff.checked = - elBuffer.checked = - elDirStorage.checked = false; - - onChange({ - target: elDiff + elements.forEach(function(element) { + if (element.checked) { + element.checked = false; + + onChange({ + target: element + }); + } }); - onChange({ - target: elBuffer - }); + checked = false; } return checked;