intermediate

This commit is contained in:
Ruben Vereecken 2014-08-04 22:21:43 +02:00
parent fb3848359e
commit 3266e3b46b
6 changed files with 59 additions and 1 deletions

View 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

View file

@ -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

View file

@ -0,0 +1,5 @@
- console.debug('this is definitely rendering');
h2 yooo
button Sexy

View 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

View file

@ -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

View file

@ -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()