From c226835ff27916c535f30874ca348d367297d450 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Tue, 8 Apr 2014 17:13:05 -0700 Subject: [PATCH] Fixed a couple bugs in custom TreemaNodes. --- app/treema-ext.coffee | 40 +++++++++---------- .../editor/level/systems_tab_view.coffee | 6 ++- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/app/treema-ext.coffee b/app/treema-ext.coffee index 6d2b0c3ed..62fb12644 100644 --- a/app/treema-ext.coffee +++ b/app/treema-ext.coffee @@ -55,16 +55,16 @@ class LiveEditingMarkup extends TreemaNode.nodeMap.ace buildValueForDisplay: (valEl) -> @editor?.destroy() valEl.html(marked(@data)) - + class SoundFileTreema extends TreemaNode.nodeMap.string valueClass: 'treema-sound-file' editable: false soundCollection: 'files' - + onClick: (e) -> return if $(e.target).closest('.btn').length super(arguments...) - + getFiles: -> @settings[@soundCollection]?.models or [] @@ -76,7 +76,7 @@ class SoundFileTreema extends TreemaNode.nodeMap.string .click(@playFile) stopButton = $('') .click(@stopFile) - + dropdown = $('') dropdownButton = $('') @@ -84,9 +84,9 @@ class SoundFileTreema extends TreemaNode.nodeMap.string .attr('href', '#') .append($('')) .dropdown() - + dropdown.append dropdownButton - + menu = $('') files = @getFiles() for file in files @@ -102,7 +102,7 @@ class SoundFileTreema extends TreemaNode.nodeMap.string @data = $(e.target).data('fullPath') or @data @reset() dropdown.append(menu) - + valEl.append(pickButton) if @data valEl.append(playButton) @@ -112,12 +112,12 @@ class SoundFileTreema extends TreemaNode.nodeMap.string path = @data.split('/') name = path[path.length-1] valEl.append($('').text(name)) - + reset: -> @instance = null @flushChanges() @refreshDisplay() - + playFile: => @src = "/file/#{@data}" @@ -129,27 +129,27 @@ class SoundFileTreema extends TreemaNode.nodeMap.string registered = createjs.Sound.registerSound(@src) if registered is true @instance = createjs.Sound.play(@src) - + else f = (event) => @instance = createjs.Sound.play(event.src) if event.src is @src createjs.Sound.removeEventListener('fileload', f) createjs.Sound.addEventListener('fileload', f) - + stopFile: => @instance?.stop() - + onFileChosen: (InkBlob) => if not @settings.filePath console.error('Need to specify a filePath for this treema', @getRoot()) throw Error('cannot upload file') - + body = url: InkBlob.url filename: InkBlob.filename mimetype: InkBlob.mimetype path: @settings.filePath force: true - + @uploadingPath = [@settings.filePath, InkBlob.filename].join('/') $.ajax('/file', { type: 'POST', data: body, success: @onFileUploaded }) @@ -279,13 +279,13 @@ class LatestVersionReferenceNode extends TreemaNode search: => term = @getValEl().find('input').val() return if term is @lastTerm - + # HACK while search is broken if @collection @lastTerm = term @searchCallback() return - + @getSearchResultsEl().empty() if @lastTerm and not term return unless term @lastTerm = term @@ -295,9 +295,9 @@ class LatestVersionReferenceNode extends TreemaNode # HACK while search is broken # @collection.url = "#{@url}?term=#{term}&project=true" @collection.url = "#{@url}?term=#{''}&project=true" - + @collection.fetch() - @listenTo(@collection, 'sync', @searchCallback) + @collection.once 'sync', @searchCallback, @ searchCallback: -> container = @getSearchResultsEl().detach().empty() @@ -306,10 +306,10 @@ class LatestVersionReferenceNode extends TreemaNode row = $('
').addClass('treema-search-result-row') text = @formatDocument(model) continue unless text? - + # HACK while search is broken continue unless text.toLowerCase().indexOf(@lastTerm.toLowerCase()) >= 0 - + row.addClass('treema-search-selected') if first first = false row.text(text) diff --git a/app/views/editor/level/systems_tab_view.coffee b/app/views/editor/level/systems_tab_view.coffee index 52129e7b8..52d92b969 100644 --- a/app/views/editor/level/systems_tab_view.coffee +++ b/app/views/editor/level/systems_tab_view.coffee @@ -34,7 +34,7 @@ module.exports = class SystemsTabView extends View do (url) -> ls.url = -> url continue if @supermodel.getModelByURL ls.url ls.fetch() - @listenTo(ls, 'sync', @onSystemLoaded) + @listenToOnce ls, 'sync', @onSystemLoaded ++@toLoad @onDefaultSystemsLoaded() unless @toLoad @@ -63,7 +63,7 @@ module.exports = class SystemsTabView extends View systemModelMap = {} systemModelMap[sys.get('original')] = sys.get('name') for sys in systemModels systems = _.sortBy systems, (sys) -> systemModelMap[sys.original] - + treemaOptions = # TODO: somehow get rid of the + button, or repurpose it to open the LevelSystemAddView instead supermodel: @supermodel @@ -143,6 +143,8 @@ class LevelSystemNode extends TreemaObjectNode @collection = @system?.attributes?.configSchema?.properties? grabDBComponent: -> + unless _.isString @data.original + return alert('Press the "Add System" button at the bottom instead of the "+". Sorry.') @system = @settings.supermodel.getModelByOriginalAndMajorVersion LevelSystem, @data.original, @data.majorVersion #@system = _.find @settings.supermodel.getModels(LevelSystem), (m) => # m.get('original') is @data.original and m.get('version').major is @data.majorVersion