From 8b17431cef5859587a2000948b04a94be59f0804 Mon Sep 17 00:00:00 2001 From: Zachary Vance Date: Wed, 13 May 2015 19:47:41 -0700 Subject: [PATCH] Make focusing work correctly for line breaks in bullets. --- dist/flowy.js | 12 +++--------- dist/flowy.unwrapped.js | 12 +++--------- src/views/todo.js | 12 +++--------- 3 files changed, 9 insertions(+), 27 deletions(-) diff --git a/dist/flowy.js b/dist/flowy.js index a9c1e73..d4213e8 100644 --- a/dist/flowy.js +++ b/dist/flowy.js @@ -76,26 +76,20 @@ var TodoView = Backbone.View.extend({ // NOTE: Shift-enter is overridden and handled seperately, to allow "notes" spanning multiple lines. } else if ((lines.length === 2 && lines[1].length === 0) || (lines.length === 3 && lines[1].length === 0 && lines[2].length === 0)) { // Line break at end - console.log("TODO: Line breaks not implemented "); this.model.setText(this.decodeText(lines[0])); var emptyAfter = this.model.addTodoAfter({text: this.decodeText(lines[1])}, collection); // Child or not depending on whether this has children this.stopEditingText(); - //emptyAfter.view.startEditingText(); - // TODO: Focus emptyAfter + emptyAfter.getView().startEditingText(); } else if (lines.length === 2 && lines[0].length === 0) { // Line break at beginning - console.log("TODO: Line breaks not implemented "); var emptyBefore = this.model.addTodoBefore({text: this.decodeText(lines[0])}, collection); this.model.setText(this.decodeText(lines[1])); this.stopEditingText(); - //emptyBefore.view.startEditingText(); - // TODO: Focus emptyBefore + emptyBefore.getView().startEditingText(); } else if (lines.length === 2) { // Line break in middle - console.log("TODO: Line breaks not implemented "); var newNode = this.model.addTodoBefore({text: this.decodeText(lines[0])}, collection); this.model.setText(this.decodeText(lines[1])); this.stopEditingText(); // For re-render - this.startEditingText(); - // Keep focus on current node (second half) + this.startEditingText(); // Keep focus on current node (second half) } else if (lines.length > 2) { console.log(lines.length); console.log($(e.target).html()); diff --git a/dist/flowy.unwrapped.js b/dist/flowy.unwrapped.js index 52df4b3..aafe463 100644 --- a/dist/flowy.unwrapped.js +++ b/dist/flowy.unwrapped.js @@ -75,26 +75,20 @@ var TodoView = Backbone.View.extend({ // NOTE: Shift-enter is overridden and handled seperately, to allow "notes" spanning multiple lines. } else if ((lines.length === 2 && lines[1].length === 0) || (lines.length === 3 && lines[1].length === 0 && lines[2].length === 0)) { // Line break at end - console.log("TODO: Line breaks not implemented "); this.model.setText(this.decodeText(lines[0])); var emptyAfter = this.model.addTodoAfter({text: this.decodeText(lines[1])}, collection); // Child or not depending on whether this has children this.stopEditingText(); - //emptyAfter.view.startEditingText(); - // TODO: Focus emptyAfter + emptyAfter.getView().startEditingText(); } else if (lines.length === 2 && lines[0].length === 0) { // Line break at beginning - console.log("TODO: Line breaks not implemented "); var emptyBefore = this.model.addTodoBefore({text: this.decodeText(lines[0])}, collection); this.model.setText(this.decodeText(lines[1])); this.stopEditingText(); - //emptyBefore.view.startEditingText(); - // TODO: Focus emptyBefore + emptyBefore.getView().startEditingText(); } else if (lines.length === 2) { // Line break in middle - console.log("TODO: Line breaks not implemented "); var newNode = this.model.addTodoBefore({text: this.decodeText(lines[0])}, collection); this.model.setText(this.decodeText(lines[1])); this.stopEditingText(); // For re-render - this.startEditingText(); - // Keep focus on current node (second half) + this.startEditingText(); // Keep focus on current node (second half) } else if (lines.length > 2) { console.log(lines.length); console.log($(e.target).html()); diff --git a/src/views/todo.js b/src/views/todo.js index 3c5d35e..dd66f4c 100644 --- a/src/views/todo.js +++ b/src/views/todo.js @@ -75,26 +75,20 @@ var TodoView = Backbone.View.extend({ // NOTE: Shift-enter is overridden and handled seperately, to allow "notes" spanning multiple lines. } else if ((lines.length === 2 && lines[1].length === 0) || (lines.length === 3 && lines[1].length === 0 && lines[2].length === 0)) { // Line break at end - console.log("TODO: Line breaks not implemented "); this.model.setText(this.decodeText(lines[0])); var emptyAfter = this.model.addTodoAfter({text: this.decodeText(lines[1])}, collection); // Child or not depending on whether this has children this.stopEditingText(); - //emptyAfter.view.startEditingText(); - // TODO: Focus emptyAfter + emptyAfter.getView().startEditingText(); } else if (lines.length === 2 && lines[0].length === 0) { // Line break at beginning - console.log("TODO: Line breaks not implemented "); var emptyBefore = this.model.addTodoBefore({text: this.decodeText(lines[0])}, collection); this.model.setText(this.decodeText(lines[1])); this.stopEditingText(); - //emptyBefore.view.startEditingText(); - // TODO: Focus emptyBefore + emptyBefore.getView().startEditingText(); } else if (lines.length === 2) { // Line break in middle - console.log("TODO: Line breaks not implemented "); var newNode = this.model.addTodoBefore({text: this.decodeText(lines[0])}, collection); this.model.setText(this.decodeText(lines[1])); this.stopEditingText(); // For re-render - this.startEditingText(); - // Keep focus on current node (second half) + this.startEditingText(); // Keep focus on current node (second half) } else if (lines.length > 2) { console.log(lines.length); console.log($(e.target).html()); -- 2.47.3