/** * jQuery Gantt Chart * * @see http://taitems.github.io/jQuery.Gantt/ * @license MIT */ (function(e,a){"use strict";var t=24*60*60*1e3;function n(a,t){var n=new Date(parseInt(t,10));n.setHours(0,0,0,0);var i=e(a).attr("id")||"";var l=i.indexOf("-")+1;var s=new Date(parseInt(i.substring(l,i.length),10));s.setHours(0,0,0,0);return n.getTime()===s.getTime()}e.expr[":"].findday=e.expr.createPseudo?e.expr.createPseudo((function(e){return function(a){return n(a,e)}})):function(e,a,t){return n(e,t[3])};function i(a,t){var n=new Date(parseInt(t,10));var i=n.getFullYear();var l=n.getWeekOfYear();var s=n.getMonth();if(s===11&&l===1){i++}else if(!s&&l>51){i--}n=i+"-"+l;var r=e(a).attr("id")||"";var o=r.indexOf("-")+1;var d=r.substring(o,r.length);return n===d}e.expr[":"].findweek=e.expr.createPseudo?e.expr.createPseudo((function(e){return function(a){return i(a,e)}})):function(e,a,t){return i(e,t[3])};function l(a,t){var n=new Date(parseInt(t,10));n=n.getFullYear()+"-"+n.getMonth();var i=e(a).attr("id")||"";var l=i.indexOf("-")+1;var s=i.substring(l,i.length);return n===s}e.expr[":"].findmonth=e.expr.createPseudo?e.expr.createPseudo((function(e){return function(a){return l(a,e)}})):function(e,a,t){return l(e,t[3])};Date.prototype.getWeekId=function(){var e=this.getFullYear();var a=this.getWeekOfYear();var t=this.getMonth();if(t===11&&a===1){e++}else if(!t&&a>51){e--}return"dh-"+e+"-"+a};Date.prototype.getRepDate=function(e){switch(e){case"hours":return this.getTime();case"weeks":return this.getDayForWeek().getTime();case"months":return new Date(this.getFullYear(),this.getMonth(),1).getTime();case"days":default:return this.getTime()}};Date.prototype.getDayOfYear=function(){var e=this.getFullYear();return(Date.UTC(e,this.getMonth(),this.getDate())-Date.UTC(e,0,0))/t};var s=1;var r=4;Date.prototype.getWeekOfYear=function(){var e=this.getFullYear(),a=this.getMonth(),t=this.getDate(),n=this.getDay();var i=r-n;if(n');var n=s.leftPanel(a);t.append(n);var i=s.rightPanel(a,n);var r,o;t.append(i);t.append(s.navigation(a));var d=i.find(".dataPanel");a.gantt=e('
').append(t);e(a).empty().append(a.gantt);a.scrollNavigation.panelMargin=parseInt(d.css("margin-left").replace("px",""),10);a.scrollNavigation.panelMaxPos=d.width()-i.width();a.scrollNavigation.canScroll=d.width()>i.width();s.markNow(a);s.fillData(a,d,n);if(l.useCookie){var c=e.cookie(l.cookieKey+"ScrollPos");if(c){a.hPosition=c}}if(l.scrollToToday){s.navigateTo(a,"now");s.scrollPanel(a,0)}else{if(a.hPosition!==0){if(a.scaleOldWidth){r=d.width()-i.width();o=r*a.hPosition/a.scaleOldWidth;a.hPosition=o>0?0:o;a.scaleOldWidth=null}d.css({"margin-left":a.hPosition});a.scrollNavigation.panelMargin=a.hPosition}s.repositionLabel(a)}d.css({height:n.height()});s.waitToggle(a);l.onRender()},leftPanel:function(a){var t=e('
').append(e('
').css("height",r.getCellSize()*a.headerRows).css("width","100%"));var n=[];e.each(a.data,(function(e,t){if(e>=a.pageNum*l.itemsPerPage&&e'+''+(t.name||"")+""+"
");if(t.desc){n.push('
'+''+t.desc+""+"
")}}}));return t.append(n.join(""))},dataPanel:function(t,n){var i=e('
');var o="onwheel"in t?"wheel":document.onmousewheel!==a?"mousewheel":"DOMMouseScroll";e(t).on(o,(function(e){s.wheelScroll(t,e)}));i.click((function(a){a.stopPropagation();var n,i;var o=e(t).find(".fn-gantt .leftPanel");var d=e(t).find(".fn-gantt .dataPanel");switch(l.scale){case"months":i=r.getCellSize();break;case"hours":i=r.getCellSize()*4;break;case"days":i=r.getCellSize()*3;break;case"weeks":default:i=r.getCellSize()*2}var c=s.elementFromPoint(a.pageX,d.offset().top+i);if(c.className==="fn-label"){c=e(c.parentNode)}else{c=e(c)}var g=c.data("repdate");var f=s.elementFromPoint(o.offset().left+o.width()-10,a.pageY);if(f.className.indexOf("fn-label")===0){f=e(f.parentNode)}else{f=e(f)}var u=f.data("id");l.onAddClick(g,u)}));return i},rightPanel:function(a,t){var n=null;var i=["sn","wd","wd","wd","wd","wd","sa"];var d=[];var c=0;var g=[];var f=0;var u=[];var v=0;var h=[];var p=[];var m=new Date;m.setHours(0,0,0,0);var w=e('
');var y,b;var D,k,S,P;var C,M;var z;switch(l.scale){case"hours":n=r.parseTimeRange(a.dateStart,a.dateEnd,a.scaleStep);D=n[0].getFullYear();k=n[0].getMonth();P=n[0];for(y=0,b=n.length;y
'+D+"
");D=T;c=0}c++;var N=C.getMonth();if(N!==k){g.push('
'+l.months[k]+"
");k=N;f=0}f++;var x=C.getDay();var Y=P.getDay();if(x!==Y){M=m-P===0?"today":r.isHoliday(P.getTime())?"holiday":i[Y];u.push('
'+'
'+P.getDate()+"
");h.push('
'+'
'+l.dow[Y]+"
");P=C;v=0}v++;M=i[x];if(r.isHoliday(C)){M="holiday"}p.push('
'+C.getHours()+"
")}d.push('
'+D+"
");g.push('
'+l.months[k]+"
");M=i[P.getDay()];if(r.isHoliday(P)){M="holiday"}u.push('
'+'
'+P.getDate()+"
");h.push('
'+'
'+l.dow[P.getDay()]+"
");z=s.dataPanel(a,n.length*r.getCellSize());z.append(w.clone().html(d.join("")),w.clone().html(g.join("")),w.clone().html(u.join("")),w.clone().html(h.join("")),w.clone().html(p.join("")));break;case"weeks":n=r.parseWeeksRange(a.dateStart,a.dateEnd);D=n[0].getFullYear();k=n[0].getMonth();S=n[0].getWeekOfYear();var F;for(y=0,b=n.length;y(S=C.getWeekOfYear())){F=C.getDate()-1;F-=!C.getMonth()?0:31;F/=7;d.push('
'+D+"
");D++;c=F}c++;if(C.getMonth()!==k){F=C.getDate()-1;F/=7;g.push('
'+l.months[k]+"
");k=C.getMonth();f=F}f++;u.push('
'+'
'+S+"
")}d.push('
'+D+"
");g.push('
'+l.months[k]+"
");z=s.dataPanel(a,n.length*r.getCellSize());z.append(w.clone().html(d.join("")),w.clone().html(g.join("")),w.clone().html(u.join("")));break;case"months":n=r.parseMonthsRange(a.dateStart,a.dateEnd);D=n[0].getFullYear();k=n[0].getMonth();for(y=0,b=n.length;y
'+D+"
");D=C.getFullYear();c=0}c++;g.push('
'+(1+C.getMonth())+"
")}d.push('
'+D+"
");g.push('
'+l.months[k]+"
");z=s.dataPanel(a,n.length*r.getCellSize());z.append(w.clone().html(d.join("")),w.clone().html(g.join("")),w.clone().html(u.join("")),w.clone().html(h.join("")));break;default:n=r.parseDateRange(a.dateStart,a.dateEnd);var O=o(n[0],-1);D=O.getFullYear();k=O.getMonth();for(y=0,b=n.length;y
'+D+"
");D=C.getFullYear();c=0}c++;if(C.getMonth()!==k){g.push('
'+l.months[k]+"
");k=C.getMonth();f=0}f++;P=C.getDay();M=i[P];if(r.isHoliday(C)){M="holiday"}u.push('
'+'
'+C.getDate()+"
");h.push('
'+'
'+l.dow[P]+"
")}d.push('
'+D+"
");g.push('
'+l.months[k]+"
");z=s.dataPanel(a,n.length*r.getCellSize());z.append(w.clone().html(d.join("")),w.clone().html(g.join("")),w.clone().html(u.join("")),w.clone().html(h.join("")))}return e('
').append(z)},navigation:function(a){var t=null;if(l.navigate==="scroll"){t=e('