You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by ru...@apache.org on 2017/09/27 18:44:00 UTC

[whimsy] 02/03: make toggling work again

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

commit 39b7f82abbbbb69553f98190d74c334535d8b4de
Author: Sam Ruby <ru...@intertwingly.net>
AuthorDate: Wed Sep 27 14:43:03 2017 -0400

    make toggling work again
---
 www/board/agenda/views/app.js.rb                  |  1 +
 www/board/agenda/views/buttons/post-actions.js.rb | 15 ++++++++++++++-
 www/board/agenda/views/layout/header.js.rb        | 17 +++++++++++++++--
 www/board/agenda/views/pages/select-actions.rb    |  6 +-----
 www/board/agenda/views/utils.js.rb                |  4 ++--
 www/roster/views/person.js.rb                     | 19 ++++++++++---------
 6 files changed, 43 insertions(+), 19 deletions(-)

diff --git a/www/board/agenda/views/app.js.rb b/www/board/agenda/views/app.js.rb
index c7ba655..1386377 100644
--- a/www/board/agenda/views/app.js.rb
+++ b/www/board/agenda/views/app.js.rb
@@ -1,5 +1,6 @@
 # config
 require_relative 'vue-config'
+require_relative 'event-bus'
 
 # common
 require_relative 'router'
diff --git a/www/board/agenda/views/buttons/post-actions.js.rb b/www/board/agenda/views/buttons/post-actions.js.rb
index acf72dd..a973edc 100644
--- a/www/board/agenda/views/buttons/post-actions.js.rb
+++ b/www/board/agenda/views/buttons/post-actions.js.rb
@@ -4,11 +4,24 @@
 class PostActions < Vue
   def initialize
     @disabled = false
+    @list = []
   end
 
   def render
     _button.btn.btn_primary 'post actions', onClick: self.click, 
-      disabled: @disabled || SelectActions.data.list.emtpy?
+      disabled: @disabled || @list.empty?
+  end
+
+  def mounted()
+    EventBus.on :potential_actions, self.potential_actions
+  end
+
+  def beforeDestroy()
+    EventBus.off :potential_actions, self.potential_actions
+  end
+
+  def potential_actions(list)
+    @list = list
   end
 
   def click(event)
diff --git a/www/board/agenda/views/layout/header.js.rb b/www/board/agenda/views/layout/header.js.rb
index 5ba3590..7839466 100644
--- a/www/board/agenda/views/layout/header.js.rb
+++ b/www/board/agenda/views/layout/header.js.rb
@@ -8,6 +8,7 @@
 class Header < Vue
   def initialize
     @infodropdown = nil
+    @clock_counter = 0
   end
 
   def render
@@ -18,7 +19,7 @@ class Header < Vue
         _PodlingNameSearch item: @@item
       end
 
-      _span.clock! "\u231B" if clock_counter > 0
+      _span.clock! "\u231B" if @clock_counter > 0
 
       _ul.nav.nav_pills.navbar_right do
 
@@ -126,8 +127,20 @@ class Header < Vue
     end
   end
 
+  def beforeMount()
+    EventBus.on :clock_counter, self.update_counter
+  end
+
+  def beforeDestroy()
+    EventBus.off :clock_counter, self.update_counter
+  end
+
+  def update_counter(counter)
+    @clock_counter = counter
+  end
+
   # toggle info dropdown
-  def toggleInfo
+  def toggleInfo()
     @infodropdown = (@infodropdown ? nil : 'open')
   end
 end
diff --git a/www/board/agenda/views/pages/select-actions.rb b/www/board/agenda/views/pages/select-actions.rb
index 19078e4..f16ed8b 100644
--- a/www/board/agenda/views/pages/select-actions.rb
+++ b/www/board/agenda/views/pages/select-actions.rb
@@ -13,11 +13,6 @@ class SelectActions < Vue
     @names = []
   end
 
-  def created()
-    console.log 'created'
-    SelectActions.data = $data
-  end
-
   def render
     _h3 'Post Action Items'
 
@@ -37,6 +32,7 @@ class SelectActions < Vue
       if response
         @list = response.actions
         @names = response.names
+        EventBus.emit :potential_actions, @list
       end
     end
   end
diff --git a/www/board/agenda/views/utils.js.rb b/www/board/agenda/views/utils.js.rb
index f097e5e..f31f9d2 100644
--- a/www/board/agenda/views/utils.js.rb
+++ b/www/board/agenda/views/utils.js.rb
@@ -89,7 +89,7 @@ def retrieve(target, type, &block)
   def xhr.onreadystatechange()
     if xhr.readyState == 1
       clock_counter += 1
-      setTimeout(0) {Main.refresh()}
+      EventBus.emit :clock_counter, clock_counter
     elsif xhr.readyState == 4
       data = nil
 
@@ -120,7 +120,7 @@ def retrieve(target, type, &block)
 
       block(data)
       clock_counter -= 1
-      Main.refresh()
+      EventBus.emit :clock_counter, clock_counter
     end
   end
 
diff --git a/www/roster/views/person.js.rb b/www/roster/views/person.js.rb
index 198aa7a..4d796cd 100644
--- a/www/roster/views/person.js.rb
+++ b/www/roster/views/person.js.rb
@@ -209,8 +209,14 @@ class Person < Vue
 
   # when a double click occurs, toggle the associated state
   def dblclick(event)
-    tr = event.currentTarget
-    @edit = tr.dataset.edit
+    row = event.currentTarget
+
+    if row.dataset.edit == @edit
+      @edit = nil
+    else
+      @edit = row.dataset.edit
+    end
+
     window.getSelection().removeAllRanges()
   end
 
@@ -256,13 +262,8 @@ class Person < Vue
         @committer = response.committer if response.committer
 
         # turn off edit mode on this field
-        tr = form.closest('tr')[0]
-        if tr
-          field = "edit_#{tr.dataset.edit}"
-          changes = {}
-          changes[field] = false
-          self.setState changes
-        end
+        row = form.closest('.row')[0]
+        @edit = nil if row and row.dataset.edit == @edit
       },
 
       error: ->(response) {

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