Team:Heidelberg/js/notebook

From 2014.igem.org

(Difference between revisions)
 
(23 intermediate revisions not shown)
Line 1: Line 1:
-
var projects = {
+
var selectedSubproject = 'general';
-
  dnmt1 : "DNMT1 description",
+
-
  lov: "LOV Domain description",
+
-
  lysozyme : "Lysozyme description",
+
-
  standards: "Standards description",
+
-
  toolbox: "Toolbox description"
+
-
}
+
-
 
+
-
var selectedProject = "dnmt1";
+
scrollToElement = function(id){
scrollToElement = function(id){
-
$('#outerWrapper').animate({scrollTop: $('#'+id).offset().top - $('#innerWrapper').offset().top}, 1500, "easeInOutCubic");
+
$('#outerWrapper').animate({scrollTop: $('#'+id).offset().top - $('#innerWrapper').offset().top}, 1500, "easeInOutCubic");
}
}
 +
 +
var currentTimestamp;
updateToTimestamp = function(timestamp, updateGraph) {
updateToTimestamp = function(timestamp, updateGraph) {
-
  console.log("Updating to Timestamp: ", timestamp);
+
currentTimestamp = timestamp;
-
  var $week = $('#innerWrapper .'+selectedProject).filter(function(){
+
$('#currentDate').text(formatDate(new Date(timestamp*1000)));
-
    return ($(this).data("timestamp") <= timestamp) && (timestamp < $(this).data("timestamp")+604800);
+
var $week = $('#innerWrapper .'+selectedSubproject).filter(function(){
-
  }).first();
+
return ($(this).data("timestamp") <= timestamp) && (timestamp < $(this).data("timestamp")+604800);
-
  $('#innerWrapper .'+selectedProject).removeClass('active');
+
}).first();
-
  $('#outerWrapper').stop(true);
+
$('#innerWrapper .'+selectedSubproject).removeClass('active');
-
  $week.addClass('active');
+
$('#outerWrapper').stop(true);
-
  $('#outerWrapper').animate({scrollTop: ($week.offset().top - $('#innerWrapper').offset().top)-20}, 1500, "easeInOutCubic");
+
$week.addClass('active');
-
  var $month = $('.month').filter(function(){
+
if ($week.offset()) $('#outerWrapper').animate({scrollTop: ($week.offset().top - $('#innerWrapper').offset().top)-20}, 1500, "easeInOutCubic");
-
    return $(this).data("timestamp") <= timestamp;
+
var $month = $('.month').filter(function(){
-
  }).last();
+
return $(this).data("timestamp") <= timestamp;
-
  $('.month').removeClass('active');
+
}).last();
-
  $month.addClass('active');
+
$('.month').removeClass('active');
 +
$month.addClass('active');
-
  if(updateGraph)
+
if (updateGraph) scrollToDate(timestamp);
-
    updateGraphToTimestamp(timestamp);
+
}
}
 +
var viewModel = new (function () {
 +
var self = this;
 +
self.loading = ko.observable(true);
 +
self.experiment = ko.observable();
 +
self.protocols = protocols;
 +
})();
 +
var $viewExperimentModal;
 +
$(function () {
 +
currentTimestamp = firstDate;
 +
$('#currentDate').text(formatDate(new Date(firstDate*1000)));
 +
$(".titles span").click(function(event){
 +
$('.titles span').removeClass("active");
 +
$(event.target).addClass("active");
 +
setSubproject(({ general: 'General', 'toolbox': 'Toolbox', lov: 'LOV', dnmt1: 'DNMT1', 'linker-screening': 'Lyso', 'xylanase': 'Xyla'})[event.target.id]);
 +
selectedSubproject = event.target.id;
 +
$('#innerWrapper > :not(.'+selectedSubproject).fadeOut();
 +
$('#innerWrapper > .'+selectedSubproject).fadeIn();
 +
});
-
$(document).ready(function(){
+
$(".month").click(function(event){
-
  $(".titles span").click(function(event){
+
event.preventDefault();
-
    $('.titles span').removeClass("active");
+
updateToTimestamp($(this).data("timestamp"), true);
-
    $(event.target).addClass("active");
+
return false;
-
    $('#project-description').html(projects[event.target.id]);
+
});
-
    selectedProject = event.target.id;
+
-
    console.log(selectedProject);
+
-
    $('#innerWrapper > :not(.'+selectedProject).fadeOut();
+
-
    $('#innerWrapper > .'+selectedProject).fadeIn();
+
-
  });
+
-
  $(".month").click(function(event){
+
$(".weekentry").click(function() {
-
    event.preventDefault();
+
updateToTimestamp($(this).data("timestamp"), true);
-
    updateToTimestamp($(this).data("timestamp"), true);
+
});
-
    return false;
+
-
  });
+
-
  $(".weekentry").click(function() {
+
ko.applyBindings(viewModel);
-
    updateToTimestamp($(this).data("timestamp"), true);
+
$viewExperimentModal = $('#viewExperimentModal');
-
  });
+
});
});
-
function md5cycle(e,t){var n=e[0],r=e[1],i=e[2],s=e[3];n=ff(n,r,i,s,t[0],7,-680876936);s=ff(s,n,r,i,t[1],12,-389564586);i=ff(i,s,n,r,t[2],17,606105819);r=ff(r,i,s,n,t[3],22,-1044525330);n=ff(n,r,i,s,t[4],7,-176418897);s=ff(s,n,r,i,t[5],12,1200080426);i=ff(i,s,n,r,t[6],17,-1473231341);r=ff(r,i,s,n,t[7],22,-45705983);n=ff(n,r,i,s,t[8],7,1770035416);s=ff(s,n,r,i,t[9],12,-1958414417);i=ff(i,s,n,r,t[10],17,-42063);r=ff(r,i,s,n,t[11],22,-1990404162);n=ff(n,r,i,s,t[12],7,1804603682);s=ff(s,n,r,i,t[13],12,-40341101);i=ff(i,s,n,r,t[14],17,-1502002290);r=ff(r,i,s,n,t[15],22,1236535329);n=gg(n,r,i,s,t[1],5,-165796510);s=gg(s,n,r,i,t[6],9,-1069501632);i=gg(i,s,n,r,t[11],14,643717713);r=gg(r,i,s,n,t[0],20,-373897302);n=gg(n,r,i,s,t[5],5,-701558691);s=gg(s,n,r,i,t[10],9,38016083);i=gg(i,s,n,r,t[15],14,-660478335);r=gg(r,i,s,n,t[4],20,-405537848);n=gg(n,r,i,s,t[9],5,568446438);s=gg(s,n,r,i,t[14],9,-1019803690);i=gg(i,s,n,r,t[3],14,-187363961);r=gg(r,i,s,n,t[8],20,1163531501);n=gg(n,r,i,s,t[13],5,-1444681467);s=gg(s,n,r,i,t[2],9,-51403784);i=gg(i,s,n,r,t[7],14,1735328473);r=gg(r,i,s,n,t[12],20,-1926607734);n=hh(n,r,i,s,t[5],4,-378558);s=hh(s,n,r,i,t[8],11,-2022574463);i=hh(i,s,n,r,t[11],16,1839030562);r=hh(r,i,s,n,t[14],23,-35309556);n=hh(n,r,i,s,t[1],4,-1530992060);s=hh(s,n,r,i,t[4],11,1272893353);i=hh(i,s,n,r,t[7],16,-155497632);r=hh(r,i,s,n,t[10],23,-1094730640);n=hh(n,r,i,s,t[13],4,681279174);s=hh(s,n,r,i,t[0],11,-358537222);i=hh(i,s,n,r,t[3],16,-722521979);r=hh(r,i,s,n,t[6],23,76029189);n=hh(n,r,i,s,t[9],4,-640364487);s=hh(s,n,r,i,t[12],11,-421815835);i=hh(i,s,n,r,t[15],16,530742520);r=hh(r,i,s,n,t[2],23,-995338651);n=ii(n,r,i,s,t[0],6,-198630844);s=ii(s,n,r,i,t[7],10,1126891415);i=ii(i,s,n,r,t[14],15,-1416354905);r=ii(r,i,s,n,t[5],21,-57434055);n=ii(n,r,i,s,t[12],6,1700485571);s=ii(s,n,r,i,t[3],10,-1894986606);i=ii(i,s,n,r,t[10],15,-1051523);r=ii(r,i,s,n,t[1],21,-2054922799);n=ii(n,r,i,s,t[8],6,1873313359);s=ii(s,n,r,i,t[15],10,-30611744);i=ii(i,s,n,r,t[6],15,-1560198380);r=ii(r,i,s,n,t[13],21,1309151649);n=ii(n,r,i,s,t[4],6,-145523070);s=ii(s,n,r,i,t[11],10,-1120210379);i=ii(i,s,n,r,t[2],15,718787259);r=ii(r,i,s,n,t[9],21,-343485551);e[0]=add32(n,e[0]);e[1]=add32(r,e[1]);e[2]=add32(i,e[2]);e[3]=add32(s,e[3])}function cmn(e,t,n,r,i,s){t=add32(add32(t,e),add32(r,s));return add32(t<<i|t>>>32-i,n)}function ff(e,t,n,r,i,s,o){return cmn(t&n|~t&r,e,t,i,s,o)}function gg(e,t,n,r,i,s,o){return cmn(t&r|n&~r,e,t,i,s,o)}function hh(e,t,n,r,i,s,o){return cmn(t^n^r,e,t,i,s,o)}function ii(e,t,n,r,i,s,o){return cmn(n^(t|~r),e,t,i,s,o)}function md51(e){txt="";var t=e.length,n=[1732584193,-271733879,-1732584194,271733878],r;for(r=64;r<=e.length;r+=64){md5cycle(n,md5blk(e.substring(r-64,r)))}e=e.substring(r-64);var i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;r<e.length;r++)i[r>>2]|=e.charCodeAt(r)<<(r%4<<3);i[r>>2]|=128<<(r%4<<3);if(r>55){md5cycle(n,i);for(r=0;r<16;r++)i[r]=0}i[14]=t*8;md5cycle(n,i);return n}function md5blk(e){var t=[],n;for(n=0;n<64;n+=4){t[n>>2]=e.charCodeAt(n)+(e.charCodeAt(n+1)<<8)+(e.charCodeAt(n+2)<<16)+(e.charCodeAt(n+3)<<24)}return t}function rhex(e){var t="",n=0;for(;n<4;n++)t+=hex_chr[e>>n*8+4&15]+hex_chr[e>>n*8&15];return t}function hex(e){for(var t=0;t<e.length;t++)e[t]=rhex(e[t]);return e.join("")}function md5(e){return hex(md51(e))}function add32(e,t){return e+t&4294967295}var hex_chr="0123456789abcdef".split("");if(md5("hello")!="5d41402abc4b2a76b9719d911017c592"){function add32(e,t){var n=(e&65535)+(t&65535),r=(e>>16)+(t>>16)+(n>>16);return r<<16|n&65535}}
+
var detailedJSON, detailedJSONName;
 +
function showExperiment(date, id) {
 +
viewModel.loading(true);
 +
$viewExperimentModal.modal();
 +
 
 +
var file = getJSONForDate(date).detailedFile;
 +
if (file == detailedJSONName) {
 +
viewModel.experiment(detailedJSON[id]);
 +
viewModel.loading(false);
 +
} else {
 +
(function (file) {
 +
$.getJSON(file, function (data) {
 +
detailedJSON = data;
 +
detailedJSONName = file;
 +
viewModel.experiment(data[id]);
 +
viewModel.loading(false);
 +
});
 +
})(file);
 +
}
 +
}

Latest revision as of 23:33, 17 October 2014

var selectedSubproject = 'general';

scrollToElement = function(id){ $('#outerWrapper').animate({scrollTop: $('#'+id).offset().top - $('#innerWrapper').offset().top}, 1500, "easeInOutCubic"); }

var currentTimestamp;

updateToTimestamp = function(timestamp, updateGraph) { currentTimestamp = timestamp; $('#currentDate').text(formatDate(new Date(timestamp*1000))); var $week = $('#innerWrapper .'+selectedSubproject).filter(function(){ return ($(this).data("timestamp") <= timestamp) && (timestamp < $(this).data("timestamp")+604800); }).first(); $('#innerWrapper .'+selectedSubproject).removeClass('active'); $('#outerWrapper').stop(true); $week.addClass('active'); if ($week.offset()) $('#outerWrapper').animate({scrollTop: ($week.offset().top - $('#innerWrapper').offset().top)-20}, 1500, "easeInOutCubic"); var $month = $('.month').filter(function(){ return $(this).data("timestamp") <= timestamp; }).last(); $('.month').removeClass('active'); $month.addClass('active');

if (updateGraph) scrollToDate(timestamp); }

var viewModel = new (function () { var self = this; self.loading = ko.observable(true); self.experiment = ko.observable(); self.protocols = protocols; })();

var $viewExperimentModal; $(function () { currentTimestamp = firstDate; $('#currentDate').text(formatDate(new Date(firstDate*1000))); $(".titles span").click(function(event){ $('.titles span').removeClass("active"); $(event.target).addClass("active"); setSubproject(({ general: 'General', 'toolbox': 'Toolbox', lov: 'LOV', dnmt1: 'DNMT1', 'linker-screening': 'Lyso', 'xylanase': 'Xyla'})[event.target.id]); selectedSubproject = event.target.id; $('#innerWrapper > :not(.'+selectedSubproject).fadeOut(); $('#innerWrapper > .'+selectedSubproject).fadeIn(); });

$(".month").click(function(event){ event.preventDefault(); updateToTimestamp($(this).data("timestamp"), true); return false; });

$(".weekentry").click(function() { updateToTimestamp($(this).data("timestamp"), true); });

ko.applyBindings(viewModel); $viewExperimentModal = $('#viewExperimentModal'); });

var detailedJSON, detailedJSONName; function showExperiment(date, id) { viewModel.loading(true); $viewExperimentModal.modal();

var file = getJSONForDate(date).detailedFile; if (file == detailedJSONName) { viewModel.experiment(detailedJSON[id]); viewModel.loading(false); } else { (function (file) { $.getJSON(file, function (data) { detailedJSON = data; detailedJSONName = file; viewModel.experiment(data[id]); viewModel.loading(false); }); })(file); } }