diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index ccbb8c31f..d3b78f1f4 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -10,6 +10,7 @@ CocoClass = require 'core/CocoClass' AudioPlayer = require 'lib/AudioPlayer' app = require 'core/application' World = require 'lib/world/world' +utils = require 'core/utils' # This is an initial stab at unifying loading and setup into a single place which can # monitor everything and keep a LoadingScreen visible overall progress. @@ -105,6 +106,8 @@ module.exports = class LevelLoader extends CocoClass loadDependenciesForSession: (session) -> if me.id isnt session.get 'creator' session.patch = session.save = -> console.error "Not saving session, since we didn't create it." + else if codeLanguage = utils.getQueryVariable 'codeLanguage' + session.set 'codeLanguage', codeLanguage @loadCodeLanguagesForSession session if session is @session @addSessionBrowserInfo session diff --git a/app/locale/en.coffee b/app/locale/en.coffee index b1d9be0b8..8435490e0 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -247,7 +247,7 @@ victory_title_suffix: " Complete" victory_sign_up: "Sign Up to Save Progress" victory_sign_up_poke: "Want to save your code? Create a free account!" - victory_rate_the_level: "Rate the level: " # Only in old-style levels. + victory_rate_the_level: "How fun was this level?" # {change} victory_return_to_ladder: "Return to Ladder" victory_play_continue: "Continue" victory_saving_progress: "Saving Progress" diff --git a/app/views/clans/ClanDetailsView.coffee b/app/views/clans/ClanDetailsView.coffee index f6be50d7d..b653c6547 100644 --- a/app/views/clans/ClanDetailsView.coffee +++ b/app/views/clans/ClanDetailsView.coffee @@ -196,7 +196,7 @@ module.exports = class ClanDetailsView extends RootView if level.concepts? for concept in level.concepts @conceptsProgression.push concept unless concept in @conceptsProgression - if level.type is 'hero-ladder' + if level.type is 'hero-ladder' and level.slug not in ['capture-their-flag'] @arenas.push level @campaignLevelProgressions.push campaignLevelProgression @render?() diff --git a/app/views/courses/CourseDetailsView.coffee b/app/views/courses/CourseDetailsView.coffee index 954f6a771..f16dd9559 100644 --- a/app/views/courses/CourseDetailsView.coffee +++ b/app/views/courses/CourseDetailsView.coffee @@ -221,9 +221,9 @@ module.exports = class CourseDetailsView extends RootView levelID = $(e.target).data('level-id') level = @campaign.get('levels')[levelID] if level.type is 'course-ladder' - Backbone.Mediator.publish 'router:navigate', { - route: '/play/ladder/' + levelSlug + '/course/' + @courseInstance.id - } + route = '/play/ladder/' + levelSlug + route += '/course'/ + @courseInstance.id if @courseInstance.get('members').length > 1 # No league for solo courses + Backbone.Mediator.publish 'router:navigate', route: route else Backbone.Mediator.publish 'router:navigate', { route: @getLevelURL levelSlug diff --git a/app/views/ladder/utils.coffee b/app/views/ladder/utils.coffee index 019be9376..067133320 100644 --- a/app/views/ladder/utils.coffee +++ b/app/views/ladder/utils.coffee @@ -11,10 +11,14 @@ module.exports.teamDataFromLevel = (level) -> color = teamConfigs[team].color bgColor = hslToHex([color.hue, color.saturation, color.lightness + (1 - color.lightness) * 0.5]) primaryColor = hslToHex([color.hue, 0.5, 0.5]) + if level.get('slug') in ['wakka-maul'] + displayName = _.string.titleize(team) + else + displayName = $.i18n.t("ladder.#{team}") # Use Red/Blue instead of Humans/Ogres teams.push({ id: team name: _.string.titleize(team) - displayName: $.i18n.t("ladder.#{team}") # Use Red/Blue instead of Humans/Ogres + displayName: displayName otherTeam: otherTeam otherTeamDisplayName: $.i18n.t("ladder.#{otherTeam}") bgColor: bgColor diff --git a/app/views/play/CampaignView.coffee b/app/views/play/CampaignView.coffee index 9573d97f6..7700c6d34 100644 --- a/app/views/play/CampaignView.coffee +++ b/app/views/play/CampaignView.coffee @@ -33,9 +33,9 @@ class LevelSessionsCollection extends CocoCollection @url = "/db/user/#{me.id}/level.sessions?project=state.complete,levelID,state.difficulty,playtime" class CampaignsCollection extends CocoCollection - url: '/db/campaign/-/overworld' + # We don't send all of levels, just the parts needed in countLevels + url: '/db/campaign/-/overworld?project=slug,adjacentCampaigns,name,fullName,description,i18n,color,levels' model: Campaign - project: ['name', 'fullName', 'description', 'i18n'] module.exports = class CampaignView extends RootView id: 'campaign-view' diff --git a/scripts/mongodb/migrations/2015-11-19-add-course-instances-to-users-and-session-leagues.js b/scripts/mongodb/migrations/2015-11-19-add-course-instances-to-users-and-session-leagues.js new file mode 100644 index 000000000..0bfe0c951 --- /dev/null +++ b/scripts/mongodb/migrations/2015-11-19-add-course-instances-to-users-and-session-leagues.js @@ -0,0 +1,78 @@ +// Add user.courseInstances properties and then add those to session leagues +// Usage: +// mongo
:/