On Sun, May 3, 2020 at 7:22 PM Craig Russell <apache....@gmail.com> wrote:
>
> I'd like to start with something that should be trivial:
>
> When the user presses "move to emeritus" or "deceased" the action is 
> immediate. I'd like to change these buttons to raise a dialog box with 
> (submit) and (cancel) buttons. In general, this is my own preference and 
> better UX and I think much less dangerous.
>
> Hints for me how to convert the button to a dialog? RTFM with manual page 
> links are a fine answer.

Here's the manual: https://getbootstrap.com/docs/4.0/components/modal/

The short version is that you define a form, add a number of bootstrap
defined class attributes (example: "modal") and include it in your
page.  Initially such forms will be hidden. Then you add a number of
attributes to your button (data-toggle="modal" data-target="#...")
where data-target identifies which form to show when the button is
pressed.

Here is an example of a modal dialog in the roster tool:

https://github.com/apache/whimsy/blob/master/www/roster/views/confirm.js.rb

Here is where a number of hidden forms are included in a page:

https://github.com/apache/whimsy/blob/bacab15aca3c996950c458279ca3a78a470611ad/www/roster/views/pmc/main.js.rb#L218

Here is an example of a button that causes a previously hidden form to launch:

https://github.com/apache/whimsy/blob/bacab15aca3c996950c458279ca3a78a470611ad/www/roster/views/pmc/main.js.rb#L64

Note: these concepts are independent of whether the application is
coded in Ruby or Node.js.

> Next I'd work on adding a button (request emeritus) with a dialog box that 
> shows the form. See below for details.

Cool!

> Thanks,
> Craig

- Sam Ruby

> > On May 3, 2020, at 2:34 PM, Sam Ruby <ru...@intertwingly.net> wrote:
> >
> > On Sun, May 3, 2020 at 5:06 PM Craig Russell <apache....@gmail.com> wrote:
> >>
> >> Next level of architecture:
> >>
> >> Most of the work should be done in the front end with a bit of help from 
> >> the server. What we need from the server are:
> >>
> >> GET: given the apache id, return the full name, status (boolean: 
> >> emeritus), the complete document if already filed under 
> >> emeritus-requests-received
> >>
> >> POST: apache id, full name, filled emeritus form (if new request), 
> >> rescind-requested (boolean)
> >
> > That approach sounds like it would fit well with the current roster
> > tool.  If you are a member and you go to
> > https://whimsy.apache.org/roster/committer/__self__, you will see what
> > forms are on file, your membership status, etc.  If you go to another
> > individual, you will see their status, for example:
> > https://whimsy.apache.org/roster/committer/stefano
> >
> > At the moment, people in the secretarial team can click on "membership
> > status" and reveal buttons that say "move to active" and "move to
> > deceased".
> >
> >> So what technology seems most suitable? Node can handle the http requests 
> >> if we have a service running. Javascript can do the UI in the browser. How 
> >> to glue all of this together?
> >
> > If the port of the board agenda tool goes well (and current signs are
> > promising), then we can discuss whether to do the secretarial
> > workbench or the roster tool next.  Or perhaps we could have teams
> > working on the ports in parallel.
> >
> > Meanwhile, the Ruby codebase is the better starting point.
> >
> > I would suggest as a first task, adding a link to emeritus forms.
> >
> >> Craig
> >
> > - Sam Ruby
> >
> >>> On May 3, 2020, at 7:22 AM, Craig Russell <apache....@gmail.com> wrote:
> >>>
> >>> We will create a new script at members/emeritus.cgi that will use a file 
> >>> template [1] at a member-accessible location. This script will be linked 
> >>> from the Members whimsy page.
> >>>
> >>> The script will have three entry points:
> >>> Member in good standing
> >>> Emeritus request has been submitted
> >>> Emeritus Member
> >>>
> >>> Member in good standing:
> >>> Emeritus status will be described, and a button enabled:
> >>> (Prepare emeritus request)
> >>>
> >>> When the button is pressed, a window pops up with the Emeritus Request 
> >>> form filled from the member's information and the local timestamp 
> >>> (year-month-day hh:mm:ss <timezone> <+/- offset>) and at the bottom of 
> >>> the form two buttons:
> >>> (Submit emeritus request)
> >>> (Cancel)
> >>>
> >>> When cancel is pressed, the popup window disappears, and the original 
> >>> page redisplays.
> >>> When submit is pressed:
> >>> the filled form is filed under emeritus-requests-received
> >>> email is sent to secretary with a copy of the form, cc: the member
> >>>
> >>> Emeritus request has been submitted:
> >>> Information about the emeritus request (timestamp) is displayed, and a 
> >>> button enabled:
> >>> (Rescind emeritus request)
> >>>
> >>> When rescind is pressed, a window pops up with the submitted Emeritus 
> >>> Request and at the bottom of the form two buttons:
> >>> (Submit rescind request)
> >>> (Dismiss)
> >>>
> >>> When dismiss is pressed, the popup window disappears and the original 
> >>> page displays.
> >>> When submit is pressed:
> >>> the file is moved to emeritus-request-rescinded
> >>> email is sent to secretary stating that the request was rescinded, cc: 
> >>> the member
> >>> the Member in good standing page displays.
> >>>
> >>> Emeritus Member:
> >>> Emeritus status is described and a button displays:
> >>> (Request reinstatement)
> >>>
> >>> When request is pressed, a window pops up with text stating that the 
> >>> members wishes to reinstate membership and two buttons:
> >>> (Submit reinstatement request)
> >>> (Dismiss)
> >>>
> >>> When dismiss is pressed, the Emeritus Member display is shown
> >>> When submit is pressed, email is sent to secretary requesting 
> >>> reinstatement, cc: member.
> >>>
> >>> Comments?
> >>>
> >>> Craig
> >>>
> >>> [1]
> >>>                               Emeritus Request
> >>>
> >>> Dear Apache Secretary,
> >>>
> >>> Please change my status to emeritus.
> >>>
> >>> This request will be effective ten days after receipt. Once effective,
> >>> I understand that I will no longer be counted for quorum purposes at
> >>> Members Meetings, and I will no longer be able to vote at Members 
> >>> Meetings.
> >>>
> >>> I understand that my privileges to review the foundation records and
> >>> subscribe to members mail lists will continue. If I would like to become
> >>> active again, I will send email to secret...@apache.org requesting
> >>> reinstatement, and my request will be voted on at the next members 
> >>> meeting.
> >>>
> >>>
> >>> Apache id: __________________________________________________________
> >>>
> >>> Full name: __________________________________________________________
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Signed: __________________________________
> >>>
> >>>
> >>> Date: ____________________
> >>>
> >>>
> >>>
> >>> Craig L Russell
> >>> c...@apache.org
> >>>
> >>
> >> Craig L Russell
> >> c...@apache.org
> >>
>
> Craig L Russell
> c...@apache.org
>

Reply via email to