mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-24 21:13:35 -04:00
Add member concept maps to private clans
This commit is contained in:
parent
a62e0a8fe6
commit
a316924576
2 changed files with 22 additions and 2 deletions
app
|
@ -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
|
||||
|
|
|
@ -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?()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue