You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@community.apache.org by hu...@apache.org on 2019/08/08 11:09:43 UTC
svn commit: r1864690 [1/2] - in
/comdev/reporter.apache.org/trunk/site/wizard: ./ js/ js/source/
Author: humbedooh
Date: Thu Aug 8 11:09:43 2019
New Revision: 1864690
URL: http://svn.apache.org/viewvc?rev=1864690&view=rev
Log:
Beta updates for using the new API. Not deployed in prod yet
Added:
comdev/reporter.apache.org/trunk/site/wizard/beta.html
comdev/reporter.apache.org/trunk/site/wizard/js/wizard-beta.js
Modified:
comdev/reporter.apache.org/trunk/site/wizard/js/source/base-http-extensions.js
comdev/reporter.apache.org/trunk/site/wizard/js/source/build.sh
comdev/reporter.apache.org/trunk/site/wizard/js/source/drafts.js
comdev/reporter.apache.org/trunk/site/wizard/js/source/generators.js
comdev/reporter.apache.org/trunk/site/wizard/js/source/init.js
comdev/reporter.apache.org/trunk/site/wizard/js/source/primer.js
comdev/reporter.apache.org/trunk/site/wizard/js/source/unified.js
Added: comdev/reporter.apache.org/trunk/site/wizard/beta.html
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/wizard/beta.html?rev=1864690&view=auto
==============================================================================
--- comdev/reporter.apache.org/trunk/site/wizard/beta.html (added)
+++ comdev/reporter.apache.org/trunk/site/wizard/beta.html Thu Aug 8 11:09:43 2019
@@ -0,0 +1,68 @@
+ <!DOCTYPE HTML>
+<html>
+<head>
+<meta charset="utf8">
+<meta property='twitter:title' content='ASF Board Report Wizard'>
+<meta property='twitter:description' content='Guiding tool for creating board reports for ASF projects'>
+<meta property='twitter:image' content='https://reporter.apache.org/guide/logo.png'>
+
+<meta property='og:site_name' content='ASF Board Report Wizard'>
+<meta property='og:title' content='ASF Board Report Wizard'>
+<meta property='og:type' content='website'>
+<meta property='og:image' content='https://reporter.apache.org/wizard/logo.png'>
+
+<title>ASF Board Report Wizard</title>
+<link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/selawik" type="text/css"/>
+<link rel="stylesheet" href="css/wizard.css?unified-1.1"/>
+<link rel="stylesheet" href="highlighter/highlighter.css?unified-1.1"/>
+<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
+</head>
+<body onload="init_wizard(false);">
+ <div id="wizard_spinner" style="margin-top: 80px; height: 300px !important;">
+ <h4 style="text-align: center;" id="loader_text">Loading base data..</h4>
+ <div class="loader"></div>
+ </div>
+
+ <h2 id="pname" style="text-align: center; display: none;">Board Report Wizard</h2>
+ <div id="wrapper" style="display: none;" class="unified">
+ <div id="unified-steps"></div><div id="unified-editor"><div id="unified-reflow"></div><textarea id="unified-report"></textarea></div><div id="unified-helper"></div>
+ </div>
+
+ <!-- Modal for notices -->
+ <div class="modal fade" id="alert" role="dialog">
+ <div class="modal-dialog">
+
+ <!-- Modal content-->
+ <div class="modal-content">
+ <div class="modal-header">
+ <h4 class="modal-title" id="modal-title">Notification</h4>
+ </div>
+ <div class="modal-body">
+ <p id="alert_text" style="font-size: 0.85rem;"></p>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+ <footer style="text-align: center; font-size: 0.8rem; clear: both;">
+ Powered by the <a href='./'>ASF Board Report Wizard</a>. Copyright© 2019 <a href='https://community.apache.org'>Apache Community Development</a>.<br/>
+ Queries or other feedback should go to our mailing list: dev@community.apache.org
+ </footer>
+
+
+
+
+<script src="https://kit.fontawesome.com/a250232153.js"></script>
+<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
+<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
+<script src="highlighter/highlighter.js" type="text/javascript"></script>
+<script src="js/wizard-beta.js?unified-1.2" type="text/javascript"></script>
+</body>
+</html>
+
Modified: comdev/reporter.apache.org/trunk/site/wizard/js/source/base-http-extensions.js
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/wizard/js/source/base-http-extensions.js?rev=1864690&r1=1864689&r2=1864690&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/site/wizard/js/source/base-http-extensions.js (original)
+++ comdev/reporter.apache.org/trunk/site/wizard/js/source/base-http-extensions.js Thu Aug 8 11:09:43 2019
@@ -85,7 +85,7 @@ async function GET(url, callback, state,
let meta = {method: method, credentials: 'include', referrerPolicy: 'unsafe-url', headers: {'x-original-referral': document.referrer}};
if (body) {
meta.body = body;
- meta.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
+ meta.headers['Content-Type'] = 'application/json; charset=UTF-8';
}
console.log("putting %s in escrow...".format(url));
async_escrow[pkey] = new Date(); // Log start of request in escrow dict
Modified: comdev/reporter.apache.org/trunk/site/wizard/js/source/build.sh
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/wizard/js/source/build.sh?rev=1864690&r1=1864689&r2=1864690&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/site/wizard/js/source/build.sh (original)
+++ comdev/reporter.apache.org/trunk/site/wizard/js/source/build.sh Thu Aug 8 11:09:43 2019
@@ -16,9 +16,9 @@ echo '/*
limitations under the License.
*/
// THIS IS AN AUTOMATICALLY COMBINED FILE. PLEASE EDIT source/*.js!!
-' > ../wizard.js
+' > ../wizard-beta.js
for f in `ls *.js`; do
- printf "\n\n/******************************************\n Fetched from source/${f}\n******************************************/\n\n" >> ../wizard.js
- perl -0pe 's/\/\*.*?\*\/[\r\n]*//sm' ${f} >> ../wizard.js
+ printf "\n\n/******************************************\n Fetched from source/${f}\n******************************************/\n\n" >> ../wizard-beta.js
+ perl -0pe 's/\/\*.*?\*\/[\r\n]*//sm' ${f} >> ../wizard-beta.js
done
echo "Done!"
Modified: comdev/reporter.apache.org/trunk/site/wizard/js/source/drafts.js
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/wizard/js/source/drafts.js?rev=1864690&r1=1864689&r2=1864690&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/site/wizard/js/source/drafts.js (original)
+++ comdev/reporter.apache.org/trunk/site/wizard/js/source/drafts.js Thu Aug 8 11:09:43 2019
@@ -9,11 +9,10 @@ function save_draft() {
'project': project,
'action': 'save',
'type': 'unified',
- 'report': JSON.stringify(draft_stepper.editor.report),
- 'report_compiled': draft_stepper.editor.report
+ 'report': draft_stepper.editor.report
}
- let formdata = $.param(js);
+ let formdata = JSON.stringify(js);
// Enable spinner, hide main wrapper
document.getElementById('loader_text').innerText = "Saving draft...";
@@ -21,7 +20,7 @@ function save_draft() {
document.getElementById('wrapper').style.display = 'none';
document.getElementById("pname").style.display = 'none';
- POST('drafts.py', draft_saved, {}, formdata);
+ POST('/api/drafts/save', draft_saved, {}, formdata);
}
function draft_saved(state, json) {
@@ -47,7 +46,7 @@ function draft_saved(state, json) {
function load_draft(filename) {
- GET('drafts.py?action=fetch&project=%s&filename=%s&type=%s'.format(project, filename, editor_type), read_draft, {});
+ GET('/api/drafts/fetch?%s'.format(filename), read_draft, {});
}
function read_draft(state, json) {
@@ -66,7 +65,7 @@ function read_draft(state, json) {
function list_drafts(pdata, editor) {
if (!saved_drafts) {
- GET('drafts.py?action=index&project=%s&type=%s'.format(project, editor_type), show_draft_list, {stepper:editor.stepper});
+ GET('/api/drafts/index?%s'.format(project), show_draft_list, {stepper:editor.stepper});
return "";
}
else {
@@ -79,7 +78,7 @@ function show_draft_list(state, json) {
draft_stepper = state.stepper||draft_stepper; // hackish for now!
if (!draft_stepper) return;
let txt = "";
- let filenames = Object.keys(saved_drafts);
+ let filenames = Object.keys(saved_drafts||{});
if (filenames.length > 0) {
txt += "<h6>Found the following saved drafts for %s:</h6>".format(project);
txt += "<small style='font-size: 0.75rem;'><ul style='margin: 0px; padding: 10px;'>"
@@ -109,7 +108,7 @@ function delete_draft(filename) {
if (!window.confirm("Are you sure you wish to delete %s?".format(filename))) {
return;
}
- GET('drafts.py?action=delete&project=%s&filename=%s'.format(project, filename), deleted_draft, {filename: filename});
+ GET('/api/drafts/delete?%s'.format(filename), deleted_draft, {filename: filename});
}
function deleted_draft(state, json) {
@@ -142,7 +141,15 @@ function publish_report() {
'report': draft_stepper.editor.report
};
- let formdata = $.param(js);
+ if (meta_data && meta_data.filed) {
+ if (!window.confirm("The report already exists in %s. Do you wish to force an update?".format(agendafile))) {
+ return;
+ }
+ js.digest = meta_data.report.digest;
+ js.attach = meta_data.report.attach;
+ }
+
+ let formdata = JSON.stringify(js);
// Enable spinner, hide main wrapper
document.getElementById('loader_text').innerText = "Publishing report, hang on...";
@@ -150,7 +157,7 @@ function publish_report() {
document.getElementById('wrapper').style.display = 'none';
document.getElementById("pname").style.display = 'none';
- POST('whimsy.py', report_published, {}, formdata);
+ POST('/api/whimsy/publish', report_published, {}, formdata);
}
function report_published(state, json) {
@@ -165,4 +172,19 @@ function report_published(state, json) {
} else {
modal("Something went wrong, and we couldn't publish your report.<br/>Please check with the Whimsy tool to see if there is already a report posted!");
}
+
+ // Force whimsy reload of report meta data
+ GET("/api/whimsy/agenda/refresh?%s".format(project), prime_meta, {noreset: true});
+
+}
+
+function load_from_agenda() {
+ if (meta_data && meta_data.report) {
+ if (draft_stepper.editor.unsaved && !window.confirm("You have unsaved changes to your current draft. Do you wish to override these with the report in the agenda file??")) return;
+ draft_stepper.editor.object.value = meta_data.report.report;
+ draft_stepper.editor.report = meta_data.report.report;
+ window.setTimeout(() => { draft_stepper.editor.highlight() }, 250);
+ draft_stepper.build(0, false, false);
+ draft_stepper.editor.check_changes(true);
+ }
}
\ No newline at end of file
Modified: comdev/reporter.apache.org/trunk/site/wizard/js/source/generators.js
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/wizard/js/source/generators.js?rev=1864690&r1=1864689&r2=1864690&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/site/wizard/js/source/generators.js (original)
+++ comdev/reporter.apache.org/trunk/site/wizard/js/source/generators.js Thu Aug 8 11:09:43 2019
@@ -122,13 +122,24 @@ function generate_meta(data) {
let txt = "<b>Founded: </b>%s (%s)<br/>".format(founded.format('YYYY-MM-DD'), age);
txt += "<b>Chair: </b> %s<br/>".format(data.pdata[project].chair);
txt += getReportDate(cycles, project);
+ txt += "<br/>"
+ if (meta_data.found) {
+ txt += "<b>Report expected this month:</b> YES<br/>";
+ txt += "<b>Filed to agenda: </b>";
+ if (meta_data.filed) {
+ txt += "<span style='color: #080;'>Yes</span> <a class='btn btn-primary btn-sm' href='javascript:void(load_from_agenda());'>Load from agenda</a>.";
+ } else {
+ txt += "<span style='color: #800;'>Not yet</span>";
+ }
+ txt += "<br/>"
+ }
// Previous comments of note?
- let cdates = Object.keys(comments.comments);
+ let cdates = Object.keys(meta_data.comments||{});
cdates.sort();
- if (comments && cdates.length > 0) {
+ if (meta_data && cdates.length > 0) {
let date = cdates[cdates.length-1];
- let comment = comments.comments[date];
+ let comment = meta_data.comments[date];
// split and rejoin comments
let ntxt = "";
@@ -149,7 +160,7 @@ function generate_meta(data) {
function pre_splash(state, json) {
cycles = json;
- GET("/quickjson", splash, {});
+ GET("/api/overview", splash, {});
}
function splash(state, json, all) {
Modified: comdev/reporter.apache.org/trunk/site/wizard/js/source/init.js
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/wizard/js/source/init.js?rev=1864690&r1=1864689&r2=1864690&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/site/wizard/js/source/init.js (original)
+++ comdev/reporter.apache.org/trunk/site/wizard/js/source/init.js Thu Aug 8 11:09:43 2019
@@ -44,7 +44,7 @@ function init_wizard(so) {
console.log("Initializing escrow checks");
window.setInterval(escrow_check, 250);
- GET("/quickjson?%s".format(project), prime_wizard, {});
+ GET("/api/overview?%s".format(project), prime_wizard, {});
}
}
document.body.addEventListener('keydown', () => { if (event.keyCode == 27) $("#alert").modal('hide'); });
Modified: comdev/reporter.apache.org/trunk/site/wizard/js/source/primer.js
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/wizard/js/source/primer.js?rev=1864690&r1=1864689&r2=1864690&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/site/wizard/js/source/primer.js (original)
+++ comdev/reporter.apache.org/trunk/site/wizard/js/source/primer.js Thu Aug 8 11:09:43 2019
@@ -1,7 +1,7 @@
// some glopbal vars for now - we'll get them localized soon enough.
let pdata = {};
let cycles = {};
-let comments = {};
+let meta_data = {};
function modal(txt, title = 'Notification') {
document.getElementById('alert_text').innerHTML = txt;
@@ -27,12 +27,13 @@ function prime_wizard(state, json) {
if (statsonly) {
GET("/reportingcycles.json", prime_cycles, {});
} else {
- GET("comments.py?project=%s".format(project), prime_comments, {})
+ GET("/api/whimsy/agenda?%s".format(project), prime_meta, {})
}
}
-function prime_comments(state, json) {
- comments = json;
+function prime_meta(state, json) {
+ meta_data = json;
+ if (state && state.noreset) return;
GET("/reportingcycles.json", prime_cycles, {})
}
Modified: comdev/reporter.apache.org/trunk/site/wizard/js/source/unified.js
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/wizard/js/source/unified.js?rev=1864690&r1=1864689&r2=1864690&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/site/wizard/js/source/unified.js (original)
+++ comdev/reporter.apache.org/trunk/site/wizard/js/source/unified.js Thu Aug 8 11:09:43 2019
@@ -264,10 +264,14 @@ function UnifiedEditor_compile() {
text += "Your report could possibly use some more work, and that's okay! You can always save your current report as a draft and return later to work more on it. Drafts are saved for up to two months.";
}
else {
- text += "That's it, your board report compiled a-okay and is potentially ready for submission! If you'd like more time to work on it, you can save it as a draft, and return later to make some final edits. Or you can publish it to the agenda via Whimsy.";
+ text += "That's it, your board report compiled a-okay and is potentially ready for submission! If you'd lih to ke more time to work on it, you can save it as a draft, and return later to make some final edits. Or you can publish it to the agenda via Whimsy.";
}
text += "<br/><button class='btn btn-warning' onclick='save_draft();'>Save as draft</button>"
- if (this.compiles) text += " <button onclick='publish_report();' class='btn btn-success'>Publish via Whimsy</button>"
+ if (!meta_data.found) {
+ text += " <button class='btn btn-secondary' disabled title='Your project is not listed in the current agenda!'>Publish via Whimsy</button>";
+ text += "<br/><span style='color: maroon;'>Your project is not expected to report this month. You may save drafts but you cannot publish yet.</span>";
+ }
+ else if (this.compiles) text += " <button onclick='publish_report();' class='btn btn-success'>Publish via Whimsy</button>"
else text += " <button class='btn btn-secondary' disabled title='Please fix the above issues before you can publish'>Publish via Whimsy</button>"
return text;
}
@@ -282,6 +286,7 @@ function UnifiedEditor_check_changes(for
this.stepper.helper.inject(saver);
}
if (this.report != this.report_saved) {
+ this.unsaved = true;
if (saver) {
saver.innerText = "Current changes not saved yet - ";
let btn = new HTML('button', { onclick: 'save_draft();', class: 'btn btn-warning btn-sm'}, 'Save draft');
@@ -293,6 +298,7 @@ function UnifiedEditor_check_changes(for
}
} else if (saver) {
+ this.unsaved = false;
saver.style.display = 'none';
window.onbeforeunload = null;
}