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.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(
'<aside id="chat-embed-help" class="gitter-chat-embed is-collapsed" />'
);
main.chat.helpChat = new main.chat.GitterChat({
room: room,
room: `freecodecamp/${room}`,
activationElement: false,
targetElement: $('#chat-embed-help')
});

View File

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

View File

@ -22,6 +22,8 @@ destroy()
var isBeta = !!challengeSpec.isBeta;
var isComingSoon = !!challengeSpec.isComingSoon;
var fileName = challengeSpec.fileName;
var helpRoom = challengeSpec.helpRoom || 'Help';
console.log('parsed %s successfully', block);
// challenge file has no challenges...
@ -39,6 +41,7 @@ destroy()
.replace(/\s/g, '-');
challenge.fileName = fileName;
challenge.helpRoom = helpRoom;
challenge.order = order;
challenge.suborder = index + 1;
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
return Observable.just({
data: {
@ -485,6 +486,7 @@ module.exports = function(app) {
}
var view = challengeView[data.challengeType];
res.cookie('currentChallengeId', data.id);
console.log(data.helpRoom);
res.render(view, data);
},
next,

View File

@ -15,7 +15,11 @@ export default function getFromDisk$(challenge) {
)];
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 => {
challenge.head = challenge.head || [];
challenge.tail = challenge.tail || [];

View File

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

View File

@ -88,9 +88,3 @@ block content
});
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
script.
document.addEventListener('gitter-sidecar-ready', function(e) {
if (window.main) {
window.main.chat.createHelpChat('freecodecamp/help', '#challenge-help-btn');
}
});
if (!!{JSON.stringify(MDNlinks.length)}) {
$('#MDN-links').addClass('collapse');
}
common.init.push(function() {
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

View File

@ -106,25 +106,4 @@ block content
$('#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

View File

@ -5,3 +5,10 @@ script.
if (typeof localStorage !== 'undefined') {
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');
}
});