Author: sebb
Date: Tue Apr  5 18:33:58 2022
New Revision: 1899589

URL: http://svn.apache.org/viewvc?rev=1899589&view=rev
Log:
Replace obsolete Whimsy json source

Update Copyright years

Modified:
    comdev/helpwanted.apache.org/site/about.html
    comdev/helpwanted.apache.org/site/admin/index.html
    comdev/helpwanted.apache.org/site/index.html
    comdev/helpwanted.apache.org/site/js/coffee/hw.coffee
    comdev/helpwanted.apache.org/site/js/hw.js
    comdev/helpwanted.apache.org/site/task.html

Modified: comdev/helpwanted.apache.org/site/about.html
URL: 
http://svn.apache.org/viewvc/comdev/helpwanted.apache.org/site/about.html?rev=1899589&r1=1899588&r2=1899589&view=diff
==============================================================================
--- comdev/helpwanted.apache.org/site/about.html (original)
+++ comdev/helpwanted.apache.org/site/about.html Tue Apr  5 18:33:58 2022
@@ -47,7 +47,7 @@
 
 <p style="font-size: 12px; font-family: sans-serif; text-align: center;">
   Managed by the <a href="http://community.apache.org/";>Apache Community 
Development Project</a>.<br/>
-  Copyright&copy; 2017, the Apache Software Foundation. Licensed under the <a 
rel="license" href="http://www.apache.org/licenses/LICENSE-2.0";>Apache License, 
Version 2.0</a>
+  Copyright&copy; 2022, the Apache Software Foundation. Licensed under the <a 
rel="license" href="http://www.apache.org/licenses/LICENSE-2.0";>Apache License, 
Version 2.0</a>
 </p>
 </body>
 </html>
\ No newline at end of file

Modified: comdev/helpwanted.apache.org/site/admin/index.html
URL: 
http://svn.apache.org/viewvc/comdev/helpwanted.apache.org/site/admin/index.html?rev=1899589&r1=1899588&r2=1899589&view=diff
==============================================================================
--- comdev/helpwanted.apache.org/site/admin/index.html (original)
+++ comdev/helpwanted.apache.org/site/admin/index.html Tue Apr  5 18:33:58 2022
@@ -64,7 +64,7 @@
 
 <p style="font-size: 12px; font-style: italic; text-align: center;">
     Managed by the <a href="https://community.apache.org/";>Apache Community 
Development Project</a>.
-    Copyright 2018, the Apache Software Foundation.
+    Copyright 2022, the Apache Software Foundation.
     Licensed under the <a 
href="http://www.apache.org/licenses/LICENSE-2.0";>Apache License 2.0</a>
 </p>
 </body>

Modified: comdev/helpwanted.apache.org/site/index.html
URL: 
http://svn.apache.org/viewvc/comdev/helpwanted.apache.org/site/index.html?rev=1899589&r1=1899588&r2=1899589&view=diff
==============================================================================
--- comdev/helpwanted.apache.org/site/index.html (original)
+++ comdev/helpwanted.apache.org/site/index.html Tue Apr  5 18:33:58 2022
@@ -37,7 +37,7 @@
 
 <p style="font-size: 12px; font-family: sans-serif; text-align: center;">
     Managed by the <a href="http://community.apache.org/";>Apache Community 
Development Project</a>, see <a href="/about.html">About This Website</a> for 
technical info.<br/>
-    Copyright&copy; 2017, the Apache Software Foundation. Licensed under the 
<a rel="license" href="http://www.apache.org/licenses/LICENSE-2.0";>Apache 
License, Version 2.0</a>
+    Copyright&copy; 2022, the Apache Software Foundation. Licensed under the 
<a rel="license" href="http://www.apache.org/licenses/LICENSE-2.0";>Apache 
License, Version 2.0</a>
 </p>
 </body>
 </html>
\ No newline at end of file

Modified: comdev/helpwanted.apache.org/site/js/coffee/hw.coffee
URL: 
http://svn.apache.org/viewvc/comdev/helpwanted.apache.org/site/js/coffee/hw.coffee?rev=1899589&r1=1899588&r2=1899589&view=diff
==============================================================================
--- comdev/helpwanted.apache.org/site/js/coffee/hw.coffee (original)
+++ comdev/helpwanted.apache.org/site/js/coffee/hw.coffee Tue Apr  5 18:33:58 
2022
@@ -283,7 +283,7 @@ reallyPopulate = (json, state) ->
     optg = mk('optgroup', { label: (if state then 'Podlings:' else 'Top Level 
Projects:')})
     app(obj, optg)
     
-    for group, data of (json.committees || json.groups || json.podling)
+    for group, data of (json.projects || json.groups || json.podling)
         if state == 'podlings' and data.status != "current"
           continue
         pro.push(group)
@@ -316,7 +316,7 @@ reallyPopulate = (json, state) ->
         fetch('https://whimsy.apache.org/public/public_podlings.json', 
'podlings', reallyPopulate)
 
 populateAdminForm = () ->
-    fetch('https://whimsy.apache.org/public/public_ldap_committees.json', 
false, reallyPopulate)   
+    fetch('https://whimsy.apache.org/public/public_ldap_projects.json', false, 
reallyPopulate)   
 
 
 displayItems = (json, state) ->

Modified: comdev/helpwanted.apache.org/site/js/hw.js
URL: 
http://svn.apache.org/viewvc/comdev/helpwanted.apache.org/site/js/hw.js?rev=1899589&r1=1899588&r2=1899589&view=diff
==============================================================================
--- comdev/helpwanted.apache.org/site/js/hw.js (original)
+++ comdev/helpwanted.apache.org/site/js/hw.js Tue Apr  5 18:33:58 2022
@@ -1,4 +1,21 @@
-// Generated by CoffeeScript 1.12.8
+// Generated by CoffeeScript 2.6.1
+
+/*
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
 var app, brights, cjson, cog, diff, diff_explanation, displayItem, 
displayItems, doForm, fetch, fetchItems, fetchItemsAdmin, genColors, get, 
hsl2rgb, hw_weburl, isArray, langs, max_items, mk, pastels, populateAdminForm, 
populateForm, post, postJSON, projects, reallyPopulate, renderItem, set, 
showSplash, splashOptions, spoken_langs, sw, swi, txt, types, website_langs, 
wizard, wstate;
 
 hsl2rgb = function(h, s, l) {
@@ -77,7 +94,7 @@ genColors = function(numColors, saturati
   var baseHue, c, cls, h, i, j, ref;
   cls = [];
   baseHue = 1.34;
-  for (i = j = 1, ref = numColors; 1 <= ref ? j <= ref : j >= ref; i = 1 <= 
ref ? ++j : --j) {
+  for (i = j = 1, ref = numColors; (1 <= ref ? j <= ref : j >= ref); i = 1 <= 
ref ? ++j : --j) {
     c = hsl2rgb(baseHue, saturation, lightness);
     if (hex) {
       h = (Math.round(c.r * 255 * 255 * 255) + Math.round(c.g * 255 * 255) + 
Math.round(c.b * 255)).toString(16);
@@ -101,24 +118,21 @@ genColors = function(numColors, saturati
   return cls;
 };
 
-
-/*
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
+// protocol identifier
+// user:pass authentication
+// IP address exclusion
+// private & local networks
+// IP address dotted notation octets
+// excludes loopback network 0.0.0.0
+// excludes reserved space >= 224.0.0.0
+// excludes network & broacast addresses
+// (first & last IP address of each class)
+// host name
+// domain name
+// TLD identifier
+// TLD may end with dot
+// port number
+// resource path
 hw_weburl = new RegExp("(" + "(?:(?:https?|ftp)://)" + "(?:\\S+(?::\\S*)?@)?" 
+ "(?:" + "(?!(?:10|127)(?:\\.\\d{1,3}){3})" + 
"(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})" + 
"(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})" + 
"(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])" + 
"(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}" + 
"(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))" + "|" + 
"(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)" + 
"(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*" + 
"(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))" + "\\.?" + ")" + "(?::\\d{2,5})?" + 
"(?:[/?#]([^,<>()\\[\\] 
\\t\\r\\n]|(<[^:\\s]*?>|\\([^:\\s]*?\\)|\\[[^:\\s]*?\\]))*)?" + ")\\.?", "mig");
 
 pastels = genColors(16, 0.9, 0.85);
@@ -131,21 +145,22 @@ splashOptions = {
   'I want to help spread the word about "Help Wanted"!': 
'location.href="wtest.html";'
 };
 
+// Difficulty levels
 diff = ['Beginner', 'Journeyman', 'Intermediate', 'Advanced', 'Expert'];
 
 diff_explanation = ['This is an easy task that anyone can get started on', 
'This requires a bit of knowledge of the project, but otherwise is an easy 
task', 'This requires a good knowledge of the project', 'This requires a good 
knowledge of the project and good technical skills', 'This requires intimate 
knowledge of the project and excellent technical skills'];
 
-
 /*
     N.B. Do NOT edit the file js/hw.js. Instead edit js/coffee/hw.coffee and 
run combine.sh to regenerate hw.js
- */
-
+*/
+// Languages (programming + spoken)
 langs = ['c', 'xml', 'c++', 'c-sharp', 'objective-c', 'java', 'javascript', 
'css', 'html', 'perl', 'ruby', 'lua', 'python', 'go', 'rust', 'erlang', 
'swift', 'groovy', 'haskell', 'scala', 'php', 'pig', 'bash', 'tcl', 'jsp', 
'svg', 'maven', 'gradle'];
 
 spoken_langs = ['english', 'french', 'german', 'spanish', 'russian', 
'italian', 'japanese', 'chinese'];
 
 website_langs = ['css', 'javascript', 'html'];
 
+// Task categories
 types = {
   programming: "Programming and Development",
   'web design': "Web Design",
@@ -155,12 +170,15 @@ types = {
   translation: 'Translation'
 };
 
+// TBD
 projects = ['all projects'];
 
 cjson = {};
 
+// Default item limit
 max_items = 10;
 
+// Sort some things
 langs.sort();
 
 showSplash = function(args) {
@@ -180,7 +198,7 @@ showSplash = function(args) {
     p = pastels[i];
     b = brights[i];
     d = mk('div', {
-      "class": "option",
+      class: "option",
       onclick: oc,
       style: "background: rgba(" + p.r + "," + p.g + "," + p.b + ", 0.85);"
     });
@@ -228,7 +246,7 @@ wizard = function(step, arg) {
       p = pastels[i];
       b = brights[i];
       d = mk('div', {
-        "class": "option",
+        class: "option",
         onclick: "wizard(2, '" + type + "');",
         style: "background: rgba(" + p.r + "," + p.g + "," + p.b + ", 0.85);"
       });
@@ -241,10 +259,12 @@ wizard = function(step, arg) {
       app(wcobj, d);
       i++;
     }
+    
+    // show me everything
     p = pastels[i];
     b = brights[i];
     d = mk('div', {
-      "class": "option",
+      class: "option",
       onclick: "fetchItems();",
       style: "background:rgba(" + p.r + "," + p.g + "," + p.b + ", 0.85);"
     });
@@ -267,7 +287,7 @@ wizard = function(step, arg) {
       style: 'font-size: 20pt; font-family: sans-serif; color: #FFF;'
     }, desc));
     obj = mk('div', {
-      "class": "optiontwo"
+      class: "optiontwo"
     });
     app(wcobj, obj);
     i = 0;
@@ -298,7 +318,7 @@ wizard = function(step, arg) {
           id: "plang_" + lang
         });
         lbl = mk('label', {
-          "for": "plang_" + lang
+          for: "plang_" + lang
         }, lang);
         app(div, cb);
         app(div, lbl);
@@ -316,7 +336,7 @@ wizard = function(step, arg) {
           id: "plang_" + lang
         });
         lbl = mk('label', {
-          "for": "plang_" + lang
+          for: "plang_" + lang
         }, lang);
         app(div, cb);
         app(div, lbl);
@@ -334,12 +354,10 @@ wizard = function(step, arg) {
           id: "plang_" + lang
         });
         lbl = mk('label', {
-          "for": "plang_" + lang
-        }, lang.replace(/^([a-z])/, (function(_this) {
-          return function(a) {
-            return a.toUpperCase();
-          };
-        })(this)));
+          for: "plang_" + lang
+        }, lang.replace(/^([a-z])/, (a) => {
+          return a.toUpperCase();
+        }));
         app(div, cb);
         app(div, lbl);
         app(obj, div);
@@ -351,7 +369,7 @@ wizard = function(step, arg) {
     });
     fbtn = mk('input', {
       type: "button",
-      "class": "finishbutton",
+      class: "finishbutton",
       onclick: "doForm(this.parentNode.parentNode);",
       value: "Find me something to do!"
     });
@@ -370,6 +388,7 @@ wizard = function(step, arg) {
 
 populateForm = function() {
   var cb, div, f, j, lang, lbl, len, len1, m, type;
+  // languages
   f = get('plang');
   for (j = 0, len = langs.length; j < len; j++) {
     lang = langs[j];
@@ -381,12 +400,14 @@ populateForm = function() {
       id: "plang_" + lang
     });
     lbl = mk('label', {
-      "for": "plang_" + lang
+      for: "plang_" + lang
     }, lang);
     app(div, [cb, lbl]);
     app(f, div);
   }
   app(f, mk('br'));
+  
+  // task types
   f = get('ptypes');
   for (m = 0, len1 = types.length; m < len1; m++) {
     type = types[m];
@@ -398,12 +419,14 @@ populateForm = function() {
       id: "ptype__" + type
     });
     lbl = mk('label', {
-      "for": "ptype_" + type
+      for: "ptype_" + type
     }, type);
     app(div, [cb, lbl]);
     app(f, div);
   }
   app(f, mk('br'));
+  
+  // projects - none for now
   f = get('pprojects');
   return app(f, "All projects");
 };
@@ -444,11 +467,13 @@ reallyPopulate = function(json, state) {
   var data, group, j, lang, len, len1, m, obj, opt, optg, pro, ref;
   pro = [];
   obj = get('project');
+  
+  // optgroup for spoken/written
   optg = mk('optgroup', {
     label: (state ? 'Podlings:' : 'Top Level Projects:')
   });
   app(obj, optg);
-  ref = json.committees || json.groups || json.podling;
+  ref = json.projects || json.groups || json.podling;
   for (group in ref) {
     data = ref[group];
     if (state === 'podlings' && data.status !== "current") {
@@ -459,6 +484,7 @@ reallyPopulate = function(json, state) {
       value: group
     }, group));
   }
+  // Add Infra
   pro.push('infrastucture');
   app(obj, mk('option', {
     value: 'infrastructure'
@@ -467,10 +493,13 @@ reallyPopulate = function(json, state) {
     return;
   }
   obj = get('languages');
+  // optgroup for programming
   optg = mk('optgroup', {
     label: "Programming languages:"
   });
   app(obj, optg);
+
+  // prog languages
   for (j = 0, len = langs.length; j < len; j++) {
     lang = langs[j];
     app(obj, mk('option', {
@@ -478,6 +507,8 @@ reallyPopulate = function(json, state) {
       value: lang
     }, lang));
   }
+  
+  // optgroup for spoken/written
   optg = mk('optgroup', {
     label: "Spoken languages:"
   });
@@ -486,11 +517,9 @@ reallyPopulate = function(json, state) {
     lang = spoken_langs[m];
     app(obj, mk('option', {
       value: lang
-    }, lang.replace(/^([a-z])/, (function(_this) {
-      return function(a) {
-        return a.toUpperCase();
-      };
-    })(this))));
+    }, lang.replace(/^([a-z])/, (a) => {
+      return a.toUpperCase();
+    })));
     opt = document.createElement('option');
   }
   if (!state || state === 0) {
@@ -499,7 +528,7 @@ reallyPopulate = function(json, state) {
 };
 
 populateAdminForm = function() {
-  return fetch('https://whimsy.apache.org/public/public_ldap_committees.json', 
false, reallyPopulate);
+  return fetch('https://whimsy.apache.org/public/public_ldap_projects.json', 
false, reallyPopulate);
 };
 
 displayItems = function(json, state) {
@@ -523,15 +552,32 @@ displayItems = function(json, state) {
     div = mk('div', {
       style: "line-height: 12pt; text-align: center;"
     }, [
-      mk('h2', {}, "Dang it!"), mk('p', {}, ["Sorry, we couldn't find any open 
tasks matching your criteria.", mk('br'), "You could try expanding your search 
or picking a different category.", mk('br'), mk('br')]), mk('p', {}, [
-        mk('span', {
+      mk('h2',
+      {},
+      "Dang it!"),
+      mk('p',
+      {},
+      ["Sorry, we couldn't find any open tasks matching your criteria.",
+      mk('br'),
+      "You could try expanding your search or picking a different category.",
+      mk('br'),
+      mk('br')]),
+      mk('p',
+      {},
+      [
+        mk('span',
+        {
           style: "font-size: 14pt; color: #333;"
-        }, [
-          "◀", mk('a', {
+        },
+        [
+          "◀",
+          mk('a',
+          {
             style: "color: #333;",
             onclick: 'wizard(1)',
             href: 'javascript:void(0);'
-          }, "Back to start")
+          },
+          "Back to start")
         ])
       ])
     ]);
@@ -540,18 +586,14 @@ displayItems = function(json, state) {
   }
   if (state && typeof state === "string") {
     if (hw_oldstate === state) {
-      json.sort((function(_this) {
-        return function(a, b) {
-          return a[state] < b[state];
-        };
-      })(this));
+      json.sort((a, b) => {
+        return a[state] < b[state];
+      });
       hw_oldstate = "";
     } else {
-      json.sort((function(_this) {
-        return function(a, b) {
-          return a[state] > b[state];
-        };
-      })(this));
+      json.sort((a, b) => {
+        return a[state] > b[state];
+      });
       hw_oldstate = state;
     }
   }
@@ -580,15 +622,15 @@ displayItems = function(json, state) {
     ptype = item.type.replace(/\s+/g, "");
     cdate = new Date(item.created * 1000).toLocaleString();
     lingos = (item.languages !== 'n/a' ? item.languages.split(",").join(", ") 
: "");
+    
+    // admin stuff
     add = "";
     if (state && state.admin) {
       add = " <td><a href='/admin/close.lua?id=" + item.request_id + "'>Mark 
as done</a></td>";
     }
-    item.description = item.description.replace(/\n/g, 
"<br/>").replace(hw_weburl, (function(_this) {
-      return function(a) {
-        return "<a href='" + a + "'>" + a + "</a>";
-      };
-    })(this));
+    item.description = item.description.replace(/\n/g, 
"<br/>").replace(hw_weburl, (a) => {
+      return "<a href='" + a + "'>" + a + "</a>";
+    });
     tbl += "<tr style='cursor: pointer;' onclick=\"sw('details_" + i + 
"');\"><td width='68'><div class='itemNumber-yellow'>" + z + "</div><img 
title='" + item.type + "' style='float: left; width: 24px; height: 24px;' 
src='/images/icon_" + ptype + ".png'/></td>" + "<td>" + item.project + "</td>" 
+ "<td style='text-align: left;'>" + item.title + "</td>" + "<td>" + lingos + 
"</td><td title='" + diff_explanation[parseInt(item.difficulty)] + "' 
style='text-align: left;'><img style='width: 20px; height: 20px; 
vertical-align: middle;' src='/images/level_" + (parseInt(item.difficulty) + 1) 
+ ".png'/> " + diff[item.difficulty] + "</td><td>" + cdate + "</td>" + add + 
"</tr>";
     tbl += "<tr style='display:none;' id='details_" + i + "'><td 
colspan='6'><b>Project:</b> " + item.project + "<br/><b>Requested by:</b> " + 
item.author + "@apache.org<br/><b>Created:</b> " + cdate + 
"<br/><b>Description:</b> <blockquote>" + item.description + 
"</blockquote><b>Further information: </b> <a href='" + item.url + "'>" + 
item.url + "</a><br/><input type='button' onclick='location.href=\"/task.html?" 
+ item.request_id + "\";' value='I am interested in this'/></td></tr>";
   }
@@ -637,11 +679,9 @@ renderItem = function(json, state) {
   if (overrides[json.project]) {
     json.project = overrides[json.project];
   }
-  json.description = json.description.replace(/\n/g, 
"<br/>").replace(hw_weburl, (function(_this) {
-    return function(a) {
-      return "<a href='" + a + "'>" + a + "</a>";
-    };
-  })(this));
+  json.description = json.description.replace(/\n/g, 
"<br/>").replace(hw_weburl, (a) => {
+    return "<a href='" + a + "'>" + a + "</a>";
+  });
   obj.innerHTML = "<h2>Task #" + state.substring(0, 8) + ": " + json.title + 
"</h2>";
   mlink = "mailto:dev@"; + json.project + ".apache.org?subject=" + escape("Help 
with task: " + json.title) + "&body=" + escape("I would like to help out with 
the task listed at /task.html?" + rid + "\n\n");
   rgba = "rgba(" + p.r + "," + p.g + "," + p.b + ", 1)";
@@ -668,6 +708,8 @@ fetch = function(url, xstate, callback,
   } else {
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
+  //xmlHttp.withCredentials = true
+  // GET URL
   xmlHttp.open("GET", url, true);
   xmlHttp.send(null);
   return xmlHttp.onreadystatechange = function(state) {
@@ -680,6 +722,7 @@ fetch = function(url, xstate, callback,
     if (xmlHttp.readyState === 4 && xmlHttp.status === 200) {
       if (callback) {
         try {
+          // Try to parse as JSON and deal with cache objects, fall back to 
old style parse-and-pass
           response = JSON.parse(xmlHttp.responseText);
           return callback(response, xstate);
         } catch (error) {
@@ -700,6 +743,7 @@ post = function(url, args, xstate, callb
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlHttp.withCredentials = true;
+  // Construct form data
   ar = [];
   for (k in args) {
     v = args[k];
@@ -708,6 +752,8 @@ post = function(url, args, xstate, callb
     }
   }
   fdata = ar.join("&");
+  
+  // POST URL
   xmlHttp.open("POST", url, true);
   xmlHttp.setRequestHeader("Content-type", 
"application/x-www-form-urlencoded");
   xmlHttp.send(fdata);
@@ -721,6 +767,7 @@ post = function(url, args, xstate, callb
     if (xmlHttp.readyState === 4 && xmlHttp.status === 200) {
       if (callback) {
         try {
+          // Try to parse as JSON and deal with cache objects, fall back to 
old style parse-and-pass
           response = JSON.parse(xmlHttp.responseText);
           return callback(response, xstate);
         } catch (error) {
@@ -741,7 +788,10 @@ postJSON = function(url, json, xstate, c
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlHttp.withCredentials = true;
+  // Construct form data
   fdata = JSON.stringify(json);
+  
+  // POST URL
   xmlHttp.open("POST", url, true);
   xmlHttp.setRequestHeader("Content-type", "application/json");
   xmlHttp.send(fdata);
@@ -755,6 +805,7 @@ postJSON = function(url, json, xstate, c
     if (xmlHttp.readyState === 4 && xmlHttp.status === 200) {
       if (callback) {
         try {
+          // Try to parse as JSON and deal with cache objects, fall back to 
old style parse-and-pass
           response = JSON.parse(xmlHttp.responseText);
           return callback(response, xstate);
         } catch (error) {
@@ -839,11 +890,8 @@ swi = function(obj) {
   });
 };
 
-cog = function(div, size) {
+cog = function(div, size = 200) {
   var i, idiv;
-  if (size == null) {
-    size = 200;
-  }
   idiv = document.createElement('div');
   idiv.setAttribute("class", "icon");
   idiv.setAttribute("style", "text-align: center; vertical-align: middle; 
height: 500px;");

Modified: comdev/helpwanted.apache.org/site/task.html
URL: 
http://svn.apache.org/viewvc/comdev/helpwanted.apache.org/site/task.html?rev=1899589&r1=1899588&r2=1899589&view=diff
==============================================================================
--- comdev/helpwanted.apache.org/site/task.html (original)
+++ comdev/helpwanted.apache.org/site/task.html Tue Apr  5 18:33:58 2022
@@ -21,7 +21,7 @@
 
 <p style="font-size: 12px; font-style: italic; text-align: center;">
     Managed by the <a href="https://community.apache.org/";>Apache Community 
Development Project</a>.
-    Copyright 2018, the Apache Software Foundation.
+    Copyright 2022, the Apache Software Foundation.
     Licensed under the <a 
href="http://www.apache.org/licenses/LICENSE-2.0";>Apache License 2.0</a>
 </p>
 </body>


Reply via email to