whimsical-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ru...@apache.org
Subject [whimsy] branch master updated: if selection is present, reflow only selected area
Date Thu, 18 Jan 2018 19:12:43 GMT
This is an automated email from the ASF dual-hosted git repository.

rubys pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git


The following commit(s) were added to refs/heads/master by this push:
     new 4322580  if selection is present, reflow only selected area
4322580 is described below

commit 432258061682323d3982fef12a7ddf43c29b8a02
Author: Sam Ruby <rubys@intertwingly.net>
AuthorDate: Thu Jan 18 14:12:23 2018 -0500

    if selection is present, reflow only selected area
---
 www/board/agenda/views/buttons/post.js.rb | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/www/board/agenda/views/buttons/post.js.rb b/www/board/agenda/views/buttons/post.js.rb
index 8f313de..a842414 100644
--- a/www/board/agenda/views/buttons/post.js.rb
+++ b/www/board/agenda/views/buttons/post.js.rb
@@ -187,6 +187,16 @@ class Post < Vue
   # perform a reflow of report text
   def reflow()
     report = @report
+    textarea = document.getElementById('post-report-text')
+    indent = start = finish = 0
+
+    # extract selection (if any)
+    if textarea.selectionEnd > textarea.selectionStart
+      start = textarea.selectionStart
+      start -= 1  while start > 0 and report[start-1] != "\n"
+      finish = textarea.selectionEnd
+      finish += 1 while report[finish] != '\n' and finish < report.length-1
+    end
 
     # remove indentation
     unless report =~ /^\S/
@@ -196,11 +206,20 @@ class Post < Vue
         indents.push result[1].length
       end
       unless indents.empty?
-        report.gsub!(RegExp.new('^' + ' ' * Math.min(*indents), 'gm'), '')
+        indent = Math.min(*indents)
+        report.gsub!(RegExp.new('^' + ' ' * indent, 'gm'), '')
       end
     end
 
-    @report = Flow.text(report, @indent)
+    # reflow selection or entire report
+    if finish > start
+      report = Flow.text(report[start..finish], @indent+indent)
+      report.gsub(/^/, ' ' * indent) if indent > 0
+      @report = @report[0...start] + report + @report[finish+1..-1]
+    else
+      @report = Flow.text(report, @indent)
+    end
+
     self.change_message()
   end
 

-- 
To stop receiving notification emails like this one, please contact
['"commits@whimsical.apache.org" <commits@whimsical.apache.org>'].

Mime
View raw message