From 24580cff8aa75664115aacccb0b653c3ae7b34af Mon Sep 17 00:00:00 2001 From: bjones1 Date: Sat, 24 Apr 2021 00:19:40 +0000 Subject: [PATCH 1/3] Clean: Move imports to webpack --- runestone/__init__.py | 1 - runestone/activecode/js/livecode.js | 1 + runestone/codelens/js/codelens.js | 2 ++ runestone/codelens/visualizer.py | 4 +--- runestone/common/js/renderComponent.js | 4 ++-- runestone/common/js/user-highlights.js | 4 ---- runestone/selectquestion/js/selectone.js | 8 ++++---- 7 files changed, 10 insertions(+), 14 deletions(-) diff --git a/runestone/__init__.py b/runestone/__init__.py index 50f0daf45..59d9466ca 100644 --- a/runestone/__init__.py +++ b/runestone/__init__.py @@ -208,7 +208,6 @@ def build(options): "presenter_mode.css", "jquery-ui-1.10.3.custom.min.css", "bootstrap-sphinx.css", - "user-highlights.css", "runestone-custom-sphinx-bootstrap.css?v=" + runestone_version, "theme-overrides.css", ] diff --git a/runestone/activecode/js/livecode.js b/runestone/activecode/js/livecode.js index 29e670b4f..efa26195c 100644 --- a/runestone/activecode/js/livecode.js +++ b/runestone/activecode/js/livecode.js @@ -1,6 +1,7 @@ import { ActiveCode } from "./activecode.js"; import MD5 from "./md5.js"; import JUnitTestParser from "./extractUnitResults.js"; +import "../../codelens/js/pytutor-embed.bundle.js"; export default class LiveCode extends ActiveCode { constructor(opts) { diff --git a/runestone/codelens/js/codelens.js b/runestone/codelens/js/codelens.js index f2fa500ea..494571c02 100644 --- a/runestone/codelens/js/codelens.js +++ b/runestone/codelens/js/codelens.js @@ -11,6 +11,8 @@ return the buttons, but I'm having a hard time thinking of any other use for that besides mine. */ +import RunestoneBase from "../../common/js/runestonebase.js"; +import "./pytutor-embed.bundle.js"; import "./../css/pytutor.css"; function attachLoggers(codelens, divid) { diff --git a/runestone/codelens/visualizer.py b/runestone/codelens/visualizer.py index 561c9aa46..db7009f07 100644 --- a/runestone/codelens/visualizer.py +++ b/runestone/codelens/visualizer.py @@ -29,8 +29,6 @@ def setup(app): app.add_directive("codelens", Codelens) - app.add_autoversioned_javascript("pytutor-embed.bundle.js") - app.add_config_value("codelens_div_class", "alert alert-warning cd_section", "html") app.add_config_value("trace_url", "http://tracer.runestone.academy:5000", "html") app.add_node(CodeLensNode, html=(visit_codelens_node, depart_codelens_node)) @@ -40,7 +38,7 @@ def setup(app): VIS = """
-
+
diff --git a/runestone/common/js/renderComponent.js b/runestone/common/js/renderComponent.js index 4814d88fc..70802845d 100644 --- a/runestone/common/js/renderComponent.js +++ b/runestone/common/js/renderComponent.js @@ -1,6 +1,6 @@ -import TimedMC from "../../mchoice/js/timedmc"; +import { runestone_import } from "../../../webpack.index.js"; -export function renderRunestoneComponent(componentSrc, whereDiv, moreOpts) { +export unction renderRunestoneComponent(componentSrc, whereDiv, moreOpts) { /** * The easy part is adding the componentSrc to the existing div. * The tedious part is calling the right functions to turn the diff --git a/runestone/common/js/user-highlights.js b/runestone/common/js/user-highlights.js index dc93e0af4..68d73283a 100644 --- a/runestone/common/js/user-highlights.js +++ b/runestone/common/js/user-highlights.js @@ -2,12 +2,8 @@ "use strict"; -import RunestoneBase from "./runestonebase"; import "../css/user-highlights.css"; -var urlList; -var extendType; -var rsb = new RunestoneBase(); function getCompletions() { // Get the completion status diff --git a/runestone/selectquestion/js/selectone.js b/runestone/selectquestion/js/selectone.js index d2cfd4f2e..4841fc44c 100644 --- a/runestone/selectquestion/js/selectone.js +++ b/runestone/selectquestion/js/selectone.js @@ -6,8 +6,8 @@ import { renderRunestoneComponent, createTimedComponent, -} from "../../common/js/renderComponent"; -import RunestoneBase from "../../common/js/runestonebase"; +} from "../../common/js/renderComponent.js"; +import RunestoneBase from "../../common/js/runestonebase.js"; import "../css/selectquestion.css"; export default class SelectOne extends RunestoneBase { @@ -104,7 +104,7 @@ export default class SelectOne extends RunestoneBase { if (opts.timed) { // timed components are not rendered immediately, only when the student // starts the assessment and visits this particular entry. - res = createTimedComponent(htmlsrc, { + res = await createTimedComponent(htmlsrc, { timed: true, selector_id: selectorId, assessmentTaken: opts.assessmentTaken, @@ -193,7 +193,7 @@ export default class SelectOne extends RunestoneBase { } /////////////////////////// // just render this component on the page in its usual place - res = renderRunestoneComponent(htmlsrc, selectorId, { + await renderRunestoneComponent(htmlsrc, selectorId, { selector_id: selectorId, useRunestoneServices: true, }); From 3a133748f79fcf096bd50d9db292cacd3b94bfd9 Mon Sep 17 00:00:00 2001 From: bjones1 Date: Sat, 24 Apr 2021 00:28:04 +0000 Subject: [PATCH 2/3] Fix: poor merge. --- runestone/common/js/renderComponent.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/runestone/common/js/renderComponent.js b/runestone/common/js/renderComponent.js index 70802845d..9bbea3e60 100644 --- a/runestone/common/js/renderComponent.js +++ b/runestone/common/js/renderComponent.js @@ -1,6 +1,4 @@ -import { runestone_import } from "../../../webpack.index.js"; - -export unction renderRunestoneComponent(componentSrc, whereDiv, moreOpts) { +export function renderRunestoneComponent(componentSrc, whereDiv, moreOpts) { /** * The easy part is adding the componentSrc to the existing div. * The tedious part is calling the right functions to turn the From cd75fb945efd80632547811d841a36e86ad6f421 Mon Sep 17 00:00:00 2001 From: bjones1 Date: Sat, 24 Apr 2021 00:38:51 +0000 Subject: [PATCH 3/3] Fix: Revert changes from dynamically-loaded components. --- runestone/selectquestion/js/selectone.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runestone/selectquestion/js/selectone.js b/runestone/selectquestion/js/selectone.js index 4841fc44c..43a613eb6 100644 --- a/runestone/selectquestion/js/selectone.js +++ b/runestone/selectquestion/js/selectone.js @@ -104,7 +104,7 @@ export default class SelectOne extends RunestoneBase { if (opts.timed) { // timed components are not rendered immediately, only when the student // starts the assessment and visits this particular entry. - res = await createTimedComponent(htmlsrc, { + res = createTimedComponent(htmlsrc, { timed: true, selector_id: selectorId, assessmentTaken: opts.assessmentTaken, @@ -193,7 +193,7 @@ export default class SelectOne extends RunestoneBase { } /////////////////////////// // just render this component on the page in its usual place - await renderRunestoneComponent(htmlsrc, selectorId, { + renderRunestoneComponent(htmlsrc, selectorId, { selector_id: selectorId, useRunestoneServices: true, });