From 245849e2a487fafefe6796153ecd6b050bfec285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Biela=C5=84czuk?= Date: Sun, 11 Sep 2011 22:59:28 +0200 Subject: [PATCH] Fix for issue #1 --- .project | 17 +++++++++++++++++ js/data.js | 6 +----- js/jquery.fn.gantt.js | 39 +++++++++++++++++++++------------------ js/jquery.fn.gantt.min.js | 2 +- style.css | 16 ++++++++-------- 5 files changed, 48 insertions(+), 32 deletions(-) create mode 100644 .project diff --git a/.project b/.project new file mode 100644 index 0000000..df43370 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + jQuery.Gantt + jQuery gantt chart + + + + + org.eclipse.wst.jsdt.core.javascriptValidator + + + + + + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/js/data.js b/js/data.js index 4d842b7..c75f8f6 100644 --- a/js/data.js +++ b/js/data.js @@ -1,11 +1,7 @@ - - - [{ "name": "Jan Kowalski", "desc": "Programista", "values": [ - {"from": "/Date(1309471200000)/", "to": "/Date(1310421600000)/", "desc": "Type: Task
name: Task 1
Description: Task desc."}, - {"from": "/Date(1310594400000)/", "to": "/Date(1311112800000)/", "desc": "Type: Task
name: Task 2
Description: Task desc.", "customClass": "ganttOrange"} + {"from": "/Date(1302203200000)/", "to": "/Date(1310508000000)/", "desc": "Type: Task
name: Task 3
Description: Task desc.", "customClass": "ganttRed"} ] }, { "name": "Jan Nowak", diff --git a/js/jquery.fn.gantt.js b/js/jquery.fn.gantt.js index 68aa619..5d98f18 100644 --- a/js/jquery.fn.gantt.js +++ b/js/jquery.fn.gantt.js @@ -196,7 +196,7 @@ jQuery.fn.gantt = function (options) { var dRow = jQuery('
'); jQuery.each(range, function(j, day) { var todayCls = (today - day == 0) ? ' today' : day.getDay() == 6 ? ' sa' : (day.getDay() == 0 ? ' sn' : ''); - dRow.append(jQuery('
') + dRow.append(jQuery('
') .html(day)); }); dataPanel.append(dRow); @@ -240,7 +240,7 @@ jQuery.fn.gantt = function (options) { { jQuery.each(data, function(i, entry) { jQuery.each(options.hollydays, function(j, hollyday) { - jQuery('#d'+i+'-'+ tools.dateDeserialize(hollyday).getTime()) + jQuery('#d'+i+'-'+ tools.genId(tools.dateDeserialize(hollyday).getTime())) .addClass("hollyday"); }); }); @@ -252,16 +252,16 @@ jQuery.fn.gantt = function (options) { if (i >= pageNum * options.itemsPerPage && i < (pageNum*options.itemsPerPage+options.itemsPerPage)) { jQuery.each(entry.values, function(j, day) { - jQuery('#d'+i+'-'+ tools.dateDeserialize(day.from).getTime()) - .append( - createProgressBar( - Math.floor(((Date.parse(tools.dateDeserialize(day.to)) / 1000) - - (Date.parse(tools.dateDeserialize(day.from)) / 1000)) / 86400), - day.customClass ? day.customClass : '', - day.desc ? day.desc : '' - ) - ) - }) + var _bar = createProgressBar( + Math.floor(((Date.parse(tools.dateDeserialize(day.to)) / 1000) + - (Date.parse(tools.dateDeserialize(day.from)) / 1000)) / 86400), + day.customClass ? day.customClass : '', + day.desc ? day.desc : '' + ); + jQuery('#d'+i+'-'+ tools.genId(tools.dateDeserialize(day.from).getTime())) + .append(_bar + ); + }); } }); }; @@ -271,13 +271,13 @@ jQuery.fn.gantt = function (options) { case 'begin': jQuery('.fn-gantt .dataPanel').animate({ 'margin-left': '0px' - }, 'fast', function() {repositionLabel()}); + }, 'fast', function() {repositionLabel();}); break; case 'end': var mLeft = jQuery('.fn-gantt .dataPanel').width() - jQuery('.fn-gantt .rightPanel').width(); jQuery('.fn-gantt .dataPanel').animate({ 'margin-left': '-' + mLeft + 'px' - }, 'fast', function() {repositionLabel()}); + }, 'fast', function() {repositionLabel();}); break; default: var max_left = (jQuery('.fn-gantt .dataPanel').width() - jQuery('.fn-gantt .rightPanel').width()) * -1; @@ -318,7 +318,7 @@ jQuery.fn.gantt = function (options) { { var viewArea = { left: objDim.offset.left > wrapper.offset.left ? objDim.offset.left : wrapper.offset.left, - right: objDim.offset.left+objDim.width < wrapper.offset.left + wrapper.width ? objDim.offset.left+objDim.width : wrapper.offset.left + wrapper.width, + right: objDim.offset.left+objDim.width < wrapper.offset.left + wrapper.width ? objDim.offset.left+objDim.width : wrapper.offset.left + wrapper.width }; jQuery(obj).children(".label").css("float", "left"); var labelWidth = jQuery(obj).children(".label").width(); @@ -365,12 +365,16 @@ jQuery.fn.gantt = function (options) { do { ret[i++] = new Date(current.getTime()); current.setDate(current.getDate()+1); - } while (current <= to) + } while (current <= to); return ret; }; this.dateDeserialize = function (dateStr) { return eval('new' + dateStr.replace(/\//g, ' ')); }; + this.genId = function (ticks) { + var t = Math.floor(ticks / 86400000); + return t * 86400000; + }; var _getCellSize = null; this.getCellSize = function() { if (!_getCellSize) @@ -402,5 +406,4 @@ jQuery.fn.gantt = function (options) { }; jQuery(this).empty(); create(jQuery(this)); - -} \ No newline at end of file +}; diff --git a/js/jquery.fn.gantt.min.js b/js/jquery.fn.gantt.min.js index 45b233a..ced21c0 100644 --- a/js/jquery.fn.gantt.min.js +++ b/js/jquery.fn.gantt.min.js @@ -8,4 +8,4 @@ * Date: Tue Jun 21 00:18:16 +0200 2011 */ -jQuery.fn.gantt=function(w){var x={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 w=jQuery.extend(x,w);var y=null;var z=0;var A=0;var B=0;var C=0;var D=0;var E=null;var F=null;var G=function(r){if(!w.source)return;jQuery.getJSON(w.source,function(a){y=a;C=y.length;A=Math.ceil(C/w.itemsPerPage);B=C-(Math.floor(C/w.itemsPerPage)*w.itemsPerPage);E=H.getMinDate();F=H.getMaxDate();var b=s();r.append(b);u();v();r.css({height:jQuery(".fn-gantt").height()+"px"});jQuery('.fn-gantt .dataPanel').css({'margin-left':D+'px'});var d=Math.round((w.startPos/1000-E/1000)/86400)-2;if(d>0){navigate(-1*d*H.getCellSize())}else{repositionLabel()}});var s=function(){var b=jQuery('
').append(jQuery('
').css("height",H.getCellSize()*4+"px").css("width","100%"));jQuery.each(y,function(i,a){if(i>=z*w.itemsPerPage&&i<(z*w.itemsPerPage+w.itemsPerPage)){b.append(jQuery('
').append(jQuery('').html(a.name))).append(jQuery('
').append(jQuery('').html(a.desc)))}});var c=jQuery('