editor: metadata wip - refactoring
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Thu, 16 Jan 2014 16:14:23 +0000 (17:14 +0100)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Fri, 17 Jan 2014 14:25:18 +0000 (15:25 +0100)
src/editor/modules/metadataEditor/metadataEditor.js

index 48b10eb..14ec5c8 100644 (file)
@@ -82,28 +82,30 @@ return function(sandbox) {
             return newRow;
         },
         updateMetadataRow: function(row) {
             return newRow;
         },
         updateMetadataRow: function(row) {
-            this.metaTable.find('tr').each(function() {
-                var tr = $(this),
-                    tds, keyTd, valueTd;
-                if(tr.data('row') === row) {
-                    tds = tr.find('td');
-                    keyTd = $(tds[0]);
+            this._getRowTr(row, function(tr) {
+                var tds = tr.find('td'),
+                    keyTd = $(tds[0]),
                     valueTd = $(tds[1]);
 
                     valueTd = $(tds[1]);
 
-                    if(keyTd.text() !== row.getKey()) {
-                        keyTd.text(row.getKey());
-                    }
-                    if(valueTd.text() !== row.getValue()) {
-                        valueTd.text(row.getValue());
-                    }
+                if(keyTd.text() !== row.getKey()) {
+                    keyTd.text(row.getKey());
+                }
+                if(valueTd.text() !== row.getValue()) {
+                    valueTd.text(row.getValue());
                 }
             });
         },
         removeMetadataRow: function(row) {
                 }
             });
         },
         removeMetadataRow: function(row) {
+            this._getRowTr(row, function(tr) {
+                tr.remove();
+            });
+        },
+        _getRowTr: function(row, callback) {
             this.metaTable.find('tr').each(function() {
                 var tr = $(this);
                 if(tr.data('row') === row) {
             this.metaTable.find('tr').each(function() {
                 var tr = $(this);
                 if(tr.data('row') === row) {
-                    tr.remove();
+                    callback(tr);
+                    return false;
                 }
             });
         }
                 }
             });
         }