Add new help rooms and logic
This commit is contained in:
parent
918ea56e33
commit
47c930d7f4
@ -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')
|
||||
});
|
||||
|
@ -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"
|
||||
|
@ -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;
|
||||
|
@ -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,
|
||||
|
@ -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 || [];
|
||||
|
@ -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');
|
||||
}
|
||||
|
@ -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');
|
||||
}
|
||||
});
|
||||
|
@ -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');
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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');
|
||||
}
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user