diff -r f4a03f8bc37a -r 458cc4576415 integration/js/tagplayer.js --- a/integration/js/tagplayer.js Fri Dec 21 15:45:10 2012 +0100 +++ b/integration/js/tagplayer.js Fri Jan 04 18:10:03 2013 +0100 @@ -34,33 +34,15 @@ var timeSlider = $("#progressBar"), slidersRange = 1000, wasPaused = true, - lastVal = 0, - isClicking = false; + lastVal = 0; timeSlider.slider({ range: "min", value: 0, min: 0, max: slidersRange, slide: function(event, ui) { - if (isClicking && Math.abs(lastVal - ui.value) > 10) { - isClicking = false; - } - if (!isClicking && currentSegment && currentMedia) { - var t = currentSegment.begin + ( currentSegment.getDuration() * ui.value / slidersRange ); - currentMedia.setCurrentTime(t); - } - }, - start: function(event, ui) { - isClicking = true; - lastVal = ui.value; - }, - stop: function(event, ui) { - if (isClicking && currentMedia && currentSegment) { - var t = currentMedia.getCurrentTime() - currentSegment.begin; - timeSlider.slider("value", slidersRange * t / currentSegment.getDuration()); - playOrPause(); - } - isClicking = false; + var t = currentSegment.begin + ( currentSegment.getDuration() * ui.value / slidersRange ); + currentMedia.setCurrentTime(t); } }); @@ -143,28 +125,41 @@ $(window).on("resize", resizeTagsDrag); resizeTagsDrag(); - var taginput = $("#form_tag input[type=text]"); + var taginput = $("#form_tag input[type=text]"), + replacerx; taginput.autocomplete({ source: function(params, response) { - var rx = new RegExp(params.term,"gi"); + var charsub = [ '[aáàâä]', '[cç]', '[eéèêë]', '[iíìîï]', '[oóòôö]' ], + term = params.term.replace(/([\\\*\+\?\|\{\[\}\]\(\)\^\$\.\#\/])/gm, '\\$1'); + _(charsub).each(function(chars) { + var tmprx = new RegExp(chars,"gim"); + term = term.replace(tmprx, chars); + }); + var searchrx = new RegExp("(^|\\s)" + term, "i"); + replacerx = new RegExp("(^|\\s)(" + term + ")", "gi"); response( _(globalTags) .chain() .keys() .filter(function(tag) { - return rx.test(tag) + return searchrx.test(tag) }) - .shuffle() - .first(5) + .sortBy(_.identity) .value() ); } - }); + }).data("autocomplete")._renderItem = function(ul, item) { + return $( "
  • " ) + .data( "item.autocomplete", item ) + .append( "" + item.label.replace(replacerx, '$1$2') + "" ) + .appendTo( ul ); + }; taginput.on("keyup input paste", function() { taginput.val(taginput.val().toUpperCase()); }); $("#form_tag").on("submit", function() { var _tagvalue = taginput.val().toUpperCase(); + taginput.val(""); if (_tagvalue && currentSegment) { /* Création d'une liste d'annotations contenant une annotation afin de l'envoyer au serveur */ var _exportedAnnotations = new IriSP.Model.List(directory), @@ -191,15 +186,14 @@ _annotation.setAnnotationType(_annotationType.id); - _annotation.title = _tagvalue; + _annotation.title = currentSegment.title; _annotation.created = new Date(); /* Date de création de l'annotation */ _annotation.description = _tagvalue; _annotation.setTags([_tag.id]); /*Liste des ids de tags */ - /* Les données créateur/date de création sont envoyées non pas dans l'annotation, mais dans le projet */ - _export.creator = "theend"; - _export.created = new Date(); + _annotation.creator = "theend"; + _annotation.created = new Date(); /* Ajout de l'annotation à la liste à exporter */ _exportedAnnotations.push(_annotation); /* Ajout de la liste à exporter à l'objet Source */ @@ -292,7 +286,7 @@ currentMedia.setCurrentTime(currentSegment.begin); if (!currentMedia.loaded) { $(".video-wait").show(); - $("#btnPlayPause, .video-wait, #progressBar .ui-slider-handle").removeClass("pause"); + $("#btnPlayPause, .video-wait").removeClass("pause"); } currentMedia.play(); } @@ -301,11 +295,11 @@ var vals = _(currentSegment.__tags).values(), max = Math.max.apply(Math, vals), min = Math.min(max - 1, Math.min.apply(Math, vals)), - b = 128 / (max - min); + b = 160 / (max - min); var html = _(currentSegment.__tags) .chain() .map(function(v, k) { - var c = Math.floor( 127 + (v - min) * b ); + var c = Math.floor( 95 + (v - min) * b ); return '
  • '), - seekCache = undefined, mp4_file = videourl.replace(/\.webm$/i,'.mp4'), webm_file = videourl.replace(/\.mp4$/i,'.webm'), - mp4_src = $(''), - webm_src = $(''); - - mp4_src.attr({ - src: mp4_file, - type: "video/mp4" - }) - webm_src.attr({ - src: webm_file, - type: "video/webm" - }); - + mediaEl = videoEl[0], + can_play_mp4 = !!mediaEl.canPlayType('video/mp4'), + can_play_webm = !!mediaEl.canPlayType('video/webm'); + videoEl.attr({ id : videoid }).css({ @@ -358,9 +343,25 @@ width : "100%", height : "100%" }); - videoEl.append(mp4_src).append(webm_src); + + if (can_play_mp4 && can_play_webm) { + var mp4_src = $(''), + webm_src = $(''); + mp4_src.attr({ + src: mp4_file, + type: "video/mp4" + }); + webm_src.attr({ + src: webm_file, + type: "video/webm" + }); + + videoEl.append(mp4_src).append(webm_src); + } else { + videoEl.attr("src", can_play_mp4 ? mp4_file : webm_file); + } + $("#video_sequence").append(videoEl); - var mediaEl = videoEl[0]; media.show = function() { videoEl.show(); @@ -451,13 +452,13 @@ media.on("play", function() { if (media === currentMedia) { - $("#btnPlayPause, .video-wait, #progressBar .ui-slider-handle").addClass("pause"); + $("#btnPlayPause, .video-wait").addClass("pause"); } }); media.on("pause", function() { if (media === currentMedia) { - $("#btnPlayPause, .video-wait, #progressBar .ui-slider-handle").removeClass("pause"); + $("#btnPlayPause, .video-wait").removeClass("pause"); } }); @@ -471,9 +472,7 @@ media.setCurrentTime(currentSegment.begin); } $("#current").text(new IriSP.Model.Time(t).toString()); - if (!isClicking) { - timeSlider.slider("value", slidersRange * t / currentSegment.getDuration()); - } + timeSlider.slider("value", slidersRange * t / currentSegment.getDuration()); } else { media.pause(); goToPart((currentIndex + 1) % seqCount)