mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-14 07:00:01 -04:00
intermediate
This commit is contained in:
parent
fb3848359e
commit
3266e3b46b
6 changed files with 59 additions and 1 deletions
10
app/collections/RelatedAchievementsCollection.coffee
Normal file
10
app/collections/RelatedAchievementsCollection.coffee
Normal file
|
@ -0,0 +1,10 @@
|
|||
CocoCollection = require 'collections/CocoCollection'
|
||||
Achievement = require 'models/Achievement'
|
||||
|
||||
class RelatedAchievementCollection extends CocoCollection
|
||||
model: Achievement
|
||||
|
||||
initialize: (relatedID) ->
|
||||
@url = "/db/achievement?related=#{relatedID}"
|
||||
|
||||
module.exports = RelatedAchievementCollection
|
|
@ -33,6 +33,8 @@ block header
|
|||
- var patches = level.get('patches')
|
||||
if patches && patches.length
|
||||
span.badge= patches.length
|
||||
li
|
||||
a(href="#related-achievements-view", data-toggle="tab") Achievements
|
||||
li
|
||||
a(href="#docs-components-view", data-toggle="tab", data-i18n="editor.level_tab_docs") Documentation
|
||||
.navbar-header
|
||||
|
@ -121,8 +123,10 @@ block outer_content
|
|||
div.tab-pane#editor-level-patches
|
||||
.patches-view
|
||||
|
||||
div.tab-pane#related-achievements-view
|
||||
|
||||
div.tab-pane#docs-components-view
|
||||
|
||||
div#error-view
|
||||
|
||||
block footer
|
||||
block footer
|
||||
|
|
5
app/templates/editor/related-achievements.jade
Normal file
5
app/templates/editor/related-achievements.jade
Normal file
|
@ -0,0 +1,5 @@
|
|||
- console.debug('this is definitely rendering');
|
||||
h2 yooo
|
||||
|
||||
|
||||
button Sexy
|
26
app/views/editor/RelatedAchievementsView.coffee
Normal file
26
app/views/editor/RelatedAchievementsView.coffee
Normal file
|
@ -0,0 +1,26 @@
|
|||
CocoView = require 'views/kinds/CocoView'
|
||||
template = require 'templates/editor/related-achievements'
|
||||
RelatedAchievementsCollection = require 'collections/RelatedAchievementsCollection'
|
||||
Achievement = require 'models/Achievement'
|
||||
|
||||
module.exports = class RelatedAchievementsView extends CocoView
|
||||
id: 'related-achievements-view'
|
||||
template: template
|
||||
className: 'tab-pane'
|
||||
|
||||
constructor: (options) ->
|
||||
super options
|
||||
@relatedID = options.id
|
||||
@achievements = new RelatedAchievementsCollection @relatedID
|
||||
console.debug @achievements
|
||||
@supermodel.loadCollection @achievements, 'achievements'
|
||||
|
||||
onLoaded: ->
|
||||
console.debug 'related achievements loaded'
|
||||
super()
|
||||
|
||||
getRenderData: ->
|
||||
c = super()
|
||||
c.achievements = @achievements
|
||||
c.relatedID = @relatedID
|
||||
c
|
|
@ -15,6 +15,7 @@ SaveLevelModal = require './modals/SaveLevelModal'
|
|||
LevelForkView = require './modals/ForkLevelModal'
|
||||
SaveVersionModal = require 'views/modal/SaveVersionModal'
|
||||
PatchesView = require 'views/editor/PatchesView'
|
||||
RelatedAchievementsView = require 'views/editor/RelatedAchievementsView'
|
||||
VersionHistoryView = require './modals/LevelVersionsModal'
|
||||
ComponentDocsView = require 'views/docs/ComponentDocumentationView'
|
||||
|
||||
|
@ -75,6 +76,7 @@ module.exports = class LevelEditView extends RootView
|
|||
@subViews['scriptsTab'] = @insertSubView new ScriptsTabView world: @world, supermodel: @supermodel, files: @files
|
||||
@subViews['componentsTab'] = @insertSubView new ComponentsTabView supermodel: @supermodel
|
||||
@subViews['systemsTab'] = @insertSubView new SystemsTabView supermodel: @supermodel
|
||||
@subViews['achievementsTab'] = @insertSubView new RelatedAchievementsView supermodel: @supermodel, id: @level.id
|
||||
@subviews['componentsDocsTab'] = @insertSubView new ComponentDocsView supermodel: @supermodel
|
||||
|
||||
Backbone.Mediator.publish 'level-loaded', level: @level
|
||||
|
|
|
@ -11,4 +11,15 @@ class AchievementHandler extends Handler
|
|||
hasAccess: (req) ->
|
||||
req.method is 'GET' or req.user?.isAdmin()
|
||||
|
||||
get: (req, res) ->
|
||||
# /db/achievement?related=<ID>
|
||||
if req.query.related
|
||||
return @sendUnauthorizedError(res) if not @hasAccess(req)
|
||||
Achievement.find {related: req.query.related}, (err, docs) =>
|
||||
return @sendDatabaseError(res, err) if err
|
||||
docs = (@formatEntity(req, doc) for doc in docs)
|
||||
@sendSuccess res, docs
|
||||
else
|
||||
super req, res
|
||||
|
||||
module.exports = new AchievementHandler()
|
||||
|
|
Loading…
Reference in a new issue