[dev] [commit] r1057 - phplib wwwbase/js
automailer at dexonline.ro
automailer at dexonline.ro
Mon Jan 13 15:53:00 EET 2014
Author: cata
Date: Mon Jan 13 15:53:00 2014
New Revision: 1057
Log:
Fix meaning tree save/preview bug.
Modified:
phplib/SmartyWrap.php
wwwbase/js/lexemEdit.js
Modified: phplib/SmartyWrap.php
==============================================================================
--- phplib/SmartyWrap.php Mon Jan 13 14:17:46 2014 (r1056)
+++ phplib/SmartyWrap.php Mon Jan 13 15:53:00 2014 (r1057)
@@ -197,7 +197,7 @@
case 'hangman': self::$jsFiles[15] = 'hangman.js?v=5'; break;
case 'mill': self::$jsFiles[16] = 'mill.js?v=3'; break;
case 'wotd': self::$jsFiles[17] = 'wotd.js?v=1';
- case 'lexemEdit': self::$jsFiles[18] = 'lexemEdit.js?v=9'; break;
+ case 'lexemEdit': self::$jsFiles[18] = 'lexemEdit.js?v=10'; break;
case 'jcrop': self::$jsFiles[19] = 'jquery.Jcrop.min.js?v=2'; break;
case 'easyui': self::$jsFiles[20] = 'easyui-1.3.5/easyloader.js?v=1'; break;
case 'select2': self::$jsFiles[21] = 'select2.min.js?v=3'; break;
Modified: wwwbase/js/lexemEdit.js
==============================================================================
--- wwwbase/js/lexemEdit.js Mon Jan 13 14:17:46 2014 (r1056)
+++ wwwbase/js/lexemEdit.js Mon Jan 13 15:53:00 2014 (r1057)
@@ -273,22 +273,25 @@
$('#editorAntonyms').select2('enable', false);
}
-// Iterate a meaning tree node recursively and collect meaning-related fields
+// Iterate a meaning tree node (<ul> element) recursively and collect meaning-related fields
+// We do this at jquery level, because the easyui tree methods appear buggy.
+// For example, moving meanings sometimes leaves behind "ghost" copies.
function meaningTreeWalk(node, results, level) {
- var jqNode = $(node.target);
- results.push({ 'id': jqNode.find('span.id').text(),
- 'level' : level,
- 'internalRep': jqNode.find('span.internalRep').text(),
- 'internalComment': jqNode.find('span.internalComment').text(),
- 'sourceIds': jqNode.find('span.sourceIds').text(),
- 'meaningTagIds': jqNode.find('span.meaningTagIds').text(),
- 'synonymIds': jqNode.find('span.synonymIds').text(),
- 'antonymIds': jqNode.find('span.antonymIds').text(),
- });
- var children = meaningTreeGetChildren(node);
- for (var i = 0; i < children.length; i++) {
- meaningTreeWalk(children[i], results, level + 1);
- }
+ node.children('li').each(function() {
+ var data = $(this).children('div.tree-node').children('span.tree-title');
+ results.push({ 'id': data.find('span.id').text(),
+ 'level': level,
+ 'internalRep': data.find('span.internalRep').text(),
+ 'internalComment': data.find('span.internalComment').text(),
+ 'sourceIds': data.find('span.sourceIds').text(),
+ 'meaningTagIds': data.find('span.meaningTagIds').text(),
+ 'synonymIds': data.find('span.synonymIds').text(),
+ 'antonymIds': data.find('span.antonymIds').text(),
+ });
+ $(this).children('ul').each(function() {
+ meaningTreeWalk($(this), results, level + 1);
+ });
+ });
}
function saveEverything() {
@@ -296,10 +299,7 @@
acceptMeaningEdit();
}
var results = new Array();
- var roots = $('#meaningTree').tree('getRoots');
- for (var i = 0; i < roots.length; i++) {
- meaningTreeWalk(roots[i], results, 0);
- }
+ meaningTreeWalk($('#meaningTree'), results, 0);
$('input[name=jsonMeanings]').val(JSON.stringify(results));
$('#meaningForm').submit();
}
More information about the Dev
mailing list