2016-08-19 21:36:12 +08:00
|
|
|
(function(){
|
2016-08-19 22:38:34 +08:00
|
|
|
var count = 0;
|
2016-08-19 21:36:12 +08:00
|
|
|
|
2016-08-22 17:29:19 +08:00
|
|
|
function init(){
|
|
|
|
$("[data-id]").each(function(){
|
|
|
|
var that = $(this);
|
|
|
|
that.find(".workflowimg-container").hide();
|
|
|
|
initProjectExperiment(that);
|
|
|
|
});
|
2016-08-19 22:38:34 +08:00
|
|
|
}
|
2016-08-19 21:36:12 +08:00
|
|
|
|
2016-08-22 17:29:19 +08:00
|
|
|
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');
|
2016-08-19 22:38:34 +08:00
|
|
|
|
2016-08-22 17:29:19 +08:00
|
|
|
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){
|
2016-08-19 22:38:34 +08:00
|
|
|
$.ajax({
|
|
|
|
url: url,
|
|
|
|
type: "GET",
|
|
|
|
data: { "timestamp": timestamp },
|
|
|
|
dataType: "json",
|
|
|
|
success: function (data) {
|
2016-08-22 17:29:19 +08:00
|
|
|
getNewWorkforwImg(container, img_url);
|
|
|
|
container.show();
|
|
|
|
animateSpinner(container, false);
|
2016-08-19 22:38:34 +08:00
|
|
|
},
|
|
|
|
error: function (ev) {
|
|
|
|
if (ev.status == 404) {
|
2016-08-22 17:29:19 +08:00
|
|
|
setTimeout(checkUpdatedImg(img_url, url, timestamp, container), 500);
|
|
|
|
} else {
|
|
|
|
animateSpinner(container, false);
|
|
|
|
}
|
|
|
|
count++;
|
2016-08-19 22:38:34 +08:00
|
|
|
}
|
|
|
|
});
|
2016-08-22 17:29:19 +08:00
|
|
|
} else {
|
|
|
|
animateSpinner(container, false);
|
2016-08-19 22:38:34 +08:00
|
|
|
}
|
2016-08-19 21:36:12 +08:00
|
|
|
}
|
|
|
|
|
2016-08-22 17:29:19 +08:00
|
|
|
// fetch the new experiment image
|
|
|
|
function getNewWorkforwImg(el, url){
|
2016-08-19 21:36:12 +08:00
|
|
|
$.ajax({
|
|
|
|
url: url,
|
|
|
|
type: "GET",
|
|
|
|
dataType: "json",
|
|
|
|
success: function (data) {
|
2016-08-22 17:29:19 +08:00
|
|
|
el.append(data.workflowimg);
|
2016-08-19 21:36:12 +08:00
|
|
|
},
|
|
|
|
error: function (ev) {
|
2016-08-19 22:38:34 +08:00
|
|
|
// TODO
|
2016-08-19 21:36:12 +08:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
// init
|
2016-08-22 17:29:19 +08:00
|
|
|
init();
|
2016-08-19 21:36:12 +08:00
|
|
|
})();
|
2016-08-25 01:03:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
/* 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');
|
2016-08-25 21:16:51 +08:00
|
|
|
restore_after_tutorial();
|
2016-08-25 01:03:58 +08:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2016-08-25 21:16:51 +08:00
|
|
|
function project_tutorial_helper(){
|
|
|
|
$(document).ready(function(){
|
|
|
|
if( $('div').hasClass('introjs-overlay')){
|
2016-08-30 14:52:44 +08:00
|
|
|
$.each( $(".panel-title"), function(){
|
2016-08-30 17:03:33 +08:00
|
|
|
$(this).css({ "pointer-events": "none" });
|
|
|
|
});
|
|
|
|
$.each( $(".workflowimg-container"), function(){
|
|
|
|
$(this).css({ "pointer-events": "none" });
|
2016-08-30 14:52:44 +08:00
|
|
|
});
|
2016-08-25 21:16:51 +08:00
|
|
|
$.each( $(".dropdown-experiment-actions").find("li"),
|
|
|
|
function(){
|
2016-08-30 17:03:33 +08:00
|
|
|
$(this).css({ "pointer-events": "none" });
|
2016-08-25 21:16:51 +08:00
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function restore_after_tutorial(){
|
2016-08-30 14:52:44 +08:00
|
|
|
$.each( $(".panel-title"), function(){
|
2016-08-30 17:03:33 +08:00
|
|
|
$(this).css({ "pointer-events": "auto" });
|
|
|
|
});
|
|
|
|
$.each( $(".workflowimg-container"), function(){
|
|
|
|
$(this).css({ "pointer-events": "auto" });
|
2016-08-30 14:52:44 +08:00
|
|
|
});
|
2016-08-25 21:16:51 +08:00
|
|
|
$.each( $(".dropdown-experiment-actions").find("li"),
|
|
|
|
function(){
|
2016-08-30 17:03:33 +08:00
|
|
|
$(this).css({ "pointer-events": "auto" });
|
2016-08-25 21:16:51 +08:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2016-08-25 01:03:58 +08:00
|
|
|
$(document).ready(function(){
|
|
|
|
initializeTutorial();
|
2016-08-25 21:16:51 +08:00
|
|
|
project_tutorial_helper();
|
2016-08-25 01:03:58 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
})();
|