diff --git a/capsule-prototype/index.html b/capsule-prototype/index.html index 2113b46a8112c32de7eea4d4751d4af9b183dc39..f85d80153193f7c7cafcc949475ed056c4b14b33 100644 --- a/capsule-prototype/index.html +++ b/capsule-prototype/index.html @@ -185,6 +185,9 @@ <div class="popupRightItem" id="popupLink" title="Link"></div> <textarea class="popupInput" id="popupLinkInput" type="text"></textarea> + <div class="popupRightItem" id="popupSpeed" title="Speed"></div> + <textarea class="popupInput" id="popupSpeedInput" type="text"></textarea> + <!-- <div class="popupRightItem separationHDark editmode"></div> --> </td> </tr> diff --git a/capsule-prototype/js/online-rekall/Tag.js b/capsule-prototype/js/online-rekall/Tag.js index 98ac9edfd285c3b1f6120d3738ebdfb0d981167c..3968ddbe48af655930a723a491e87a37d19912bf 100644 --- a/capsule-prototype/js/online-rekall/Tag.js +++ b/capsule-prototype/js/online-rekall/Tag.js @@ -30,6 +30,7 @@ function Tag(document) { this.timeStart = 0; this.timeEnd = 1; this.color = "#FFFFFF"; + this.shown = false; } Tag.keyToOpenAfterLoading = undefined; @@ -163,4 +164,4 @@ Tag.prototype.update = function(color, strong) { } this.visuel.rect.setOpacity(opacity); */ -} \ No newline at end of file +} diff --git a/capsule-prototype/js/online-rekall/Timeline.js b/capsule-prototype/js/online-rekall/Timeline.js index c6e20a1e10b46914bed56b2e4db2472238036180..037d789ec5ab0ef61dad037070cfb37b3498c146 100644 --- a/capsule-prototype/js/online-rekall/Timeline.js +++ b/capsule-prototype/js/online-rekall/Timeline.js @@ -44,6 +44,11 @@ Timeline.prototype.stop = function() { Timeline.prototype.rewind = function(timeCurrentOffset) { rekall.videoPlayer.rewind(); } +Timeline.prototype.chspeed = function(speed) { + rekall.videoPlayer.playbackRate(speed); + console.debug('changing playback speed to ' + speed); +} + Timeline.prototype.toggle = function() { if(this.state) @@ -63,6 +68,20 @@ Timeline.prototype.updateFlattenTimeline = function() { var progress = 0; var timeEndExtended = tag.timeStart + max(2, tag.timeEnd - tag.timeStart); + var should_shown = (this.timeCurrent >= tag.timeStart && this.timeCurrent <= tag.timeEnd); + + if (!tag.shown && should_shown) { + tag.shown = true; + if (tag.getMetadata('Rekall->Speed')) this.chspeed(Number(tag.getMetadata('Rekall->Speed'))); + } else if (tag.shown && !should_shown) { + tag.shown = false; + if (tag.getMetadata('Rekall->Speed')) { + this.chspeed(1); + console.debug('speed was ' + tag.getMetadata('Rekall->Speed')); + } + } + + if(this.timeCurrent <= tag.timeStart) progress = this.timeCurrent - tag.timeStart; else if((tag.timeStart < this.timeCurrent) && (this.timeCurrent < timeEndExtended)) diff --git a/capsule-prototype/js/online-script.js b/capsule-prototype/js/online-script.js index 6204a50e1d5e9035cae32843f71e803a80d0e30f..a99b91fd0ada9526a29e782c6ba70cdf7cb001df 100644 --- a/capsule-prototype/js/online-script.js +++ b/capsule-prototype/js/online-script.js @@ -36,15 +36,15 @@ $(document).ready(function() { rekall_common.owner.canEdit = false; // //rekall_common.owner.canEdit = true; - + if(rekall_common.owner.canEdit) { //Mode preview or not $(".editmode").removeClass("editmode"); $(".empty").show(); $(".displayMode").hide(); - + setEditionControls(); - + //Geoloc en mode édition /* if((false) && (navigator.geolocation)) { @@ -68,7 +68,7 @@ $(document).ready(function() { } else { $(".empty").hide(); $(".displayMode").show(); - + $("#projectInfoBtn").click(function(event){ event.stopPropagation(); $("#popupSettingsSpace").show(); @@ -79,7 +79,7 @@ $(document).ready(function() { $("#popupSettingsCredits").html(rekall.project.metadata["Comments"].replace(/\n/gi, "<br/>")).removeClass("empty"); }); - + $("#popupSettings").click(function(event){ event.stopPropagation(); closeSettingsPopup(); @@ -90,10 +90,10 @@ $(document).ready(function() { closeSettingsPopup(); }); } - + rouletteEnd(); rekall.loadXMLFile(); - + var tmpUrl = shareLink(); $("#watermarkBox").attr("href",tmpUrl); @@ -197,7 +197,7 @@ function setEditionControls() { $("#popupSettingsTitle").html("+ Add project name").addClass("empty"); $("#popupSettingsTitleLabel").hide(); } - + if(rekall.project.metadata["Author"]!="") { $("#popupSettingsAuthor").html(rekall.project.metadata["Author"]).removeClass("empty"); $("#popupSettingsAuthorLabel").show(); @@ -205,7 +205,7 @@ function setEditionControls() { $("#popupSettingsAuthor").html("+ Add project author").addClass("empty"); $("#popupSettingsAuthorLabel").hide(); } - + if(rekall.project.metadata["Email"]!="") { $("#popupSettingsEmail").html(rekall.project.metadata["Email"]).removeClass("empty"); $("#popupSettingsEmailLabel").show(); @@ -213,7 +213,7 @@ function setEditionControls() { $("#popupSettingsEmail").html("+ Add email address").addClass("empty"); $("#popupSettingsEmailLabel").hide(); } - + if(rekall.project.metadata["Comments"]!="") { $("#popupSettingsCredits").html(rekall.project.metadata["Comments"].replace(/\n/gi, "<br/>")).removeClass("empty"); $("#popupSettingsCreditsLabel").show(); @@ -221,7 +221,7 @@ function setEditionControls() { $("#popupSettingsCredits").html("+ Add project credits").addClass("empty"); $("#popupSettingsCreditsLabel").hide(); } - + if(rekall_common.owner.canEdit) { $(".empty").show(); } @@ -270,7 +270,7 @@ function setEditionControls() { $("#popupSettingsCreditsInput").unbind( "keyup" ); $("#popupSettingsCreditsInput").keyup(function(event){ event.stopPropagation(); - + var isEnter = false; if (event.key !== undefined) { if (event.key === 'Enter' && event.altKey) { @@ -439,15 +439,15 @@ function setEditionControls() { var TCout = (outMin*60)+(outSec*1); var endVideo = Math.ceil(rekall.videoPlayer.duration()); - + if(TCin>TCout) openAlert("Start time must be set before end time", "ok"); else if(TCout>endVideo) openAlert("End time must not be set after " + convertToTime(endVideo) + " (end of the video)", "ok"); else { setTCFromDom(keyDoc, TCin, TCout); - + $("#popupTCin").html(inMin+":"+inSec); $("#popupTCout").html(outMin+":"+outSec); - + closeInputs(); } }); @@ -462,6 +462,13 @@ function setEditionControls() { closeInputs(); }); + $("#popupSpeed").click(function(event){ + event.stopPropagation(); + closeInputs(); + $(this).hide(); + $("#popupSpeedInput").show().focus(); + }); + $("#popupLegende").click(function(event){ event.stopPropagation(); closeInputs(); @@ -497,7 +504,7 @@ function setEditionControls() { //Validation du commentaire avec Entrée = désactivé /*$("#popupLegendeInput").keyup(function(event){ event.stopPropagation(); - + var isEnter = false; if (event.key !== undefined) { if (event.key === 'Enter' && event.altKey) { @@ -512,7 +519,7 @@ function setEditionControls() { //openAlert('Alt + Enter pressed!'); } else if(event.keyCode === 13) isEnter = true; } - + if(isEnter == true) { closeInputs(); } @@ -610,19 +617,19 @@ function openAlert(message, buttons) { //Rétro-compatibilité Rekall-Pro if((message == undefined) && (buttons == undefined)) closeAlert(); - + if(message=="input"){ $("#popupAlertMessage").html("Copy this link to share <i>"+rekall.project.metadata["Title"]+"</i>"); $(".popupAlertButton").hide(); $("#popupAlertButtonOk").show(); - + $("#popupAlertInput").val(buttons); $("#popupAlertInput").show(); $("#popupAlertTextarea").hide(); $("#popupAlertSpace").show(); $("#popupAlertInput").focus().select(); - + } else if(message=="textarea"){ $("#popupAlertMessage").html("Embed <i>"+rekall.project.metadata["Title"]+"</i> on your webpage"); $(".popupAlertButton").hide(); @@ -634,11 +641,11 @@ function openAlert(message, buttons) { $("#popupAlertSpace").show(); $("#popupAlertTextarea").focus().select(); - + } else { $("#popupAlertInput").hide(); $("#popupAlertTextarea").hide(); - + $("#popupAlertMessage").html(message); if(buttons == "nobuttons") { $(".popupAlertButton").hide(); @@ -725,10 +732,10 @@ function closeSettingsInputs() { $("#popupSettingsCredits").html("+ Add project credits").addClass("empty").show(); $("#popupSettingsCreditsLabel").hide(); } - + } } - + //alert("ok"); }); $(".popupSettingsInput").hide(); @@ -739,7 +746,7 @@ function closeInputs() { $.each($(".popupInput"), function() { if($(this).css("display") != "none") { if($(this).attr("id")=="popupNomInput") { - + var keyDoc = $(this).parent().attr("keydoc"); var newName = $(this).val().trim(); $(this).val(newName); @@ -749,7 +756,7 @@ function closeInputs() { else $("#popupNom").html("+ Add a name").addClass("empty"); } else if($(this).attr("id")=="popupLegendeInput") { - + var keyDoc = $(this).parent().attr("keydoc"); var newComment = $(this).val().trim(); $(this).val(newComment); @@ -758,8 +765,18 @@ function closeInputs() { if(newComment!="") $("#popupLegende").html(newComment.replace(/\n/gi, "<br/>")).removeClass("empty"); else $("#popupLegende").html("+ Add a comment").addClass("empty"); + } else if($(this).attr("id")=="popupSpeedInput") { + + var keyDoc = $(this).parent().attr("keydoc"); + var newSpeed = $(this).val().trim(); + $(this).val(newSpeed); + setMetaFromDom(keyDoc, "Rekall->Speed", newSpeed); + + if(newSpeed!="") $("#popupSpeed").html(newSpeed).removeClass("empty"); + else $("#popupSpeed").html("+ Set video speed during this annotation ").addClass("empty"); + } else if($(this).attr("id")=="popupAuthorInput") { - + var keyDoc = $(this).parent().attr("keydoc"); var newAuthor = $(this).val().trim(); $(this).val(newAuthor); @@ -769,10 +786,10 @@ function closeInputs() { else $("#popupAuthor").html("+ Add an author").addClass("empty"); } else if($(this).attr("id")=="popupLinkInput") { - + var keyDoc = $(this).parent().attr("keydoc"); var newLink = $(this).val().trim(); - + if(newLink!="") if(newLink.indexOf("http")!=0) newLink = "http://"+newLink; $(this).val(newLink); @@ -783,7 +800,7 @@ function closeInputs() { else $("#popupLink").html("<a href='"+newLink+"' target='_blank'>"+newLink+"</a>").removeClass("empty"); } else $("#popupLink").html("+ Add a link").addClass("empty"); - + } else if($(this).attr("id")=="popupTCedit") { var keyDoc = $("#popupRight").attr("keydoc"); var inMin = $("#popupTCinMin").val(); @@ -809,7 +826,7 @@ function closeInputs() { if(isReturn) return true; } } - + //alert("ok"); }); $(".popupInput").hide(); @@ -860,7 +877,7 @@ function openMosaic() { .append($('<h2/>').text(text)); } - + rekall.timeline.pause(); $('#mosaic_tab').show(); $('#video_tab').hide(); @@ -945,7 +962,7 @@ bgColorLeft = getTagGradientColor(tag); $("#popupImg").show(); $("#popupImg").attr("src","../shared/css/images/img-note.png"); $("#popupImg").unbind( "click" ); - + } else { if(tag.thumbnail.url){ $("#popupImg").attr("src",tag.thumbnail.url); @@ -986,6 +1003,10 @@ bgColorLeft = getTagGradientColor(tag); var endVerb = convertToTime(tag.getTimeEnd()); $("#popupTCout").html(endVerb); + var speed = tag.getMetadata("Rekall->Speed"); + if((speed)&&(speed!="")) $("#popupSpeed").html(speed).removeClass("empty"); + else $("#popupSpeed").html("+ Set video speed during this annotation").addClass("empty"); + var comments = tag.getMetadata("Rekall->Comments"); if((comments)&&(comments!="")) $("#popupLegende").html(comments).removeClass("empty"); else $("#popupLegende").html("+ Add a comment").addClass("empty"); @@ -1008,17 +1029,18 @@ bgColorLeft = getTagGradientColor(tag); $(".empty").show(); $(".displayMode").hide(); $("#popupNomInput").val(tag.getMetadata("Rekall->Name")); - + $("#popupTCinMin").val(startVerb.split(":")[0]); $("#popupTCinSec").val(startVerb.split(":")[1]); - + $("#popupTCoutMin").val(endVerb.split(":")[0]); $("#popupTCoutSec").val(endVerb.split(":")[1]); - + $("#popupLegendeInput").val(""+comments.replace(/<br\/>/gi, '\n')); $("#popupAuthorInput").val(""+author); $("#popupLinkInput").val(""+link); - + $("#popupSpeedInput").val(""+speed); + var highlight = tag.getMetadata("Rekall->Highlight"); if(highlight=="true") { $("#popupSetHighlight").attr("isHighlight","true").addClass("selected"); @@ -1147,19 +1169,19 @@ var filesToUpload = [], fileIsUploading = false; function uploadFiles(files) { $.each(files, function(index, file) { var formData = new FormData(); - + if(file.name != undefined) { var colorCategory = rekall.sortings["colors"].categories[Sorting.prefix + file.type]; if(colorCategory != undefined) { } var fileType = (file.type.split("/"))[0]; var fileDateTime = moment(file.lastModifiedDate); - + if (file.size > rekall_common.uploadMax) { openAlert("File size is too large! Maximum is " + rekall_common.uploadMax + " bytes."); return; } - + //Données du formulaire if($("uploadForm")[0] != undefined) formData = new FormData($('form')[0]); //à vérifier @@ -1176,16 +1198,16 @@ function uploadFiles(files) { else { formData.append("name", file); } - + var tcOut = rekall.timeline.timeCurrent + 15; if(tcOut>=rekall.videoPlayer.duration()) tcOut = rekall.videoPlayer.duration(); - + formData.append("tcIn", rekall.timeline.timeCurrent); formData.append("tcOut", tcOut); formData.append("author", rekall_common.owner.author); formData.append("locationGps", rekall_common.owner.locationGps); formData.append("locationName", rekall_common.owner.locationName); - + if(formData != undefined) { filesToUpload.push({ file: file, @@ -1243,12 +1265,12 @@ function uploadFilesNext() { fileIsUploading = true; rouletteStart(true); $.ajax(filesToUpload[0]); - + if(filesToUpload[0].file.name != undefined) openAlert("Starting upload of " + filesToUpload[0].file.name); else openAlert("Creation of " + filesToUpload[0].file + " in progress"); - + filesToUpload.splice(0, 1); uploadFilesNext(); }