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/10 17:29:07 UTC

[whimsy] branch secmail_on_vue created (now a7bb55e)

This is an automated email from the ASF dual-hosted git repository.

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


      at a7bb55e  rough in changes for secretary/workbench on vue

This branch includes the following new commits:

     new a7bb55e  rough in changes for secretary/workbench on vue

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


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

[whimsy] 01/01: rough in changes for secretary/workbench on vue

Posted by ru...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a7bb55ece550ee8e0ba59da722a0e83b279630ce
Author: Sam Ruby <ru...@intertwingly.net>
AuthorDate: Sun Sep 10 13:28:44 2017 -0400

    rough in changes for secretary/workbench on vue
---
 www/secretary/workbench/server.rb                  |  2 +-
 .../workbench/views/check-signature.js.rb          |  8 ++---
 www/secretary/workbench/views/context-menu.js.rb   |  4 +--
 www/secretary/workbench/views/forms/ccla.js.rb     |  8 ++---
 www/secretary/workbench/views/forms/forward.js.rb  |  2 +-
 www/secretary/workbench/views/forms/grant.js.rb    |  8 ++---
 www/secretary/workbench/views/forms/icla.js.rb     |  8 ++---
 www/secretary/workbench/views/forms/icla2.js.rb    |  8 ++---
 www/secretary/workbench/views/forms/memapp.js.rb   |  4 +--
 www/secretary/workbench/views/forms/nda.js.rb      |  2 +-
 www/secretary/workbench/views/index.js.rb          | 19 +++++------
 www/secretary/workbench/views/parts.js.rb          | 39 +++++++++++-----------
 12 files changed, 53 insertions(+), 59 deletions(-)

diff --git a/www/secretary/workbench/server.rb b/www/secretary/workbench/server.rb
index 14261c9..9223381 100644
--- a/www/secretary/workbench/server.rb
+++ b/www/secretary/workbench/server.rb
@@ -4,7 +4,7 @@
 
 require 'wunderbar/sinatra'
 require 'wunderbar/bootstrap'
-require 'wunderbar/react'
+require 'wunderbar/vue'
 require 'ruby2js/filter/functions'
 require 'ruby2js/filter/require'
 require 'erb'
diff --git a/www/secretary/workbench/views/check-signature.js.rb b/www/secretary/workbench/views/check-signature.js.rb
index a2bae6b..0aba657 100644
--- a/www/secretary/workbench/views/check-signature.js.rb
+++ b/www/secretary/workbench/views/check-signature.js.rb
@@ -2,7 +2,7 @@
 # Check signatures for validity using gpg on the server
 #
 
-class CheckSignature < React
+class CheckSignature < Vue
   def initialize
     @signature = nil
     @checked = nil
@@ -14,11 +14,7 @@ class CheckSignature < React
     end
   end
 
-  def componentDidMount()
-    self.componentWillReceiveProps()
-  end
-
-  def componentWillReceiveProps()
+  def mounted()
     @signature = CheckSignature.find(@@selected, @@attachments)
 
     if @signature and @signature != @checked
diff --git a/www/secretary/workbench/views/context-menu.js.rb b/www/secretary/workbench/views/context-menu.js.rb
index b030127..2f86362 100644
--- a/www/secretary/workbench/views/context-menu.js.rb
+++ b/www/secretary/workbench/views/context-menu.js.rb
@@ -2,7 +2,7 @@
 # Context menu with actions to apply to an attachment
 #
 
-class ContextMenu < React
+class ContextMenu < Vue
   def render
     # context menu that displays when you 'right click' an attachment
     _ul.contextMenu do
@@ -17,7 +17,7 @@ class ContextMenu < React
   end
 
   # disable context menu
-  def componentDidMount()
+  def mounted()
     document.querySelector('.contextMenu').style.display = :none
   end
 
diff --git a/www/secretary/workbench/views/forms/ccla.js.rb b/www/secretary/workbench/views/forms/ccla.js.rb
index 84c5bf4..067afd9 100644
--- a/www/secretary/workbench/views/forms/ccla.js.rb
+++ b/www/secretary/workbench/views/forms/ccla.js.rb
@@ -1,4 +1,4 @@
-class CCLA < React
+class CCLA < Vue
   def initialize
     @filed = false
     @submitted = false
@@ -80,7 +80,7 @@ class CCLA < React
 
   # on initial display, default various fields based on headers, and update
   # state 
-  def componentDidMount()
+  def mounted()
     name = @@headers.name
  
     # reorder name if there is a single comma present
@@ -97,13 +97,13 @@ class CCLA < React
     window.addEventListener 'message', self.status_update
   end
 
-  def componentWillUnmount()
+  def beforeDestroy()
     window.removeEventListener 'message', self.status_update
   end
 
   # as fields change, enable/disable the associated buttons and adjust
   # input requirements.
-  def componentDidUpdate()
+  def updated()
     # CCLA file form
     valid = %w(company product contact email).all? do |name|
       document.querySelector("input[name=#{name}]").validity.valid
diff --git a/www/secretary/workbench/views/forms/forward.js.rb b/www/secretary/workbench/views/forms/forward.js.rb
index 7e68250..4c428e4 100644
--- a/www/secretary/workbench/views/forms/forward.js.rb
+++ b/www/secretary/workbench/views/forms/forward.js.rb
@@ -1,4 +1,4 @@
-class Forward < React
+class Forward < Vue
   def render
     _h4 'Forward'
 
diff --git a/www/secretary/workbench/views/forms/grant.js.rb b/www/secretary/workbench/views/forms/grant.js.rb
index cfc4d12..fc57314 100644
--- a/www/secretary/workbench/views/forms/grant.js.rb
+++ b/www/secretary/workbench/views/forms/grant.js.rb
@@ -1,4 +1,4 @@
-class Grant < React
+class Grant < Vue
   def initialize
     @filed = false
     @submitted = false
@@ -70,7 +70,7 @@ class Grant < React
 
   # on initial display, default various fields based on headers, and update
   # state 
-  def componentDidMount()
+  def mounted()
     name = @@headers.name
  
     # reorder name if there is a single comma present
@@ -87,13 +87,13 @@ class Grant < React
     window.addEventListener 'message', self.status_update
   end
 
-  def componentWillUnmount()
+  def beforeDestroy()
     window.removeEventListener 'message', self.status_update
   end
 
   # as fields change, enable/disable the associated buttons and adjust
   # input requirements.
-  def componentDidUpdate()
+  def updated()
     # Grant file form
     valid = %w(company name email filename).all? do |name|
       document.querySelector("input[name=#{name}]").validity.valid
diff --git a/www/secretary/workbench/views/forms/icla.js.rb b/www/secretary/workbench/views/forms/icla.js.rb
index 574d8bf..9eaa764 100644
--- a/www/secretary/workbench/views/forms/icla.js.rb
+++ b/www/secretary/workbench/views/forms/icla.js.rb
@@ -1,4 +1,4 @@
-class ICLA < React
+class ICLA < Vue
   def initialize
     @filed = false
     @checked = nil
@@ -89,7 +89,7 @@ class ICLA < React
 
   # on initial display, default various fields based on headers, and update
   # state 
-  def componentDidMount()
+  def mounted()
     name = @@headers.name || ''
 
     # reorder name if there is a single comma present
@@ -108,13 +108,13 @@ class ICLA < React
     window.addEventListener 'message', self.status_update
   end
 
-  def componentWillUnmount()
+  def beforeDestroy()
     window.removeEventListener 'message', self.status_update
   end
 
   # as fields change, enable/disable the associated buttons and adjust
   # input requirements.
-  def componentDidUpdate()
+  def updated()
     # ICLA file form
     valid = %w(realname pubname email filename).all? do |name|
       document.querySelector("input[name=#{name}]").validity.valid
diff --git a/www/secretary/workbench/views/forms/icla2.js.rb b/www/secretary/workbench/views/forms/icla2.js.rb
index d0a798b..19ccd79 100644
--- a/www/secretary/workbench/views/forms/icla2.js.rb
+++ b/www/secretary/workbench/views/forms/icla2.js.rb
@@ -1,4 +1,4 @@
-class ICLA2 < React
+class ICLA2 < Vue
   def initialize
     @filed = false
     @checked = nil
@@ -101,7 +101,7 @@ class ICLA2 < React
 
   # on initial display, default various fields based on headers, and update
   # state 
-  def componentDidMount()
+  def mounted()
     if ICLA2.iclas
       @disabled = false
     else
@@ -138,13 +138,13 @@ class ICLA2 < React
     window.addEventListener 'message', self.status_update
   end
 
-  def componentWillUnmount()
+  def beforeDestroy()
     window.removeEventListener 'message', self.status_update
   end
 
   # as fields change, enable/disable the associated buttons and adjust
   # input requirements.
-  def componentDidUpdate()
+  def updated()
     # ICLA file form
     valid = %w(pubname email).all? do |name|
       document.querySelector("input[name=#{name}]").validity.valid
diff --git a/www/secretary/workbench/views/forms/memapp.js.rb b/www/secretary/workbench/views/forms/memapp.js.rb
index d721542..7f4022c 100644
--- a/www/secretary/workbench/views/forms/memapp.js.rb
+++ b/www/secretary/workbench/views/forms/memapp.js.rb
@@ -1,4 +1,4 @@
-class MemApp < React
+class MemApp < Vue
   def initialize
     @received = []
     @filed = false
@@ -104,7 +104,7 @@ class MemApp < React
 
   # on initial display, wire up form, default email and fetch 
   # memapp-received.txt
-  def componentDidMount()
+  def mounted()
     # wire up form
     jQuery('form')[0].addEventListener('submit', self.file)
     jQuery('input[name=message]').val(window.parent.location.pathname)
diff --git a/www/secretary/workbench/views/forms/nda.js.rb b/www/secretary/workbench/views/forms/nda.js.rb
index 7ad7219..4d85eaa 100644
--- a/www/secretary/workbench/views/forms/nda.js.rb
+++ b/www/secretary/workbench/views/forms/nda.js.rb
@@ -1,4 +1,4 @@
-class NDA < React
+class NDA < Vue
   def render
     _p 'NDA'
   end
diff --git a/www/secretary/workbench/views/index.js.rb b/www/secretary/workbench/views/index.js.rb
index ebdac3e..95a712c 100644
--- a/www/secretary/workbench/views/index.js.rb
+++ b/www/secretary/workbench/views/index.js.rb
@@ -2,7 +2,7 @@
 # Index page showing unprocessed messages with attachments
 #
 
-class Index < React
+class Index < Vue
   def initialize
     @selected = nil
     @messages = []
@@ -35,9 +35,8 @@ class Index < React
             time = Date.new(Date.parse(message.time)).toLocaleString()
 
             row_options = {
-              className: color, 
-              onClick: self.selectRow, 
-              onDoubleClick: self.nav
+              class: color, 
+              on: {click: self.selectRow, doubleClick: self.nav}
             }
 
             _tr row_options do
@@ -70,14 +69,14 @@ class Index < React
   end
 
   # initialize next mailbox (year+month)
-  def componentWillMount()
+  def beforeMount()
     @nextmbox = @@mbox
     self.merge @@messages if @@messages
   end
 
   # on initial load, fetch latest mailbox, subscribe to keyboard and
   # server side events, and initialize selected item.
-  def componentDidMount()
+  def mounted()
     today = Date.new()
     twice = (today.getMonth()+1==@nextmbox[4..5].to_i and today.getDate()<=7)
     self.fetch_month() do
@@ -110,7 +109,7 @@ class Index < React
   end
 
   # when content changes, ensure selected message is visible
-  def componentDidUpdate()
+  def updated()
     if @selected
       selected = document.querySelector("a[href='#{@selected}']")
       if selected
@@ -161,7 +160,7 @@ class Index < React
       end
     end
 
-    self.forceUpdate() unless messages.empty?
+    Vue.forceUpdate() unless messages.empty?
   end
 
   # update @selected, given either a DOM event or a message
@@ -204,7 +203,7 @@ class Index < React
       # send request to server to remove delete status
       HTTP.patch(selected.href, status: nil).then {
         delete selected.status
-        self.forceUpdate()
+        Vue.forceUpdate()
         self.selectRow message
       }.catch {|error|
         alert error
@@ -266,7 +265,7 @@ class Index < React
           @messages[index].status = :deleted if index >= 0
           Status.pushDeleted selected
           self.selectRow selected if @selected == selected
-          self.forceUpdate()
+          Vue.forceUpdate()
         }.catch {|error|
           alert error
         }
diff --git a/www/secretary/workbench/views/parts.js.rb b/www/secretary/workbench/views/parts.js.rb
index 579a6a2..006dbc1 100644
--- a/www/secretary/workbench/views/parts.js.rb
+++ b/www/secretary/workbench/views/parts.js.rb
@@ -3,7 +3,7 @@
 # menus and drag and drop, and hosts forms.
 #
 
-class Parts < React
+class Parts < Vue
   def initialize
     @selected = nil
     @busy = false
@@ -21,15 +21,17 @@ class Parts < React
   def render
     # common options for all list items
     options = {
-      draggable: 'true',
-      onDragStart: self.dragStart,
-      onDragEnter: self.dragEnter,
-      onDragOver: self.dragOver,
-      onDragLeave: self.dragLeave,
-      onDragEnd: self.dragEnd,
-      onDrop: self.drop,
-      onContextMenu: self.showMenu,
-      onClick: self.select
+      attrs: {draggable: 'true'},
+      on: {
+        dragstart: self.dragStart,
+        dragenter: self.dragEnter,
+        dragover: self.dragOver,
+        dragleave: self.dragLeave,
+        dragend: self.dragEnd,
+        drop: self.drop,
+        contextmenu: self.showMenu,
+        click: self.select
+      }
     }
 
     # locate corresponding signature file (if any)
@@ -38,13 +40,13 @@ class Parts < React
     # list of attachments
     _ul.attachments! @attachments, ref: 'attachments' do |attachment|
       if attachment == @drag
-        options[:className] = 'dragging'
+        options[:class] = 'dragging'
       elsif attachment == @selected
-        options[:className] = 'selected'
+        options[:class] = 'selected'
       elsif attachment == signature
-        options[:className] = 'signature'
+        options[:class] = 'signature'
       else
-        options[:className] = nil
+        options[:class] = nil
       end
 
       if attachment =~ /\.(pdf|txt|jpeg|jpg|gif|png)$/i
@@ -222,12 +224,12 @@ class Parts < React
 
   # initial list of attachments comes from the server; may be updated
   # by context menu actions.
-  def componentWillMount()
+  def beforeMount()
     @attachments = @@attachments
   end
 
   # register mouse and keyboard handlers, hide context menu
-  def componentDidMount()
+  def mounted()
     window.onmousedown = self.hideMenu
 
     # register keyboard handler on parent window and all frames
@@ -254,12 +256,9 @@ class Parts < React
     # when back button is clicked, go all of the way back
     history_length =  window.history.length
     window.addEventListener 'popstate' do |event|
-      console.log 'popstate'
       window.history.go(history_length - window.history.length)
     end
-  end
 
-  def componentWillReceiveProps()
     self.extractHeaders(@@headers)
   end
 
@@ -269,7 +268,7 @@ class Parts < React
     @headers = headers
   end
 
-  def componentDidUpdate()
+  def updated()
     if @busy
       document.body.classList.add 'busy'
     else

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