]> git.parisson.com Git - telemeta.git/commitdiff
fixed bugs in marker move which reset also textarea changes. Now text is saved from...
authorriccardo <riccardo@parisson.com>
Sat, 29 Jan 2011 12:52:26 +0000 (13:52 +0100)
committerriccardo <riccardo@parisson.com>
Sat, 29 Jan 2011 12:52:26 +0000 (13:52 +0100)
telemeta/htdocs/timeside/src/controller.js

index 7de3a121ddb7f91b8a58084311c31d6a5d29afb0..3f871595bd58673a09599e57847e94d951c3cf0f 100644 (file)
@@ -48,7 +48,53 @@ TimeSide(function($N) {
             this.cfg.soundProvider.seek(data.offset);
         },
 
+        formatMarkerOffset: function(markerOffset){
+            //marker offset is in float format second.decimalPart
+            var hours = parseInt(markerOffset/(60*24));
+            markerOffset-=hours*(60*24);
+            var minutes = parseInt(markerOffset/(60));
+            markerOffset-=minutes*(60);
+            var seconds = parseInt(markerOffset);
+            markerOffset-=seconds;
+            var msec = Math.round(markerOffset*100); //show only centiseconds
+            //(use 1000* to show milliseconds)
+            var format = (hours<10 ? "0"+hours : hours )+":"+
+            (minutes<10 ? "0"+minutes : minutes )+":"+
+            (seconds<10 ? "0"+seconds : seconds )+"."+
+            msec;
+            return format;
+        },
+        _onMarkerMove: function(e, data) {
+            if (this.cfg.map) {
+                this.refreshMarkersText(this.cfg.map);
+                this.cfg.map.move(this.cfg.map.byId(data.id), data.offset);
+                this.updateMarkersDiv(this.cfg.map, data.offset);
+            }
+        },
 
+        _onMarkerAdd: function(e, data) {
+            if (this.cfg.map) {
+                this.refreshMarkersText(this.cfg.map);
+                this.cfg.map.add(data.offset, '');
+                this.updateMarkersDiv(this.cfg.map, data.offset);
+            }
+        },
+        
+        refreshMarkersText: function(nonNullMarkersMap){
+            var div = this.cfg.markersDiv;
+            var m = nonNullMarkersMap.markers;
+            var l = m.length;
+            if(div){
+                var divChildren = div.childNodes;
+                for(var i=0; i<l; i++){
+                    var marker = m[i];
+                    var subdiv = divChildren[i];
+                    var text = subdiv.childNodes[1];
+                    marker.desc = text.value;
+                }
+            }
+
+        },
         updateMarkersDiv: function(nonNullMarkersMap, selectedMarkOffset){
             var div = this.cfg.markersDiv;
             var m = nonNullMarkersMap.markers;
@@ -96,10 +142,11 @@ TimeSide(function($N) {
                         header = subdiv.childNodes[0];
                     }
                     var timeStr = this.formatMarkerOffset(marker.offset);
-                    
+
                     header.childNodes[1].innerHTML = timeStr;
                     //updating text
-                    text.innerHTML = marker.desc;
+                    text.value = marker.desc;
+
                     if(selectedMarkOffset==marker.offset){
                         textWithFocus = text;
                     }
@@ -108,37 +155,6 @@ TimeSide(function($N) {
                     textWithFocus.focus();
                 }
             }
-        },
-
-        formatMarkerOffset: function(markerOffset){
-            //marker offset is in float format second.decimalPart
-            var hours = parseInt(markerOffset/(60*24));
-            markerOffset-=hours*(60*24);
-            var minutes = parseInt(markerOffset/(60));
-            markerOffset-=minutes*(60);
-            var seconds = parseInt(markerOffset);
-            markerOffset-=seconds;
-            var msec = Math.round(markerOffset*100); //show only centiseconds
-            //(use 1000* to show milliseconds)
-            var format = (hours<10 ? "0"+hours : hours )+":"+
-            (minutes<10 ? "0"+minutes : minutes )+":"+
-            (seconds<10 ? "0"+seconds : seconds )+"."+
-            msec;
-            return format;
-        },
-        _onMarkerMove: function(e, data) {
-            if (this.cfg.map) {
-                this.cfg.map.move(this.cfg.map.byId(data.id), data.offset);
-                this.updateMarkersDiv(this.cfg.map, data.offset);
-            }
-        },
-
-        _onMarkerAdd: function(e, data) {
-            if (this.cfg.map) {
-                //this.cfg.map.add(data.offset, 'marker at ' + data.offset);
-                this.cfg.map.add(data.offset, '');
-                this.updateMarkersDiv(this.cfg.map, data.offset);
-            }
         }
 
     });