On Wed, 11 Aug 2021 at 18:32, <c...@apache.org> wrote:
>
> This is an automated email from the ASF dual-hosted git repository.
>
> clr pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/whimsy.git

Why have you ignored my veto?

You have still not provided any evidence as to what benefit the FF
flag provides.

Please revert the code until this is properly resolved.

Thanks.

>
> The following commit(s) were added to refs/heads/master by this push:
>      new 58e35df  Family First support in secretary workbench (#120)
> 58e35df is described below
>
> commit 58e35df90f4387ba2de09e50e3c50eb99c69f736
> Author: Craig L Russell <apache....@gmail.com>
> AuthorDate: Wed Aug 11 10:32:35 2021 -0700
>
>     Family First support in secretary workbench (#120)
>
>     * Family First support in secretary workbench
>
>     * Fix file name algorithm
>
>     * Add LDAP sn and givenName fields to icla form
>
>     * Fix obvious errors
>
>     - spurious trailing )
>     - duplicate function name
>
>     * Update icla.js.rb
>
>     Fix calling protocol for genldapsn and genldapgivenname
>
>     * Make split of public name explicit split(" ")
>
>     * remove dependency on puma
>
>     * Family first flag implementation for review after testing
>
>     * Disable LDAP icla.js.rb form fields
>
>     Co-authored-by: Sebb <s...@apache.org>
> ---
>  www/secretary/iclaparser.rb                    |  1 +
>  www/secretary/workbench/views/forms/icla.js.rb | 93 
> ++++++++++++++++++++++++--
>  2 files changed, 88 insertions(+), 6 deletions(-)
>
> diff --git a/www/secretary/iclaparser.rb b/www/secretary/iclaparser.rb
> index b35bc94..973a6c5 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..6480860 100644
> --- a/www/secretary/workbench/views/forms/icla.js.rb
> +++ b/www/secretary/workbench/views/forms/icla.js.rb
> @@ -31,7 +31,8 @@ class ICLA < Vue
>            _th 'Real Name'
>            _td do
>              _input name: 'realname', value: @realname, required: true,
> -               disabled: (@filed or @pdfbusy), onChange: self.changeRealName
> +               disabled: (@filed or @pdfbusy),
> +               onChange: self.changeRealName, onBlur: self.changeRealName
>            end
>          end
>
> @@ -39,7 +40,18 @@ class ICLA < Vue
>            _th 'Public Name'
>            _td do
>              _input name: 'pubname', value: @pubname, required: true,
> -              disabled: (@filed or @pdfbusy), onFocus: lambda {@pubname ||= 
> @realname}
> +              disabled: (@filed or @pdfbusy), onFocus: lambda {@pubname ||= 
> @realname},
> +              onChange: self.changePublicName, onBlur: self.changePublicName
> +          end
> +        end
> +
> +        _tr do
> +          _th 'Family First'
> +          _td do
> +            _input name: 'familyfirst', required: true,
> +              type: 'checkbox', checked: @familyfirst,
> +              disabled: (@filed or @pdfbusy),
> +              onChange: self.changeFamilyFirst, onBlur: 
> self.changeFamilyFirst
>            end
>          end
>
> @@ -69,6 +81,23 @@ class ICLA < Vue
>            end
>          end
>
> +# May be useful in future
> +#       _tr do
> +#         _th 'LDAP givenname'
> +#         _td do
> +#           _input name: 'ldapgivenname', value: @ldapgivenname,
> +#             disabled: (@filed or @pdfbusy)
> +#         end
> +#       end
> +
> +#       _tr do
> +#         _th 'LDAP sn'
> +#         _td do
> +#           _input name: 'ldapsn', value: @ldapsn,
> +#             disabled: (@filed or @pdfbusy)
> +#         end
> +#       end
> +#
>          _tr do
>            if @project
>              _th do
> @@ -122,7 +151,11 @@ class ICLA < Vue
>
>      @realname = name
>      @pubname = parsed.PublicName || name
> -    @filename = self.genfilename(name)
> +    @pubnamearray = @pubname.split(" ")
> +    @familyfirst = parsed.FamilyFirst || false
> +    @ldapsn = self.genldapsn(@pubnamearray, @familyfirst)
> +    @ldapgivenname = self.genldapgivenname(@pubnamearray, @familyfirst)
> +    @filename = self.genfilename(name, @familyfirst)
>      @email = parsed.EMail || @@headers.from
>      @user = parsed.ApacheID || ''
>      project = parsed.Project
> @@ -202,14 +235,62 @@ class ICLA < Vue
>      end
>    end
>
> +  # when real name changes, update file name
>    def changeRealName(event)
>      @realname = event.target.value;
> -    @filename = self.genfilename(event.target.value)
> +    @filename = self.genfilename(@realname, @familyfirst)
> +  end
> +
> +  # when family first changes, update file name and LDAP default fields
> +  def changeFamilyFirst(event)
> +    @filename = self.genfilename(@realname, @familyfirst)
> +    @pubnamearray = @pubname.split(' ')
> +    @ldapsn = self.genldapsn(@pubnamearray, @familyfirst)
> +    @ldapgivenname = self.genldapgivenname(@pubnamearray, @familyfirst)
> +  end
> +
> +  # when public name changes, update LDAP default fields
> +  def changePublicName(event)
> +    @pubname = event.target.value;
> +    @pubnamearray = @pubname.split(' ')
> +    @ldapsn = self.genldapsn(@pubnamearray, @familyfirst)
> +    @ldapgivenname = self.genldapgivenname(@pubnamearray, @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 first name to last
> +      namearray = nominalname.split("-")
> +      namearray.push(namearray[0])
> +      namearray.shift()
> +      return namearray.join("-")
> +    end
> +  end
> +
> +  # generate LDAP sn from public name
> +  # simply return either the first or last name
> +  def genldapsn(pnamearray, ffirst)
> +    if ffirst
> +      return pnamearray[0]
> +    else
> +      return pnamearray[-1]
> +    end
> +  end
> +
> +  # generate LDAP givenName from public name
> +  # simply return the remainder after removing either the first or last name
> +  def genldapgivenname(pnamearray, ffirst)
> +    if ffirst
> +      pnamearray.shift()
> +      return pnamearray.join(' ')
> +    else
> +      pnamearray.pop()
> +      return pnamearray.join(' ')
> +    end
>    end
>
>    # when leaving an input field, trigger change event (for Safari)

Reply via email to