diff --git a/ffdemo/static/assets/js/markUp_app.min.js b/ffdemo/static/assets/js/markUp_app.min.js index d0cea93..ad306cb 100644 --- a/ffdemo/static/assets/js/markUp_app.min.js +++ b/ffdemo/static/assets/js/markUp_app.min.js @@ -264,12 +264,12 @@ e=Mark.simplification.simplifyPath(d.currentStroke,1);e=Mark.simplification.weig b("#markapp").css({cursor:"none"});b("#markmaker-instructions").fadeIn()},closeShop:function(a){var d=a.modules.capture;d.state="preview";c.capture.fn.endMark(a);d.layerManager.layers.liveDrawingLayer.clean();a=d.layerManager.layers.liveDrawingLayer.context;var e=d.lastX,f=d.lastY;a.strokeStyle="rgba(0,0,0,0.2)";a.lineWidth=1;a.beginPath();a.dashedLineTo(e,f,d.rtl?0:d.layerManager.layers.liveDrawingLayer.canvas.width,f,[7,5]);a.closePath();a.stroke();b("#markapp").css({cursor:"default"});d.layerManager.layers.cursorLayer.clean()}, submit:function(a){var d=a.modules.capture;if(!(d.state=="submitting"||d.mark==null||d.mark.strokes.length==0)){d.state!="preview"&&c.capture.fn.closeShop(a);d.state="submitting";b("#markmaker-submit a").addClass("disabled");var e={};e.rtl=d.rtl;e.strokes=d.strokes;e=JSON.stringify(e);var f=JSON.stringify(d.mark),g=b("#markmaker-country").val()=="label"?"":b("#markmaker-country").val();a.fn.showLoader(a.fn.getString("submitting-mark"));var h={points_obj:e,points_obj_simplified:f,country_code:g};if(d.invite_code&& d.contributor_type=="t")h.contributor_locale=a.locale,h.invite=d.invite_code;else if(d.invite_code&&d.contributor_type=="c")h.contributor=b("#contributor-name").val(),d.mark.extra_info=b("#contributor-quote").val(),d.mark.contributor_url=b("#contributor-url").val(),h.points_obj_simplified=JSON.stringify(d.mark),h.invite=d.invite_code;b.ajax({url:"/requests/save_mark",data:h,type:"POST",dataType:"JSON",success:function(b){h.contributor_locale?a.app.setLocation("#/linear/"):(a.fn.storeData("userMark", -{reference:b.mark_reference,country_code:g}),a.app.setLocation("#/linear/"+b.mark_reference+"?playback=true&be_grateful=true"));a.fn.hideLoader()},error:function(){a.fn.showError(a.fn.getString("submit-error"))}});return!1}},drawStroke:function(a,b){var c=a.modules.capture;Mark.thickBrush(c.layerManager.layers.drawnLayer.context,[b]);c.layerManager.layers.drawnLayer.context.fillStyle="rgba(255,255,255,0.3)";c.layerManager.layers.drawnLayer.context.strokeStyle="rgba(255,255,255,0.3)";Mark.circleBrush(c.layerManager.layers.drawnLayer.context, -[b])},drawGuide:function(a,b,c,f,g){a.strokeStyle="rgba(0,0,0,0.2)";a.lineWidth=1;a.beginPath();a.dashedLineTo(b,c,f,g,[7,5]);a.closePath();a.stroke()},drawCursor:function(a,b){var c=a.context;a.clean();c.strokeStyle="#ff5400";c.fillStyle="#000000";c.beginPath();c.moveTo(0,29);c.lineTo(1,21);c.lineTo(20,2);c.lineTo(23,6);c.lineTo(0,29);c.closePath();c.stroke();b>0&&(b*=18.5,b+=4.5,c.beginPath(),c.moveTo(0,29),c.lineTo(1,21),c.lineTo(b-3,29-(b+4)),c.lineTo(b,29-b),c.lineTo(0,29),c.closePath(),c.fill()); -a.dirtyRectangles.push({x:0,y:0,w:30,h:30})},initCursor:function(a){a=a.modules.capture;a.layerManager.addLayer("cursorLayer");a.layerManager.layers.cursorLayer.autoResize=!1;a.layerManager.layers.cursorLayer.setSize(25,29)},updateCursor:function(a,d){var e=a.modules.capture;if(!(e.state!="drawing"&&e.state!="intro")){b(e.layerManager.layers.cursorLayer.canvas).css({top:a.mouseY-29,left:a.mouseX});if(d||e.capturedPoints!=e.lastPointCount)e.lastPointCount=e.capturedPoints,c.capture.fn.drawCursor(e.layerManager.layers.cursorLayer, -(e.captureLimit-e.capturedPoints)/e.captureLimit);a.$cursorTooltip&&a.$cursorTooltip.css({top:a.mouseY-a.$cursorTooltip.height()-32,left:a.mouseX+8})}},drawLoop:function(a){var d=a.modules.capture;d.layerManager.layers.liveDrawingLayer.clean();if(d.currentStroke&&d.currentStroke.length>0)Mark.thickBrush(d.layerManager.layers.liveDrawingLayer.context,[d.currentStroke]),d.layerManager.layers.liveDrawingLayer.context.fillStyle="rgba(255,255,255,0.3)",d.layerManager.layers.liveDrawingLayer.context.strokeStyle= -"rgba(255,255,255,0.3)",Mark.circleBrush(d.layerManager.layers.liveDrawingLayer.context,[d.currentStroke]);if(a.mouseIn)if(a.mouseDown)d.mark!=null&&d.currentStroke!=null&&d.mark.strokes.length>0&&d.currentStroke.length>0&&(f=d.mark.strokes[d.mark.strokes.length-1],c.capture.fn.drawGuide(d.layerManager.layers.liveDrawingLayer.context,f[f.length-1].x,f[f.length-1].y,d.currentStroke[0].x,d.currentStroke[0].y));else{var e;if(d.mark==null||d.mark.strokes.length==0)e=a.mouseX>b(window).width()/2?d.layerManager.layers.liveDrawingLayer.canvas.width: -0,f=a.mouseY;else{var f=d.mark.strokes[d.mark.strokes.length-1];e=f[f.length-1].x;f=f[f.length-1].y}c.capture.fn.drawGuide(d.layerManager.layers.liveDrawingLayer.context,e,f,a.mouseX,a.mouseY)}}}}})(jQuery); +{reference:b.mark_reference,country_code:g}),a.app.setLocation("#/linear/"+b.mark_reference+"?playback=true&be_grateful=true"));a.fn.hideLoader()},error:function(b){try{var c=JSON.parse(b.responseText);c.error?a.fn.showError(c.error):a.fn.showError(a.fn.getString("submit-error"))}catch(d){a.fn.showError(a.fn.getString("submit-error"))}}});return!1}},drawStroke:function(a,b){var c=a.modules.capture;Mark.thickBrush(c.layerManager.layers.drawnLayer.context,[b]);c.layerManager.layers.drawnLayer.context.fillStyle= +"rgba(255,255,255,0.3)";c.layerManager.layers.drawnLayer.context.strokeStyle="rgba(255,255,255,0.3)";Mark.circleBrush(c.layerManager.layers.drawnLayer.context,[b])},drawGuide:function(a,b,c,f,g){a.strokeStyle="rgba(0,0,0,0.2)";a.lineWidth=1;a.beginPath();a.dashedLineTo(b,c,f,g,[7,5]);a.closePath();a.stroke()},drawCursor:function(a,b){var c=a.context;a.clean();c.strokeStyle="#ff5400";c.fillStyle="#000000";c.beginPath();c.moveTo(0,29);c.lineTo(1,21);c.lineTo(20,2);c.lineTo(23,6);c.lineTo(0,29);c.closePath(); +c.stroke();b>0&&(b*=18.5,b+=4.5,c.beginPath(),c.moveTo(0,29),c.lineTo(1,21),c.lineTo(b-3,29-(b+4)),c.lineTo(b,29-b),c.lineTo(0,29),c.closePath(),c.fill());a.dirtyRectangles.push({x:0,y:0,w:30,h:30})},initCursor:function(a){a=a.modules.capture;a.layerManager.addLayer("cursorLayer");a.layerManager.layers.cursorLayer.autoResize=!1;a.layerManager.layers.cursorLayer.setSize(25,29)},updateCursor:function(a,d){var e=a.modules.capture;if(!(e.state!="drawing"&&e.state!="intro")){b(e.layerManager.layers.cursorLayer.canvas).css({top:a.mouseY- +29,left:a.mouseX});if(d||e.capturedPoints!=e.lastPointCount)e.lastPointCount=e.capturedPoints,c.capture.fn.drawCursor(e.layerManager.layers.cursorLayer,(e.captureLimit-e.capturedPoints)/e.captureLimit);a.$cursorTooltip&&a.$cursorTooltip.css({top:a.mouseY-a.$cursorTooltip.height()-32,left:a.mouseX+8})}},drawLoop:function(a){var d=a.modules.capture;d.layerManager.layers.liveDrawingLayer.clean();if(d.currentStroke&&d.currentStroke.length>0)Mark.thickBrush(d.layerManager.layers.liveDrawingLayer.context, +[d.currentStroke]),d.layerManager.layers.liveDrawingLayer.context.fillStyle="rgba(255,255,255,0.3)",d.layerManager.layers.liveDrawingLayer.context.strokeStyle="rgba(255,255,255,0.3)",Mark.circleBrush(d.layerManager.layers.liveDrawingLayer.context,[d.currentStroke]);if(a.mouseIn)if(a.mouseDown)d.mark!=null&&d.currentStroke!=null&&d.mark.strokes.length>0&&d.currentStroke.length>0&&(f=d.mark.strokes[d.mark.strokes.length-1],c.capture.fn.drawGuide(d.layerManager.layers.liveDrawingLayer.context,f[f.length- +1].x,f[f.length-1].y,d.currentStroke[0].x,d.currentStroke[0].y));else{var e;if(d.mark==null||d.mark.strokes.length==0)e=a.mouseX>b(window).width()/2?d.layerManager.layers.liveDrawingLayer.canvas.width:0,f=a.mouseY;else{var f=d.mark.strokes[d.mark.strokes.length-1];e=f[f.length-1].x;f=f[f.length-1].y}c.capture.fn.drawGuide(d.layerManager.layers.liveDrawingLayer.context,e,f,a.mouseX,a.mouseY)}}}}})(jQuery); (function(b){markApp=b.markApp=b.markApp||{};modules=b.markApp.modules=b.markApp.modules||{};modules.intro={defaults:{reference_mark:null},config:{marks:{},animationMarks:["vVR","myWb"],playbackTimes:{},vizScene:null,textScene:null,layerManager:null,initialized:!1,eventChange:!1,curLocaleMark:null,animationComplete:!1,tweens:{}},evt:{resize:function(b){b.modules.intro.layerManager.resizeAll(b.width,b.height);b.modules.intro.eventChange=!0},loop:function(b){var a=b.modules.intro;if(!a.animationComplete&& (TWEEN.update(),a.layerManager.layers.viz.clean(),Mark.renderer.renderScene(a.vizScene,{width:b.width,height:b.height}),a.curLocaleMark)){a.layerManager.layers.mainMark.clean();var d=500/a.curLocaleMark.bWidth;Mark.renderer.renderMark(a.layerManager.layers.mainMark.context,a.curLocaleMark,{offset:{x:b.width/2-115,y:b.height-240},scale:{x:d,y:d,thickness:d},color:"255,84,0",timer:a.textScene.timers[a.curLocaleMark.reference]});if(a.curLocaleMark.reference in a.textScene.timers&&(b=(new Date).getTime(), a.textScene.timers[a.curLocaleMark.reference].end0?b("#markapp").markApp("addModule",{linear:{country_code:a.params.country_code,reference_mark:a.params.splat[0]}}):this.partial("linear_sammy.html").then(function(){b("#sammy").css("zIndex","");b("#markapp").css({zIndex:100, cursor:"default"});b("#markapp").markApp("addModule",{linear:{country_code:a.params.country_code,reference_mark:a.params.splat[0]}})})});this.get("#/linear/(.*)",function(a){b("#markapp").markApp("unloadModule","intro");b("#markapp").markApp("unloadModule","capture");b("#linear").size()>0?b("#markapp").markApp("addModule",{linear:{reference_mark:a.params.splat[0],playback:a.params.playback,show_thanks:a.params.be_grateful}}):this.partial("linear_sammy.html").then(function(){b("#sammy").css("zIndex", "");b("#markapp").css({zIndex:100,cursor:"default"});b("#markapp").markApp("addModule",{linear:{reference_mark:a.params.splat[0],playback:a.params.playback,show_thanks:a.params.be_grateful}})})});this.bind("run",function(){b("#markapp").markApp().data("markApp-context").app=c});this.swap=function(a){b("body").removeClass("make-your-mark");this.$element().fadeOut("fast",function(){b(this).html(a).fadeIn("normal");b("#markapp").trigger("ready")});b("#markapp").trigger("swap")};this.use("Template")}); -b(document).ready(function(){(function(){return!!("getContext"in document.createElement("canvas"))&&!!("JSON"in window)})&&c.run("#/")})})(jQuery); +b(document).ready(function(){browserSupportsRequiredFeatures&&browserSupportsRequiredFeatures()&&c.run("#/")})})(jQuery); diff --git a/ffdemo/static/assets/js/vendor/app.js b/ffdemo/static/assets/js/vendor/app.js index 172dc61..e48f6cd 100644 --- a/ffdemo/static/assets/js/vendor/app.js +++ b/ffdemo/static/assets/js/vendor/app.js @@ -144,13 +144,8 @@ } ); $( document ).ready( function () { - // duplicated from the inline script for clarity - function browserSupportsRequiredFeatures() { - // detect canvas and native JSON support - return !!( 'getContext' in document.createElement( 'canvas' ) ) && - !!( 'JSON' in window ); - } - if ( browserSupportsRequiredFeatures ) { + // browserSupportsRequiredFeatures is defined inline so that it can be run immedietly + if ( browserSupportsRequiredFeatures && browserSupportsRequiredFeatures() ) { // run the app app.run( '#/' ); } diff --git a/ffdemo/static/assets/js/vendor/jquery.markApp.capture.js b/ffdemo/static/assets/js/vendor/jquery.markApp.capture.js index ea2396e..db90854 100644 --- a/ffdemo/static/assets/js/vendor/jquery.markApp.capture.js +++ b/ffdemo/static/assets/js/vendor/jquery.markApp.capture.js @@ -509,12 +509,17 @@ // hide loader context.fn.hideLoader(); } - }, - error: function( data ) { - if(data.error) { - context.fn.showError( data.error ); - } else { + error: function( jqXHR, textStatus, errorThrown ) { + try{ + // try to parse out an error message + var data = JSON.parse( jqXHR.responseText ); + if( data.error ) { + context.fn.showError( data.error ); + } else { + context.fn.showError( context.fn.getString( 'submit-error' ) ); + } + } catch( e ) { context.fn.showError( context.fn.getString( 'submit-error' ) ); } } @@ -613,7 +618,7 @@ var x, y; if( lC.mark == null || lC.mark.strokes.length == 0 ) { // draw the guide from the closest screen edge - x = context.mouseX > $( window ).width() / 2 ? lC.layerManager.layers['liveDrawingLayer'].canvas.width : 0, + x = context.mouseX > $( window ).width() / 2 ? lC.layerManager.layers['liveDrawingLayer'].canvas.width : 0; y = context.mouseY; } else { // draw the guide from the last point in the previous stroke