WIP Timeline: modify view params

pull/5091/head
Roman Roelofsen 8 years ago
parent deb6c2ddc7
commit 04694e2705
  1. 3
      frontend/app/components/wp-table/timeline/wp-timeline-cell.ts
  2. 37
      frontend/app/components/wp-table/timeline/wp-timeline.service.ts

@ -52,7 +52,7 @@ export class WorkPackageTimelineCell {
private workPackageId: string,
private timelineCell: HTMLTableElement) {
this.wpState = this.states.workPackages.get(this.workPackageId);
// this.wpState = this.states.workPackages.get(this.workPackageId);
}
activate() {
@ -83,7 +83,6 @@ export class WorkPackageTimelineCell {
const viewParams = renderInfo.viewParams;
const wp = renderInfo.workPackage;
// const cellHeight = jQuery(this.timelineCell).outerHeight();
const start = moment(wp.startDate as any);
const due = moment(wp.dueDate as any);

@ -84,12 +84,17 @@ export class WorkPackageTimelineService {
this.globalElementsRegistry["today"] = (wp: WorkPackage, elem: HTMLDivElement) => {
elem.style.position = "absolute";
elem.style.width = "2px";
elem.style.borderLeft = "2px dotted red";
elem.style.borderLeft = "2px solid red";
elem.style.zIndex = "10";
const offsetToday = this._viewParameters.now.diff(this._viewParameters.dateDisplayStart, "days");
elem.style.left = calculatePositionValueForDayCount(this._viewParameters, offsetToday);
};
// setTimeout(() => {
// console.log("time up");
// }, 3000);
}
get viewParameters() {
@ -113,7 +118,14 @@ export class WorkPackageTimelineService {
const wp = renderInfo.workPackage;
this.workPackagesInView[wp.id] = wp;
const viewParamsChanged = this.calculateViewParams();
// console.log("start1:" + this._viewParameters.dateDisplayStart.toString());
const viewParamsChanged = this.calculateViewParams(renderInfo.viewParams);
// console.log("changed:" + viewParamsChanged);
// console.log("start2:" + this._viewParameters.dateDisplayStart.toString());
// console.log("");
if (viewParamsChanged) {
// view params have changed, notify all cells
this.viewParamsSubject.onNext(this._viewParameters);
@ -125,12 +137,15 @@ export class WorkPackageTimelineService {
});
}
private calculateViewParams(): boolean {
let changed = false;
private calculateViewParams(currentParams: TimelineViewParameters): boolean {
console.log("calculateViewParams()");
const newParams = new TimelineViewParameters();
let changed = false;
// Calculate view parameters
for (const wpId in this.workPackagesInView) {
console.log(" wpId=" + wpId);
const workPackage = this.workPackagesInView[wpId];
if (workPackage.startDate && workPackage.dueDate) {
@ -138,27 +153,29 @@ export class WorkPackageTimelineService {
const due = moment(workPackage.dueDate as any);
// start date
newParams.dateDisplayStart = moment.min(newParams.dateDisplayStart, newParams.now, start);
newParams.dateDisplayStart = moment.min(currentParams.dateDisplayStart, currentParams.now, start);
// due date
newParams.dateDisplayEnd = moment.max(newParams.dateDisplayEnd, newParams.now, due);
newParams.dateDisplayEnd = moment.max(currentParams.dateDisplayEnd, currentParams.now, due);
}
}
// Check if view params changed:
// start date
if (!this._viewParameters.dateDisplayStart.isSame(newParams.dateDisplayStart)) {
if (!newParams.dateDisplayStart.isSame(currentParams.dateDisplayStart)) {
changed = true;
this._viewParameters.dateDisplayStart = newParams.dateDisplayStart;
this._viewParameters.dateDisplayStart = currentParams.dateDisplayStart;
}
// end date
if (!this._viewParameters.dateDisplayEnd.isSame(newParams.dateDisplayEnd)) {
if (!newParams.dateDisplayEnd.isSame(currentParams.dateDisplayEnd)) {
changed = true;
this._viewParameters.dateDisplayEnd = newParams.dateDisplayEnd;
this._viewParameters.dateDisplayEnd = currentParams.dateDisplayEnd;
}
console.log(" changed=" + changed);
return changed;
}

Loading…
Cancel
Save