]> git.parisson.com Git - telemeta.git/commitdiff
dded styles
authorriccardo <riccardo@parisson.com>
Fri, 11 Feb 2011 17:47:31 +0000 (18:47 +0100)
committerriccardo <riccardo@parisson.com>
Fri, 11 Feb 2011 17:47:31 +0000 (18:47 +0100)
telemeta/htdocs/images/cancel.png [new file with mode: 0644]
telemeta/htdocs/timeside/src/markermap.js
telemeta/web/base.py

diff --git a/telemeta/htdocs/images/cancel.png b/telemeta/htdocs/images/cancel.png
new file mode 100644 (file)
index 0000000..5f6dcc8
Binary files /dev/null and b/telemeta/htdocs/images/cancel.png differ
index b72eddb02d686f6035d66acc075bcfa585f4dcc2..cae91762ad5e75f3aa379d06c23da2d9f4fdda79 100644 (file)
@@ -86,7 +86,7 @@ TimeSide(function($N, $J) {
                 }
                 var i = klass.indexOf(marker);
                 klass.markers.splice(i, 1);
-                marker.div.remove();
+                marker.div['div'].remove();
                 klass.fire('remove', {
                     marker: marker
                 });
@@ -117,8 +117,8 @@ TimeSide(function($N, $J) {
             marker.offset = offset;
             var newIndex = this.insertionIndex(marker);
             //change marker time
-            $($( marker.div.children()[0] ).children()[1]).html(this.formatMarkerOffset(offset));
-
+            //$($( marker.div.children()[0] ).children()[1]).html(this.formatMarkerOffset(offset));
+            marker.div['labelOffset'].html(this.formatMarkerOffset(offset));
             if(newIndex>oldIndex){
                 newIndex--;
             }
@@ -131,14 +131,14 @@ TimeSide(function($N, $J) {
             //The .detach() method is the same as .remove(), except that .detach() keeps
             //all jQuery data associated with the removed elements.
             //This method is useful when removed elements are to be reinserted into the DOM at a later time.
-            marker.div.detach();
+            marker.div['div'].detach();
             if(newIndex==l-1){
-                this.divContainer.append(marker.div);
+                this.divContainer.append(marker.div['div']);
             }else{
-                $( this.divContainer.children()[newIndex] ).before(marker.div);
+                $( this.divContainer.children()[newIndex] ).before(marker.div['div']);
             }
-            $($( marker.div.children()[1] )).focus();
-            
+            //$($( marker.div.children()[1] )).focus();
+            marker.div['textarea'].focus();
             var i1= Math.min(oldIndex,newIndex);
             var i2= Math.max(oldIndex,newIndex);
             //var mrks = this.markers;
@@ -162,7 +162,8 @@ TimeSide(function($N, $J) {
                     index: i
                 });
                 //update label element
-                $($( this.markers[i].div.children()[0] ).children()[0]).html(i+1);
+                this.markers[i].div['labelIndex'].html(i+1)
+               // $($( this.markers[i].div.children()[0] ).children()[0]).html(i+1);
 
             }
         },
@@ -185,6 +186,115 @@ TimeSide(function($N, $J) {
 
 
         createDiv: function(marker,insertionIndex){
+            var div = this.divContainer;
+            var m = this.markers;
+            var l = m.length;
+            var ret = {};
+            if(div){
+                //var textWithFocus;
+                //div.style.display = "block";
+                //var doc = document;
+
+
+                var text, timeSpan, closeAnchor, ok, header;
+
+
+                //creating marker, see marker.js
+                //would be better not to copy this code but to
+                //reference it.
+                var label = $J('<span/>')
+                .css({
+                    color:'#fff',
+                    backgroundColor:'#009',
+                    width: '2em',
+                    textAlign: 'center'
+                //,fontFamily: 'monospace'
+                })
+                .html(insertionIndex+1);
+                ret['labelIndex']=label;
+
+                timeSpan = $J('<span/>')
+                .css({
+                    marginLeft:'1ex'
+                });
+                ret['labelOffset']=timeSpan;
+
+                closeAnchor = $J('<input/>')
+                .attr("type","submit")
+                .attr("value","x")
+                .css({
+                    //fontFamily: 'monospace',
+                    fontWeight:'bold',
+                    border:'1px dotted #333333',
+                    float:'right',
+                    color:'white'
+                });
+                ret['submitCancel']=closeAnchor;
+
+                header = $J('<div/>')
+                .append(label)
+                .append(timeSpan)
+                .append(closeAnchor);
+
+                text = $J('<textarea/>')
+                .css({
+                    margin:0,
+                    padding:0,
+                    width:'100%'
+                });
+                ret['textarea']=text;
+
+                ok = $J('<input/>')
+                .attr("type","submit")
+                .attr("value","OK");
+                ret['submitOk']=ok;
+
+                //create new div
+                var subdiv = $J('<div/>')
+                .append(header)
+                .append(text)
+                .append(ok)
+                .css({
+                    marginBottom:'1em',
+                    marginTop:'1ex'
+                });
+
+                var timeStr = this.formatMarkerOffset(marker.offset);
+
+                timeSpan.html(timeStr);
+
+                //updating text
+                text.val(marker.desc);
+
+                var send = this.sendHTTP;
+                //set the ok function
+                //we clear all the click event handlers from ok and assign a new one:
+                ok.unbind('click').click( function(){
+                    marker.desc = text.val();
+                    send(marker);
+                });
+                //set the remove action
+                var remove = this.remove;
+                var klass = this;
+                closeAnchor.unbind('click').click( function(){
+                    remove(klass, marker);
+                });
+
+                var divLen = div.children().length;
+                div.append(subdiv);
+                if(insertionIndex==divLen){
+                    div.append(subdiv);
+                }else{
+                    $( div.children()[insertionIndex] ).before(subdiv);
+                }
+                //if(textWithFocus){
+                text.focus();
+                // }
+                ret['div']=subdiv;
+                return ret;
+            }
+        },
+        createDivOld: function(marker,insertionIndex){
             var div = this.divContainer;
             var m = this.markers;
             var l = m.length;
@@ -289,7 +399,6 @@ TimeSide(function($N, $J) {
                 return subdiv;
             }
         },
-        
 
         formatMarkerOffset: function(markerOffset){
             //marker offset is in float format second.decimalPart
index 2fe46e310db369943771c1d6020a84ac6d460afd..490a56f70f28f5a6873b45eb39422ee23f6d9c2e 100644 (file)
@@ -597,11 +597,11 @@ class WebView(object):
 
     @jsonrpc_method('telemeta.del_marker')
     def del_marker(request, public_id):
-#        m = MediaItemMarker.objects.get(public_id=public_id)
-#        m.delete()
-        m = MediaItemMarker.objects.filter(public_id=public_id)
-        for marker in m:
-            marker.delete()
+        m = MediaItemMarker.objects.get(public_id=public_id)
+        m.delete()
+#        m = MediaItemMarker.objects.filter(public_id=public_id)
+#        for marker in m:
+#            marker.delete()
         
     @jsonrpc_method('telemeta.get_markers')
     def get_markers(request, item_id):