From 973114c06a7627a90a5308a2b3ae1c032f63122e Mon Sep 17 00:00:00 2001 From: greenkeeperio-bot Date: Sun, 28 Feb 2016 09:20:57 -0800 Subject: [PATCH 01/32] chore(package): update frameguard to version 1.1.0 http://greenkeeper.io/ --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8efd96aab2..867e85c634 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "express-state": "^1.2.0", "express-validator": "^2.18.0", "fetchr": "~0.5.12", - "frameguard": "~0.2.2", + "frameguard": "~1.1.0", "gulp": "^3.9.0", "gulp-babel": "^6.1.1", "gulp-concat": "^2.6.0", From 6d698fd74db1ae9b04aec38daab156188e4fccdd Mon Sep 17 00:00:00 2001 From: Kenzo Naito Date: Mon, 21 Mar 2016 22:08:14 +0100 Subject: [PATCH 02/32] added french translations for intermediate bonfires --- .../intermediate-bonfires.json | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) diff --git a/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json b/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json index 12977a899e..efebc08349 100644 --- a/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json +++ b/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json @@ -42,6 +42,12 @@ "Te pasaremos un vector que contiene dos números. Crea una función que devuelva la suma de esos dos números y todos los números entre ellos.", "El número menor no siempre será el primer elemento en el vector.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Additionner tous les nombres d'une série", + "descriptionFr": [ + "Nous te passons un tableau de deux nombres. Crée une fonction qui renvoie la somme de ces 2 nombres ainsi que tous les nombres entre ceux-ci.", + "Le plus petit nombre ne viendra pas forcément en premier.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -87,6 +93,11 @@ "descriptionEs": [ "Crea una función que compare dos vectores y que devuelva un nuevo vector que contenga los elementos que sólo se encuentre en uno de los vectores dados, pero no en ambos En otras palabras, devuelve la diferencia simétrica entre los dos vectores.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Comparer 2 arrays", + "descriptionFr": [ + "Compare les 2 tableaux donnés et renvoie un nouvel tableau avec les éléments trouvé dans un seul des deux tableaux, pas dans les deux. En d'autres termes, renvoie la différence symétrique des deux tableaux.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -148,6 +159,12 @@ "Convierte el número dado en numeral romano.", "Todos los numerales romanos en las respuestas deben estar en mayúsculas.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Convertir en chiffres romains", + "descriptionFr": [ + "Convertis le nombre donné en chiffres romains.", + "Tous les chiffres romains doivent être en lettres capitales.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -189,6 +206,12 @@ "Crea una función que busque en un vector de objetos (primer argumento) y devuelva un vector con todos los objetos que compartan el valor indicado para una propiedad dada (segundo argumento). Cada pareja de propiedad y valor debe estar presente en el objeto de la colección para ser incluido en el vector devuelto por la función", "Por ejemplo, si el primer argumento es [{ first: \"Romeo\", last: \"Montague\" }, { first: \"Mercutio\", last: null }, { first: \"Tybalt\", last: \"Capulet\" }], y el segundo argumento es { last: \"Capulet\" }, entonces tu función debe devolver el tercer objeto del vector en el primer argumento, ya que contiene la propiedad y el valor indicados en el segundo argumento.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "O Roméo! Roméo!", + "descriptionFr": [ + "Écris une fonction qui parcourt un array d'objets (premier argument) et renvoie un array de tous les objects ayant les paires de nom/valeur correspondantes à l'objet donné (second argument). Chaque paire de nom et de valeur de l'objet source doit être présente dans les objects renvoyés.", + "Par exemple, si le premier argument est [{ first: \"Romeo\", last: \"Montague\" }, { first: \"Mercutio\", last: null }, { first: \"Tybalt\", last: \"Capulet\" }], et le second argument est { last: \"Capulet\" }, tu dois renvoyer le troisième objet de l'array (premier argument), parce qu'il contient le nom et sa valeur, donnés en deuxième argument.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -235,6 +258,15 @@ "El tercer argumento es lo que reemplazará a la palabra indicada en el segundo argumento", "NOTA: Debes respetar mayúsculas y minúsculas de la palabra original cuando ejecutes el reemplazo. Por ejemplo, si quisieras reemplazar la palabra \"Libro\" con la palabra \"perro\", deberías insertar en vez la palabra \"Perro\"", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Cherche et remplace", + "descriptionFr": [ + "Crée une fonction qui cherche et remplace une partie de la phrase en utilisant les arguments et renvoie la nouvelle phrase.", + "Le premier argument est la phrase à modifier.", + "Le deuxième argument est le mot à remplacer (avant).", + "Le troisième argument est le mot qui doit remplacer le deuxième argument (après).", + "NB: Tu dois respecter les majuscules ou miniscules du mot originel que tu remplaces. Par exemple, si tu veux remplacer le mot \"Livre\" par \"chien\", tu devras le remplacer par \"Chien\"", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -279,6 +311,13 @@ "Pig Latin toma la primera consonante (o grupo de consonantes) de una palabra en inglés, la mueve al final de la palabra y agrega un \"ay\".", "Si la palabra comienza con una vocal, simplemente añade \"way\" al final.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Pig latin", + "descriptionFr": [ + "Traduis la phrase donnée en pig latin (verlan anglais)", + "Le Pig Latin prend la ou les première(s) consonne(s) d'un mot en anglais et les mets à la fin du mot accompagné par le suffixe \"ay\".", + "Si un mot commence par une voyelle ajoute \"way\" à la fin du mot.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -322,6 +361,15 @@ "Por ejemplo, si te pasáramos la cadena GCG, tu función debería devolver el vector: [[\"G\", \"C\"], [\"C\",\"G\"],[\"G\", \"C\"]]", "Cada letra que se te provee y su pareja deben estar contenidos en un vector, y cada uno de estos vectores debe estar contenidos en un vector.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Coupler les bases d'ADN", + "descriptionFr": [ + "Une base d'ADN a perdu sa paire. Assemble chaque paire de caractères et renvoie les résultats dans un second tableau.", + "Les paires de bases sont des paires d'AT et CG. Associe l'élement manquant au caractère donné.", + "Renvoie le caractère donné comme premier élément de chaque tableau.", + "Par exemple, pour GCG, il faut renvoyer [[\"G\", \"C\"], [\"C\",\"G\"],[\"G\", \"C\"]]", + "Chaque caractère et sa paire sont couplées dans un tableau, et tous les tableaux sont groupés dans un tableau.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -360,6 +408,12 @@ "Crea una función que devuelva la letra que falta en el rango de letras que se le pasa", "Si todas las letras en el rango están presentes, la función debe devolver undefined.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Lettres perdues", + "descriptionFr": [ + "Crée une fonction qui renvoie la lettre manquante dans la série.", + "Si aucune lettre n'est manquante, renvoie undefined.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -404,6 +458,12 @@ "Crea una función que verifique si el valor que se le pasa es de tipo booleano. Haz que la función devuelva true o false según corresponda.", "Los primitivos booleanos primitivos son: true y false", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Boo !", + "descriptionFr": [ + "Crée une fonction qui vérifie qu'une valeur est de type booléen. Renvoie true ou false.", + "Les primitives booléennes sont true ou false.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -446,6 +506,14 @@ "Los valores únicos deben aparecer en el orden original, pero el vector final no necesariamente debe mostrar los elementos en orden numérico.", "Puedes usar de referencia las pruebas de verificación si necesitas ejemplos.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Union arrangée", + "descriptionFr": [ + "Crée une fonction qui accepte deux tableaux ou plus et renvoie un nouvel array de valeurs uniques dans l'ordre des tableaux donnés.", + "En d'autres termes, toutes les valeurs des tableaux doivent être incluses dans l'ordre originel, sans doublon dans le tableau final.", + "Les valeurs uniques doivent être classées dans l'ordre originel, mais le tableau final ne doit pas être classé par ordre croissant.", + "Réfère toi aux test pour plus d'examples.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -486,6 +554,11 @@ "descriptionEs": [ "Convierte los caracteres &, <, >, \"' (comilla), y ' (apóstrofe), contenidos en la cadena de texto que se te pasa, en sus entidades HTML correspondientes", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Convertir les entités HTML", + "descriptionFr": [ + "Convertis les caractères &, <, >, \"' (guillemet), y ' (apostrophe), contenus dans la chaîne de caractères en entités HTML.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -524,6 +597,11 @@ "descriptionEs": [ "Convierte la cadena de texto que se te pasa al formato spinal case. Spinal case es cuando escribes todas las palabras en-minúsculas-unidas-por-guiones.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Trait d'union", + "descriptionFr": [ + "Convertis la chaîne de caractères en spinal case. Spinal case correspond au bas-de-casse-séparé-par-des-tirets.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -565,6 +643,13 @@ "Los primeros números de la secuencia son 1, 1, 2, 3, 5 y 8, y cada número siguiente es la suma de los dos números anteriores.", "Por ejemplo, si se te pasa el número 4, la función deberá devolver 5, ya que los números impares menores que 4 son 1, 1 y 3.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Additionner tous les nombre de Fibonacci impairs", + "descriptionFr": [ + "Crée une fonction qui additionne tous les nombre de Fibonacci jusqu'au nombre donné (inclus si c'est un nombre de Fibonacci).", + "Les premiers chiffres de la séquence sont 1, 1, 2, 3, 5 y 8, et chaque nombre correspond à la somme des deux nombres précédents.", + "Par example, pour le chiffre 4, la fonction doit retourner 5, puisque les chiffres précédent 4 sont 1, 1 et 3.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -604,6 +689,13 @@ "Números primos son todos aquellos que sólo son divisibles entre 1 y entre sí mismos. Por ejemplo, el número 2 es primo porque solo es divisible por 1 y por 2. Por el contrario, el número 1 no es primo, ya que sólo puede dividirse por sí mismo", "El número que se le provee a la función no puede ser primo", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Additionner tous les nombres primaires", + "descriptionFr": [ + "Additionne tous les nombres primaires jusqu'au nombre donné (inclus).", + "Un nombre primaire est un nombre divisible que par 1 ou par lui-même (plus grand que 1). Par exemple, 2 est un nombre primaire puisqu'il n'est divisible que par 1 et 2. 1 n'est pas primaire puiqu'il n'est divisible que par lui-même.", + "Le nombre donné en argument n'est pas forcément un nombre primaire.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -644,6 +736,13 @@ "Tu función debe aceptar como argumento un vector con dos números, los cuales no necesariamente estarán en orden.", "Por ejemplo, si se te pasan los números 1 y 3, deberás encontrar el mínimo común múltiplo de 1 y 3 que es divisible por todos los números entre 1 y 3.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Plus petit commun multiple", + "descriptionFr": [ + "Cherche le plus petit commun multiple qui soit divisible par les deux nombres donnés et par les nombres de la série entre ces deux nombres.", + "La série est un tableau de deux nombres qui ne seront pas nécessairement dans l'ordre croissant.", + "Par exemple, pour 1 et 3, il faut trouver le plus petit commun multiple de 1 et 3 mais aussi des nombres entre 1 et 3/", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -678,6 +777,11 @@ "descriptionEs": [ "Crea una función que busque dentro de un vector (primer argumento) y que devuelva el primer elemento que pase una prueba de verdad (segundo argumento).", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Détecteur de mensonges", + "descriptionFr": [ + "Crée une fonction qui parcourt un tableau (premier argument) et renvoie le premier élément du tableau qui passe le test (second argument).", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -720,6 +824,12 @@ "Toma los elementos contenidos en el vector que se te provee en el primer argumento de la función y elimínalos uno por uno, hasta que la función provista en el segundo argumento devuelva true.", "Retorna el resto del vector, de lo contrario retorna un vector vacío.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Laisse tomber", + "descriptionFr": [ + "Écarte les éléments du tableau (premier argument), en commençant par la gauche, jusqu'à ce la fonction (second argument) renvoie true.", + "Renvoie le reste du tableau, ou dans le cas contraire un tableau vide", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -756,6 +866,11 @@ "descriptionEs": [ "Aplana el vector anidado que se te provee. Tu función debe poder aplanar vectores de cualquier forma.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Rouleau compresseur", + "descriptionFr": [ + "Aplatis le tableau donné. Ta fonction doit pour gérer différentes formes de tableaux.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -792,6 +907,12 @@ "Haz que la función devuelva el mensaje en inglés escondido en el código binario de la cadena de texto que se le pasa.", "La cadena de texto binaria estará separada por espacios.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Agent binaire", + "descriptionFr": [ + "Traduis la chaîne binaire donnée en anglais.", + "La chaîne binaire comporte des espaces.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -832,6 +953,12 @@ "Verifica si la función en el segundo argumento devuelve true para todos los elementos de la colección en el primer argumento.", "Recuerda que puedes accesar a las propiedades de un objeto, ya sea a través de la notación por punto o de la notación por corchete usando [].", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Tout doit être vrai", + "descriptionFr": [ + "Vérifie que la fonction donnée (second argument) est vraie sur tous les éléments de la collection (premier argument).", + "Tu peux utiliser un point ou des [] pour accéder aux propritétés de l'objet.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] }, { @@ -879,6 +1006,16 @@ "sumTwoAnd(3) devuelve 5.", "Si alguno de los argumentos no es un número válido, haz que devuelva undefined.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado. Intenta programar en pareja. Escribe tu propio código." + ], + "titleFr": "Arguments optionnels", + "descriptionFr": [ + "Crée une fonction qui additionne deux arguments. Si un seul argument est donné, renvoie une fonction qui attend un argument et renvoie la somme.", + "Par exemple, add(2, 3), doit renvoyer 5, et add(2) doit renvoyer une fonction.", + "Appeler cette fonction avec un seul argument renvoie la somme:", + "var sumTwoAnd = add(2);", + "sumTwoAnd(3) renvoie 5.", + "Si aucun argument n'est un nombre, renvoie undefined.", + "N'oublie pas d'utiliser Lire-Chercher-Demander si tu es bloqué. Essaye de trouver un partenaire. Écris ton propre code." ] } ] From 93443ef1a5beada8412db3f08cd755d3848385ac Mon Sep 17 00:00:00 2001 From: bteng22 Date: Thu, 24 Mar 2016 00:08:38 -0700 Subject: [PATCH 03/32] Computer Basics (and all Video Challenges) flows out of screen on mobile devices Removing react-bootstrap component Row from Hikes.jsx and Hike.jsx as it adds a row class which tightens the margins. Also removing inline overflow: hidden style that seemed to not affect anything as well as extraneous html elements. Closes #7565 --- common/app/routes/Hikes/components/Hike.jsx | 24 +++++++++----------- common/app/routes/Hikes/components/Hikes.jsx | 16 +++++-------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/common/app/routes/Hikes/components/Hike.jsx b/common/app/routes/Hikes/components/Hike.jsx index 5e147ea6e6..687c1474eb 100644 --- a/common/app/routes/Hikes/components/Hike.jsx +++ b/common/app/routes/Hikes/components/Hike.jsx @@ -1,6 +1,6 @@ import React, { PropTypes } from 'react'; import { connect } from 'react-redux'; -import { Col, Row } from 'react-bootstrap'; +import { Col } from 'react-bootstrap'; import { createSelector } from 'reselect'; import Lecture from './Lecture.jsx'; @@ -55,18 +55,16 @@ export class Hike extends React.Component { return ( - -
-

{ title }

-
-
-
-
- { this.renderBody(shouldShowQuestions) } -
- +
+

{ title }

+
+
+
+
+ { this.renderBody(shouldShowQuestions) } +
); } diff --git a/common/app/routes/Hikes/components/Hikes.jsx b/common/app/routes/Hikes/components/Hikes.jsx index da41f8e4ca..1b34251659 100644 --- a/common/app/routes/Hikes/components/Hikes.jsx +++ b/common/app/routes/Hikes/components/Hikes.jsx @@ -1,7 +1,6 @@ import React, { PropTypes } from 'react'; import { compose } from 'redux'; import { connect } from 'react-redux'; -import { Row } from 'react-bootstrap'; import PureComponent from 'react-pure-render/component'; import { createSelector } from 'reselect'; // import debug from 'debug'; @@ -59,17 +58,14 @@ export class Hikes extends PureComponent { render() { const { hikes } = this.props; - const preventOverflow = { overflow: 'hidden' }; return (
- - { - // render sub-route - this.props.children || - // if no sub-route render hikes map - this.renderMap(hikes) - } - + { + // render sub-route + this.props.children || + // if no sub-route render hikes map + this.renderMap(hikes) + }
); } From 14008428289ac44d9cac6eb3db4b3561daefed97 Mon Sep 17 00:00:00 2001 From: BKinahan Date: Sat, 26 Mar 2016 10:56:14 +0000 Subject: [PATCH 04/32] Add test to Counting Cards Adds a test to Counting Cards for cases when last drawn card decreases Count but Count is still positive --- .../01-front-end-development-certification/basic-javascript.json | 1 + 1 file changed, 1 insertion(+) diff --git a/seed/challenges/01-front-end-development-certification/basic-javascript.json b/seed/challenges/01-front-end-development-certification/basic-javascript.json index 7dda2fd78a..52ec5da64f 100644 --- a/seed/challenges/01-front-end-development-certification/basic-javascript.json +++ b/seed/challenges/01-front-end-development-certification/basic-javascript.json @@ -3775,6 +3775,7 @@ "assert((function(){ count = 0; cc(10);cc('J');cc('Q');cc('K');var out = cc('A'); if(out === \"-5 Hold\") {return true;} return false; })(), 'message: Cards Sequence 10, J, Q, K, A should return \"-5 Hold\"');", "assert((function(){ count = 0; cc(3);cc(7);cc('Q');cc(8);var out = cc('A'); if(out === \"-1 Hold\") {return true;} return false; })(), 'message: Cards Sequence 3, 7, Q, 8, A should return \"-1 Hold\"');", "assert((function(){ count = 0; cc(2);cc('J');cc(9);cc(2);var out = cc(7); if(out === \"1 Bet\") {return true;} return false; })(), 'message: Cards Sequence 2, J, 9, 2, 7 should return \"1 Bet\"');", + "assert((function(){ count = 0; cc(2);cc(2);var out = cc(10); if(out === \"1 Bet\") {return true;} return false; })(), 'message: Cards Sequence 2, 2, 10 should return \"1 Bet\"');", "assert((function(){ count = 0; cc(3);cc(2);cc('A');cc(10);var out = cc('K'); if(out === \"-1 Hold\") {return true;} return false; })(), 'message: Cards Sequence 3, 2, A, 10, K should return \"-1 Hold\"');" ], "type": "checkpoint", From cb6a59468464ba247e7653f652b4cd3bb0dde868 Mon Sep 17 00:00:00 2001 From: Mrugesh Mohapatra Date: Mon, 28 Mar 2016 22:14:18 +0530 Subject: [PATCH 05/32] Update label text for projects on User portfolio page --- server/views/account/show.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/views/account/show.jade b/server/views/account/show.jade index c9e773e70a..6496bbda48 100644 --- a/server/views/account/show.jade +++ b/server/views/account/show.jade @@ -124,7 +124,7 @@ block content td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available' td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : '' td.col-xs-2.hidden-xs - a(href=challenge.solution, target='_blank') View my project + a(href=challenge.solution, target='_blank') View project td.col-xs-12.visible-xs a(href=challenge.solution, target='_blank')= removeOldTerms(challenge.name) if (algorithms.length > 0) From e112601def0ed2435e819a2a53fb62acb461de39 Mon Sep 17 00:00:00 2001 From: Geoffrey Wright Date: Mon, 28 Mar 2016 19:15:50 -0400 Subject: [PATCH 06/32] add test case to spinal-tap-case --- .../intermediate-bonfires.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json b/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json index 7c43fb5d28..63cd55cc1a 100644 --- a/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json +++ b/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json @@ -511,7 +511,8 @@ "assert.deepEqual(spinalCase(\"This Is Spinal Tap\"), \"this-is-spinal-tap\", 'message: spinalCase(\"This Is Spinal Tap\") should return \"this-is-spinal-tap\".');", "assert.strictEqual(spinalCase('thisIsSpinalTap'), \"this-is-spinal-tap\", 'message: spinalCase(\"thisIsSpinalTap\") should return \"this-is-spinal-tap\".');", "assert.strictEqual(spinalCase(\"The_Andy_Griffith_Show\"), \"the-andy-griffith-show\", 'message: spinalCase(\"The_Andy_Griffith_Show\") should return \"the-andy-griffith-show\".');", - "assert.strictEqual(spinalCase(\"Teletubbies say Eh-oh\"), \"teletubbies-say-eh-oh\", 'message: spinalCase(\"Teletubbies say Eh-oh\") should return \"teletubbies-say-eh-oh\".');" + "assert.strictEqual(spinalCase(\"Teletubbies say Eh-oh\"), \"teletubbies-say-eh-oh\", 'message: spinalCase(\"Teletubbies say Eh-oh\") should return \"teletubbies-say-eh-oh\".');", + "assert.strictEqual(spinalCase(\"AllThe-small Things\"), \"all-the-small-things\", 'message: spinalCase(\"AllThe-small Things\") should return \"all-the-small-things\".');" ], "type": "bonfire", "MDNlinks": [ From ae9a37b9d6e339f99d47fa72614c49b59ed22ecc Mon Sep 17 00:00:00 2001 From: Andre Alonzo Date: Mon, 28 Mar 2016 18:48:18 -0700 Subject: [PATCH 07/32] updated regex to Add Placeholder Text --- .../01-front-end-development-certification/html5-and-css.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seed/challenges/01-front-end-development-certification/html5-and-css.json b/seed/challenges/01-front-end-development-certification/html5-and-css.json index ab7ce8575e..e2385fc21e 100644 --- a/seed/challenges/01-front-end-development-certification/html5-and-css.json +++ b/seed/challenges/01-front-end-development-certification/html5-and-css.json @@ -1875,7 +1875,7 @@ "tests": [ "assert($(\"input[placeholder]\").length > 0, 'message: Add a placeholder attribute text input element.');", "assert($(\"input\") && $(\"input\").attr(\"placeholder\") && $(\"input\").attr(\"placeholder\").match(/cat\\s+photo\\s+URL/gi), 'message: Set the value of your placeholder attribute to \"cat photo URL\".');", - "assert($(\"input[type=text]\").length > 0 && code.match(/URL\\s*[\"\\']\\s*\\/?>/gi), 'message: The finished input element should have valid syntax.');" + "assert($(\"input[type=text]\").length > 0 && code.match(//gi), 'message: The finished input element should have valid syntax.');" ], "type": "waypoint", "titleEs": "Agrega un texto de relleno a un campo de texto", From a42e4cfd83e1247f994c08d292ed94ff937f66a1 Mon Sep 17 00:00:00 2001 From: Geoffrey Wright Date: Mon, 28 Mar 2016 21:49:23 -0400 Subject: [PATCH 08/32] extend session cookie past browser close --- server/middlewares/sessions.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/middlewares/sessions.js b/server/middlewares/sessions.js index d0a50a27a8..afd8516720 100644 --- a/server/middlewares/sessions.js +++ b/server/middlewares/sessions.js @@ -6,6 +6,8 @@ const MongoStore = MongoStoreFactory(session); export default function sessionsMiddleware() { return session({ + // 900 day session cookie + cookie: { maxAge: 900 * 24 * 60 * 60 * 1000 }, resave: true, saveUninitialized: true, secret: secrets.sessionSecret, From 4ad03d1223f58ff1d07b3511e519b1dac87a3ade Mon Sep 17 00:00:00 2001 From: Eric Leung Date: Mon, 28 Mar 2016 21:40:53 -0500 Subject: [PATCH 09/32] Clarify Declare JS Vars challenge description - Update description on what variables are - Change code tags to dfn tags around the words "data" and "variables" --- .../basic-javascript.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seed/challenges/01-front-end-development-certification/basic-javascript.json b/seed/challenges/01-front-end-development-certification/basic-javascript.json index c50be7961e..bcb72956c8 100644 --- a/seed/challenges/01-front-end-development-certification/basic-javascript.json +++ b/seed/challenges/01-front-end-development-certification/basic-javascript.json @@ -46,9 +46,9 @@ "id": "bd7123c9c443eddfaeb5bdef", "title": "Declare JavaScript Variables", "description": [ - "In computer science, data is anything that is meaningful to the computer. JavaScript provides seven different data types which are undefined, null, Boolean, string, symbol, number, and object.", + "In computer science, data is anything that is meaningful to the computer. JavaScript provides seven different data types which are undefined, null, Boolean, string, symbol, number, and object.", "For example, computers distinguish between numbers, such as the number 12, and strings, such as \"12\", \"dog\", or \"123 cats\", which are collections of characters. Computers can perform mathematical operations on a number, but not on a string.", - "Variables allow computers to store data in a dynamic fashion, rather than updating a formula every time the data changes. Any of the seven different data types may be stored in a variable.", + "Variables allow computers to store and manipulate data in a dynamic fashion. They do this by using a \"label\" to point to the data rather than using the data itself. Any of the seven data types may be stored in a variable.", "Variables are similar to the x and y variables you use in mathematics, which means they're a simple name to represent the data we want to refer to. Computer variables differ from mathematical variables in that they can store different values at different times.", "We tell JavaScript to create or declare a variable by putting the keyword var in front of it, like so:", "
var ourName;
", From f6dfc6f4f973c5e99074acc856d9e4d46810bbae Mon Sep 17 00:00:00 2001 From: Al3xakaSp3cialK Date: Tue, 29 Mar 2016 02:53:00 +0200 Subject: [PATCH 10/32] Translation of back end certificate in french --- .../back-end-development-certificate.json | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/seed/challenges/03-back-end-development-certification/back-end-development-certificate.json b/seed/challenges/03-back-end-development-certification/back-end-development-certificate.json index aa4ab655f8..ee1126de8f 100644 --- a/seed/challenges/03-back-end-development-certification/back-end-development-certificate.json +++ b/seed/challenges/03-back-end-development-certification/back-end-development-certificate.json @@ -118,7 +118,34 @@ "" ] ], - "titleEs": "Reclama tu certificado de desarrollo del lado del servidor" + "titleEs": "Reclama tu certificado de desarrollo del lado del servidor", + "titleFr": "Demandez votre certificat de développement Back End", + "descriptionFr": [ + [ + "//i.imgur.com/8v3t84p.jpg", + "Une image de notre certificat de développement Back End", + "Ce défi vous donnera votre certificat de développement Back End authentifié. Avant que nous ne vous le donnions, nous devons vérifier que vous avez complété tous les projets de développement Back End. Vous devez aussi accepter notre serment de droiture académique. Cliquez le bouton ci-dessous pour commencer cette procédure.", + "" + ], + [ + "//i.imgur.com/HArFfMN.jpg", + "La définition du plagiat: Plagiat (nom) - copier le travail de quelqu'un d'autre et le presenter comme le votre sans lui en donner crédit.", + "En cliquant ci dessous, vous faites le serment que tout le code que vous avez mis en ligne A) est un code que vous ou un pair avez personellement écrit, ou B) qu'il provient de librairies open-source comme jQuery, ou C) qu'il a été cmairement attribué à ses auteurs originaux. Vous nous donnez la permission de consulter vos solutions aux défis et de révoquer votre certificat si nous y trouvons une preuve de plagiat.", + "#" + ], + [ + "//i.imgur.com/2qn7tHp.jpg", + "Une image du texte \"Back End Development Certificate requirements\"", + "Confirmons que vous avez complété nos projets de développement Back End. Cliquez sur le bouton ci dessous pour vérifier.", + "#" + ], + [ + "//i.imgur.com/16SIhHO.jpg", + "Une image du mot \"Congratulations\"", + "Félicitations! Nous avons ajouté votre certificat de développement Back End à votre page portfolio. A moins que vous ne choisissiez de cacher vos solutions, ce certificat restera publiquement visible et vérifiable.", + "" + ] + ] } ] } From ae65a6c1368d75f4d050a727538794a13b63a79d Mon Sep 17 00:00:00 2001 From: Cesar Dario Garcia Date: Tue, 29 Mar 2016 02:24:08 -0700 Subject: [PATCH 11/32] update resources to https on bootstrap responsive --- .../bootstrap.json | 254 +++++++++--------- 1 file changed, 127 insertions(+), 127 deletions(-) diff --git a/seed/challenges/01-front-end-development-certification/bootstrap.json b/seed/challenges/01-front-end-development-certification/bootstrap.json index 3cf9d1bb58..06578ee939 100644 --- a/seed/challenges/01-front-end-development-certification/bootstrap.json +++ b/seed/challenges/01-front-end-development-certification/bootstrap.json @@ -104,102 +104,12 @@ "id": "bad87fee1348bd9acde08812", "title": "Make Images Mobile Responsive", "description": [ - "First, add a new image below the existing one. Set its src attribute to http://bit.ly/fcc-running-cats.", + "First, add a new image below the existing one. Set its src attribute to https://bit.ly/fcc-running-cats.", "It would be great if this image could be exactly the width of our phone's screen.", "Fortunately, with Bootstrap, all we need to do is add the img-responsive class to your image. Do this, and the image should perfectly fit the width of your page." ], "challengeSeed": [ - "", - "", - "", - "
", - "

CatPhotoApp

", - "", - "

Click here for cat photos.

", - "", - " ", - "", - "

Things cats love:

", - "
    ", - "
  • cat nip
  • ", - "
  • laser pointers
  • ", - "
  • lasagna
  • ", - "
", - "

Top 3 things cats hate:

", - "
    ", - "
  1. flea treatment
  2. ", - "
  3. thunder
  4. ", - "
  5. other cats
  6. ", - "
", - "
", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "
", - "
" - ], - "tests": [ - "assert($(\"img\").length === 2, 'message: You should have a total of two images.');", - "assert($(\"img:eq(1)\").hasClass(\"img-responsive\"), 'message: Your new image should be below your old one and have the class img-responsive.');", - "assert(!$(\"img:eq(1)\").hasClass(\"smaller-image\"), 'message: Your new image should not have the class smaller-image.');", - "assert($(\"img:eq(1)\").attr(\"src\") === \"http://bit.ly/fcc-running-cats\", 'message: Your new image should have a src of http://bit.ly/fcc-running-cats.');", - "assert(code.match(//g).length === 2 && code.match(/img
element has a closing angle bracket.');" - ], - "type": "waypoint", - "challengeType": 0, - "titleEs": "Haz que las imágenes sean adaptativas en dispositivos móviles", - "descriptionEs": [ - "Primero, agrega una nueva imagen debajo que la que ya existe. Haz que su atributo src sea http://bit.ly/fcc-running-cats.", - "Sería genial si esta imagen fuera exactamente del tamaño de la pantalla de nuestro teléfono.", - "Afortunadamente, con Bootstrap, todo lo que tenemos que hacer es agregar la clase img-responsive a tu imagen. Hazlo, y verás que la imagen se ajustará perfectamente al ancho de tu página." - ], - "nameFr": "Rendre des images adaptatives aux appareils mobiles", - "descriptionFr": [ - "It would be great if this image could be exactly the width of our phone's screen.", - "Fortunately, with Bootstrap, all we need to do is add the img-responsive class to your image. Do this, and the image should perfectly fit the width of your page.", - "D'abord, ajoutez une nouvelle image en dessous de celle qui eiste dejà. Changez l'attribut src en http://bit.ly/fcc-running-cats.", - "Ce serait absolument super si notre image pouvait être exactement de la largeur de l'écran du téléphone.", - "Heureusement, avec Bootstrap, il faut seulement ajouter la classe img-responsive à notre image. Faites le, et l'image devrait s'ajuster parfaitement à la largeur de la page." - ] - }, - { - "id": "bad87fee1348bd8acde08812", - "title": "Center Text with Bootstrap", - "description": [ - "Now that we're using Bootstrap, we can center our heading element to make it look better. All we need to do is add the class text-center to our h2 element.", - "Remember that you can add several classes to the same element by separating each of them with a space, like this:", - "<h2 class=\"red-text text-center\">your text</h2>" - ], - "challengeSeed": [ - "", + "", "", + "", + "
", + "

CatPhotoApp

", + "", + "

Click here for cat photos.

", + "", + " ", + "", + " ", "

Things cats love:

", "
    ", "
  • cat nip
  • ", @@ -284,7 +284,7 @@ "Create a new button element below your large kitten photo. Give it the class btn and the text of \"Like\"." ], "challengeSeed": [ - "", + "", "