Commit Graph

82 Commits

Author SHA1 Message Date
Timo
dcfe18d5d5 refactor: Replace .com with .org 2017-08-26 00:07:44 +02:00
Cody Seibert
9f875e1d11 feat(quiz): initial quiz view which can be used for multiple choice (#15743)
quizes
2017-08-08 14:31:26 -05:00
Berkeley Martinez
42bfa2e64d feat(app): new layout (#14707)
* feat(app): Restructure app to be more flexible and redux idiomatic

BREAKING CHANGE: Lots of breaking changes

* refactor(challenges): Redux to started file structure

* fix(app): lint issues due to refactor

* fix(settings): Refactor settings to use folder structure

* refactor(challenges): Move step redux stuff into step folder

* fix(challenges): Remove fetchchallenges actions

* refactor(challenges): Move project redux logic into project view subdirectory

* refactor(app): %s/sagas/epics/g

* refactor(redux): Use new redux-epic with combineEpic and ofType

* refactor(app): Move challenge selector to app level

* fix(app): Move loading challenge info into challenge route

This moves a lot of the logic needed to load challenge info into the challenge app. This decouples
the main app from the challenge route

* refactor(map): Map is now decoupled from challenges

* refactor(challenges): Use selectors everywhere instead of guessing state shape

* refactor(client): refactor client epics to use selectors

* refactor(app): Refactor userSelector to return user object instead of object.user

* refactor(entities): Move entities logic into it's own file

* fix(redux): combineTypes should be combineActions

* fix(app): reducer namespacing and import

* fix(Map): Fix undefined type and update redux-action

* fix(redux): Refactor fetchUser to be more declarative

Use rxjs methods instead of imperative if/else. Also prevent non-actions from being emitted

* fix(redux): toString multi phase action types

* fix(redux): typecast multiphase type, fix typo in reducer

toString multiphase types in fetch challenge epic. Add epic to epics lists. Fix type in fetch
challenge complete handler

* fix(redux): updateCurrentChallengelogic should be centerlized

Move route changes to one location.

* fix(Nav): Prevent event object from hanging around

closeDropDown/openDropDown where handing on to the event object. This was causing issues with react
since event objects are recycled in React.

* fix(Map.Challenge): decouple map selector

* fix(Map): Decouple panel selectors from props

Panel Selectors no longer need to know the shape of a components props. Refactored component
selectors to decouple them entities state shape

* fix(Map.redux): Add select challenge epic and connect map epics

* fix(redux.analytics): Fix meta creator and nav/map events

* fix(redux): Update current challenge ajax

* fix(challenges): ssr fetch challenge should update challenge ui

Was using an epic to update challenge ui on fetch complete, but this was not working on ssr due to
the way ssr disables epics to wait for completion. This commit fixes this by causing the complete to
directly update state in the challenge ui

* fix(challenges): wrong import of types, refactor epic name

* fix(redux): Prevent fetch challenge epic from emitting null to dispatch

* fix(redux): prevent executechallenge from emitting null

* fix(challenges.redux): testsSelector returns just tests

* fix(challenges.redux): Prevent completion challenge from emitting null

* refactor(Challenges.Step): Refactor step challenge to release event object

* fix(redux): wrap reducers in factories
reducers exported from features need to be factories
this helps avoid cyclic requires messing up reducer creation
We end up with exports from files being undefined as node tries
to resolve cyclic dependencies.
This prevents that by wrapping the `handleActions` call so that the ref
to types imported from parent features are closures and can be resolved
by node before we need them.

* fix(Map): createUi not working correctly

map utils should receive just map ui state, createMapUi needs to add title to challenge

* feat(Challenges): Adds Panes and panes backend challenge

* fix: Create child container to wrap children

Create a ChildContainer comp' to wrap all children that represent the view for the current route.
This let's the child route define if they want a full width view or if they want the standard
max-width view.

* feat(Panes): panes now render dividers

* feat(Panes): Get divider to move currectly

* fix(Nav): Add top margin to contained childs

Move margin-bottom from nav to child container as margin top. This let's the jsbin style views fit
snug with navbar

* fix(Panes): Should be contained within their borders

* feat(Panes): Update navbar height of pane on app mount

* feat(Panes): Toggle map on map nav btn click

* fix(gulpfile): Ensure nodemon exits on restart

On process exit, wait for nodemon to shutdown before process.exit

* feat(Panes): Make Panes redux first

* fix(Panes): Fix divider positioning

* fix(Panes): Update divider moved handler

dividerMoved action now uses new panesByName structure

* feat(Panes): Pane nav button will hide panes

* chore(package-lock): Update package lock

* feat(Panes.redux): Recaculate dividers on pane toggle

* fix(Challenges): Update challenge on dashedName change

This fixes backwards navigation not updating the redux state current
challenge

* feat(Panes.redux): Clear panes on unmount

Clearing panes on unmount will clear bin buttons in nav

* refactor(Map): Colocate styles

* feat(Map): New map layout

* fix(Map): No longer has it's own page

* fix: FetchChallenges on appMounted

* feat: Normalize fetchChallenge(s) results

This allows superblocks to be sent with both fetchChallenge and
fetchChallenges so the map is always populated on first load

* feat(Map): Show blocks on first load

* fix(less): Remove old css

* feat(Nav): Reduce nav height

* fix(Nav): Render nav after content

Render nav after content and use css to reverse again on screen. We do
this so the panes can render first and update redux panes state which
will then update the nav ui state before nav has a chance to render

* fix(Panes): Add container

This adds a Panes Container that will allow it to udpate redux state so
Panes Component will have redux state ready to actually render panes

* feat(Challenges.Classic): Add panes

* fix(Challenge.Classic): Editor onchange should not need to know about file

* fix(Panes): Index on panes hide should account for hidden pane

* fix(Challanges.Classic): Fix panes types

* fix(Challenges): Add completion modal to all challenges

Change classic modal to completion modal

* fix(Panes): Dividers live on top of planes

* fix(Challenges): Remove codemirror theme

Remove codemirror theme and remove borders from preview frame

* fix(Challenges.Classic): Remove old component

* feat(Challenges.Step): Add panes to step challenge

* feat(Challenges.Project): Add panes to projects

* fix(Challenges.Projects): Remove row

* fix(Modals): Move modal text color to challenge less

This text color is dependent on the actual header color

* fix(Map): Use Superblock title for ui

* fix(Map): Reduce panel header height

* fix(app): Capitalize Toasts folder

Feature folders should be campitalized

* chore(Map): Remove unused epic file

* fix(Step): Fix tests

* test(Map): Update createMapUi tests input
2017-07-31 22:04:01 -05:00
padulam
ea951052a3 Point bug modal to forum 2017-05-30 10:17:21 +05:30
Quincy Larson
60187e6c28 Revert "Add Youtube videos to the map (#13592)"
This reverts commit 4a3fcba501.
2017-05-03 19:22:05 -05:00
Stuart Taylor
4a3fcba501 Add Youtube videos to the map (#13592) 2017-05-03 18:03:59 -05:00
Berkeley Martinez
ee8ac7b453 feat(rechallenge): Retool challenge framework (#13666)
* feat(rechallenge): Retool challenge framework

* fix(code-storage): should use setContent not updateContent

* fix(rechallenge): fix context issue and temporal zone of death

* fix(rechallenge): Fix frame sources for user code

* fix(polyvinyl): Set should ignore source and transform should keep track of source

* fix(rechallenge): Missing return statement causing issues
2017-04-28 20:30:23 -05:00
Peter Weinberg
0b60d7de3a chore(seed): freeCodeCampify remaining sections of codebase 2017-02-02 18:29:59 -05:00
Samuel Plumppu
3ebfb05171 Merge pull request #12856 from systimotic/fix/bug-reporting-indentation
Fix closing backticks indentation on bug report
2017-01-29 22:20:57 +01:00
systimotic
01d10c5316 Fix closing backticks indentation on bug report 2017-01-27 09:24:21 +01:00
Berkeley Martinez
f1d936198e feat(challenges): add backend challenge infrastructure (#11058)
* Feat: Initial backend view

* Feat: Refactor frame runner

* Feat: backend challenge submit runs tests

* Feat: Backend challenge request

* Feat: Whitelist hyperdev in csp

* Fix: Use app tests instead of challenge tests

* Feat: Allow hyperdev subdomains

* Fix(csp): allow hypderdev.space subdomains

* feat(challenge): submit backend

* feat: Add timeout to test runner (5 sec)

* chore(seed): Add more to test backend

* fix(csp): s/hyperdev/gomix/g

* fix(app): fix code mirror skeleton filepath

* fix(app): remove Gitter saga import

* fix(app): codemirrorskeleton does not need it's own folder
fix(app): cmk needs to work with Null types

* fix: No longer restart the browser when challenges change

* fix(app): Update jquery for challenges

* fix(seed): Remove to promise jquery call

* fix(lint): Undo merge error
undefined is no allowed

* fix(app): linting errors due to bad merge

* fix(seed): Remove old seed file
2017-01-26 23:07:22 -06:00
Stuart Taylor
a9059eb2c6 Make translated challenge titles searchable 2017-01-07 22:36:45 +00:00
Stuart Taylor
b9c7532efd Next step unlocked persistence 2017-01-05 21:33:52 +00:00
Stuart Taylor
0ac02647e2 Add blockName to titles 2016-12-13 21:30:36 +00:00
Stuart Taylor
60d46e069b Add reactified challenge success modal 2016-12-05 22:54:38 +00:00
Stuart Taylor
74cfed9826 Fix Final Video Challenge Completion 2016-11-01 20:56:11 +00:00
Berkeley Martinez
88c2763dc1 Fix(code-storage): Make sure head/tail is always fresh 2016-09-29 12:44:19 -07:00
Berkeley Martinez
26875725db Fix(challenges): Only show beta on map in dev 2016-09-09 14:52:34 -07:00
Berkeley Martinez
69f5f579cc Fix: harden challenge files reducer 2016-09-09 01:19:21 -07:00
Berkeley Martinez
76c49b3a4a Fix(challenge): Harden reducer against bad data fetch 2016-09-09 00:08:59 -07:00
Berkeley Martinez
f47d82de6a Fix(challenges): Change challenge toasts copy 2016-09-08 22:31:42 -07:00
Berkeley Martinez
5426944175 Fix(challenges): Change challenge fail message copy 2016-09-08 22:22:45 -07:00
Quincy Larson
653ec7effd Merge pull request #10417 from BerkeleyTrue/refactor/move-step-logic
Refactor(challenges): Move step movement logic into epic
2016-09-01 16:58:50 -07:00
Berkeley Martinez
98673fc316 Refactor(challenges): Move step movement logic into epic 2016-08-31 14:06:03 -07:00
Berkeley Martinez
0e8c0b8470 Feature(code-storage): clear code storage on challenge completion 2016-08-18 19:33:24 -07:00
Berkeley Martinez
f9cf212fe7 Feature(code-uri): Lock untrusted code from playing on first load 2016-08-18 09:44:40 -07:00
Berkeley Martinez
c919ce5dc8 Feature(code-uri): Load and remove code uri on loadCode 2016-08-18 09:44:40 -07:00
Berkeley Martinez
043832302e Fix(lang): update challenge lang on user lang change 2016-08-12 17:19:34 -07:00
Berkeley Martinez
8be0d194a5 Fix(challenge): update user challenge map on challenge complete 2016-08-11 16:41:03 -07:00
Mrugesh Mohapatra
0a90d0f1d3 Merge pull request #10041 from BerkeleyTrue/regression/add-current-challenge
Fix(accounts): show challenge info on user profile
2016-08-02 22:35:55 +05:30
Berkeley Martinez
a454cd1177 Fix(challenges): reset challenge should update main iframe 2016-08-01 20:20:40 -07:00
Berkeley Martinez
606bfd7c88 Fix(accounts): show challenge info on user profile
This changes the behavior of the user profile page to pull the current
challenge info from our challenge map and overwrite the user challenge.
This should also make name changes point to the correct challenge
regardless of the info saved to the user profile
2016-08-01 18:48:31 -07:00
Mrugesh Mohapatra
56ff814f24 Fix update the console.log statement copy 2016-07-31 03:28:45 +05:30
Berkeley Martinez
0995e3bba6 Feature(map): Filter challenges on Map
closes #9346
2016-07-28 23:40:01 -07:00
Berkeley Martinez
57b6debb44 Feature(challenges): add bug modal and logic 2016-07-28 23:40:01 -07:00
Berkeley Martinez
efcfaf0391 Feature(chat): Add help chat logic 2016-07-28 23:40:01 -07:00
Berkeley Martinez
c204e8cdea Feature(toasts): make toast short lived by default 2016-07-28 23:40:01 -07:00
Berkeley Martinez
979eb4f7d1 Feature(challenges): add reset logic 2016-07-28 23:40:01 -07:00
Berkeley Martinez
8e3c092029 Feature(toast): Move from react-toastr to react-notifications 2016-07-28 23:40:01 -07:00
Berkeley Martinez
45adc402d2 Feature(challenges): Move to coming soon challenges in dev
close #9349
2016-07-28 23:40:01 -07:00
Berkeley Martinez
668bd74690 Fix(lint): Add import eslint and fix import errors 2016-07-28 23:40:01 -07:00
Berkeley Martinez
a61088c6be Feature(map): add expand/collapse all button/logic 2016-07-28 23:40:01 -07:00
Berkeley Martinez
1f02e31894 feature(map): Add collapse to block level 2016-07-28 23:40:01 -07:00
Berkeley Martinez
b8434edd51 Feature(map): Add top level collapse 2016-07-28 23:40:01 -07:00
Berkeley Martinez
77be343e04 Fix(challenges): reset project form on submit 2016-07-28 23:40:01 -07:00
Berkeley Martinez
adb7fa96cc Refactor(challenges): refactor challenge completion saga 2016-07-28 23:40:01 -07:00
Berkeley Martinez
0c07e961a7 Feature(components): fetch user after page load
This makes it easier to serve whole site statically in the future
Feature(redux): Move user state into entities
2016-07-28 23:40:01 -07:00
Berkeley Martinez
d1b78eba9b Feature(react): Add lightbox to step challenge images 2016-07-28 23:40:01 -07:00
Berkeley Martinez
078560c3ba Add language routing 2016-07-28 23:40:01 -07:00
Berkeley Martinez
ccc5c3ec24 Feature(challenges): Add hint system to challenges 2016-07-28 23:40:01 -07:00