Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
674a88d
Upgrade Eyes
breville Sep 2, 2020
76f42e4
Merge branch 'staging' into upgrade-eyes
breville Sep 2, 2020
db6d24e
Eyes: avoid stitch mode in more captures
breville Sep 4, 2020
c0af6a0
Eyes: just upgrade eyes_selenium but not other gems
breville Sep 4, 2020
eb178dd
add undefined check
JillianK Sep 4, 2020
b05386b
just kidding, use bind instead
JillianK Sep 4, 2020
d044d9e
Update Twilio gem
breville Sep 4, 2020
31a934c
Note the credential fields required to test Twilio locally.
breville Sep 8, 2020
bdede06
Make markdownpreview have the textarea and preview in one component
dmcavoy Sep 8, 2020
229e9ec
Rename MarkdownPreview to TextareaWithMarkdownPreview
dmcavoy Sep 8, 2020
1995c0b
Remove bolding of label
dmcavoy Sep 8, 2020
387e605
extract the I18n Sync PR creation logic to its own file
Hamms Sep 8, 2020
22404e7
Merge branch 'staging' into markup-with-preview
dmcavoy Sep 8, 2020
b4fb62a
Add unit test on response when RegionalPartnerWorkshopsController#fin…
Sep 8, 2020
96bb1e9
Revert "Revert "Better AuthenticationOption duplicate detection""
Hamms Sep 8, 2020
fd3f405
Merge branch 'staging' of github.com:code-dot-org/code-dot-org into j…
JillianK Sep 8, 2020
956ee72
Merge pull request #36646 from code-dot-org/no-partner-found-unit-test
Sep 8, 2020
1ae88ca
Merge pull request #36652 from code-dot-org/staging
deploy-code-org Sep 8, 2020
e9d1173
use a UUID rather than a sequential ID, to better avoid collision
Hamms Sep 8, 2020
b11e5b3
Merge branch 'staging' into extract-pr-creation
Hamms Sep 8, 2020
8a17c71
Merge pull request #36611 from code-dot-org/jk-minecraft-undefined-error
JillianK Sep 8, 2020
98972f1
Merge pull request #36653 from code-dot-org/staging
deploy-code-org Sep 8, 2020
b6e6f38
change overrides to explicitly extend blockly classes
ajpal Sep 8, 2020
64a58ae
Merge pull request #36563 from code-dot-org/upgrade-eyes
breville Sep 8, 2020
567dd1d
Merge pull request #36655 from code-dot-org/staging
deploy-code-org Sep 8, 2020
1319f5e
Merge pull request #36645 from code-dot-org/extract-pr-creation
Hamms Sep 9, 2020
f25f1ba
Remove old uniqueness condition for lesson now that we have key
dmcavoy Sep 9, 2020
992ac96
Make the TextareaWithMarkdownPreview control its own state and change…
dmcavoy Sep 9, 2020
769cc30
Eyes: small improvements following update
breville Sep 9, 2020
6cf2461
Merge pull request #36659 from code-dot-org/upgrade-eyes-2
breville Sep 9, 2020
be098a3
Merge pull request #36660 from code-dot-org/staging
deploy-code-org Sep 9, 2020
226fb57
Merge pull request #36658 from code-dot-org/comment-name-unique
Sep 9, 2020
cc2edf8
Fix un-updated prop
dmcavoy Sep 9, 2020
c136d65
Merge pull request #36661 from code-dot-org/staging
deploy-code-org Sep 9, 2020
25c9c54
Merge pull request #36616 from code-dot-org/update-twilio-gem
breville Sep 9, 2020
2437898
Merge pull request #36662 from code-dot-org/staging
deploy-code-org Sep 9, 2020
52ee50d
Move the test for changing value of markdown to new component
dmcavoy Sep 9, 2020
0c51fc7
Merge pull request #36644 from code-dot-org/markup-with-preview
Sep 9, 2020
a9b0a54
Merge pull request #36663 from code-dot-org/staging
deploy-code-org Sep 9, 2020
ceedd1c
add cdo prefix to subclasses
ajpal Sep 9, 2020
aba4f2c
Merge pull request #36648 from code-dot-org/revert-36647-revert-36555…
Hamms Sep 9, 2020
a5ad229
Merge pull request #36664 from code-dot-org/staging
deploy-code-org Sep 9, 2020
478f52c
Merge pull request #36654 from code-dot-org/sep8-blockly-inheritance
ajpal Sep 9, 2020
0423449
Merge pull request #36665 from code-dot-org/staging
deploy-code-org Sep 9, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions 4 Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,14 @@ group :development, :test do

# For UI testing.
gem 'cucumber'
gem 'eyes_selenium'
gem 'eyes_selenium', '3.17.20'
gem 'minitest', '~> 5.5'
gem 'minitest-around'
gem 'minitest-reporters', '~> 1.2.0.beta3'
gem 'net-http-persistent'
gem 'rinku'
gem 'rspec'
gem 'selenium-webdriver'
gem 'selenium-webdriver', '3.141.0'
gem 'spring'
gem 'spring-commands-testunit'
gem 'webdrivers', '~> 3.0'
Expand Down
33 changes: 22 additions & 11 deletions 33 Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ GEM
crack (0.4.3)
safe_yaml (~> 1.0.0)
crass (1.0.4)
css_parser (1.7.0)
css_parser (1.7.1)
addressable
cucumber (3.1.1)
builder (>= 2.1.2)
Expand Down Expand Up @@ -416,15 +416,20 @@ GEM
eventmachine (1.2.5)
execjs (2.7.0)
exifr (1.2.5)
eyes_core (3.14.10)
eyes_core (3.17.20)
chunky_png (= 1.3.6)
faraday
faraday-cookie_jar
faraday_middleware
oily_png (~> 1.2)
oj
eyes_selenium (3.14.10)
eyes_selenium (3.17.20)
crass
css_parser
eyes_core (= 3.14.10)
eyes_core (= 3.17.20)
nokogiri
selenium-webdriver
state_machine
factory_girl (4.7.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.7.0)
Expand All @@ -434,6 +439,11 @@ GEM
redis (~> 3.2)
faraday (0.15.4)
multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.7)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday_middleware (0.14.0)
faraday (>= 0.7.4, < 1.0)
ffi (1.10.0)
firebase (0.2.6)
httpclient
Expand Down Expand Up @@ -520,7 +530,7 @@ GEM
jsonapi-serializers (1.0.0)
activesupport
jumphash (0.1.0)
jwt (2.1.0)
jwt (2.2.2)
kaminari (0.17.0)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
Expand Down Expand Up @@ -561,7 +571,7 @@ GEM
multi_json (1.13.1)
multi_test (0.1.2)
multi_xml (0.5.5)
multipart-post (2.0.0)
multipart-post (2.1.1)
mustermann (1.0.3)
mysql2 (0.5.2)
nakayoshi_fork (0.0.4)
Expand All @@ -574,7 +584,7 @@ GEM
net_http_ssl_fix (0.0.10)
netrc (0.11.0)
nio4r (2.3.1)
nokogiri (1.10.3)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
oauth (0.5.1)
oauth2 (1.4.1)
Expand Down Expand Up @@ -812,6 +822,7 @@ GEM
sshkit (1.20.0)
net-scp (>= 1.1.2)
net-ssh (>= 2.8.0)
state_machine (1.2.0)
stringex (2.5.2)
swd (1.0.1)
activesupport (>= 3)
Expand All @@ -833,8 +844,8 @@ GEM
tilt (2.0.10)
timecop (0.8.1)
ttfunk (1.4.0)
twilio-ruby (5.20.1)
faraday (~> 0.9)
twilio-ruby (5.40.1)
faraday (>= 0.9, < 2.0)
jwt (>= 1.5, <= 2.5)
nokogiri (>= 1.6, < 2.0)
tzinfo (1.2.5)
Expand Down Expand Up @@ -939,7 +950,7 @@ DEPENDENCIES
devise_invitable (~> 1.6.0)
dotiw
execjs
eyes_selenium
eyes_selenium (= 3.17.20)
factory_girl_rails
fakeredis
firebase
Expand Down Expand Up @@ -1039,7 +1050,7 @@ DEPENDENCIES
scss_lint
sdoc
seamless_database_pool!
selenium-webdriver
selenium-webdriver (= 3.141.0)
sequel
shotgun
simplecov (~> 0.9)
Expand Down
25 changes: 25 additions & 0 deletions 25 apps/src/blocklyAddons/cdoBlockSvg.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import GoogleBlockly from 'blockly/core';

export default class BlockSvg extends GoogleBlockly.BlockSvg {
getTitles() {
let fields = [];
this.inputList.forEach(input => {
input.fieldRow.forEach(field => {
fields.push(field);
});
});
return fields;
}

getTitleValue(name) {
return super.getFieldValue(name);
}

isUserVisible() {
return false; // TODO
}

setHSV(h, s, v) {
return super.setColour(Blockly.utils.colour.hsvToHex(h, s, v * 255));
}
}
19 changes: 19 additions & 0 deletions 19 apps/src/blocklyAddons/cdoFieldDropdown.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import GoogleBlockly from 'blockly/core';

export default class FieldDropdown extends GoogleBlockly.FieldDropdown {
constructor(menuGenerator, opt_changeHandler, opt_alwaysCallChangeHandler) {
let validator;
if (opt_changeHandler) {
validator = function(val) {
if (
this.getSourceBlock() &&
!this.getSourceBlock().isInsertionMarker_ &&
this.value_ !== val
) {
opt_changeHandler(val);
}
};
}
super(menuGenerator, validator);
}
}
7 changes: 7 additions & 0 deletions 7 apps/src/blocklyAddons/cdoInput.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import GoogleBlockly from 'blockly/core';

export default class Input extends GoogleBlockly.Input {
appendTitle(a, b) {
return super.appendField(a, b);
}
}
22 changes: 22 additions & 0 deletions 22 apps/src/blocklyAddons/cdoWorkspaceSvg.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import GoogleBlockly from 'blockly/core';

export default class WorkspaceSvg extends GoogleBlockly.WorkspaceSvg {
addUnusedBlocksHelpListener() {} // TODO
getAllUsedBlocks() {
return super.getAllBlocks();
}
getToolboxWidth() {
return Blockly.mainBlockSpace.getMetrics().toolboxWidth;
}
isReadOnly() {
return false; // TODO
}
setEnableToolbox() {} // TODO
}

WorkspaceSvg.prototype.blockSpaceEditor = {
blockLimits: {
blockLimitExceeded: () => false, // TODO
getLimit: () => {} // TODO
}
};
71 changes: 71 additions & 0 deletions 71 apps/src/lib/levelbuilder/TextareaWithMarkdownPreview.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import PropTypes from 'prop-types';
import React from 'react';
import SafeMarkdown from '@cdo/apps/templates/SafeMarkdown';
import color from '@cdo/apps/util/color';

const styles = {
box: {
marginTop: 10,
marginBottom: 10,
border: '1px solid ' + color.light_gray,
padding: 10
},
input: {
width: '100%',
boxSizing: 'border-box',
padding: '4px 6px',
color: '#555',
border: '1px solid #ccc',
borderRadius: 4,
margin: 0
}
};

/**
* Component for previewing Markdown for a edit field
*/
export default class TextareaWithMarkdownPreview extends React.Component {
static propTypes = {
markdown: PropTypes.string.isRequired,
label: PropTypes.string.isRequired,
name: PropTypes.string.isRequired,
inputRows: PropTypes.number
};

constructor(props) {
super(props);

this.state = {
markdown: this.props.markdown
};
}

handleMarkdownChange = event => {
this.setState({markdown: event.target.value});
};

render() {
return (
<label>
{this.props.label}
<div style={styles.box}>
<div style={{marginBottom: 5}}>Markdown:</div>
<textarea
name={this.props.name}
defaultValue={this.state.markdown}
rows={this.props.inputRows || 5}
style={styles.input}
onChange={this.handleMarkdownChange}
/>
<div style={{marginBottom: 5}}>Preview:</div>
<div style={styles.box}>
<SafeMarkdown
openExternalLinksInNewTab={true}
markdown={this.state.markdown}
/>
</div>
</div>
</label>
);
}
}
53 changes: 13 additions & 40 deletions 53 apps/src/lib/levelbuilder/course-editor/CourseEditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {resourceShape} from '@cdo/apps/templates/courseOverview/resourceType';
import VisibleAndPilotExperiment from '@cdo/apps/lib/levelbuilder/script-editor/VisibleAndPilotExperiment';
import HelpTip from '@cdo/apps/lib/ui/HelpTip';
import color from '@cdo/apps/util/color';
import MarkdownPreview from '@cdo/apps/lib/levelbuilder/script-editor/MarkdownPreview';
import TextareaWithMarkdownPreview from '@cdo/apps/lib/levelbuilder/TextareaWithMarkdownPreview';

const styles = {
input: {
Expand Down Expand Up @@ -53,23 +53,6 @@ export default class CourseEditor extends Component {
versionYearOptions: PropTypes.arrayOf(PropTypes.string).isRequired
};

constructor(props) {
super(props);

this.state = {
descriptionStudent: this.props.descriptionStudent,
descriptionTeacher: this.props.descriptionTeacher
};
}

handleTeacherDescriptionChange = event => {
this.setState({descriptionTeacher: event.target.value});
};

handleStudentDescriptionChange = event => {
this.setState({descriptionStudent: event.target.value});
};

render() {
const {
name,
Expand Down Expand Up @@ -134,28 +117,18 @@ export default class CourseEditor extends Component {
style={styles.input}
/>
</label>
<label>
Student Description
<textarea
name="description_student"
defaultValue={this.state.descriptionStudent}
rows={5}
style={styles.input}
onChange={this.handleStudentDescriptionChange}
/>
<MarkdownPreview markdown={this.state.descriptionStudent} />
</label>
<label>
Teacher Description
<textarea
name="description_teacher"
defaultValue={this.state.descriptionTeacher}
rows={5}
style={styles.input}
onChange={this.handleTeacherDescriptionChange}
/>
<MarkdownPreview markdown={this.state.descriptionTeacher} />
</label>
<TextareaWithMarkdownPreview
markdown={this.props.descriptionStudent}
label={'Student Description'}
name={'description_student'}
inputRows={5}
/>
<TextareaWithMarkdownPreview
markdown={this.props.descriptionTeacher}
label={'Teacher Description'}
name={'description_teacher'}
inputRows={5}
/>
<h2>Basic settings</h2>
<label>
Verified Resources
Expand Down
36 changes: 0 additions & 36 deletions 36 apps/src/lib/levelbuilder/script-editor/MarkdownPreview.jsx

This file was deleted.

Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.