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')
|
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
|
button.btn.btn-xs.btn-warning.remove-member-btn(data-id="#{member.id}", data-i18n="clans.rem_hero") Remove Hero
|
||||||
td.progress-cell
|
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
|
each campaign in campaignLevelProgressions
|
||||||
if lastUserCampaignLevelMap[member.id] && lastUserCampaignLevelMap[member.id][campaign.ID]
|
if lastUserCampaignLevelMap[member.id] && lastUserCampaignLevelMap[member.id][campaign.ID]
|
||||||
div.level-progression-campaign= campaign.name
|
div.level-progression-campaign= campaign.name
|
||||||
|
@ -164,7 +172,7 @@ block content
|
||||||
.level-popup-container
|
.level-popup-container
|
||||||
h3 #{i}. #{level.name}
|
h3 #{i}. #{level.name}
|
||||||
div
|
div
|
||||||
span(data-i18n="choose_hero.status") Status
|
span(data-i18n="clans.status") Status
|
||||||
span.spr :
|
span.spr :
|
||||||
span(data-i18n="clans.not_started_2") Not Started
|
span(data-i18n="clans.not_started_2") Not Started
|
||||||
if lastUserCampaignLevelMap[member.id][campaign.ID].levelSlug === level.slug
|
if lastUserCampaignLevelMap[member.id][campaign.ID].levelSlug === level.slug
|
||||||
|
|
|
@ -67,6 +67,7 @@ module.exports = class ClanDetailsView extends RootView
|
||||||
context = super()
|
context = super()
|
||||||
context.campaignLevelProgressions = @campaignLevelProgressions ? []
|
context.campaignLevelProgressions = @campaignLevelProgressions ? []
|
||||||
context.clan = @clan
|
context.clan = @clan
|
||||||
|
context.conceptsProgression = @conceptsProgression ? []
|
||||||
if application.isProduction()
|
if application.isProduction()
|
||||||
context.joinClanLink = "https://codecombat.com/clans/#{@clanID}"
|
context.joinClanLink = "https://codecombat.com/clans/#{@clanID}"
|
||||||
else
|
else
|
||||||
|
@ -84,6 +85,7 @@ module.exports = class ClanDetailsView extends RootView
|
||||||
# Find last campaign level for each user
|
# Find last campaign level for each user
|
||||||
lastUserCampaignLevelMap = {}
|
lastUserCampaignLevelMap = {}
|
||||||
maxLastUserCampaignLevel = 0
|
maxLastUserCampaignLevel = 0
|
||||||
|
userConceptsMap = {}
|
||||||
if @campaigns.loaded
|
if @campaigns.loaded
|
||||||
for campaign in @campaigns.models
|
for campaign in @campaigns.models
|
||||||
campaignID = campaign.id
|
campaignID = campaign.id
|
||||||
|
@ -98,10 +100,16 @@ module.exports = class ClanDetailsView extends RootView
|
||||||
levelSlug: levelSlug
|
levelSlug: levelSlug
|
||||||
index: lastLevelIndex
|
index: lastLevelIndex
|
||||||
maxLastUserCampaignLevel = lastLevelIndex if lastLevelIndex > maxLastUserCampaignLevel
|
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++
|
lastLevelIndex++
|
||||||
|
|
||||||
context.lastUserCampaignLevelMap = lastUserCampaignLevelMap
|
context.lastUserCampaignLevelMap = lastUserCampaignLevelMap
|
||||||
context.showExpandedProgress = maxLastUserCampaignLevel <= 30 or @showExpandedProgress
|
context.showExpandedProgress = maxLastUserCampaignLevel <= 30 or @showExpandedProgress
|
||||||
|
context.userConceptsMap = userConceptsMap
|
||||||
context
|
context
|
||||||
|
|
||||||
afterRender: ->
|
afterRender: ->
|
||||||
|
@ -124,6 +132,7 @@ module.exports = class ClanDetailsView extends RootView
|
||||||
onCampaignSync: ->
|
onCampaignSync: ->
|
||||||
return unless @campaigns.loaded
|
return unless @campaigns.loaded
|
||||||
@campaignLevelProgressions = []
|
@campaignLevelProgressions = []
|
||||||
|
@conceptsProgression = []
|
||||||
for campaign in @campaigns.models
|
for campaign in @campaigns.models
|
||||||
continue if campaign.get('slug') is 'auditions'
|
continue if campaign.get('slug') is 'auditions'
|
||||||
campaignLevelProgression =
|
campaignLevelProgression =
|
||||||
|
@ -136,6 +145,9 @@ module.exports = class ClanDetailsView extends RootView
|
||||||
ID: levelID
|
ID: levelID
|
||||||
slug: level.slug
|
slug: level.slug
|
||||||
name: level.name
|
name: level.name
|
||||||
|
if level.concepts?
|
||||||
|
for concept in level.concepts
|
||||||
|
@conceptsProgression.push concept unless concept in @conceptsProgression
|
||||||
@campaignLevelProgressions.push campaignLevelProgression
|
@campaignLevelProgressions.push campaignLevelProgression
|
||||||
@render?()
|
@render?()
|
||||||
|
|
||||||
|
|
Reference in a new issue