integration wip: bring back meta data attrs edit via node pane
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Fri, 22 Nov 2013 14:39:01 +0000 (15:39 +0100)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 2 Dec 2013 13:50:54 +0000 (14:50 +0100)
src/editor/modules/nodePane/metaWidget/metaWidget.js
src/editor/modules/nodePane/metaWidget/metaWidget.test.js
src/editor/modules/nodePane/nodePane.js

index 14ba7b6..7561acd 100644 (file)
@@ -11,9 +11,9 @@ var templates = {
     string: _.template(stringFieldTpl)
 };
 
-var getAttrElement = function(attr) {
+var getAttrElement = function(attrName, attr) {
     var toret = $('<div>');   
-    toret.append(templates.string({name: attr.name, value: attr.value}));
+    toret.append(templates.string({name: attrName, value: attr.value}));
     return toret;
 };
 
@@ -23,9 +23,9 @@ var MetaWidget = Backbone.View.extend({
     },
     initialize: function() {
         var view = this;
-        this.options.attrs.forEach(function(attr) {
-            view.$el.append(getAttrElement(attr));
-        });
+        _.keys(this.options.attrs).forEach(function(attrName) {
+            view.$el.append(getAttrElement(attrName, this.options.attrs[attrName]));
+        }.bind(this));
     },
     onMetaFieldChange: function(e) {
         var target = $(e.target);
index 05b75dc..f546248 100644 (file)
@@ -13,7 +13,7 @@ describe('metaWidget', function() {
         var dom = $('<div>');
         var widget = metaWidget.create({
                 el: dom,
-                attrs: [{name: 'uri', type: 'string', value: 'test string'}],
+                attrs: {'uri': {type: 'string', value: 'test string'}},
             });
 
         var spy = sinon.spy();
index 5b4f80e..7473c2e 100644 (file)
@@ -36,7 +36,7 @@ return function(sandbox) {
 
             var widget = metaWidget.create({attrs:wlxmlNodeElement.getMetaAttributes()});
             widget.on('valueChanged', function(key, value) {
-                sandbox.publish('nodeElementChange', key, value);
+                wlxmlNodeElement.setMetaAttribute(key, value);
             });
             view.find('.metaFields').empty().append(widget.el);