Corrected metadataplayer bug
authorveltr
Fri, 06 Jul 2012 18:22:28 +0200
changeset 698 e34f026c87d3
parent 697 062376213732
child 699 3aa91bdec03d
Corrected metadataplayer bug
src/ldt/ldt/static/ldt/metadataplayer/AnnotationsList.js
src/ldt/ldt/static/ldt/metadataplayer/CreateAnnotation.js
src/ldt/ldt/static/ldt/metadataplayer/LdtPlayer-core.js
src/ldt/ldt/static/ldt/metadataplayer/Polemic.js
src/ldt/ldt/static/ldt/metadataplayer/Segments.js
--- a/src/ldt/ldt/static/ldt/metadataplayer/AnnotationsList.js	Fri Jul 06 15:48:37 2012 +0200
+++ b/src/ldt/ldt/static/ldt/metadataplayer/AnnotationsList.js	Fri Jul 06 18:22:28 2012 +0200
@@ -199,7 +199,7 @@
                     }
                     var _bgcolor;
                     IriSP._(_this.polemics).each(function(_polemic) {
-                        var _rgxp = IriSP.Model.regexpFromTextOrArray(_polemic.keyword);
+                        var _rgxp = IriSP.Model.regexpFromTextOrArray(_polemic.keyword, true);
                         if (_rgxp.test(_title + " " + _description)) {
                             _bgcolor = _polemic.background_color;
                         }
@@ -238,7 +238,7 @@
         })
         
         if(this.searchString) {
-            var _searchRe = new RegExp('(' + this.searchString.replace(/(\W)/gm,'\\$1') + ')','gim');
+            var _searchRe = IriSP.Model.regexpFromTextOrArray(this.searchString);
             this.$.find(".Ldt-AnnotationsList-Title a, .Ldt-AnnotationsList-Description").each(function() {
                 var _$ = IriSP.jQuery(this);
                 _$.html(_$.text().replace(/(^\s+|\s+$)/g,'').replace(_searchRe, '<span class="Ldt-AnnotationsList-highlight">$1</span>'))
--- a/src/ldt/ldt/static/ldt/metadataplayer/CreateAnnotation.js	Fri Jul 06 15:48:37 2012 +0200
+++ b/src/ldt/ldt/static/ldt/metadataplayer/CreateAnnotation.js	Fri Jul 06 18:22:28 2012 +0200
@@ -225,7 +225,7 @@
     var _field = this.$.find(".Ldt-CreateAnnotation-Description"),
         _rx = IriSP.Model.regexpFromTextOrArray(_keyword),
         _contents = _field.val();
-    _contents = ( _rx.test(_contents)
+    _contents = ( !!_contents.match(_rx)
         ? _contents.replace(_rx,"")
         : _contents + " " + _keyword
     );
@@ -245,7 +245,7 @@
     _field.css("border-color", !!_contents ? "#666666" : "#ff0000");
     this.$.find(".Ldt-CreateAnnotation-TagLi, .Ldt-CreateAnnotation-PolemicLi").each(function() {
         var _rx = IriSP.Model.regexpFromTextOrArray(IriSP.jQuery(this).text().replace(/(^\s+|\s+$)/g,''));
-        if (_rx.test(_contents)) {
+        if (_contents.match(_rx)) {
             IriSP.jQuery(this).addClass("selected");
         } else {
             IriSP.jQuery(this).removeClass("selected");
--- a/src/ldt/ldt/static/ldt/metadataplayer/LdtPlayer-core.js	Fri Jul 06 15:48:37 2012 +0200
+++ b/src/ldt/ldt/static/ldt/metadataplayer/LdtPlayer-core.js	Fri Jul 06 18:22:28 2012 +0200
@@ -600,19 +600,20 @@
         }
         return "autoid-" + this._ID_BASE + '-' + _n;
     },
-    regexpFromTextOrArray : function(_textOrArray) {
+    regexpFromTextOrArray : function(_textOrArray, _testOnly) {
+        var _testOnly = _testOnly || false;
         function escapeText(_text) {
             return _text.replace(/([\\\*\+\?\|\{\[\}\]\(\)\^\$\.\#\/])/gm, '\\$1');
         }
-        return new RegExp( '('
-            + (
-                typeof _textOrArray === "string"
-                ? escapeText(_textOrArray)
-                : IriSP._(_textOrArray).map(escapeText).join("|")
-            )
-            + ')',
-            'gim'
-        );
+        var _source = 
+            typeof _textOrArray === "string"
+            ? escapeText(_textOrArray)
+            : IriSP._(_textOrArray).map(escapeText).join("|");
+        if (_testOnly) {
+            return new RegExp( _source, 'im');
+        } else {
+            return new RegExp( '(' + _source + ')', 'gim');
+        }
     },
     isoToDate : function(_str) {
         // http://delete.me.uk/2005/03/iso8601.html
@@ -740,21 +741,21 @@
  * here we can search by these criteria
  */
 IriSP.Model.List.prototype.searchByTitle = function(_text) {
-    var _rgxp = IriSP.Model.regexpFromTextOrArray(_text);
+    var _rgxp = IriSP.Model.regexpFromTextOrArray(_text, true);
     return this.filter(function(_element) {
         return _rgxp.test(_element.title);
     });
 }
 
 IriSP.Model.List.prototype.searchByDescription = function(_text) {
-    var _rgxp = IriSP.Model.regexpFromTextOrArray(_text);
+    var _rgxp = IriSP.Model.regexpFromTextOrArray(_text, true);
     return this.filter(function(_element) {
         return _rgxp.test(_element.description);
     });
 }
 
 IriSP.Model.List.prototype.searchByTextFields = function(_text) {
-    var _rgxp =  IriSP.Model.regexpFromTextOrArray(_text);
+    var _rgxp =  IriSP.Model.regexpFromTextOrArray(_text, true);
     return this.filter(function(_element) {
         return _rgxp.test(_element.description) || _rgxp.test(_element.title);
     });
--- a/src/ldt/ldt/static/ldt/metadataplayer/Polemic.js	Fri Jul 06 15:48:37 2012 +0200
+++ b/src/ldt/ldt/static/ldt/metadataplayer/Polemic.js	Fri Jul 06 18:22:28 2012 +0200
@@ -46,7 +46,7 @@
 IriSP.Widgets.Polemic.prototype.onSearch = function(searchString) {
     this.searchString = typeof searchString !== "undefined" ? searchString : '';
     var _found = 0,
-        _re = IriSP.Model.regexpFromTextOrArray(searchString),
+        _re = IriSP.Model.regexpFromTextOrArray(searchString, true),
         _this = this;
     this.$tweets.each(function() {
         var _el = IriSP.jQuery(this);
--- a/src/ldt/ldt/static/ldt/metadataplayer/Segments.js	Fri Jul 06 15:48:37 2012 +0200
+++ b/src/ldt/ldt/static/ldt/metadataplayer/Segments.js	Fri Jul 06 18:22:28 2012 +0200
@@ -74,7 +74,7 @@
 IriSP.Widgets.Segments.prototype.onSearch = function(searchString) {
     this.searchString = typeof searchString !== "undefined" ? searchString : '';
     var _found = 0,
-        _re = IriSP.Model.regexpFromTextOrArray(searchString);
+        _re = IriSP.Model.regexpFromTextOrArray(searchString, true);
     if (this.searchString) {
         this.$segments.each(function() {
             var _el = IriSP.jQuery(this);