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 >