mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-28 13:50:07 -04:00
Preserve SuperModel when navigating between course levels
This commit is contained in:
parent
e7809c6622
commit
6b1c859e91
5 changed files with 20 additions and 22 deletions
app
styles/play/ladder
templates/play/ladder
views
|
@ -30,12 +30,6 @@
|
|||
margin-top: -14px
|
||||
width: 100%
|
||||
|
||||
#course-h1
|
||||
color: black
|
||||
font-size: 72px
|
||||
text-transform: capitalize
|
||||
margin-top: 0
|
||||
|
||||
h1
|
||||
text-align: center
|
||||
|
||||
|
|
|
@ -18,9 +18,6 @@ block content
|
|||
|
||||
|
||||
div#level-column
|
||||
if leagueType === 'course'
|
||||
h1#course-h1= (level.get('name') || '').toUpperCase()
|
||||
|
||||
if levelDescription
|
||||
div!= levelDescription
|
||||
|
||||
|
|
|
@ -221,15 +221,17 @@ module.exports = class CourseDetailsView extends RootView
|
|||
levelID = $(e.target).data('level-id')
|
||||
level = @campaign.get('levels')[levelID]
|
||||
if level.type is 'course-ladder'
|
||||
viewClass = 'views/ladder/LadderView'
|
||||
viewArgs = [{supermodel: @supermodel}, levelSlug]
|
||||
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
|
||||
if @courseInstance.get('members').length > 1 # No league for solo courses
|
||||
route += '/course/' + @courseInstance.id
|
||||
viewArgs = viewArgs.concat ['course', @courseInstance.id]
|
||||
else
|
||||
Backbone.Mediator.publish 'router:navigate', {
|
||||
route: @getLevelURL levelSlug
|
||||
viewClass: 'views/play/level/PlayLevelView'
|
||||
viewArgs: [{courseID: @courseID, courseInstanceID: @courseInstanceID}, levelSlug]
|
||||
}
|
||||
route = @getLevelURL levelSlug
|
||||
viewClass = 'views/play/level/PlayLevelView'
|
||||
viewArgs = [{courseID: @courseID, courseInstanceID: @courseInstanceID, supermodel: @supermodel}, levelSlug]
|
||||
Backbone.Mediator.publish 'router:navigate', route: route, viewClass: viewClass, viewArgs: viewArgs
|
||||
|
||||
getLevelURL: (levelSlug) ->
|
||||
"/play/level/#{levelSlug}?course=#{@courseID}&course-instance=#{@courseInstanceID}"
|
||||
|
@ -251,7 +253,7 @@ module.exports = class CourseDetailsView extends RootView
|
|||
Backbone.Mediator.publish 'router:navigate', {
|
||||
route: route
|
||||
viewClass: 'views/play/level/PlayLevelView'
|
||||
viewArgs: [{}, levelSlug]
|
||||
viewArgs: [{supermodel: @supermodel}, levelSlug]
|
||||
}
|
||||
|
||||
onMouseEnterPoint: (e) ->
|
||||
|
|
|
@ -54,9 +54,13 @@ module.exports = class LadderView extends RootView
|
|||
resourceString = if @leagueType is 'clan' then 'clans.clan' else 'courses.course'
|
||||
@league = @supermodel.loadModel(new modelClass(_id: @leagueID), resourceString).model
|
||||
if @leagueType is 'course'
|
||||
@listenToOnce @league, 'sync', @onCourseInstanceLoaded
|
||||
if @league.loaded
|
||||
@onCourseInstanceLoaded @league
|
||||
else
|
||||
@listenToOnce @league, 'sync', @onCourseInstanceLoaded
|
||||
|
||||
onCourseInstanceLoaded: (courseInstance) ->
|
||||
return if @destroyed
|
||||
course = new Course({_id: courseInstance.get('courseID')})
|
||||
@course = @supermodel.loadModel(course, 'courses.course').model
|
||||
|
||||
|
|
|
@ -451,10 +451,11 @@ module.exports = class HeroVictoryModal extends ModalView
|
|||
viewArgs.push @courseInstanceID if @courseInstanceID
|
||||
else if @level.get('type', true) is 'course-ladder'
|
||||
leagueID = @courseInstanceID or @getQueryVariable 'league'
|
||||
link = "/play/ladder/#{@level.get('slug')}"
|
||||
link += "/course/#{leagueID}" if leagueID
|
||||
Backbone.Mediator.publish 'router:navigate', route: link
|
||||
return
|
||||
nextLevelLink = "/play/ladder/#{@level.get('slug')}"
|
||||
nextLevelLink += "/course/#{leagueID}" if leagueID
|
||||
viewClass = 'views/ladder/LadderView'
|
||||
viewArgs = [options, @level.get('slug')]
|
||||
viewArgs = viewArgs.concat ['course', leagueID] if leagueID
|
||||
else
|
||||
viewClass = require 'views/play/CampaignView'
|
||||
viewArgs = [options, @getNextLevelCampaign()]
|
||||
|
|
Loading…
Add table
Reference in a new issue