From 99c088b657cb95168220deaf3a8a40c8f3afdbda Mon Sep 17 00:00:00 2001 From: riccardo Date: Mon, 9 May 2011 02:24:00 +0200 Subject: [PATCH] markerdiv: added click moves the pointer on the relative marker on the ruler, ENTER on title triggers ok click. Added translation for title description on addNewPlaylist popup, almost finished the popupdiv --- telemeta/htdocs/css/telemeta.css | 3 +- telemeta/htdocs/js/application.js | 1180 +++++++++-------- telemeta/htdocs/timeside/src/divmarker.js | 18 +- telemeta/htdocs/timeside/src/player.js | 11 + telemeta/htdocs/timeside/src/playlist.js | 23 + telemeta/templates/telemeta_default/home.html | 10 +- .../telemeta_default/mediaitem_detail.html | 17 - 7 files changed, 705 insertions(+), 557 deletions(-) diff --git a/telemeta/htdocs/css/telemeta.css b/telemeta/htdocs/css/telemeta.css index 83c712a7..765f5390 100644 --- a/telemeta/htdocs/css/telemeta.css +++ b/telemeta/htdocs/css/telemeta.css @@ -990,7 +990,8 @@ a.image-link { .markerdiv .ts-marker, .markerdiv .ts-marker:hover, .markerdiv .ts-marker:visited{ font-family: monospace; background: #e65911;color: #FFF;padding-left: .3ex; padding-right:.3ex; } -.markersdivDelete{ background-image: url('/images/del_marker.png');width:15px;height:2ex;} +.markersdivDelete{ background-image: url('/images/del_marker.png');width:15px;height:2ex;background-repeat: no-repeat;} +/*backfround-repeat is redundant with .markerDiv a,.. defined above but this way .markersDivDelete is re-usable in other context (eg popupdiv*/ .markersdivAddPlaylist{ background-image: url('/images/add_playlist_marker.png');width:13px;height:2ex; } .markersdivTitle{ font-weight:bold;} .markersdivEdit, .markersdivEdit:hover, .markersdivEdit:visited{ diff --git a/telemeta/htdocs/js/application.js b/telemeta/htdocs/js/application.js index b7de4bc1..5d200e83 100644 --- a/telemeta/htdocs/js/application.js +++ b/telemeta/htdocs/js/application.js @@ -1000,412 +1000,397 @@ function DivDialog(content){ return me; } } +//------------ -function PopupDiv(content){ - var $J = this.$J; - + + +function PopupDiv(){ + var $J = jQuery; + var me = this; + var data = arguments.length && arguments[0] || {}; + //var wdw = $J(window); - var div = $J('
').addClass(this.defaultClasses).css({ - 'position':'absolute', - 'zIndex':this.zIndex, - // 'display':'none', - // 'left':wdw.scrollLeft()+'px', - // 'top':wdw.scrollTop()+'px', - // 'overflow':'auto', - 'padding':'1ex', - 'border':'1px solid #666' - }); - var header = $J('
'); //.css('float','right'); + var div = $J('
'); + var header = $J('
').append($J('').attr('type','text')).append($J('').attr('href','#').click(function(){ + me.close(); + return false; + })); //.css('float','right'); var container = $J('
').css('overflow','auto'); - var footer = $J('
'); + var footer = $J('
').css({ + 'textAlign':'right' + }).append($J('').attr('href','#').click(function(){ + me.trigger('ok',true); + return false; + })); + header.find('*').add(footer.find('*')).css('display','none'); div.append(header).append(container).append(footer); //defining immediately the method getDiv (because it is used below) this.getDiv = function(){ return div; } - - //div.appendTo('body'); //necessary to properly display the div size - if(content instanceof $J){ - container.append(content); - }else if(typeof content == 'string'){ - container.html(""+content); - } - // else if(content instanceof Array){ - // for(var k=0; k').attr('href','#').html(value).click( - // function(){ - // if(optionalCallbackOnClick){ - // optionalCallbackOnClick(value); - // } - // } - // ))})(content[k]); - // } - //} - else{ - var leftElements = $J([]); - var rightElements = $J([]); - var maxw = [0,0]; - var insert = function(e1,e2){ - var lineDiv = $J('
'); - if(!e2){ - e2=e1; - e1 = $J(''); - } - rightElements = rightElements.add(e2); - leftElements = leftElements.add(e1); - container.append(lineDiv.append(e1).append(e2)); - return lineDiv; - } - var title, component; - - var max = Math.max; //instantiate once - var lineDiv = undefined; - var needAlign = false; - var lineDivs = $J([]); - for(var k in content){ - var val = content[k]; - //alert(k); - // if(val instanceof Function){ - // //alert('inserting anchor/function'); - // component = $J('').html(k).attr('href','#').click(function(evt){ - // val(); - // return false; - // }); - // lineDivs = lineDivs.add(insert(component)); - // maxw[1] = max(maxw[1],k.length); - // }else - if(typeof val == 'string' || typeof val == 'number'){ - //alert('inserting string/number'); - title = $J('').html(k); - maxw[0] = max(maxw[0],k.length); - maxw[1] = max(maxw[1],val.length); - component = $('').attr('type','text').val(val).attr('name',k); - lineDivs = lineDivs.add(insert(title,component)); - needAlign = true; - }else if(val === true || val === false){ - //alert('inserting boolean'); - var id = this.getId()+"_checkbox"; - title = $('').attr('type','checkbox').attr('name',k).attr('id',id); - if(val){ - title.attr('checked','checked'); - }else{ - title.removeAttr('checked'); - } - component = $J('
'); + if(!e2){ + e2=e1; + e1 = $(''); + } + rightElements = rightElements.add(e2); + leftElements = leftElements.add(e1); + container.append(lineDiv.append(e1).append(e2)); + return lineDiv; + } + var title, component; + + var max = Math.max; //instantiate once + var lineDiv = undefined; + var lineDivs = $([]); + for(var k in content){ + var val = content[k]; + if(typeof val == 'string' || typeof val == 'number'){ + title = $('').html(k); + maxw[0] = max(maxw[0],k.length); + maxw[1] = max(maxw[1],val.length); + component = $('').attr('type','text').val(val).attr('name',k); + lineDivs = lineDivs.add(insert(title,component)); + }else if(val === true || val === false){ + var id = this.getId()+"_checkbox"; + title = $('').attr('type','checkbox').attr('name',k).attr('id',id); + if(val){ + title.attr('checked','checked'); + }else{ + title.removeAttr('checked'); + } + component = $(''+i+''); -// } -// var p = new PopupDiv(ar.join('
')); -// p.getDiv().find('a').each(function(i,aa){ -// jQuery(aa).click(function(){alert(jQuery(aa).html());p.hide();return false;}); -// }); - - var p = new PopupDiv({'close me and see what you can get':function(){p.hide();}}); -// var p = new PopupDiv({'close me and see what you can get':function(){p.hide();},'options':['ferrari','maserati','bmw'],'inputa':'default','liar':true}); - var a = jQuery('').attr('href','#').html('clickme'); - - p.setInvoker(a); - jQuery('body').append(a); - }); -- 2.39.5