123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>JSDoc: Source: history.js</title>
- <script src="scripts/prettify/prettify.js"> </script>
- <script src="scripts/prettify/lang-css.js"> </script>
- <!--[if lt IE 9]>
- <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
- <![endif]-->
- <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
- <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
- </head>
- <body>
- <div id="main">
- <h1 class="page-title">Source: history.js</h1>
-
-
- <section>
- <article>
- <pre class="prettyprint source linenums"><code>/**
- * An object for displaying the user's coding logs (their history).
- * A lightweight component, its only job is to open a dialog.
- *
- * @constructor
- * @this {BlockPyHistory}
- * @param {Object} main - The main BlockPy instance
- */
- function BlockPyHistory(main) {
- this.main = main;
- }
- var monthNames = [
- "Jan", "Feb", "Mar",
- "Apr", "May", "June", "July",
- "Aug", "Sept", "Oct",
- "Nov", "Dec"
- ];
- var weekDays = [
- "Sun", "Mon", "Tue",
- "Wed", "Thu", "Fri",
- "Sat"
- ];
- /**
- * Helper function to parse a date/time string and rewrite it as something
- * more human readable.
- * @param {String} timeString - the string representation of time ("YYYYMMDD HHMMSS")
- * @returns {String} - A human-readable time string.
- */
- function prettyPrintDateTime(timeString) {
- var year = timeString.slice(0, 4),
- month = parseInt(timeString.slice(4, 6), 10)-1,
- day = timeString.slice(6, 8),
- hour = timeString.slice(9, 11),
- minutes = timeString.slice(11, 13),
- seconds = timeString.slice(13, 15);
- var date = new Date(year, month, day, hour, minutes, seconds);
- var dayStr = weekDays[date.getDay()];
- var monthStr = monthNames[date.getMonth()];
- var yearFull = date.getFullYear();
- var complete = dayStr+", "+monthStr+" "+date.getDate()+", "+yearFull+" at "+date.toLocaleTimeString();
- return complete;
- }
- /**
- * Opens the history dialog box. This requires a trip to the server and
- * occurs asynchronously. The users' code is shown in preformatted text
- * tags (no code highlighting currently) along with the timestamp.
- */
- BlockPyHistory.prototype.openDialog = function() {
- var dialog = this.main.components.dialog;
- var body = "<pre>a = 0</pre>";
- this.main.components.server.getHistory(function (data) {
- body = data.reverse().reduce(function (complete, elem) {
- var complete_str = prettyPrintDateTime(elem.time);
- var new_line = "<b>"+complete_str+"</b><br><pre>"+elem.code+"</pre>";
- return complete+"\n"+new_line;
- }, "");
- dialog.show("Work History", body, function() {});
- });
- };</code></pre>
- </article>
- </section>
- </div>
- <nav>
- <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BlockPy.html">BlockPy</a></li><li><a href="BlockPyCorgis.html">BlockPyCorgis</a></li><li><a href="BlockPyDialog.html">BlockPyDialog</a></li><li><a href="BlockPyEditor.html">BlockPyEditor</a></li><li><a href="BlockPyEngine.html">BlockPyEngine</a></li><li><a href="BlockPyEnglish.html">BlockPyEnglish</a></li><li><a href="BlockPyFeedback.html">BlockPyFeedback</a></li><li><a href="BlockPyHistory.html">BlockPyHistory</a></li><li><a href="BlockPyPresentation.html">BlockPyPresentation</a></li><li><a href="BlockPyPrinter.html">BlockPyPrinter</a></li><li><a href="BlockPyServer.html">BlockPyServer</a></li><li><a href="BlockPyToolbar.html">BlockPyToolbar</a></li><li><a href="LocalStorageWrapper.html">LocalStorageWrapper</a></li><li><a href="PythonToBlocks.html">PythonToBlocks</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BlockPyInterface">BlockPyInterface</a></li><li><a href="global.html#cloneNode">cloneNode</a></li><li><a href="global.html#encodeHTML">encodeHTML</a></li><li><a href="global.html#expandArray">expandArray</a></li><li><a href="global.html#EXTENDED_ERROR_EXPLANATION">EXTENDED_ERROR_EXPLANATION</a></li><li><a href="global.html#indent">indent</a></li><li><a href="global.html#instructor_module">instructor_module</a></li><li><a href="global.html#prettyPrintDateTime">prettyPrintDateTime</a></li><li><a href="global.html#randomInteger">randomInteger</a></li><li><a href="global.html#set_button_loaded">set_button_loaded</a></li><li><a href="global.html#timerGuard">timerGuard</a></li></ul>
- </nav>
- <br class="clear">
- <footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Sun Mar 26 2017 09:45:03 GMT-0400 (Eastern Daylight Time)
- </footer>
- <script> prettyPrint(); </script>
- <script src="scripts/linenumber.js"> </script>
- </body>
- </html>
|