/** * * JQuery fn.gantt gantt chart plugin v0.2 * Copyright 2011 by Marek Bielańczuk * http://mbielanczuk.com/ * Released under the MIT and GPL Licenses. * * Date: Tue Jun 21 00:18:16 +0200 2011 */ jQuery.fn.gantt = function (options) { var defaults = { source: null, itemsPerPage: 7, months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], dow: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So"], startPos: new Date() }; var options = jQuery.extend(defaults, options); var data = null; // Recived data var pageNum = 0; // Current page number var pageCount = 0; // Aviable pages count var rowsOnLastPage = 0; // How many rows on last page var rowsNum = 0; // var hPosition = 0; // Current position on diagram (Horizontal) var dateStart = null; var dateEnd = null; var create = function(jQuerythis) { if (!options.source) return; jQuery.getJSON(options.source, function(rData) { data = rData; rowsNum = data.length; pageCount = Math.ceil(rowsNum/options.itemsPerPage); rowsOnLastPage = rowsNum - (Math.floor(rowsNum/options.itemsPerPage) * options.itemsPerPage); dateStart = tools.getMinDate(); dateEnd = tools.getMaxDate(); var contTable = createContainer(); jQuerythis.append(contTable); fillHollydays(); fillData(); jQuerythis.css({ height: jQuery(".fn-gantt").height() + "px" }); jQuery('.fn-gantt .dataPanel').css({'margin-left': hPosition+'px'}); var d = Math.round((options.startPos/1000 - dateStart/1000) / 86400 )-2; if (d > 0) { navigateTo(-1*d * tools.getCellSize()); } else { repositionLabel(); } }); var createContainer = function() { /* Left panel */ var ganttLeftPanel = jQuery('
') .append(jQuery('
') .css("height", tools.getCellSize()*4+"px") .css("width", "100%")); jQuery.each(data, function(i, entry) { if (i >= pageNum*options.itemsPerPage && i < (pageNum*options.itemsPerPage+options.itemsPerPage)) { ganttLeftPanel .append(jQuery('
').append(jQuery('').html(entry.name))) .append(jQuery('
').append(jQuery('').html(entry.desc))); } }); /* Navigation panel */ var ganttNavigate = jQuery('