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>.