![]() Adds the JQuerySelectorCache. This will be used in speed_grader.js for caching jQuery selectors. closes GRADE-678 Test Plan: 1. Verify specs pass. Since the JQuerySelectorCache is not consumed by anything yet, no other steps are needed in this test plan. Change-Id: Id62e89d66b99a6a43cd05ce02b487777b2b277d2 Reviewed-on: https://gerrit.instructure.com/133502 Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com> Tested-by: Keith T. Garner <kgarner@instructure.com> Reviewed-by: Keith T. Garner <kgarner@instructure.com> Product-Review: Keith T. Garner <kgarner@instructure.com> QA-Review: Keith T. Garner <kgarner@instructure.com> |
||
---|---|---|
.. | ||
account_course_user_search | ||
actAs | ||
add_people | ||
announcements | ||
assignments | ||
authentication_providers | ||
blueprint_courses | ||
bundles | ||
calendar | ||
canvas_cropper | ||
choose_mastery_path | ||
collaborations | ||
conditional_release_stats | ||
context_cards | ||
context_modules | ||
course_link_validator | ||
course_settings | ||
course_wizard | ||
courses | ||
custom_help_link_settings | ||
dashboard | ||
dashboard_card | ||
discussion_topics | ||
due_dates | ||
editor | ||
eportfolios | ||
epub_exports | ||
external_apps | ||
files | ||
gradebook | ||
gradebook-history | ||
gradezilla | ||
grading | ||
groups | ||
help_dialog | ||
login | ||
mediaelement | ||
modules/utils | ||
move_item | ||
navigation_header | ||
new_user_tutorial | ||
notification_preferences | ||
outcomes | ||
quizzes | ||
rubrics | ||
shared | ||
speed_grader | ||
styleguide | ||
subnav_menu | ||
theme_editor | ||
webzip_export | ||
.eslintrc.js | ||
README.md | ||
appBootstrap.js | ||
canvasCssVariablesPolyfill.js | ||
dashboardPlannerHelper.js | ||
fakeRequireJSFallback.js | ||
railsFlashNotificationsHelper.js |
README.md
This directory is temporary until we rework the front-end build This is where we are headed.
Stuff you can do in Canvas JSX files
BUT WAIT!
Your file needs to:
- Have a file name with the
.jsx
extension.
JSX
function foo(paths) {
return <svg>{paths}</svg>;
}
Arrow Functions
var arr = ['hydrogen', 'helium', 'lithium'];
// es5
var a = arr.map(function(s){ return s.length });
// es6
var b = arr.map( s => s.length );
// with curlies requires normal return
var b = arr.map( (s) => {
return s.length
});
// lexical `this`
var obj = {
multiplier: 3,
multiplyStuff (stuff) {
return stuff.map((x) =>
// no bind!
return this.multiplier * x;
)
}
};
Classes
class EventEmitter {
constructor() {
// called when created
}
emit() {
// ...
}
on() {
// ...
}
once() {
// ...
}
removeListener() {
// ...
}
removeAllListeners() {
// ...
}
}
Extending and calling super
.
class Domain extends EventEmitter {
constructor() {
super();
this.members = [];
}
}
Creating instances
var domain = new Domain();
Destructuring
// es5
var map = _.map;
var each = _.each;
// es6
var {map, each} = _;
Concise Object Methods
// es5
var obj = {
foo: function() {}
bar: function() {}
};
// es6
var obj = {
foo() {}
bar() {}
};
Object Short Notation
// es5
function() {
// ...
return {foo: foo, bar: bar, x: 10};
}
// es6
function() {
// ...
return {foo, bar, x: 10};
}
Rest Parameters
// es5
function multiply(multiplier) {
var numbers = Array.prototype.slice.call(arguments, 0);
return number.map(function(n) { return multiplier * n; });
}
// es6
function multiply(multiplier, ...numbers) {
return numbers.map( n => multiplier * n);
}
String Templates
Multiline strings:
// es5
console.log("string text line 1" +
"string text line 2");
// es6
console.log(`string text line 1
string text line 2`);
Interpolated strings
var a = 5;
var b = 10;
// es5
console.log("Fifteen is " + (a + b) + " and not " + (2 * a + b) + ".");
// es6
console.log(`Fifteen is ${a + b} and not ${2 * a + b}.`);