I'm working on the front end that now enables POST to rescind an emeritus 
request. Once this works I'll go to the back end and implement the 
"rescind_emeritus" action.

Three questions:

1. If I want to put a (cancel) button that does the same as double clicking on 
the Member status line, how would I do that? I guess that it is not so easy 
because the assumption on the _form:incline is that any button will create a 
POST request. [Having the (cancel) button is not really needed since I have now 
accepted this UX but I just wonder..]

2. I added a button (rescind emeritus request) but now the line is too long and 
the date entry is moved to the next line. How can I reduce the space between 
buttons to accommodate all of the buttons?

3. I'd like the (rescind emeritus request) to be active if the user of the form 
is either on the secretary team or is the person themself. I think it is 
currently set up to only allow secretary team but I don't know how to tell.

Thanks,
Craig

#
# Render and edit a person's member status
#

class PersonMemberStatus < Vue
  def render
    committer = @@person.state.committer

    _div.row data_edit: ('memstat' if @@person.props.auth.secretary) do
      _div.name 'Member status'

      if committer.member.status
        _div.value do
          _span committer.member.status

         if @@edit == :memstat
           opt = { year: 'numeric', month: 'long' } # Suggested date
           dod = Date.new.toLocaleDateString('en-US', opt)
           _form.inline method: 'post' do
             if committer.member.status.include? 'Active'
               if committer.forms['emeritus_request']
                 _button.btn.btn_primary 'rescind emeritus request',
                   name: 'action', value: 'rescind_emeritus'
               end
               _button.btn.btn_primary 'move to emeritus',
                 name: 'action', value: 'emeritus'
               _button.btn.btn_primary 'move to deceased',
                 name: 'action', value: 'deceased'
               _input 'dod', name: 'dod', value: dod
             elsif committer.member.status.include? 'Emeritus'
               _button.btn.btn_primary 'move to active',
                 name: 'action', value: 'active'
               _button.btn.btn_primary 'move to deceased',
                 name: 'action', value: 'deceased'
               _input 'dod', name: 'dod', value: dod
             elsif committer.member.status.include? 'Deceased'
               _button.btn.btn_primary 'move to active',
                 name: 'action', value: 'active'
               _button.btn.btn_primary 'move to emeritus',
                 name: 'action', value: 'emeritus'
             end
           end
         end
        end
      end
    end
  end
end

Craig L Russell
c...@apache.org

Reply via email to