whimsical-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From curc...@apache.org
Subject [whimsy] branch master updated: Add _whimsy_body subtitle and styleallthethings!
Date Fri, 02 Jun 2017 23:52:27 GMT
This is an automated email from the ASF dual-hosted git repository.

curcuru pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git

The following commit(s) were added to refs/heads/master by this push:
       new  d7f8ad2   Add _whimsy_body subtitle and styleallthethings!
d7f8ad2 is described below

commit d7f8ad26784233a2784a03ca7b220bbfa9b4d391
Author: Shane Curcuru <asf@shanecurcuru.org>
AuthorDate: Fri Jun 2 19:52:22 2017 -0400

    Add _whimsy_body subtitle and styleallthethings!
---
 lib/whimsy/asf/themes.rb          |  4 +--
 www/brand/list.cgi                | 36 ++++++++++++++--------
 www/committers/subscribe.cgi      | 31 ++++++++++---------
 www/committers/svn-info.cgi       | 19 +++++++++---
 www/committers/testauth.cgi       | 57 ++++++++++++++++++++--------------
 www/committers/tools.cgi          |  6 ++--
 www/incubator/maillist.cgi        | 52 +++++++++++++++++++------------
 www/incubator/signoff.cgi         | 65 ++++++++++++++++++++++-----------------
 www/members/attendance-xcheck.cgi | 62 ++++++++++++++++++-------------------
 www/members/memberless-pmcs.cgi   | 45 +++++++++++++++++----------
 www/members/namediff.cgi          | 22 ++++++++-----
 www/members/nominations.cgi       | 21 ++++++++-----
 www/members/non-participants.cgi  | 58 ++++++++++++++++------------------
 www/members/subscriptions.cgi     | 33 +++++++++++---------
 www/members/watch.cgi             | 29 +++++++++--------
 15 files changed, 307 insertions(+), 233 deletions(-)

diff --git a/lib/whimsy/asf/themes.rb b/lib/whimsy/asf/themes.rb
index 0632f5f..cf7d09a 100644
--- a/lib/whimsy/asf/themes.rb
+++ b/lib/whimsy/asf/themes.rb
@@ -170,7 +170,7 @@ class Wunderbar::HtmlMarkup
   end
   
   # Emit complete bootstrap theme, with related links, and helpblock of intro text
-  def _whimsy_body(title: 'MOAR WHIMSY!', related: {}, helpblock: nil)
+  def _whimsy_body(title: 'MOAR WHIMSY!', subtitle: 'About This Script', related: {}, helpblock:
nil)
     _whimsy_nav
     _div.content.container_fluid do
       _div.row do
@@ -180,7 +180,7 @@ class Wunderbar::HtmlMarkup
       end
       _div.row do
         _div.col_md_8 do
-          _whimsy_panel "About This Script" do
+          _whimsy_panel subtitle do
             if helpblock
               helpblock.call
             else
diff --git a/www/brand/list.cgi b/www/brand/list.cgi
index a5e60cb..3f59a03 100755
--- a/www/brand/list.cgi
+++ b/www/brand/list.cgi
@@ -126,13 +126,29 @@ end
 
 _html do
   _body? do
-    _whimsy_header PAGETITLE
-    brand_dir = ASF::SVN['private/foundation/Brand']
-    docket = JSON.parse(File.read("#{brand_dir}/docket.json"))
-    projects = JSON.parse(Net::HTTP.get(URI('https://projects.apache.org/json/foundation/projects.json')))
-
-    _whimsy_content do
-      _h3 'The ASF holds the following registered trademarks:'
+    _whimsy_body(
+      title: PAGETITLE,
+      related: {
+        "https://www.apache.org/foundation/marks/resources" => "Trademark Site Map",
+        "https://www.apache.org/foundation/marks/list/" => "Official Apache Trademark
List",
+        "https://www.apache.org/foundation/marks/contact" => "Contact Us About Trademarks"
+      },
+      helpblock: -> {
+        _p "This is an automated listing of the trademarks claimed by the ASF on behalf of
our many project communities."
+        _ul do
+          _li do
+            _a 'Registered trademarks', href: '#registered'
+          end
+          _li do
+            _a 'Other trademarks', href: '#unreg_a'
+          end
+        end
+      }
+    ) do
+      brand_dir = ASF::SVN['private/foundation/Brand']
+      docket = JSON.parse(File.read("#{brand_dir}/docket.json"))
+      projects = JSON.parse(Net::HTTP.get(URI('https://projects.apache.org/json/foundation/projects.json')))
+      _h3 'The ASF holds the following registered trademarks:', id: 'registered'
       docket.each do |pmc, marks|
         if pmc == 'apache' then
           _apache(marks)
@@ -154,11 +170,5 @@ _html do
         end
       end
     end
-
-    _whimsy_footer({
-      "https://www.apache.org/foundation/marks/resources" => "Trademark Site Map",
-      "https://www.apache.org/foundation/marks/list/" => "Official Apache Trademark List",
-      "https://www.apache.org/foundation/marks/contact" => "Contact Us About Trademarks"
-      })
   end
 end
diff --git a/www/committers/subscribe.cgi b/www/committers/subscribe.cgi
index 0e62881..2367ace 100755
--- a/www/committers/subscribe.cgi
+++ b/www/committers/subscribe.cgi
@@ -41,21 +41,22 @@ _html do
   _script src: 'assets/bootstrap-select.js'
   _link rel: 'stylesheet', href: 'assets/bootstrap-select.css'
   _body? do
-    _whimsy_header PAGETITLE
-    _whimsy_content do
-      _div.row do
-        _div.panel.panel_primary do
-          _div.panel_heading {_h3.panel_title 'How To Subscribe'}
-          _div.panel_body do
-            _ 'This page allows Apache committers to auto-subscribe to various mailing lists.'
-            _span.text_info 'Note:' 
-            _ 'Only your registered email address(es) are listed here. To change your email
addresses, login to '
-            _a 'https://id.apache.org/', href: "https://id.apache.org/details/#{$USER}"
-            _ 'to add or remove forwarding or alternate addresses.'
-            _br
-          end
-        end
-      end
+    _whimsy_body(
+      title: PAGETITLE,
+      subtitle: 'How To Subscribe',
+      related: {
+        'https://www.apache.org/foundation/mailinglists.html' => 'Apache Mailing List
Info Page',
+        'https://lists.apache.org' => 'Apache Mailing List Archives',
+        'https://whimsy.apache.org/committers/moderationhelper.cgi' => 'Mailing List Moderation
Helper'
+      },
+      helpblock: -> {
+        _ 'This page allows Apache committers to auto-subscribe to various mailing lists.'
+        _span.text_info 'Note:' 
+        _ 'Only your registered email address(es) are listed here. To change your email addresses,
login to '
+        _a 'https://id.apache.org/', href: "https://id.apache.org/details/#{$USER}"
+        _ 'to add or remove forwarding or alternate addresses.'
+      }
+    ) do
       
       _form method: 'post' do
         _fieldset do
diff --git a/www/committers/svn-info.cgi b/www/committers/svn-info.cgi
index 033f8f9..dcf93ec 100755
--- a/www/committers/svn-info.cgi
+++ b/www/committers/svn-info.cgi
@@ -8,15 +8,26 @@ require 'whimsy/asf'
 _html do
   _body? do
     _style :system
-    _whimsy_header 'ASF SVN info'
-    _whimsy_content do
-      _p.lead 'SVN Info takes a URL and reports info on that file in the repository.'
+    _whimsy_body(
+      title: PAGETITLE,
+      related: {
+        'https://www.apache.org/dev/#version-control' => "How To Use Apache's SVN and
Git",
+        'https://svn.apache.org/viewvc/' => 'View Public SVN Repositories',
+        'https://github.com/apache/' => 'View Public Git Repositories'
+      },
+      helpblock: -> {
+        _ 'Enter the URL to a file in an Apache Subversion repository to see the results
of the '
+        _code 'svn info'
+        _ "command on that file.  This is useful if you don't have a subversion client locally."
+      }
+    ) do
+            
       _form do
         _div.form_group do
           _label.control_label for: 'url' do
             _ 'Enter a svn.apache.org/repos URL'
           end
-          _input.form_control type: 'text', name: 'url', size: 120, placeholder: 'SVN URL'
+          _input.form_control type: 'text', name: 'url', size: 120, placeholder: 'https://svn.apache.org/repos/asf/'
         end
         _div.form_group do
           _input.btn.btn_primary type: 'submit', value: 'Submit'
diff --git a/www/committers/testauth.cgi b/www/committers/testauth.cgi
index 2d33684..981faa5 100755
--- a/www/committers/testauth.cgi
+++ b/www/committers/testauth.cgi
@@ -9,33 +9,44 @@ require 'wunderbar'
 require 'whimsy/asf/rack'
 require 'whimsy/asf/agenda'
 
-FOUNDATION_BOARD = ASF::SVN['private/foundation/board']
-agenda = Dir[File.join(FOUNDATION_BOARD, 'board_agenda_*.txt')].sort.last
-agenda = ASF::Board::Agenda.parse(File.read(agenda))
-roll = agenda.find {|item| item['title'] == 'Roll Call'}
-
-person = ASF::Auth.decode(env)
-
 _html do
-  _table do
-    _tr do
-      _td 'User id'
-      _td person.id
-    end
+  _whimsy_body(
+    title: PAGETITLE,
+    related: {
+      'https://whimsy.apache.org/board/minutes/' => 'Board Meeting Minutes (public)',
+      'https://whimsy.apache.org/board/agenda/' => 'Board Agenda Tool (restricted)',
+      'https://whimsy.apache.org/status/' => 'Whimsy Server Status'
+    },
+    helpblock: -> {
+      _ 'This script checks your authorization to use the agenda tool, and checks if you
are listed as attending the current board meeting in the official agenda.'
+    }
+  ) do
+    FOUNDATION_BOARD = ASF::SVN['private/foundation/board']
+    agenda = Dir[File.join(FOUNDATION_BOARD, 'board_agenda_*.txt')].sort.last
+    agenda = ASF::Board::Agenda.parse(File.read(agenda))
+    roll = agenda.find {|item| item['title'] == 'Roll Call'}
 
-    _tr do
-      _td 'ASF Member?'
-      _td person.asf_member?
-    end
+    person = ASF::Auth.decode(env)
+    _table do
+      _tr do
+        _td 'User id'
+        _td person.id
+      end
 
-    _tr do
-      _td 'PMC chair?'
-      _td ASF.pmc_chairs.include? person
-    end
+      _tr do
+        _td 'ASF Member?'
+        _td person.asf_member?
+      end
+
+      _tr do
+        _td 'PMC chair?'
+        _td ASF.pmc_chairs.include? person
+      end
 
-    _tr do
-      _td 'Attending'
-      _td roll['people'].keys.include? person.id
+      _tr do
+        _td 'Attending'
+        _td roll['people'].keys.include? person.id
+      end
     end
   end
 end
diff --git a/www/committers/tools.cgi b/www/committers/tools.cgi
index 01961ff..6b17234 100755
--- a/www/committers/tools.cgi
+++ b/www/committers/tools.cgi
@@ -10,7 +10,7 @@ require '../../tools/wwwdocs.rb'
 
 _html do
   _body? do
-    _whimsy_body2(
+    _whimsy_body(
       title: PAGETITLE, 
       related: {
         "https://projects.apache.org/" => "Apache Project Listing",
@@ -28,7 +28,7 @@ _html do
           end
           AUTHMAP.each do |realm, style|
             _li do
-              _span.glyphicon.glyphicon_lock :aria_hidden, class: "#{style}"
+              _span.glyphicon.glyphicon_lock :aria_hidden, class: "#{style}", aria_label:
"#{realm}"
               _ "#{realm}"
             end
           end
@@ -47,7 +47,7 @@ _html do
               if 2 == desc.length
                 _span.glyphicon :aria_hidden, class: "#{AUTHPUBLIC}"
               else
-                _span class: desc[2] do
+                _span class: desc[2], aria_label: "#{AUTHMAP.key(desc[2])}" do
                   _span.glyphicon.glyphicon_lock :aria_hidden
                 end
               end
diff --git a/www/incubator/maillist.cgi b/www/incubator/maillist.cgi
index f191cf1..04a63d9 100755
--- a/www/incubator/maillist.cgi
+++ b/www/incubator/maillist.cgi
@@ -7,29 +7,43 @@ require 'whimsy/asf'
 require 'wunderbar/bootstrap'
 
 _html do
-  lists = ASF::Mail.lists
+  _body? do
+    _whimsy_body(
+      title: PAGETITLE,
+      related: {
+        'https://incubator.apache.org/projects/' => 'Incubator Podling List',
+        'https://whimsy.apache.org/incubator/moderators' => 'Incubator Mailing List Moderators'
+      },
+      helpblock: -> {
+        _ 'This provides a complete listing of Incubator podling mailing lists, derived from
'
+        _a 'https://whimsy.apache.org/test/dataflow.cgi#/lib/whimsy/asf/podlings.rb', href:
'https://whimsy.apache.org/test/dataflow.cgi#/lib/whimsy/asf/podlings.rb'
+      }
+    ) do
+      lists = ASF::Mail.lists
 
-  _table.table do
-    _tr do
-      _th 'podling'
-      _th 'status'
-      _th 'reports'
-      _th 'mailing lists'
-    end
+      _table.table do
+        _tr do
+          _th 'podling'
+          _th 'status'
+          _th 'reports'
+          _th 'mailing lists'
+        end
 
-    ASF::Podling.list.sort_by {|podling| podling.name}.each do |podling|
-      next if podling.status == 'retired'
-      next if podling.status == 'graduated'
+        ASF::Podling.list.sort_by {|podling| podling.name}.each do |podling|
+          next if podling.status == 'retired'
+          next if podling.status == 'graduated'
 
-      _tr_ do
-        _td! do
-          _a podling.display_name, 
-            href: "http://incubator.apache.org/projects/#{podling.name}.html"
-        end
+          _tr_ do
+            _td! do
+              _a podling.display_name, 
+                href: "http://incubator.apache.org/projects/#{podling.name}.html"
+            end
 
-        _td podling.status
-        _td podling.reporting.join(', ')
-        _td lists.select {|list| podling.mail_list?(list) }.join(', ')
+            _td podling.status
+            _td podling.reporting.join(', ')
+            _td lists.select {|list| podling.mail_list?(list) }.join(', ')
+          end
+        end
       end
     end
   end
diff --git a/www/incubator/signoff.cgi b/www/incubator/signoff.cgi
index 4d1b87a..8ef40eb 100755
--- a/www/incubator/signoff.cgi
+++ b/www/incubator/signoff.cgi
@@ -57,39 +57,46 @@ _html do
     .check {color: rgb(0,114,178)}
     .blank {color: rgb(230,159,0); font-style: italic; font-weight: bold}
   }
-
-  _h1 'Mentor signoffs over the last twelve months'
-
-  _p! do
-    _span.check 'Blue'
-    _ ' means signoff is present, '
-    _span.blank 'orange'
-    _ ' means signoff is absent.'
-  end
-
-  _p 'Hover over podling name to see date.'
-
-  _table_ do
-    mentors.sort.each do |name, entries|
-      _tr_ do
-        _td do
-          if people[name]
-            if ASF::Person.find(people[name]).asf_member?
-              _b! {_a name, href: roster + people[name]}
+  _whimsy_body(
+    title: PAGETITLE,
+    related: {
+      'https://incubator.apache.org/projects/' => 'Incubator Podling List',
+      'https://whimsy.apache.org/incubator/moderators' => 'Incubator Mailing List Moderators'
+    },
+    helpblock: -> {
+      _ do
+        _ 'This script checks past several months Incubator podling reports for mentor signoff.
'
+        _span.check 'Blue'
+        _ ' means signoff is present, '
+        _span.blank 'orange'
+        _ ' means signoff is absent.'
+      end
+      _br
+      _ 'Hover over podling name to see date.'
+    }
+  ) do
+    _table_ do
+      mentors.sort.each do |name, entries|
+        _tr_ do
+          _td do
+            if people[name]
+              if ASF::Person.find(people[name]).asf_member?
+                _b! {_a name, href: roster + people[name]}
+              else
+                _a name, href: roster + people[name]
+              end
             else
-              _a name, href: roster + people[name]
+              _a name, href: roster + '?q=' + URI.encode(name)
             end
-          else
-            _a name, href: roster + '?q=' + URI.encode(name)
           end
-        end
 
-        _td do
-          entries.each do |entry|
-            if entry[:checked]
-              _span.check entry[:podling], title: entry[:date]
-            else
-              _span.blank entry[:podling], title: entry[:date]
+          _td do
+            entries.each do |entry|
+              if entry[:checked]
+                _span.check entry[:podling], title: entry[:date]
+              else
+                _span.blank entry[:podling], title: entry[:date]
+              end
             end
           end
         end
diff --git a/www/members/attendance-xcheck.cgi b/www/members/attendance-xcheck.cgi
index 39e16ff..a630c0e 100755
--- a/www/members/attendance-xcheck.cgi
+++ b/www/members/attendance-xcheck.cgi
@@ -1,4 +1,5 @@
 #!/usr/bin/env ruby
+PAGETITLE = "Member's Meeting Attendance Cross-Check" # Wvisible:meeting
 $LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__))
 
 require 'whimsy/asf'
@@ -30,39 +31,36 @@ end
 
 # produce HTML
 _html do
-  _style %{
-    table {margin-left: 12px}
-  }
-
-  # common banner
-  _a href: 'https://whimsy.apache.org/' do
-    _img title: "ASF Logo", alt: "ASF Logo",
-      src: "https://www.apache.org/img/asf_logo.png"
-  end
-
-  _h1_ 'members.txt vs attendance.json cross-check'
-
-  _h2_ 'Listed as attending a members meeting, but not in members.txt'
-
-  _ul do
-    attend.sort.each do |name|
-      _li name
-    end
-  end
-  
-  _h2_ 'Listed in members.txt but not listed as attending a members meeting'
-
-  _table do
-    _thead do
-      _th 'name'
-      _th 'date added as a member'
+  _whimsy_body(
+    title: PAGETITLE,
+    related: {
+      'https://whimsy.apache.org/members/inactive' => 'Inactive Member Feedback Form',
+      'https://whimsy.apache.org/members/proxy' => 'Members Meeting Proxy Assignment',
+      'https://whimsy.apache.org/members/subscriptions' => 'Members@ Mailing List Crosscheck'
+    },
+    helpblock: -> {
+      _ 'This script cross-checks all people listed in members.txt versus the official attendance.json
file that notes which members attended (or proxied) which meetings.'
+    }
+  ) do
+    _h2_ 'Listed as attending a members meeting, but not in members.txt'
+    _ul do
+      attend.sort.each do |name|
+        _li name
+      end
     end
-
-    missing.sort.each do |name, meeting|
-      next if meeting =~ /^2015/
-      _tr_ do
-        _td name
-        _td meeting
+    
+    _h2_ 'Listed in members.txt but not listed as attending a members meeting'
+    _table do
+      _thead do
+        _th 'name'
+        _th 'date added as a member'
+      end
+      missing.sort.each do |name, meeting|
+        next if meeting =~ /^2015/
+        _tr_ do
+          _td name
+          _td meeting
+        end
       end
     end
   end
diff --git a/www/members/memberless-pmcs.cgi b/www/members/memberless-pmcs.cgi
index 6ba2ae1..0c8280d 100755
--- a/www/members/memberless-pmcs.cgi
+++ b/www/members/memberless-pmcs.cgi
@@ -1,4 +1,5 @@
 #!/usr/bin/env ruby
+PAGETITLE = "Crosscheck PMCs with few/no ASF Members" # Wvisible:members
 $LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__))
 require 'whimsy/asf'
 require 'wunderbar'
@@ -13,24 +14,19 @@ _html do
   _body? do
     count = (@count || 3).to_i    
     if count == 1
-      title = 'PMCs without any ASF members'
+      subtitle = 'PMCs without any ASF members'
     else
-      title = "PMCs without at least #{count} ASF members"
+      subtitle = "PMCs without at least #{count} ASF members"
     end
-    _whimsy_header title
-    members = ASF::Member.list.keys
-    committees = ASF::Committee.load_committee_info
-    _whimsy_content do
-      
-      _table_.table.table_striped do
-        _thead_ do
-          _tr do
-            _th 'PMC', data_sort: 'string-ins'
-            _th 'Established', data_sort: 'string'
-            _th 'Count', data_sort: 'int' if count > 1
-            _th 'Chair', data_sort: 'string'
-          end
-        end
+    _whimsy_body(
+      title: PAGETITLE,
+      subtitle: subtitle,
+      related: {
+        'https://whimsy.apache.org/members/watch' => 'Potential Member Watch List',
+        'https://whimsy.apache.org/roster/committee/' => 'All PMC Rosters'
+      },
+      helpblock: -> {
+        _p 'This displays PMC names where there are few/no ASF Members listed on the PMC.'
         _p do
           _ 'Switch to:'
           counts.each do |c|
@@ -39,6 +35,20 @@ _html do
             end
             _ " | " unless c.equal? counts.last 
           end
+          _ ' members on a PMC.'
+        end
+      }
+    ) do
+      members = ASF::Member.list.keys
+      committees = ASF::Committee.load_committee_info
+      _table_.table.table_striped do
+        _thead_ do
+          _tr do
+            _th 'PMC', data_sort: 'string-ins'
+            _th 'Established', data_sort: 'string'
+            _th 'Count', data_sort: 'int' if count > 1
+            _th 'Chair', data_sort: 'string'
+          end
         end
         _tbody do
           committees.sort_by {|pmc| pmc.display_name.downcase}.each do |pmc|
@@ -66,6 +76,7 @@ _html do
           th.eq(data.column).append('<span class="arrow">' + arrow +'</span>');
           });
         }
-      end
     end
   end
+end
+
diff --git a/www/members/namediff.cgi b/www/members/namediff.cgi
index 5095994..35bb0be 100755
--- a/www/members/namediff.cgi
+++ b/www/members/namediff.cgi
@@ -1,4 +1,5 @@
 #!/usr/bin/env ruby
+PAGETITLE = "Crosscheck Members Names With ICLAs"  # Wvisible:members
 $LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__))
 
 require 'whimsy/asf'
@@ -7,13 +8,20 @@ require 'wunderbar/jquery/stupidtable'
 
 _html do
   _body? do
-    _whimsy_header 'ASF Member name differences'
-    _whimsy_content do
-      _p_ do
-        _ 'Cross-check of members.txt vs iclas.txt.'
-        _span.text_danger 'REMINDER: members.txt and Legal names below are NOT public data
- keep confidential!'
-      end
-      
+    _whimsy_body(
+      title: PAGETITLE,
+      related: {
+        'https://whimsy.apache.org/roster/members' => 'Listing Of All Members',
+        'https://svn.apache.org/repos/private/foundation/officers/iclas.txt' => 'ICLA.txt
Listing',
+      },
+      helpblock: -> {
+        _p_ do
+          _ 'Cross-check of members.txt vs iclas.txt.'
+          _br
+          _span.text_danger 'REMINDER: members.txt and Legal names below are NOT public data
- keep this page confidential!'
+        end
+      }
+    ) do
       ASF::ICLA.preload
       ldap_members = ASF::Member.list.map {|id, info| ASF::Person.find(id)}
       ASF::Person.preload('cn', ldap_members)
diff --git a/www/members/nominations.cgi b/www/members/nominations.cgi
index 3f98d22..2b489ee 100755
--- a/www/members/nominations.cgi
+++ b/www/members/nominations.cgi
@@ -1,4 +1,5 @@
 #!/usr/bin/env ruby
+PAGETITLE = "Member nominations cross-check" # Wvisible:meeting
 $LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__))
 
 require 'mail'
@@ -52,8 +53,6 @@ svnurl = `cd #{meeting}; svn info`[/URL: (.*)/, 1]
 # produce HTML output of reports, highlighting ones that have not (yet)
 # been posted
 _html do
-  _title 'Member nominations cross-check'
-
   _style %{
     .missing {background-color: yellow}
     .flexbox {display: flex; flex-flow: row wrap}
@@ -62,12 +61,17 @@ _html do
     .flexitem:last-child {order: 1}
     .count {margin-left: 4em}
   }
-
-  # common banner
-  _a href: 'https://whimsy.apache.org/' do
-    _img title: "ASF Logo", alt: "ASF Logo",
-      src: "https://www.apache.org/img/asf_logo.png"
-  end
+  _whimsy_body(
+    title: PAGETITLE,
+    related: {
+      'https://whimsy.apache.org/members/memberless-pmcs' => 'PMCs with no/few ASF Members',
+      'https://svn.apache.org/repos/private/foundation/Meetings/' => 'Official Meeting
Agenda Directory'
+    },
+    helpblock: -> {
+      _ 'This script checks new member nomination statements from members@ against the official
meeting ballot files, and highlights differences. '
+      _ 'This probably only works in the period shortly before or after a Members meeting!'
+    }
+  ) do
 
   _div.flexbox do
     _div.flexitem do
@@ -130,6 +134,7 @@ _html do
     end
   end
 end
+end
 
 # produce JSON output of reports
 _json do
diff --git a/www/members/non-participants.cgi b/www/members/non-participants.cgi
index 5caea55..59e6845 100755
--- a/www/members/non-participants.cgi
+++ b/www/members/non-participants.cgi
@@ -1,4 +1,5 @@
 #!/usr/bin/env ruby
+PAGETITLE = "Active Members not participating in meetings" # Wvisible:meeting
 $LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__))
 
 require 'whimsy/asf'
@@ -38,43 +39,36 @@ end
 # produce HTML
 _html do
   _body? do
-    _whimsy_header 'Active Members not participating in meetings'
-    _whimsy_content do
-      
-    @meetingsMissed = (@meetingsMissed || 3).to_i
-      
-    _div.row do
-      _div.col_md_6 do
-        _div.panel.panel_primary do
-          _div.panel_heading {_h3.panel_title 'Select Date'}
-          _div.panel_body do
-            _form_ do
-              _span "List of members that have not participated, starting with the "
-              _select name: 'meetingsMissed', onChange: 'this.form.submit()' do
-                dates.reverse.each_with_index do |name, i|
-                  _option name, value: i+1, selected: (i+1 == @meetingsMissed)
-                end
-              end
-              _span "meeting.  Active members does not include emeritus or deceased members."
+    _whimsy_body(
+      title: PAGETITLE,
+      subtitle: 'Select A Date:',
+      related: {
+        'https://whimsy.apache.org/members/inactive' => 'Inactive Member Feedback Form',
+        'https://whimsy.apache.org/members/proxy' => 'Members Meeting Proxy Assignment',
+        'https://whimsy.apache.org/members/subscriptions' => 'Members@ Mailing List Crosscheck'
+      },
+      helpblock: -> {
+        _form_ do
+          _span "List of members that have not participated, starting with the "
+          _select name: 'meetingsMissed', onChange: 'this.form.submit()' do
+            dates.reverse.each_with_index do |name, i|
+              _option name, value: i+1, selected: (i+1 == @meetingsMissed)
             end
           end
+          _span "meeting.  Active members does not include emeritus or deceased members."
         end
-      end
-      _div.col_md_6 do
-        _div.panel.panel_primary do
-          _div.panel_heading {_h3.panel_title 'Definitions'}
-          _div.panel_body do
-            _ 'Participating is defined by doing at least one of the following:'
-            _ul do
-              _li 'Attending a members meeting'
-              _li 'Voting in an election'
-              _li 'Assigning a proxy'
-            end
+        _h4 'Definitions'
+        _p do
+          _ 'Participating is defined by doing at least one of the following:'
+          _ul do
+            _li 'Attending a members meeting'
+            _li 'Voting in an election'
+            _li 'Assigning a proxy'
           end
         end
-      end
-    end
-    
+      }
+    ) do
+    @meetingsMissed = (@meetingsMissed || 3).to_i
     count = 0
     _table.table.table_hover do
       _thead do
diff --git a/www/members/subscriptions.cgi b/www/members/subscriptions.cgi
index 540203d..abcd69f 100755
--- a/www/members/subscriptions.cgi
+++ b/www/members/subscriptions.cgi
@@ -1,4 +1,5 @@
 #!/usr/bin/env ruby
+PAGETITLE = "Aapche members@ Subscription Crosscheck" # Wvisible:members
 $LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__))
 
 require 'wunderbar'
@@ -18,10 +19,14 @@ ARCHIVERS = %w(
 
 _html do
   _body? do
-    _whimsy_header 'Apache Members Cross-check'
-    _div.panel.panel_primary do
-      _div.panel_heading {_h3.panel_title 'How This Works'}
-      _div.panel_body do
+    _whimsy_body(
+      title: PAGETITLE,
+      related: {
+        'https://whimsy.apache.org/roster/members' => 'Listing Of All Members',
+        'https://whimsy.apache.org/committers/subscribe' => 'Committers Self-Subscribe
Tool',
+        'https://lists.apache.org' => 'Apache Ponymail List Archives'
+      },
+      helpblock: -> {
         _p! do
           _ 'This process starts with the list of subscribers to '
           _a 'members@apache.org', href: 'https://mail-search.apache.org/members/private-arch/members/'
@@ -47,16 +52,15 @@ _html do
           _span.text_danger 'listed in red'
           _ '.'
         end
-      end
-    end
-    _p! do
-      _ 'Separate tables below show '
-      _a 'Members not subscribed to the list', href: "#unsub"
-      _ ', and '
-      _a 'Entries in LDAP but not members.txt', href: "#ldap"
-      _ '.'
-    end
-
+        _p! do
+          _ 'Separate tables below show '
+          _a 'Members not subscribed to the list', href: "#unsub"
+          _ ', and '
+          _a 'Entries in LDAP but not members.txt', href: "#ldap"
+          _ '.'
+        end
+      }
+    ) do
     ldap = ASF::Group['member'].members
 
     members = ASF::Member.new.map {|id, text| ASF::Person.find(id)}
@@ -162,5 +166,6 @@ _html do
         th.eq(data.column).append('<span class="arrow">' + arrow +'</span>');
         });
       }
+    end
   end
 end
diff --git a/www/members/watch.cgi b/www/members/watch.cgi
index d80ccb2..7e1ece2 100755
--- a/www/members/watch.cgi
+++ b/www/members/watch.cgi
@@ -1,4 +1,5 @@
 #!/usr/bin/env ruby
+PAGETITLE = "Potential ASF Member Watch List" # Wvisible:members
 $LOAD_PATH.unshift File.realpath(File.expand_path('../../../lib', __FILE__))
 
 require 'wunderbar'
@@ -17,9 +18,18 @@ _html do
   end
 
   _body? do
-    _whimsy_header 'Potential ASF Member Watch List'
-    _whimsy_content do
-    
+    _whimsy_body(
+      title: PAGETITLE,
+      related: {
+        'https://whimsy.apache.org/members/memberless-pmcs' => 'PMCs with no/few ASF Members',
+        'https://whimsy.apache.org/members/nominations' => 'Members Meeting Nomination
Crosscheck',
+        'https://svn.apache.org/repos/private/foundation/Meetings/' => 'Official Meeting
Agenda Directory'
+      },
+      helpblock: -> {
+        _ 'To help evaluate potential Member candidates, here are a number of ways to see
where non-Members are participating broadly at the ASF.'
+        _ 'The table(s) below include non-Members who are chairs, widely active, have been
nominated, or other criteria (depending on this URL).'
+      }
+    ) do    
     # start with the Watch List itself
     watch_list = ASF::Person.member_watch_list.keys
     meeting =
@@ -34,18 +44,7 @@ _html do
     request = ENV['REQUEST_URI']  
     
     _div.row do
-      _div.col_md_8 do
-        _div.panel.panel_primary do
-          _div.panel_heading {_h3.panel_title 'How This Works'}
-          _div.panel_body do
-            _p! do
-              _ 'To help evaluate potential Member candidates, here are a number of ways
to see where non-Members are participating broadly at the ASF.'
-              _ 'The table(s) below include non-Members who are chairs, widely active, have
been nominated, or other criteria (depending on this URL).'
-            end
-          end
-        end
-      end
-      _div.col_md_4 do
+      _div.col_sm10 do
         _div.panel.panel_primary do
           _div.panel_heading {_h3.panel_title 'Related Links'}
           _div.panel_body do

-- 
To stop receiving notification emails like this one, please contact
['"commits@whimsical.apache.org" <commits@whimsical.apache.org>'].

Mime
View raw message