Add new help rooms and logic

This commit is contained in:
Berkeley Martinez
2016-01-15 00:55:08 -08:00
parent 918ea56e33
commit 47c930d7f4
13 changed files with 33 additions and 45 deletions

View File

@ -22,14 +22,17 @@ main = (function(main) {
main.chat.GitterChat = e.detail.Chat; main.chat.GitterChat = e.detail.Chat;
main.chat.createHelpChat = function(room, helpChatBtnClass, roomTitle) { main.chat.createHelpChat = function(room, helpChatBtnClass, roomTitle) {
roomTitle = roomTitle || 'Waypoint Help'; // room is always in PascalCase
roomTitle = room
.replace(/([A-Z])/g, ' $1')
.replace('Java Script', 'JavaScript');
$('body').append( $('body').append(
'<aside id="chat-embed-help" class="gitter-chat-embed is-collapsed" />' '<aside id="chat-embed-help" class="gitter-chat-embed is-collapsed" />'
); );
main.chat.helpChat = new main.chat.GitterChat({ main.chat.helpChat = new main.chat.GitterChat({
room: room, room: `freecodecamp/${room}`,
activationElement: false, activationElement: false,
targetElement: $('#chat-embed-help') targetElement: $('#chat-embed-help')
}); });

View File

@ -70,6 +70,11 @@
"default": [], "default": [],
"description": "prepended to user code" "description": "prepended to user code"
}, },
"helpRoom": {
"type": "string",
"default": "Help",
"description": "Gitter help chatroom this challenge belongs too. Must be PascalCase"
},
"fileName": { "fileName": {
"type": "string", "type": "string",
"description": "filename challenge comes from. Used in dev mode" "description": "filename challenge comes from. Used in dev mode"

View File

@ -22,6 +22,8 @@ destroy()
var isBeta = !!challengeSpec.isBeta; var isBeta = !!challengeSpec.isBeta;
var isComingSoon = !!challengeSpec.isComingSoon; var isComingSoon = !!challengeSpec.isComingSoon;
var fileName = challengeSpec.fileName; var fileName = challengeSpec.fileName;
var helpRoom = challengeSpec.helpRoom || 'Help';
console.log('parsed %s successfully', block); console.log('parsed %s successfully', block);
// challenge file has no challenges... // challenge file has no challenges...
@ -39,6 +41,7 @@ destroy()
.replace(/\s/g, '-'); .replace(/\s/g, '-');
challenge.fileName = fileName; challenge.fileName = fileName;
challenge.helpRoom = helpRoom;
challenge.order = order; challenge.order = order;
challenge.suborder = index + 1; challenge.suborder = index + 1;
challenge.block = block; challenge.block = block;

View File

@ -164,6 +164,7 @@ function getRenderData$(user, challenge$, origChallengeName, solution) {
}); });
} }
console.log(challenge.helpRoom);
// save user does nothing if user does not exist // save user does nothing if user does not exist
return Observable.just({ return Observable.just({
data: { data: {
@ -485,6 +486,7 @@ module.exports = function(app) {
} }
var view = challengeView[data.challengeType]; var view = challengeView[data.challengeType];
res.cookie('currentChallengeId', data.id); res.cookie('currentChallengeId', data.id);
console.log(data.helpRoom);
res.render(view, data); res.render(view, data);
}, },
next, next,

View File

@ -15,7 +15,11 @@ export default function getFromDisk$(challenge) {
)]; )];
return Observable.just(require(path.join(basePath, challenge.fileName))) return Observable.just(require(path.join(basePath, challenge.fileName)))
.map(challengeSpec => challengeSpec.challenges[challenge.suborder - 1]) .map(challengeSpec => {
const _challenge = challengeSpec.challenges[challenge.suborder - 1];
_challenge.helpRoom = challengeSpec.helpRoom || 'Help';
return _challenge;
})
.map(challenge => { .map(challenge => {
challenge.head = challenge.head || []; challenge.head = challenge.head || [];
challenge.tail = challenge.tail || []; challenge.tail = challenge.tail || [];

View File

@ -99,8 +99,6 @@ block content
include ../partials/challenge-footer include ../partials/challenge-footer
script. script.
document.addEventListener('gitter-sidecar-ready', function(e) { if (!!{JSON.stringify(MDNlinks.length)}) {
if (window.main) { $('#MDN-links').addClass('collapse');
window.main.chat.createHelpChat('freecodecamp/helpbonfires', '#challenge-help-btn', 'Bonfires Help'); }
}
});

View File

@ -88,9 +88,3 @@ block content
}); });
include ../partials/challenge-footer include ../partials/challenge-footer
script.
document.addEventListener('gitter-sidecar-ready', function(e) {
if (window.main) {
window.main.chat.createHelpChat('freecodecamp/help', '#challenge-help-btn');
}
});

View File

@ -91,11 +91,9 @@ block content
include ../partials/challenge-footer include ../partials/challenge-footer
script. script.
document.addEventListener('gitter-sidecar-ready', function(e) { if (!!{JSON.stringify(MDNlinks.length)}) {
if (window.main) { $('#MDN-links').addClass('collapse');
window.main.chat.createHelpChat('freecodecamp/help', '#challenge-help-btn'); }
}
});
common.init.push(function() { common.init.push(function() {
common.editor.setOption('mode', 'javascript'); common.editor.setOption('mode', 'javascript');

View File

@ -87,9 +87,4 @@ block content
}); });
}); });
document.addEventListener('gitter-sidecar-ready', function(e) {
if (window.main) {
window.main.chat.createHelpChat('freecodecamp/help', '#challenge-help-btn');
}
});
include ../partials/challenge-footer include ../partials/challenge-footer

View File

@ -106,25 +106,4 @@ block content
$('#complete-zipline-or-basejump-dialog').modal('show'); $('#complete-zipline-or-basejump-dialog').modal('show');
}); });
}); });
document.addEventListener('gitter-sidecar-ready', function(e) {
var room = 'freecodecamp/help';
var title;
if (common.challengeType === '4') {
room = 'freecodecamp/helpBasejumps';
title = 'Basejump Help';
}
if (common.challengeType === '3') {
room = 'freecodecamp/helpZiplines';
title = 'Zipline Help';
}
if (window.main) {
window.main.chat.createHelpChat(room, '#challenge-help-btn', title);
}
});
include ../partials/challenge-footer include ../partials/challenge-footer

View File

@ -5,3 +5,10 @@ script.
if (typeof localStorage !== 'undefined') { if (typeof localStorage !== 'undefined') {
localStorage.setItem('currentDashedName', typeof common !== 'undefined' && common.dashedName || ''); localStorage.setItem('currentDashedName', typeof common !== 'undefined' && common.dashedName || '');
} }
var common = window.common || { init: [] };
common.helpRoom = !{JSON.stringify(helpRoom)};
document.addEventListener('gitter-sidecar-ready', function(e) {
if (window.main) {
window.main.chat.createHelpChat(common.helpRoom, '#challenge-help-btn');
}
});