Team:Heidelberg/js/notebook
From 2014.igem.org
Line 34: | Line 34: | ||
self.projects = ['DNMT1', 'LOV', 'Lyso', 'Xyla', 'Toolbox', 'General'] | self.projects = ['DNMT1', 'LOV', 'Lyso', 'Xyla', 'Toolbox', 'General'] | ||
self.selected = ko.observable('General'); | self.selected = ko.observable('General'); | ||
+ | |||
+ | self.experiment = ko.observable(); | ||
+ | self.protocols = protocolList; | ||
})(); | })(); | ||
Line 56: | Line 59: | ||
updateToTimestamp($(this).data("timestamp"), true); | updateToTimestamp($(this).data("timestamp"), true); | ||
}); | }); | ||
+ | |||
+ | ko.applyBindings(viewModel); | ||
}); | }); | ||
+ | |||
+ | var $viewExperimentModal = $('#viewExperimentModal'); | ||
+ | var detailedJSON, detailedJSONName; | ||
+ | function showExperiment(date, id) { | ||
+ | viewModel.experiment(null); | ||
+ | $viewExperimentModal.modal(); | ||
+ | |||
+ | var file = getJSONForDate(date); | ||
+ | if (file == detailedJSONName) { | ||
+ | viewModel.experiment(detailedJSON[id]); | ||
+ | } else { | ||
+ | (function (file) { | ||
+ | $.getJSON(getJSONForDate(date), function (data) { | ||
+ | detailedJSON = data; | ||
+ | detailedJSONName = file; | ||
+ | viewModel.experiment(data[id]); | ||
+ | }); | ||
+ | })(file); | ||
+ | } | ||
+ | } |
Revision as of 21:54, 17 October 2014
var projects = { DNMT1: "DNMT1 description", LOV: "LOV Domain description", Lyso: "Lysozyme description", Xyla: "Xylanase description", Toolbox: "Toolbox description", General: "General description", };
scrollToElement = function(id){ $('#outerWrapper').animate({scrollTop: $('#'+id).offset().top - $('#innerWrapper').offset().top}, 1500, "easeInOutCubic"); }
updateToTimestamp = function(timestamp) { console.log("Updating to Timestamp: ", timestamp); var $week = $('#innerWrapper .'+selectedProject).filter(function(){ return ($(this).data("timestamp") <= timestamp) && (timestamp < $(this).data("timestamp")+604800); }).first(); $('#innerWrapper .'+selectedProject).removeClass('active'); $('#outerWrapper').stop(true); $week.addClass('active'); $('#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');
setDate(timestamp); }
var viewModel = new (function () { var self = this; self.projects = ['DNMT1', 'LOV', 'Lyso', 'Xyla', 'Toolbox', 'General'] self.selected = ko.observable('General');
self.experiment = ko.observable(); self.protocols = protocolList; })();
$(function () { $(".titles span").click(function(event){ $('.titles span').removeClass("active"); $(event.target).addClass("active"); $('#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){ event.preventDefault(); updateToTimestamp($(this).data("timestamp"), true); return false; });
$(".weekentry").click(function() { updateToTimestamp($(this).data("timestamp"), true); });
ko.applyBindings(viewModel); });
var $viewExperimentModal = $('#viewExperimentModal'); var detailedJSON, detailedJSONName; function showExperiment(date, id) { viewModel.experiment(null); $viewExperimentModal.modal();
var file = getJSONForDate(date); if (file == detailedJSONName) { viewModel.experiment(detailedJSON[id]); } else { (function (file) { $.getJSON(getJSONForDate(date), function (data) { detailedJSON = data; detailedJSONName = file; viewModel.experiment(data[id]); }); })(file); } }