From e6dc637cb3d7585d4addd7df36706c4f917ea893 Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Sun, 12 Feb 2017 00:53:14 +0530 Subject: [PATCH 1/5] fix updateCodeMode event. --- src/script.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/script.js b/src/script.js index b86170b..78ae7db 100644 --- a/src/script.js +++ b/src/script.js @@ -426,7 +426,6 @@ TextareaAutoComplete */ handleModeRequirements(value); scope.cm.html.setOption('mode', modes[value].cmMode); CodeMirror.autoLoadMode(scope.cm.html, modes[value].cmPath || modes[value].cmMode); - trackEvent('ui', 'updateCodeMode', 'html', value); } function updateCssMode(value) { cssMode = value; @@ -434,7 +433,6 @@ TextareaAutoComplete */ handleModeRequirements(value); scope.cm.css.setOption('mode', modes[value].cmMode); CodeMirror.autoLoadMode(scope.cm.css, modes[value].cmPath || modes[value].cmMode); - trackEvent('ui', 'updateCodeMode', 'css', value); } function updateJsMode(value) { jsMode = value; @@ -442,7 +440,6 @@ TextareaAutoComplete */ handleModeRequirements(value); scope.cm.js.setOption('mode', modes[value].cmMode); CodeMirror.autoLoadMode(scope.cm.js, modes[value].cmPath || modes[value].cmMode); - trackEvent('ui', 'updateCodeMode', 'js', value); // FIXME: Will be saved as part of scope settings /* chrome.storage.sync.set({ @@ -1060,6 +1057,7 @@ TextareaAutoComplete */ } else if (type === 'css') { updateCssMode(mode); } + trackEvent('ui', 'updateCodeMode', mode); } }); }); From 1ccd65715bfdda75ce1ed9ac5fdd65d352642346 Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Sun, 12 Feb 2017 00:53:40 +0530 Subject: [PATCH 2/5] Fix file name when saving as html. fixes #71. Also send title in codepen api. --- src/script.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/script.js b/src/script.js index 78ae7db..c4cc6d8 100644 --- a/src/script.js +++ b/src/script.js @@ -731,6 +731,10 @@ TextareaAutoComplete */ var fileName = [ 'web-maker', d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds() ].join('-'); fileName += '.html'; + if (currentItem.title) { + fileName = currentItem.title; + } + var a = document.createElement('a'); var blob = new Blob([ fileContent ], { type: "text/html;charset=UTF-8" }); a.href = window.URL.createObjectURL(blob); @@ -996,6 +1000,9 @@ TextareaAutoComplete */ /* eslint-enable camelcase */ }; + if (!currentItem.title.match(/Untitled\s\d\d*-\d/)) { + json.title = currentItem.title; + } json = JSON.stringify(json) .replace(/"/g, "&​quot;") .replace(/'/g, "'") From fb8583dd0720d209de3c00289613b408dd4facde Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Sun, 12 Feb 2017 15:56:31 +0530 Subject: [PATCH 3/5] save main panes split sizes also. --- src/script.js | 79 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 20 deletions(-) diff --git a/src/script.js b/src/script.js index c4cc6d8..0b4f743 100644 --- a/src/script.js +++ b/src/script.js @@ -111,6 +111,18 @@ TextareaAutoComplete */ codeWrapEl.classList.add('is-minimized'); } } + // Returns the sizes of main code & preview panes. + function getMainSplitSizesToApply() { + var mainSplitSizes; + if (currentItem && currentItem.mainSizes) { + // For layout mode 3, main panes are reversed using flex-direction. + // So we need to apply the saved sizes in reverse order. + mainSplitSizes = currentLayoutMode === 3 ? [ currentItem.mainSizes[1], currentItem.mainSizes[0] ] : currentItem.mainSizes; + } else { + mainSplitSizes = [ 50, 50]; + } + return mainSplitSizes; + } function resetSplitting() { if (codeSplitInstance) { @@ -137,12 +149,14 @@ TextareaAutoComplete */ } else { options.sizes = [ 33.33, 33.33, 33.33 ]; } - // utils.log('reset spliiting', options.sizes) + utils.log('reset splitting', currentItem); + codeSplitInstance = Split(['#js-html-code', '#js-css-code', '#js-js-code'], options); mainSplitInstance = Split(['#js-code-side', '#js-demo-side' ], { direction: (currentLayoutMode === 2 ? 'vertical' : 'horizontal'), - minSize: 34, + minSize: 150, gutterSize: 6, + sizes: getMainSplitSizesToApply(), onDragEnd: function () { // Running preview updation in next call stack, so that error there // doesn't affect this dragend listener. @@ -154,7 +168,9 @@ TextareaAutoComplete */ } function toggleLayout(mode) { if (currentLayoutMode === mode) { + utils.log('setMainsize', currentItem.mainSizes || [ 50, 50 ]); utils.log('setsize', currentItem.sizes || [ 33.33, 33.33, 33.33 ]); + mainSplitInstance.setSizes(getMainSplitSizesToApply()); codeSplitInstance.setSizes(currentItem.sizes || [ 33.33, 33.33, 33.33 ]); currentLayoutMode = mode; return; @@ -219,6 +235,39 @@ TextareaAutoComplete */ } } + // Calculates the sizes of html, css & js code panes. + function getCodePaneSizes() { + var sizes; + var dimensionProperty = currentLayoutMode === 2 ? 'width' : 'height'; + try { + sizes = [ + +htmlCode.style[dimensionProperty].match(/([\d.]+)%/)[1], + +cssCode.style[dimensionProperty].match(/([\d.]+)%/)[1], + +jsCode.style[dimensionProperty].match(/([\d.]+)%/)[1] + ]; + } catch (e) { + sizes = [ 33.33, 33.33, 33.33 ] + } finally { + return sizes; + } + } + + // Calculates the current sizes of code & preview panes. + function getMainPaneSizes() { + var sizes; + var dimensionProperty = currentLayoutMode === 2 ? 'height' : 'width'; + try { + sizes = [ + +$('#js-code-side').style[dimensionProperty].match(/([\d.]+)%/)[1], + +$('#js-demo-side').style[dimensionProperty].match(/([\d.]+)%/)[1] + ]; + } catch (e) { + sizes = [ 50, 50 ] + } finally { + return sizes; + } + } + function saveCode(key) { currentItem.title = titleInput.value; currentItem.html = scope.cm.html.getValue(); @@ -234,24 +283,14 @@ TextareaAutoComplete */ // debugger; var dimensionProperty = currentLayoutMode === 2 ? 'width' : 'height'; - var sizes; - try { - sizes = [ - +htmlCode.style[dimensionProperty].match(/([\d.]+)%/)[1], - +cssCode.style[dimensionProperty].match(/([\d.]+)%/)[1], - +jsCode.style[dimensionProperty].match(/([\d.]+)%/)[1] - ]; - } catch (e) { - sizes = [ 33.33, 33.33, 33.33 ] - } finally { + currentItem.sizes = getCodePaneSizes(); + currentItem.mainSizes = getMainPaneSizes(); + console.log(currentItem.mainSizes) - currentItem.sizes = sizes; - - utils.log('saving key', key || currentItem.id, currentItem) - saveSetting(key || currentItem.id, currentItem, function () { - alertsService.add('Item saved.'); - }); - } + utils.log('saving key', key || currentItem.id, currentItem) + saveSetting(key || currentItem.id, currentItem, function () { + alertsService.add('Item saved.'); + }); } function populateItemsInSavedPane(items) { @@ -267,7 +306,7 @@ TextareaAutoComplete */ + '

' + item.title + '

Last updated: ' + utils.getHumanDate(item.updatedOn) + ''; }); } else { - html += '

Nothing saved here.

' + html += '

Nothing saved here.

'; } savedItemsPane.querySelector('#js-saved-items-wrap').innerHTML = html; toggleSavedItemsPane(); From fb995473869d33e19b74b2f0a7d39946aba032dd Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Sun, 12 Feb 2017 16:14:55 +0530 Subject: [PATCH 4/5] eslint fixes. --- src/script.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/script.js b/src/script.js index 0b4f743..fc63359 100644 --- a/src/script.js +++ b/src/script.js @@ -248,7 +248,11 @@ TextareaAutoComplete */ } catch (e) { sizes = [ 33.33, 33.33, 33.33 ] } finally { + + /* eslint-disable no-unsafe-finally */ return sizes; + + /* eslint-enable no-unsafe-finally */ } } @@ -264,7 +268,11 @@ TextareaAutoComplete */ } catch (e) { sizes = [ 50, 50 ] } finally { + + /* eslint-disable no-unsafe-finally */ return sizes; + + /* eslint-enable no-unsafe-finally */ } } @@ -280,9 +288,6 @@ TextareaAutoComplete */ currentItem.layoutMode = currentLayoutMode; currentItem.externalLibs = { js: externalJsTextarea.value, css: externalCssTextarea.value }; - // debugger; - var dimensionProperty = currentLayoutMode === 2 ? 'width' : 'height'; - currentItem.sizes = getCodePaneSizes(); currentItem.mainSizes = getMainPaneSizes(); console.log(currentItem.mainSizes) From fde818ddc617836e48963319c497813578f52404 Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Sun, 12 Feb 2017 16:43:24 +0530 Subject: [PATCH 5/5] add changelog --- src/index.html | 13 ++++++++++--- src/script.js | 4 +--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/index.html b/src/index.html index d3812b2..f34d482 100644 --- a/src/index.html +++ b/src/index.html @@ -200,7 +200,7 @@