You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by cl...@apache.org on 2021/07/24 19:18:06 UTC

[whimsy] 01/01: Family First support in secretary workbench

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

clr pushed a commit to branch family-first
in repository https://gitbox.apache.org/repos/asf/whimsy.git

commit 9bc830b03a1d32a9e8973a72764d272da7f6d9d1
Author: Craig L Russell <ap...@gmail.com>
AuthorDate: Sat Jul 24 12:17:21 2021 -0700

    Family First support in secretary workbench
---
 www/secretary/iclaparser.rb                    |  1 +
 www/secretary/workbench/views/forms/icla.js.rb | 30 ++++++++++++++++++++++----
 2 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/www/secretary/iclaparser.rb b/www/secretary/iclaparser.rb
index 2aa35c2..7e89a09 100644
--- a/www/secretary/iclaparser.rb
+++ b/www/secretary/iclaparser.rb
@@ -116,6 +116,7 @@ module ICLAParser
   NAME2FIELD = {
     'fullname' => :FullName,
     'publicname' => :PublicName,
+    'familyfirst' => :FamilyFirst,
     'mailingaddress' => :MailingAddress,
     'mailingaddress2' => :MailingAddress2,
     'postaladdress' => :MailingAddress,
diff --git a/www/secretary/workbench/views/forms/icla.js.rb b/www/secretary/workbench/views/forms/icla.js.rb
index 5ddb5df..b6ed936 100644
--- a/www/secretary/workbench/views/forms/icla.js.rb
+++ b/www/secretary/workbench/views/forms/icla.js.rb
@@ -44,6 +44,14 @@ class ICLA < Vue
         end
 
         _tr do
+          _th 'Family First'
+          _td do
+            _input name: 'familyfirst', value: @familyfirst, required: true,
+              disabled: (@filed or @pdfbusy), onChange: self.changeFamilyFirst
+          end
+        end
+
+        _tr do
           _th 'E-mail'
           _td do
             _input name: 'email', value: @email, required: true, type: 'email',
@@ -122,7 +130,8 @@ class ICLA < Vue
 
     @realname = name
     @pubname = parsed.PublicName || name
-    @filename = self.genfilename(name)
+    @familyfirst = parsed.FamilyFirst || false
+    @filename = self.genfilename(name, @familyfirst)
     @email = parsed.EMail || @@headers.from
     @user = parsed.ApacheID || ''
     project = parsed.Project
@@ -204,12 +213,25 @@ class ICLA < Vue
 
   def changeRealName(event)
     @realname = event.target.value;
-    @filename = self.genfilename(event.target.value)
+    @filename = self.genfilename(event.target.value, @familyfirst)
+  end
+
+  def changeFamilyFirst(event)
+    @familyfirst = event.target.value;
+    @filename = self.genfilename(@realname, @familyfirst)
   end
 
   # generate file name from the real name
-  def genfilename(realname)
-    return asciize(realname.strip()).downcase().gsub(/\W+/, '-')
+  def genfilename(realname, familyfirst))
+    nominalname = asciize(realname.strip()).downcase().gsub(/\W+/, '-')
+    if !familyfirst
+      return nominalname
+    else
+      # compute file name with family first; move last name to first
+      namearray = nominalname.split("-")
+      namearray.insert(0, namearray(-1)).delete_at(-1)
+      return namearray.join("-")
+    end
   end
 
   # when leaving an input field, trigger change event (for Safari)