From 60e27d386fe2ebd05f21e02e4929e86fbfb576ca Mon Sep 17 00:00:00 2001 From: tahmidshahriar Date: Wed, 1 Jul 2015 10:20:14 -0700 Subject: [PATCH 01/14] add close buttonn to payment methods --- app/views/core/SubscribeModal.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/core/SubscribeModal.coffee b/app/views/core/SubscribeModal.coffee index 3a82645e9..9c1b49c18 100644 --- a/app/views/core/SubscribeModal.coffee +++ b/app/views/core/SubscribeModal.coffee @@ -44,7 +44,6 @@ module.exports = class SubscribeModal extends ModalView popoverTitle = $.i18n.t 'subscribe.parent_email_title' popoverTitle += '' popoverContent = -> - console.log 'found html', $('.parent-button-popover-content').html() $('.parent-button-popover-content').html() @$el.find('.parent-button').popover( animation: true @@ -78,6 +77,7 @@ module.exports = class SubscribeModal extends ModalView setupPaymentMethodsInfoPopover: -> popoverTitle = $.i18n.t('subscribe.payment_methods_title') + popoverTitle += '' popoverContent = "

" + $.i18n.t('subscribe.payment_methods_blurb1') + "

" popoverContent += "

" + $.i18n.t('subscribe.payment_methods_blurb2') + " support@codecombat.com." @$el.find('#payment-methods-info').popover( From f6dd3ce0c8f4fdb42c93f40284e2d94c2f116963 Mon Sep 17 00:00:00 2001 From: tahmidshahriar Date: Wed, 1 Jul 2015 10:22:25 -0700 Subject: [PATCH 02/14] minimize changes --- app/views/core/SubscribeModal.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/core/SubscribeModal.coffee b/app/views/core/SubscribeModal.coffee index 9c1b49c18..d9e3ee8a1 100644 --- a/app/views/core/SubscribeModal.coffee +++ b/app/views/core/SubscribeModal.coffee @@ -44,6 +44,7 @@ module.exports = class SubscribeModal extends ModalView popoverTitle = $.i18n.t 'subscribe.parent_email_title' popoverTitle += '' popoverContent = -> + console.log 'found html', $('.parent-button-popover-content').html() $('.parent-button-popover-content').html() @$el.find('.parent-button').popover( animation: true From 254d6a9d6b6448ffca961a90e89b8a2a8a952d89 Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Wed, 1 Jul 2015 15:11:40 -0700 Subject: [PATCH 03/14] Add course mock UI for student level progress --- app/styles/courses/mock1/course-details.sass | 57 +++++++++++++++++++ .../courses/mock1/course-details.jade | 40 ++++++++++--- .../courses/mock1/CourseDetailsView.coffee | 25 +++++++- 3 files changed, 113 insertions(+), 9 deletions(-) diff --git a/app/styles/courses/mock1/course-details.sass b/app/styles/courses/mock1/course-details.sass index bfe5a625a..9c26707c5 100644 --- a/app/styles/courses/mock1/course-details.sass +++ b/app/styles/courses/mock1/course-details.sass @@ -10,3 +10,60 @@ .select-session width: 300px display: inline + + .progress-header + margin-right: 14px + + .progress-key + cursor: default + display: inline-block + white-space: nowrap + font-size: 9pt + font-weight: normal + border: 1px solid gray + border-radius: 5px + margin: 0px + padding: 2px + + .progress-key-started + background-color: lightgreen + + .progress-key-complete + background-color: lightgray + + .expand-progress-checkbox + margin-left: 14px + + .expand-progress-label + font-weight: normal + font-size: 14px + + .progress-cell + padding: 2px + padding-bottom: 10px + + .level-popup-container + display: none + position: absolute + padding: 10px + border: 1px solid black + z-index: 3 + background-color: blanchedalmond + font-size: 10pt + + .progress-level-cell + display: inline-block + white-space: nowrap + font-size: 9pt + border: 1px solid gray + border-radius: 5px + margin: 0px + padding: 2px + + .progress-level-cell-started + cursor: pointer + background-color: lightgreen + + .progress-level-cell-complete + cursor: pointer + background-color: lightgray diff --git a/app/templates/courses/mock1/course-details.jade b/app/templates/courses/mock1/course-details.jade index e37f358af..c3a508f8e 100644 --- a/app/templates/courses/mock1/course-details.jade +++ b/app/templates/courses/mock1/course-details.jade @@ -11,9 +11,11 @@ block content input.student-view-checkbox(type='checkbox') span.spl Student view div TODO: fix ugly tabs - div TODO: add student progress monitoring div TODO: level concepts, status, working play button div TODO: student view + div TODO: aggregate student progress + div TODO: student level progress popups + div TODO: student concept progress div(style='border-bottom: 1px solid black;') h1= course.title @@ -64,24 +66,48 @@ block content table.table.table-condensed thead tr - th Name - th Progress + th + th + span.progress-header Progress + span.progress-key.progress-key-complete complete + span.progress-key.progress-key-started started + span.progress-key not started + if maxLastStartedIndex > 30 + input.expand-progress-checkbox(type='checkbox') + span.spl.expand-progress-label(data-i18n="clans.exp_levels") Expand levels tbody each student in instance.students tr - td - a= student - td TODO: level progress + td + a= student + td.progress-cell + - var i = 0 + each level in course.levels + if i <= userLevelStateMap[student].lastCompletedIndex + span.progress-level-cell.progress-level-cell-complete #{i + 1} + if showExpandedProgress || i === 0 || i === userLevelStateMap[student].lastStartedIndex + span.spl #{level} + else if i <= userLevelStateMap[student].lastStartedIndex + span.progress-level-cell.progress-level-cell-started #{i + 1} + if showExpandedProgress || i === 1 || i === userLevelStateMap[student].lastStartedIndex + span.spl #{level} + else + span.progress-level-cell.level-progression-level-not-started #{i + 1} + if showExpandedProgress || i === 1 || i === userLevelStateMap[student].lastStartedIndex + span.spl #{level} + if i === maxLastStartedIndex + - break + - i++ .tab-pane#invite(role='tabpanel') p Invite students to join this class. if course.title !== 'Introduction to Computer Science' p Student unlock code: #{instance.code} p Class capacity: 34/50 - textarea.textarea-emails(rows=3, placeholder="Enter student emails to invite, one per line") div button.btn.btn-success.btn-invite Send Invites + .tab-pane#levels(role='tabpanel') table.table.table-condensed thead diff --git a/app/views/courses/mock1/CourseDetailsView.coffee b/app/views/courses/mock1/CourseDetailsView.coffee index 328b1c2fa..f551ef721 100644 --- a/app/views/courses/mock1/CourseDetailsView.coffee +++ b/app/views/courses/mock1/CourseDetailsView.coffee @@ -7,9 +7,10 @@ module.exports = class CourseDetailsView extends RootView template: template events: + 'change .expand-progress-checkbox': 'onExpandedProgressCheckbox' + 'change .select-session': 'onChangeSession' 'click .edit-class-name-btn': 'onClickEditClassName' 'click .edit-description-btn': 'onClickEditClassDescription' - 'change .select-session': 'onChangeSession' constructor: (options, @courseID) -> super options @@ -20,21 +21,41 @@ module.exports = class CourseDetailsView extends RootView context.course = @course ? {} context.instance = @instances?[@currentInstanceIndex] ? {} context.instances = @instances ? [] + context.lastUserLevelMap = @lastUserLevelMap ? {} + context.levelProgression = @levelProgression ? [] + context.maxLastStartedIndex = @maxLastStartedIndex ? 0 + context.userLevelStateMap = @userLevelStateMap ? {} + context.showExpandedProgress = @maxLastStartedIndex <= 30 or @showExpandedProgress context initData: -> mockData = require 'views/courses/mock1/CoursesMockData' @course = mockData.courses[@courseID] - # @instance = mockData.instances[_.random(0, mockData.instances.length - 1)] @currentInstanceIndex = 0 @instances = mockData.instances + @userLevelStateMap = {} + @maxLastStartedIndex = -1 + for student in @instances?[@currentInstanceIndex].students + lastCompletedIndex = _.random(0, @course.levels.length) + lastStartedIndex = lastCompletedIndex + 1 + @userLevelStateMap[student] = + lastCompletedIndex: lastCompletedIndex + lastStartedIndex: lastStartedIndex + @maxLastStartedIndex = lastStartedIndex if lastStartedIndex > @maxLastStartedIndex + onChangeSession: (e) -> newSessionValue = $(e.target).val() for val, index in @instances when val.name is newSessionValue @currentInstanceIndex = index @render?() + onExpandedProgressCheckbox: (e) -> + @showExpandedProgress = $('.expand-progress-checkbox').prop('checked') + # TODO: why does render reset the checkbox to be unchecked? + @render?() + $('.expand-progress-checkbox').attr('checked', @showExpandedProgress) + onClickEditClassName: (e) -> alert 'TODO: Popup for editing name for this course session' From bee5d53457594ace747d1061abd6d71632e64b7c Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Wed, 1 Jul 2015 15:16:17 -0700 Subject: [PATCH 04/14] Fix clan details html indentation And reorder progress key. --- app/templates/clans/clan-details.jade | 146 +++++++++++++------------- 1 file changed, 73 insertions(+), 73 deletions(-) diff --git a/app/templates/clans/clan-details.jade b/app/templates/clans/clan-details.jade index 3905ff19e..a19a0e5f2 100644 --- a/app/templates/clans/clan-details.jade +++ b/app/templates/clans/clan-details.jade @@ -86,89 +86,89 @@ block content th(data-i18n="resources.hero") Hero th span.progress-header(data-i18n="clans.progress") Progress - span.progress-key(data-i18n="clans.not_started_1") not started - span.progress-key.progress-key-started(data-i18n="clans.started_1") started span.progress-key.progress-key-complete(data-i18n="clans.complete_1") complete + span.progress-key.progress-key-started(data-i18n="clans.started_1") started + span.progress-key(data-i18n="clans.not_started_1") not started input.expand-progress-checkbox(type='checkbox') span.spl.expand-progress-label(data-i18n="clans.exp_levels") Expand levels tbody each member in members tr - td - div - span.hero-icon-cell - span.spr.player-hero-icon(data-memberid="#{member.id}") - span.code-language-cell - if memberLanguageMap && memberLanguageMap[member.id] - span.code-language-cell(style="background-image: url(/images/common/code_languages/#{memberLanguageMap[member.id]}_small.png)", title=memberLanguageMap[member.id]) - div - a(href="/user/#{member.id}")= member.get('name') || 'Anoner' - div Level #{member.level()} - if isOwner && member.id !== clan.get('ownerID') - button.btn.btn-xs.btn-warning.remove-member-btn(data-id="#{member.id}", data-i18n="clans.rem_hero") Remove Hero - td.progress-cell + td + div + span.hero-icon-cell + span.spr.player-hero-icon(data-memberid="#{member.id}") + span.code-language-cell + if memberLanguageMap && memberLanguageMap[member.id] + span.code-language-cell(style="background-image: url(/images/common/code_languages/#{memberLanguageMap[member.id]}_small.png)", title=memberLanguageMap[member.id]) + div + a(href="/user/#{member.id}")= member.get('name') || 'Anoner' + div Level #{member.level()} + if isOwner && member.id !== clan.get('ownerID') + button.btn.btn-xs.btn-warning.remove-member-btn(data-id="#{member.id}", data-i18n="clans.rem_hero") Remove Hero + td.progress-cell - each campaign in campaignLevelProgressions - if lastUserCampaignLevelMap[member.id] && lastUserCampaignLevelMap[member.id][campaign.ID] - div.level-progression-campaign= campaign.name - - var i = 0 + each campaign in campaignLevelProgressions + if lastUserCampaignLevelMap[member.id] && lastUserCampaignLevelMap[member.id][campaign.ID] + div.level-progression-campaign= campaign.name + - var i = 0 - each level in campaign.levels - - i++ - - var state = null, levelInfo = null - if memberLevelStateMap[member.id][level.slug] - - levelInfo = memberLevelStateMap[member.id][level.slug].levelInfo - - state = memberLevelStateMap[member.id][level.slug].state - if state === 'complete' - span.progress-level-cell.progress-level-cell-complete(data-level-info=levelInfo) #{i} - if showExpandedProgress || i === 1 || i === lastUserCampaignLevelMap[member.id][campaign.ID].index + 1 - span.spl #{level.name} - .level-popup-container - h3 #{i}. #{levelInfo.level} - p + each level in campaign.levels + - i++ + - var state = null, levelInfo = null + if memberLevelStateMap[member.id][level.slug] + - levelInfo = memberLevelStateMap[member.id][level.slug].levelInfo + - state = memberLevelStateMap[member.id][level.slug].state + if state === 'complete' + span.progress-level-cell.progress-level-cell-complete(data-level-info=levelInfo) #{i} + if showExpandedProgress || i === 1 || i === lastUserCampaignLevelMap[member.id][campaign.ID].index + 1 + span.spl #{level.name} + .level-popup-container + h3 #{i}. #{levelInfo.level} + p + div + span(data-i18n="choose_hero.status") Status + span.spr : + span(data-i18n="clans.complete_2") Complete + div + span(data-i18n="clans.playtime") Playtime + span : #{levelInfo.playtime}s + div + span(data-i18n="clans.last_played") Last played + span : #{levelInfo.changed} + if isOwner || me.isAdmin() + strong(data-i18n="clans.view_solution") Click to view solution. + else if state === 'started' + span.progress-level-cell.progress-level-cell-started(data-level-info=levelInfo) #{i} + if showExpandedProgress || i === 1 || i === lastUserCampaignLevelMap[member.id][campaign.ID].index + 1 + span.spl #{level.name} + .level-popup-container + h3 #{i}. #{level.name} + p + div + span(data-i18n="choose_hero.status") Status + span.spr : + span(data-i18n="clans.started_2") Started + div + span(data-i18n="clans.playtime") Playtime + span : #{levelInfo.playtime}s + div + span(data-i18n="clans.last_played") Last played + span : #{levelInfo.changed} + if isOwner || me.isAdmin() + strong(data-i18n="clans.view_solution") Click to view solution. + else + span.progress-level-cell.level-progression-level-not-started #{i} + if showExpandedProgress || i === 1 || i === lastUserCampaignLevelMap[member.id][campaign.ID].index + 1 + span.spl #{level.name} + .level-popup-container + h3 #{i}. #{level.name} div span(data-i18n="choose_hero.status") Status - span.spr : - span(data-i18n="clans.complete_2") Complete - div - span(data-i18n="clans.playtime") Playtime - span : #{levelInfo.playtime}s - div - span(data-i18n="clans.last_played") Last played - span : #{levelInfo.changed} - if isOwner || me.isAdmin() - strong(data-i18n="clans.view_solution") Click to view solution. - else if state === 'started' - span.progress-level-cell.progress-level-cell-started(data-level-info=levelInfo) #{i} - if showExpandedProgress || i === 1 || i === lastUserCampaignLevelMap[member.id][campaign.ID].index + 1 - span.spl #{level.name} - .level-popup-container - h3 #{i}. #{level.name} - p - div - span(data-i18n="choose_hero.status") Status - span.spr : - span(data-i18n="clans.started_2") Started - div - span(data-i18n="clans.playtime") Playtime - span : #{levelInfo.playtime}s - div - span(data-i18n="clans.last_played") Last played - span : #{levelInfo.changed} - if isOwner || me.isAdmin() - strong(data-i18n="clans.view_solution") Click to view solution. - else - span.progress-level-cell.level-progression-level-not-started #{i} - if showExpandedProgress || i === 1 || i === lastUserCampaignLevelMap[member.id][campaign.ID].index + 1 - span.spl #{level.name} - .level-popup-container - h3 #{i}. #{level.name} - div - span(data-i18n="choose_hero.status") Status - span.spr : - span(data-i18n="clans.not_started_2") Not Started - if lastUserCampaignLevelMap[member.id][campaign.ID].levelSlug === level.slug - - break + span.spr : + span(data-i18n="clans.not_started_2") Not Started + if lastUserCampaignLevelMap[member.id][campaign.ID].levelSlug === level.slug + - break //- Basic dashboard else From af612afcdddbe23612623ce642a85d08038fcb1f Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Wed, 1 Jul 2015 15:36:33 -0700 Subject: [PATCH 05/14] Mock course UI show last expanded complete level --- app/templates/courses/mock1/course-details.jade | 2 +- app/views/courses/mock1/CourseDetailsView.coffee | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/templates/courses/mock1/course-details.jade b/app/templates/courses/mock1/course-details.jade index c3a508f8e..afe981e38 100644 --- a/app/templates/courses/mock1/course-details.jade +++ b/app/templates/courses/mock1/course-details.jade @@ -85,7 +85,7 @@ block content each level in course.levels if i <= userLevelStateMap[student].lastCompletedIndex span.progress-level-cell.progress-level-cell-complete #{i + 1} - if showExpandedProgress || i === 0 || i === userLevelStateMap[student].lastStartedIndex + if showExpandedProgress || i === 0 || i === course.levels.length - 1 span.spl #{level} else if i <= userLevelStateMap[student].lastStartedIndex span.progress-level-cell.progress-level-cell-started #{i + 1} diff --git a/app/views/courses/mock1/CourseDetailsView.coffee b/app/views/courses/mock1/CourseDetailsView.coffee index f551ef721..a44d09842 100644 --- a/app/views/courses/mock1/CourseDetailsView.coffee +++ b/app/views/courses/mock1/CourseDetailsView.coffee @@ -21,8 +21,6 @@ module.exports = class CourseDetailsView extends RootView context.course = @course ? {} context.instance = @instances?[@currentInstanceIndex] ? {} context.instances = @instances ? [] - context.lastUserLevelMap = @lastUserLevelMap ? {} - context.levelProgression = @levelProgression ? [] context.maxLastStartedIndex = @maxLastStartedIndex ? 0 context.userLevelStateMap = @userLevelStateMap ? {} context.showExpandedProgress = @maxLastStartedIndex <= 30 or @showExpandedProgress @@ -33,7 +31,9 @@ module.exports = class CourseDetailsView extends RootView @course = mockData.courses[@courseID] @currentInstanceIndex = 0 @instances = mockData.instances + @updateLevelMaps() + updateLevelMaps: -> @userLevelStateMap = {} @maxLastStartedIndex = -1 for student in @instances?[@currentInstanceIndex].students @@ -45,9 +45,10 @@ module.exports = class CourseDetailsView extends RootView @maxLastStartedIndex = lastStartedIndex if lastStartedIndex > @maxLastStartedIndex onChangeSession: (e) -> + @showExpandedProgress = false newSessionValue = $(e.target).val() - for val, index in @instances when val.name is newSessionValue - @currentInstanceIndex = index + @currentInstanceIndex = index for val, index in @instances when val.name is newSessionValue + @updateLevelMaps() @render?() onExpandedProgressCheckbox: (e) -> From 7e0c5490e04d7bde1cfe779f5589049504e19bff Mon Sep 17 00:00:00 2001 From: Federico Tomas Date: Wed, 1 Jul 2015 23:06:20 -0300 Subject: [PATCH 06/14] Update es-419.coffee up guys!. --- app/locale/es-419.coffee | 116 +++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index 18d1d857a..eb122af5a 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -158,7 +158,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip unwatch: "No seguir" submit_patch: "Enviar Parche" submit_changes: "Enviar cambios" -# save_changes: "Save Changes" + save_changes: "Guardar cambios" general: and: "y" @@ -609,7 +609,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip sub_includes_4: "Soporte de correo electronico Premium" sub_includes_5: "7 heroes nuevos con habilidades unicas que dominar" sub_includes_6: "bonificación de 3500 gemas cada mes" -# sub_includes_7: "Private Clans" + sub_includes_7: "Clanes privados" # monitor_progress_title: "How do I monitor student progress?" # monitor_progress_1: "Student progress can be monitored by creating a" # monitor_progress_2: "for your class." @@ -635,8 +635,8 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip # how_much_6: "for more details." # more_info_title: "Where can I find more information?" # more_info_1: "Our" -# more_info_2: "teachers forum" -# more_info_3: "is a good place to connect with fellow educators who are using CodeCombat." + more_info_2: "el foro de profesores" + more_info_3: "es un buen lugar para connectarse con los educadores que estan usando CodeCombat." sys_requirements_title: "Requerimientos del sistema" sys_requirements_1: "Debido que CodeCombat es un juego, es más difícil para las computadoras correrlo en relación a un tutorial escrito o un video. Para que todos puedan jugar, hemos optimizado la web para correr rápidamente en todos los navegadores modernos y en maquinas antiguas. Dicho esto, aquí están nuestras sugerencias para sacar el máximo provecho de su experiencia en la Hora del Código:" # {change} sys_requirements_2: "Usar una versión actualizada del navegador Chrome o Firefox." # {change} @@ -648,26 +648,26 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip # being_reviewed_1: "Your application for a free trial subscription is being" # being_reviewed_2: "reviewed." # approved_1: "Your application for a free trial subscription was" -# approved_2: "approved." + approved_2: "Aprobada." # approved_3: "Further instructions have been sent to" # denied_1: "Your application for a free trial subscription has been" -# denied_2: "denied." -# contact_1: "Please contact" + denied_2: "denegadae." + contact_1: "Porfavor contactarse" # contact_2: "if you have further questions." # description_1: "We offer free subscriptions to teachers for evaluation purposes. You can find more information on our" # description_2: "teachers" # description_3: "page." # description_4: "Please fill out this quick survey and we’ll email you setup instructions." -# email: "Email Address" -# school: "Name of School" -# location: "Name of City" -# age_students: "How old are your students?" + email: "Dirección de email" + school: "Nombre del colegio" + location: "Nombre de la ciudad" + age_students: "¿Qué edad tienen tus estudiantes?" # under: "Under" # other: "Other:" -# amount_students: "How many students do you teach?" -# hear_about: "How did you hear about CodeCombat?" -# fill_fields: "Please fill out all fields." -# thanks: "Thanks! We'll send you setup instructions shortly." + amount_students: "¿A cuantos alumnos les enseñas?" + hear_about: "¿Donde escuchaste sobre CodeCombat?" + fill_fields: "Porfavor llenar todos los campos." + thanks: "Gracias! Vamos a mandarte instrucciónes para iniciar proximamente." versions: save_version_title: "Guardar nueva versión" @@ -705,7 +705,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip picture_tab: "Imagen" delete_account_tab: "Borra tu cuenta" wrong_email: "Mail Incorrecto" -# wrong_password: "Wrong Password" + wrong_password: "Contraseña incorrecta" upload_picture: "Sube una imagen" delete_this_account: "Borrar esta cuenta permanentemente" god_mode: "Modo Dios" @@ -746,7 +746,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip keyboard_shortcuts: "Atajos de teclado" space: "Barra espaciadora" enter: "Enter" -# press_enter: "press enter" + press_enter: "Toca enter" escape: "Escape" shift: "Shift" run_code: "Ejecutar el código." @@ -782,47 +782,47 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip contribute_to_the_project: "Contribuir al proyecto" # clans: -# clan: "Clan" -# clans: "Clans" -# new_name: "New clan name" -# new_description: "New clan description" -# make_private: "Make clan private" -# subs_only: "subscribers only" -# create_clan: "Create New Clan" -# public_clans: "Public Clans" -# my_clans: "My Clans" -# clan_name: "Clan Name" -# name: "Name" + clan: "Clan" + clans: "Clanes" + new_name: "Nuevo nombre de clan" + new_description: "descripción del clan" + make_private: "Hacer clan privado" + subs_only: "solo suscriptores" + create_clan: "Crear nuevo clan" + public_clans: "Clanes publicos" + my_clans: "Mis Clanes" + clan_name: "Nombre del clan" + name: "Nombre" # chieftain: "Chieftain" -# type: "Type" -# edit_clan_name: "Edit Clan Name" -# edit_clan_description: "Edit Clan Description" -# edit_name: "edit name" -# edit_description: "edit description" -# private: "(private)" + type: "Tipo" + edit_clan_name: "Editar el nombre del Clan" + edit_clan_description: "Editar descripción del clan" + edit_name: "editar nombre" + edit_description: "editar descripción" + private: "(privado)" # summary: "Summary" -# average_level: "Average Level" -# average_achievements: "Average Achievements" -# delete_clan: "Delete Clan" -# leave_clan: "Leave Clan" -# join_clan: "Join Clan" -# invite_1: "Invite:" -# invite_2: "*Invite players to this Clan by sending them this link." -# members: "Members" -# progress: "Progress" -# not_started_1: "not started" -# started_1: "started" -# complete_1: "complete" -# exp_levels: "Expand levels" -# rem_hero: "Remove Hero" -# status: "Status" -# complete_2: "Complete" -# started_2: "Started" -# not_started_2: "Not Started" -# view_solution: "Click to view solution." -# latest_achievement: "Latest Achievement" -# playtime: "Playtime" -# last_played: "Last played" + average_level: "Nivel Promedio" + average_achievements: "Logros Promedio" + delete_clan: "Borrar Clan" + leave_clan: "Abandonar Clan" + join_clan: "Ingresar Clan" + invite_1: "Invitar:" + invite_2: "*Invitar jugadores al clan, mandandoles este link." + members: "Miembros" + progress: "Progreso" + not_started_1: "no iniciado" + started_1: "iniciado" + complete_1: "completo" + exp_levels: "Expand levels" + rem_hero: "Remover Heróe" + status: "Stado" + complete_2: "Completo" + started_2: "Iniciado" + not_started_2: "No inciiado" + view_solution: "Click para ver la solución." + latest_achievement: "último logro" + playtime: "Tiempo de juego" + last_played: "Último jugado" classes: archmage_title: "Archimago" @@ -1074,7 +1074,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip no_achievements: "Sin Logros todavía." favorite_prefix: "Idioma favorito " favorite_postfix: "." -# not_member_of_clans: "Not a member of any clans yet." + not_member_of_clans: "No se es miembro de ningún clan todavía." achievements: last_earned: "Último Ganado" @@ -1180,7 +1180,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip user_remarks: "Observaciones del usuario" versions: "Versiones" items: "Items" -# hero: "Hero" + hero: "Heróe" heroes: "Héroes" achievement: "Logros" clas: "CLAs" From 8a9ea09ecacb9e353f88e0fb71564cb123112f58 Mon Sep 17 00:00:00 2001 From: Ikuyadeu Date: Thu, 2 Jul 2015 19:20:25 +0900 Subject: [PATCH 07/14] Update ja.coffee --- app/locale/ja.coffee | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee index 45ed39fc0..bc3446a7e 100644 --- a/app/locale/ja.coffee +++ b/app/locale/ja.coffee @@ -659,8 +659,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # description_3: "page." # description_4: "Please fill out this quick survey and we’ll email you setup instructions." # email: "Email Address" -# school: "Name of School" -# location: "Name of City" +# school: "学校名" +# location: "市町村" # age_students: "How old are your students?" # under: "Under" # other: "Other:" @@ -705,7 +705,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", picture_tab: "画像" delete_account_tab: "アカウントの削除" wrong_email: "間違ったメールアドレス" -# wrong_password: "Wrong Password" + wrong_password: "間違ったパスワード" upload_picture: "画像をアップロード" delete_this_account: "アカウントを完全削除する" god_mode: "ゴッドモード" @@ -714,8 +714,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", admin: "管理者" new_password: "新パスワード" new_password_verify: "新パスワードを再入力" - type_in_email: "削除を確認するため、メールを入力して下さい" # {change} -# type_in_password: "Also, type in your password." + type_in_email: "アカウントの削除を確認するために、メールアドレスを入力して下さい" + type_in_password: "そして、パスワードを入力してください。" email_subscriptions: "ニュースレターの購読" email_subscriptions_none: "No Email Subscriptions." email_announcements: "お知らせ" @@ -746,7 +746,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", keyboard_shortcuts: "キーボードショートカット" space: "スペース" enter: "エンター" -# press_enter: "press enter" + press_enter: "エンターを押す" escape: "エスケープ" shift: "シフト" run_code: "現在のコードを実行" From 41f2eacff936f6ffdd53f20d599185cdc31f5e37 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Thu, 2 Jul 2015 12:44:30 +0100 Subject: [PATCH 08/14] Some fixes to previous merge --- app/locale/es-419.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index eb122af5a..772769f1e 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -635,13 +635,13 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip # how_much_6: "for more details." # more_info_title: "Where can I find more information?" # more_info_1: "Our" - more_info_2: "el foro de profesores" + more_info_2: "el foro de profesores" more_info_3: "es un buen lugar para connectarse con los educadores que estan usando CodeCombat." sys_requirements_title: "Requerimientos del sistema" sys_requirements_1: "Debido que CodeCombat es un juego, es más difícil para las computadoras correrlo en relación a un tutorial escrito o un video. Para que todos puedan jugar, hemos optimizado la web para correr rápidamente en todos los navegadores modernos y en maquinas antiguas. Dicho esto, aquí están nuestras sugerencias para sacar el máximo provecho de su experiencia en la Hora del Código:" # {change} sys_requirements_2: "Usar una versión actualizada del navegador Chrome o Firefox." # {change} -# teachers_survey: + teachers_survey: # title: "Teacher Survey" # must_be_logged: "You must be logged in first. Please create an account or log in from the menu above." # retrieving: "Retrieving information..." @@ -781,7 +781,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip social_hipchat: "Chatea con nosotros en el chat público de CodeCombat en la sala HipChat" contribute_to_the_project: "Contribuir al proyecto" -# clans: + clans: clan: "Clan" clans: "Clanes" new_name: "Nuevo nombre de clan" From ede3b35368157a841c7d77bbcdd3c080b5e2fb71 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Thu, 2 Jul 2015 12:47:20 +0100 Subject: [PATCH 09/14] Fixes to previous merge --- app/locale/ja.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee index bc3446a7e..91892ab03 100644 --- a/app/locale/ja.coffee +++ b/app/locale/ja.coffee @@ -641,7 +641,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", sys_requirements_1: "モダンなブラウザ。最新の Chrome や FireFox, Safari など。Internet Explorer 9 以上。" sys_requirements_2: "CodeCombat はまだ iPad をサポートしていません。" -# teachers_survey: + teachers_survey: # title: "Teacher Survey" # must_be_logged: "You must be logged in first. Please create an account or log in from the menu above." # retrieving: "Retrieving information..." @@ -659,8 +659,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # description_3: "page." # description_4: "Please fill out this quick survey and we’ll email you setup instructions." # email: "Email Address" -# school: "学校名" -# location: "市町村" + school: "学校名" + location: "市町村" # age_students: "How old are your students?" # under: "Under" # other: "Other:" From a62e0a8fe61bd7d933ba3e0a98b5f644ce8c0659 Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Thu, 2 Jul 2015 10:54:19 -0700 Subject: [PATCH 10/14] :shirt:Fix linter warning in mock course details view warn: Linting of app/views/courses/mock1/CourseDetailsView.coffee: warn: ensure_comprehensions at line 50. --- app/views/courses/mock1/CourseDetailsView.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/courses/mock1/CourseDetailsView.coffee b/app/views/courses/mock1/CourseDetailsView.coffee index a44d09842..1e0d3d83f 100644 --- a/app/views/courses/mock1/CourseDetailsView.coffee +++ b/app/views/courses/mock1/CourseDetailsView.coffee @@ -47,7 +47,8 @@ module.exports = class CourseDetailsView extends RootView onChangeSession: (e) -> @showExpandedProgress = false newSessionValue = $(e.target).val() - @currentInstanceIndex = index for val, index in @instances when val.name is newSessionValue + for val, index in @instances when val.name is newSessionValue + @currentInstanceIndex = index @updateLevelMaps() @render?() From a3169245762381319799b48e7a4565fac7f51b5b Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Thu, 2 Jul 2015 13:23:26 -0700 Subject: [PATCH 11/14] Add member concept maps to private clans --- app/templates/clans/clan-details.jade | 12 ++++++++++-- app/views/clans/ClanDetailsView.coffee | 12 ++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/templates/clans/clan-details.jade b/app/templates/clans/clan-details.jade index a19a0e5f2..5cb9e97f8 100644 --- a/app/templates/clans/clan-details.jade +++ b/app/templates/clans/clan-details.jade @@ -107,7 +107,15 @@ block content if isOwner && member.id !== clan.get('ownerID') button.btn.btn-xs.btn-warning.remove-member-btn(data-id="#{member.id}", data-i18n="clans.rem_hero") Remove Hero td.progress-cell - + p + div.level-progression-campaign(style='color:#317EAC;') Concepts + each concept in conceptsProgression + if userConceptsMap[member.id] && userConceptsMap[member.id][concept] === 'complete' + span.spr.progress-level-cell.progress-level-cell-complete(data-i18n="concepts." + concept) + else if userConceptsMap[member.id] && userConceptsMap[member.id][concept] === 'started' + span.spr.progress-level-cell.progress-level-cell-started(data-i18n="concepts." + concept) + else + span.spr.progress-level-cell.progress-level-cell-not-started(data-i18n="concepts." + concept) each campaign in campaignLevelProgressions if lastUserCampaignLevelMap[member.id] && lastUserCampaignLevelMap[member.id][campaign.ID] div.level-progression-campaign= campaign.name @@ -164,7 +172,7 @@ block content .level-popup-container h3 #{i}. #{level.name} div - span(data-i18n="choose_hero.status") Status + span(data-i18n="clans.status") Status span.spr : span(data-i18n="clans.not_started_2") Not Started if lastUserCampaignLevelMap[member.id][campaign.ID].levelSlug === level.slug diff --git a/app/views/clans/ClanDetailsView.coffee b/app/views/clans/ClanDetailsView.coffee index 6946ae4cd..99c8eb2e6 100644 --- a/app/views/clans/ClanDetailsView.coffee +++ b/app/views/clans/ClanDetailsView.coffee @@ -67,6 +67,7 @@ module.exports = class ClanDetailsView extends RootView context = super() context.campaignLevelProgressions = @campaignLevelProgressions ? [] context.clan = @clan + context.conceptsProgression = @conceptsProgression ? [] if application.isProduction() context.joinClanLink = "https://codecombat.com/clans/#{@clanID}" else @@ -84,6 +85,7 @@ module.exports = class ClanDetailsView extends RootView # Find last campaign level for each user lastUserCampaignLevelMap = {} maxLastUserCampaignLevel = 0 + userConceptsMap = {} if @campaigns.loaded for campaign in @campaigns.models campaignID = campaign.id @@ -98,10 +100,16 @@ module.exports = class ClanDetailsView extends RootView levelSlug: levelSlug index: lastLevelIndex maxLastUserCampaignLevel = lastLevelIndex if lastLevelIndex > maxLastUserCampaignLevel + if level.concepts? + userConceptsMap[member.id] ?= {} + for concept in level.concepts + continue if userConceptsMap[member.id][concept] is 'complete' + userConceptsMap[member.id][concept] = context.memberLevelStateMap[member.id][levelSlug].state lastLevelIndex++ context.lastUserCampaignLevelMap = lastUserCampaignLevelMap context.showExpandedProgress = maxLastUserCampaignLevel <= 30 or @showExpandedProgress + context.userConceptsMap = userConceptsMap context afterRender: -> @@ -124,6 +132,7 @@ module.exports = class ClanDetailsView extends RootView onCampaignSync: -> return unless @campaigns.loaded @campaignLevelProgressions = [] + @conceptsProgression = [] for campaign in @campaigns.models continue if campaign.get('slug') is 'auditions' campaignLevelProgression = @@ -136,6 +145,9 @@ module.exports = class ClanDetailsView extends RootView ID: levelID slug: level.slug name: level.name + if level.concepts? + for concept in level.concepts + @conceptsProgression.push concept unless concept in @conceptsProgression @campaignLevelProgressions.push campaignLevelProgression @render?() From 8a4645ebc6eb5e2b6791a81302c8c6196941cd94 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Thu, 2 Jul 2015 21:50:28 +0100 Subject: [PATCH 12/14] Updated i18n of 'Status' in clan-details.jade --- app/templates/clans/clan-details.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/templates/clans/clan-details.jade b/app/templates/clans/clan-details.jade index 5cb9e97f8..b21284abe 100644 --- a/app/templates/clans/clan-details.jade +++ b/app/templates/clans/clan-details.jade @@ -135,7 +135,7 @@ block content h3 #{i}. #{levelInfo.level} p div - span(data-i18n="choose_hero.status") Status + span(data-i18n="clans.status") Status span.spr : span(data-i18n="clans.complete_2") Complete div @@ -154,7 +154,7 @@ block content h3 #{i}. #{level.name} p div - span(data-i18n="choose_hero.status") Status + span(data-i18n="clans.status") Status span.spr : span(data-i18n="clans.started_2") Started div From 6a53237e659be28323c2d9fb96dbea16fbe1f815 Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Thu, 2 Jul 2015 15:17:31 -0700 Subject: [PATCH 13/14] Add member sorting to premium clan dashboard --- app/styles/clans/clan-details.sass | 6 +++- app/templates/clans/clan-details.jade | 17 ++++++++-- app/views/clans/ClanDetailsView.coffee | 46 ++++++++++++++++++++++++-- 3 files changed, 63 insertions(+), 6 deletions(-) diff --git a/app/styles/clans/clan-details.sass b/app/styles/clans/clan-details.sass index 8ad366396..0fda207bd 100644 --- a/app/styles/clans/clan-details.sass +++ b/app/styles/clans/clan-details.sass @@ -55,8 +55,11 @@ vertical-align: middle + .member-header + cursor: pointer + .progress-header - margin-right: 14px + cursor: pointer .progress-key cursor: default @@ -74,6 +77,7 @@ .progress-key-complete background-color: lightgray + margin-left: 14px .expand-progress-checkbox margin-left: 14px diff --git a/app/templates/clans/clan-details.jade b/app/templates/clans/clan-details.jade index b21284abe..4242610c4 100644 --- a/app/templates/clans/clan-details.jade +++ b/app/templates/clans/clan-details.jade @@ -83,10 +83,21 @@ block content table.table.table-condensed thead tr - th(data-i18n="resources.hero") Hero th - span.progress-header(data-i18n="clans.progress") Progress - span.progress-key.progress-key-complete(data-i18n="clans.complete_1") complete + span.member-header.spr(data-i18n="resources.hero") Hero + if memberSort === 'nameAsc' + span.member-header.glyphicon.glyphicon-chevron-up + else if memberSort === 'nameDesc' + span.member-header.glyphicon.glyphicon-chevron-down + th + span.progress-header.spr(data-i18n="clans.progress") Progress + if memberSort === 'progressAsc' + span.progress-header.glyphicon.glyphicon-chevron-up + else if memberSort === 'progressDesc' + span.progress-header.glyphicon.glyphicon-chevron-down + else + span(style='padding-left:16px;') + span.spl.progress-key.progress-key-complete(data-i18n="clans.complete_1") complete span.progress-key.progress-key-started(data-i18n="clans.started_1") started span.progress-key(data-i18n="clans.not_started_1") not started input.expand-progress-checkbox(type='checkbox') diff --git a/app/views/clans/ClanDetailsView.coffee b/app/views/clans/ClanDetailsView.coffee index 99c8eb2e6..367664a85 100644 --- a/app/views/clans/ClanDetailsView.coffee +++ b/app/views/clans/ClanDetailsView.coffee @@ -27,6 +27,8 @@ module.exports = class ClanDetailsView extends RootView 'click .edit-name-save-btn': 'onEditNameSave' 'click .join-clan-btn': 'onJoinClan' 'click .leave-clan-btn': 'onLeaveClan' + 'click .member-header': 'onClickMemberHeader' + 'click .progress-header': 'onClickProgressHeader' 'click .progress-level-cell': 'onClickLevel' 'click .remove-member-btn': 'onRemoveMember' 'mouseenter .progress-level-cell': 'onMouseEnterPoint' @@ -41,6 +43,7 @@ module.exports = class ClanDetailsView extends RootView initData: -> @showExpandedProgress = false + @memberSort = 'nameAsc' @stats = {} @campaigns = new CocoCollection([], { url: "/db/campaign", model: Campaign, comparator:'_id' }) @@ -77,22 +80,25 @@ module.exports = class ClanDetailsView extends RootView context.memberLanguageMap = @memberLanguageMap context.memberLevelStateMap = @memberLevelMap ? {} context.memberMaxLevelCount = @memberMaxLevelCount - context.members = @members?.models + context.memberSort = @memberSort context.isOwner = @clan.get('ownerID') is me.id context.isMember = @clanID in (me.get('clans') ? []) context.stats = @stats # Find last campaign level for each user + # TODO: why do we do this for every render? + highestUserLevelCountMap = {} lastUserCampaignLevelMap = {} maxLastUserCampaignLevel = 0 userConceptsMap = {} if @campaigns.loaded + levelCount = 0 for campaign in @campaigns.models campaignID = campaign.id lastLevelIndex = 0 for levelID, level of campaign.get('levels') levelSlug = level.slug - for member in context.members + for member in @members?.models ? [] if context.memberLevelStateMap[member.id]?[levelSlug] lastUserCampaignLevelMap[member.id] ?= {} lastUserCampaignLevelMap[member.id][campaignID] ?= {} @@ -105,8 +111,12 @@ module.exports = class ClanDetailsView extends RootView for concept in level.concepts continue if userConceptsMap[member.id][concept] is 'complete' userConceptsMap[member.id][concept] = context.memberLevelStateMap[member.id][levelSlug].state + highestUserLevelCountMap[member.id] = levelCount lastLevelIndex++ + levelCount++ + @sortMembers(highestUserLevelCountMap, userConceptsMap) if @clan.get('dashboardType') is 'premium' + context.members = @members?.models ? [] context.lastUserCampaignLevelMap = lastUserCampaignLevelMap context.showExpandedProgress = maxLastUserCampaignLevel <= 30 or @showExpandedProgress context.userConceptsMap = userConceptsMap @@ -122,6 +132,30 @@ module.exports = class ClanDetailsView extends RootView @memberAchievements.fetch cache: false @memberSessions.fetch cache: false + sortMembers: (highestUserLevelCountMap, userConceptsMap) -> + # Progress sort precedence: most concepts, most levels, name sort + return unless @members? and @memberSort? + switch @memberSort + when "nameDesc" + @members.comparator = (a, b) -> return (b.get('name') or 'Anoner').localeCompare(a.get('name') or 'Anoner') + when "progressAsc" + @members.comparator = (a, b) -> + if Object.keys(userConceptsMap[a.id]).length < Object.keys(userConceptsMap[b.id]).length then return -1 + else if Object.keys(userConceptsMap[a.id]).length > Object.keys(userConceptsMap[b.id]).length then return 1 + if highestUserLevelCountMap[a.id] < highestUserLevelCountMap[b.id] then return -1 + else if highestUserLevelCountMap[a.id] > highestUserLevelCountMap[b.id] then return 1 + (a.get('name') or 'Anoner').localeCompare(b.get('name') or 'Anoner') + when "progressDesc" + @members.comparator = (a, b) -> + if Object.keys(userConceptsMap[a.id]).length > Object.keys(userConceptsMap[b.id]).length then return -1 + else if Object.keys(userConceptsMap[a.id]).length < Object.keys(userConceptsMap[b.id]).length then return 1 + if highestUserLevelCountMap[a.id] > highestUserLevelCountMap[b.id] then return -1 + else if highestUserLevelCountMap[a.id] < highestUserLevelCountMap[b.id] then return 1 + (b.get('name') or 'Anoner').localeCompare(a.get('name') or 'Anoner') + else + @members.comparator = (a, b) -> return (a.get('name') or 'Anoner').localeCompare(b.get('name') or 'Anoner') + @members.sort() + updateHeroIcons: -> return unless @members?.models? for member in @members.models @@ -284,6 +318,14 @@ module.exports = class ClanDetailsView extends RootView success: (model, response, options) => @refreshData() @supermodel.addRequestResource( 'leave_clan', options).load() + onClickMemberHeader: (e) -> + @memberSort = if @memberSort is 'nameAsc' then 'nameDesc' else 'nameAsc' + @render?() + + onClickProgressHeader: (e) -> + @memberSort = if @memberSort is 'progressAsc' then 'progressDesc' else 'progressAsc' + @render?() + onRemoveMember: (e) -> return unless window.confirm("Remove Hero?") if memberID = $(e.target).data('id') From 8d258c694387fa499216549adbb3d99a331e97f3 Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Thu, 2 Jul 2015 18:44:13 -0700 Subject: [PATCH 14/14] Update private clans preview image and copy --- .../images/pages/clans/dashboard_preview.png | Bin 105475 -> 196320 bytes app/locale/en.coffee | 1 + app/styles/clans/clan-details.sass | 16 +++++++++++- app/templates/clans/clan-details.jade | 18 ++++++------- app/templates/clans/clans.jade | 2 +- app/templates/teachers.jade | 24 ++++++++++++++---- app/views/clans/ClanDetailsView.coffee | 22 ++++++++++++---- app/views/clans/ClansView.coffee | 12 ++++++--- 8 files changed, 71 insertions(+), 24 deletions(-) diff --git a/app/assets/images/pages/clans/dashboard_preview.png b/app/assets/images/pages/clans/dashboard_preview.png index ecd5f15f91f4b544ca2b695cf00b0872348acd78..d45f8911fa2e29f9489d46b78e4ea3f2757d807d 100644 GIT binary patch literal 196320 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