From d2f7fba2975cc74d9654001dafce13aa14bc18e4 Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Sat, 11 Mar 2017 00:34:15 +0530 Subject: [PATCH] show warning if new btn clicked with unsaved changes fixes #81 --- src/index.html | 6 +++--- src/script.js | 35 ++++++++++++++++++++++------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/index.html b/src/index.html index e56e129..5128374 100644 --- a/src/index.html +++ b/src/index.html @@ -67,16 +67,16 @@ Add library - + New - + Save - + Open diff --git a/src/script.js b/src/script.js index 0d8030c..add5460 100644 --- a/src/script.js +++ b/src/script.js @@ -2,7 +2,7 @@ /* global layoutBtn1, layoutBtn2, layoutBtn3, helpModal, notificationsModal, addLibraryModal, onboardModal, layoutBtn1, layoutBtn2, layoutBtn3, layoutBtn4, helpBtn, onboardModal, onboardModal, addLibraryModal, addLibraryModal, notificationsBtn, notificationsModal, notificationsModal, -notificationsModal, notificationsBtn, codepenBtn, saveHtmlBtn, openBtn, saveBtn, newBtn, +notificationsModal, notificationsBtn, codepenBtn, saveHtmlBtn, saveBtn, settingsBtn, onboardModal, settingsModal, notificationsBtn, onboardShowInTabOptionBtn, onboardDontShowInTabOptionBtn, TextareaAutoComplete */ /* eslint-disable no-extra-semi */ @@ -1170,9 +1170,29 @@ onboardDontShowInTabOptionBtn, TextareaAutoComplete */ scope.cm[type].setOption('tabSize', $('[data-setting=indentSize]').value); scope.cm[type].setOption('theme', $('[data-setting=editorTheme]').value); scope.cm[type].setOption('keyMap', $('[data-setting=keymap]').value); + scope.cm[type].setOption('keyMap', $('[data-setting=keymap]').value); + scope.cm[type].refresh(); }); }; + scope.onNewBtnClick = function () { + trackEvent('ui', 'newBtnClick'); + if (unsavedEditCount) { + var shouldDiscard = confirm('You have unsaved changes. Do you still want to create something new?'); + if (shouldDiscard) { + createNewItem(); + } + } + }; + scope.onOpenBtnClick = function () { + trackEvent('ui', 'openBtnClick'); + openSavedItemsPane(); + }; + scope.onSaveBtnClick = function () { + trackEvent('ui', 'saveBtnClick', currentItem.id ? 'saved' : 'new'); + saveItem(); + }; + function compileNodes() { var nodes = [].slice.call($all('[d-click]')); nodes.forEach(function (el) { @@ -1261,18 +1281,7 @@ onboardDontShowInTabOptionBtn, TextareaAutoComplete */ saveFile(); trackEvent('ui', 'saveHtmlClick'); }); - utils.onButtonClick(openBtn, function () { - openSavedItemsPane(); - trackEvent('ui', 'openBtnClick'); - }); - utils.onButtonClick(saveBtn, function () { - trackEvent('ui', 'saveBtnClick', currentItem.id ? 'saved' : 'new'); - saveItem(); - }); - utils.onButtonClick(newBtn, function () { - createNewItem(); - trackEvent('ui', 'newBtnClick'); - }); + utils.onButtonClick(savedItemsPaneCloseBtn, toggleSavedItemsPane); utils.onButtonClick(savedItemsPane, function (e) { if (e.target.classList.contains('js-saved-item-tile')) {