app/assets/javascripts/mercury/region.js.coffee in mercury-rails-0.5.0 vs app/assets/javascripts/mercury/region.js.coffee in mercury-rails-0.6.0

- old
+ new

@@ -1,21 +1,21 @@ class @Mercury.Region - type = 'region' constructor: (@element, @window, @options = {}) -> - @type = 'region' unless @type - Mercury.log("building #{@type}", @element, @options) - + Mercury.log("building #{@type()}", @element, @options) @document = @window.document @name = @element.attr(Mercury.config.regions.identifier) @history = new Mercury.HistoryBuffer() @build() @bindEvents() @pushHistory() @element.data('region', @) + type: -> 'unknown' + + build: -> focus: -> @@ -31,14 +31,14 @@ return if @previewing || Mercury.region != @ @execCommand(options.action, options) if options.action @element.on 'mousemove', (event) => return if @previewing || Mercury.region != @ - snippet = jQuery(event.target).closest('.mercury-snippet') + snippet = jQuery(event.target).closest('[data-snippet]') if snippet.length @snippet = snippet - Mercury.trigger('show:toolbar', {type: 'snippet', snippet: @snippet}) + Mercury.trigger('show:toolbar', {type: 'snippet', snippet: @snippet}) if @snippet.data('snippet') @element.on 'mouseout', => return if @previewing Mercury.trigger('hide:toolbar', {type: 'snippet', immediately: false}) @@ -50,26 +50,26 @@ # sanitize the html before we return it container = jQuery('<div>').appendTo(@document.createDocumentFragment()) container.html(@element.html().replace(/^\s+|\s+$/g, '')) # replace snippet contents to be an identifier - if filterSnippets then for snippet in container.find('.mercury-snippet') + if filterSnippets then for snippet in container.find('[data-snippet]') snippet = jQuery(snippet) snippet.attr({contenteditable: null, 'data-version': null}) snippet.html("[#{snippet.data('snippet')}]") return container.html() togglePreview: -> if @previewing @previewing = false - @element.addClass(Mercury.config.regions.className).removeClass("#{Mercury.config.regions.className}-preview") + @element.attr(Mercury.config.regions.attribute, @type()) @focus() if Mercury.region == @ else @previewing = true - @element.addClass("#{Mercury.config.regions.className}-preview").removeClass(Mercury.config.regions.className) + @element.removeAttr(Mercury.config.regions.attribute) Mercury.trigger('region:blurred', {region: @}) execCommand: (action, options = {}) -> @focus() @@ -85,10 +85,11 @@ snippets: -> snippets = {} for element in @element.find('[data-snippet]') snippet = Mercury.Snippet.find(jQuery(element).data('snippet')) + continue unless snippet snippet.setVersion(jQuery(element).data('version')) snippets[snippet.identity] = snippet.serialize() return snippets @@ -98,10 +99,10 @@ return data serialize: -> return { - type: @type + type: @type() data: @dataAttributes() value: @content(null, true) snippets: @snippets() }