Document toolboxDocument toolbox

Project Gantt

Denne side indeholder en kort oversigt over arkitekturen i Gannt fanebladet i det nye projekt modul.

LayoutProject

Den to-delte visning håndteres af klassen LayoutProject. Der findes en LayoutProject klasse både i PHP og javascript.

Det meste foregår i javascript, se filen /obj/Layout/script/project.js. Filen indeholder to klasser LayoutProject (som håndterer resize af siden samt tilføjelse af rækker), og LayoutProjectRow (som håndtere den enkelte rækker).

Det er dog ikke meningen at disse skal håndtere indholdet i rækkerne, altså Gantt diagrammet i højre side og data felter i venstre side.

Data felter i venstre side håndteres i javascript af CEEditor klassen. LayoutProjectRow opretter dog en <div> for hver kolonne, men fylder ikke noget i denne <div>.

Der skal bygges en komponent til at håndtere Gantt diagrammet i højre side.

LayoutProject skal håndtere justering af kolonne bredde.

CEEditor

Denne klasse findes i øjeblikket i /sys/project/details/gantt/index.js, sammen med lidt logik til at hægte det samme med LayoutProject.

CEEditor håndterer rækker af redigerbare felter.

Når aktiviteter indlæses fra MB (vha /sys/project/details/gantt/getdata.php) så oprettes der en LayoutProjectRow række og en CEEditor for hver aktivitet. og i hver CEEditor oprettes der redigerbare felter for hver kolonne. Felter af forskellige typer håndteres af klasserne CEEditorCellXXX.

CEEditor skal håndtere events på de redigerbare felter, samt formattering, validering osv af indhold.