scinote-web/app/assets/javascripts/projects/show.js
2016-08-30 11:03:33 +02:00

172 lines
4.6 KiB
JavaScript

(function(){
var count = 0;
function init(){
$("[data-id]").each(function(){
var that = $(this);
that.find(".workflowimg-container").hide();
initProjectExperiment(that);
});
}
function initProjectExperiment(element){
var container = element.find(".workflowimg-container");
var url = container.data("check-img");
var timestamp = container.data("timestamp");
var img_url = container.data('updated-img');
animateSpinner(container, true);
checkUpdatedImg(img_url, url, timestamp, container);
}
// checks if the experiment image is updated
function checkUpdatedImg(img_url, url, timestamp, container){
if (count < 30 && timestamp){
$.ajax({
url: url,
type: "GET",
data: { "timestamp": timestamp },
dataType: "json",
success: function (data) {
getNewWorkforwImg(container, img_url);
container.show();
animateSpinner(container, false);
},
error: function (ev) {
if (ev.status == 404) {
setTimeout(checkUpdatedImg(img_url, url, timestamp, container), 500);
} else {
animateSpinner(container, false);
}
count++;
}
});
} else {
animateSpinner(container, false);
}
}
// fetch the new experiment image
function getNewWorkforwImg(el, url){
$.ajax({
url: url,
type: "GET",
dataType: "json",
success: function (data) {
el.append(data.workflowimg);
},
error: function (ev) {
// TODO
}
});
}
// init
init();
})();
/* Initialize the first-time demo tutorial if needed. */
(function(){
function initializeTutorial() {
if (showTutorial()) {
introJs()
.setOptions({
overlayOpacity: '0.2',
hidePrev: true,
nextLabel: 'Next',
doneLabel: 'End tutorial',
skipLabel: 'End tutorial',
showBullets: false,
showStepNumbers: false,
exitOnOverlayClick: false,
exitOnEsc: false,
tooltipClass: 'custom next-page-link',
disableInteraction: true
})
.onafterchange(function (tarEl) {
Cookies.set('current_tutorial_step', this._currentStep + 2);
if (this._currentStep == 1) {
setTimeout(function() {
$('.next-page-link a.introjs-nextbutton')
.removeClass('introjs-disabled')
.attr('href', $('[data-canvas-link]').data('canvasLink'));
$('.introjs-disableInteraction').remove();
}, 500);
} else {
}
})
.start();
window.onresize = function() {
if (Cookies.get('current_tutorial_step') == 4 ) {
$(".introjs-tooltip").css("right", ($(".new-element.initial").width() + 60) + "px");
}
};
// Destroy first-time tutorial cookies when skip tutorial
// or end tutorial is clicked
$(".introjs-skipbutton").each(function (){
$(this).click(function (){
Cookies.remove('tutorial_data');
Cookies.remove('current_tutorial_step');
restore_after_tutorial();
});
});
}
}
function showTutorial() {
var tutorialData;
if (Cookies.get('tutorial_data'))
tutorialData = JSON.parse(Cookies.get('tutorial_data'));
else
return false;
var currentStep = Cookies.get('current_tutorial_step');
if (currentStep < 3 || currentStep > 5)
return false;
var tutorialProjectId = tutorialData[0].project;
var currentProjectId = $("#data-holder").attr("data-project-id");
return tutorialProjectId == currentProjectId;
}
function project_tutorial_helper(){
$(document).ready(function(){
if( $('div').hasClass('introjs-overlay')){
$.each( $(".panel-title"), function(){
$(this).css({ "pointer-events": "none" });
});
$.each( $(".workflowimg-container"), function(){
$(this).css({ "pointer-events": "none" });
});
$.each( $(".dropdown-experiment-actions").find("li"),
function(){
$(this).css({ "pointer-events": "none" });
});
}
});
}
function restore_after_tutorial(){
$.each( $(".panel-title"), function(){
$(this).css({ "pointer-events": "auto" });
});
$.each( $(".workflowimg-container"), function(){
$(this).css({ "pointer-events": "auto" });
});
$.each( $(".dropdown-experiment-actions").find("li"),
function(){
$(this).css({ "pointer-events": "auto" });
});
}
$(document).ready(function(){
initializeTutorial();
project_tutorial_helper();
});
})();