X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/a398f2a96740ebe6dd60559d90e74c648e7009af..a7ecaf4f3e67d670f3009e35e3c78baa8952890a:/modules/nodeBreadCrumbs/nodeBreadCrumbs.js diff --git a/modules/nodeBreadCrumbs/nodeBreadCrumbs.js b/modules/nodeBreadCrumbs/nodeBreadCrumbs.js index e9fc107..5e7fecd 100644 --- a/modules/nodeBreadCrumbs/nodeBreadCrumbs.js +++ b/modules/nodeBreadCrumbs/nodeBreadCrumbs.js @@ -1,7 +1,8 @@ define([ 'libs/jquery-1.9.1.min', 'libs/underscore-min', -'libs/text!./template.html'], function($, _, templateSrc) { +'utils/wlxml', +'libs/text!./template.html'], function($, _, wlxmlUtils, templateSrc) { 'use strict'; @@ -15,30 +16,29 @@ return function(sandbox) { var view = this; this.dom.on('mouseenter', 'a', function(e) { var target = $(e.target); - sandbox.publish('nodeHighlighted', view.nodes[target.attr('data-id')]); + sandbox.publish('elementEntered', target.data('element')); }); this.dom.on('mouseleave', 'a', function(e) { var target = $(e.target); - sandbox.publish('nodeDimmed', view.nodes[target.attr('data-id')]); + sandbox.publish('elementLeft', target.data('element')); }); this.dom.on('click', 'a', function(e) { e.preventDefault(); var target = $(e.target); - sandbox.publish('nodeSelected', view.nodes[target.attr('data-id')]); + sandbox.publish('elementClicked', target.data('element')); }); }, - setNode: function(node) { + setNodeElement: function(nodeElement) { this.dom.empty(); - var nodes = this.nodes = {}; - this.currentNode = node; - this.nodes[node.getId()] = node; - var parents = node.parents(); - parents.each(function() { - var parent = this; - nodes[parent.getId()] = parent; + this.currentNodeElement = nodeElement; + var parents = nodeElement.parents(); + this.dom.html(template({node: nodeElement, parents: parents, tagNames: wlxmlUtils.wlxmlTagNames, classNames: wlxmlUtils.wlxmlClassNames})); + + this.dom.find('li > a[href="#"]').each(function(idx, a) { + $(a).data('element', parents[parents.length - 1 - idx]); }); - this.dom.html(template({node: node, parents: parents})); + this.dom.find('a.active').data('element', nodeElement); }, highlightNode: function(node) { @@ -54,10 +54,8 @@ return function(sandbox) { return { start: function() { sandbox.publish('ready'); }, getView: function() { return view.dom; }, - setNode: function(canvasNode) { - if(!canvasNode.isSame(view.currentNode)) { - view.setNode(canvasNode); - } + setNodeElement: function(nodeElement) { + view.setNodeElement(nodeElement); }, highlightNode: function(id) { view.highlightNode(id); }, dimNode: function(id) { view.dimNode(id); }