Update jsgantt to 1.7.5.4

This commit is contained in:
Laurent Destailleur 2017-10-18 21:24:17 +02:00
parent 7f85d73001
commit a818422302
20 changed files with 4042 additions and 3974 deletions

View File

@ -50,7 +50,7 @@ jQuery jquerytreeview 1.4.1 MIT License Yes
jQuery TableDnD 0.6 GPL and MIT License Yes JS library plugin TableDnD (to reorder table rows)
jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker
jQuery Tiptip 1.3 GPL and MIT License Yes JS library for tooltips
jsGanttImproved 1.7.5.2 BSD License Yes JS library (to build Gantt reports)
jsGanttImproved 1.7.5.4 BSD License Yes JS library (to build Gantt reports)
JsTimezoneDetect 1.0.6 MIT License Yes JS library to detect user timezone
SwaggerUI 2.0.24 GPL-2+ Yes JS library to offer the REST API explorer
Ace 1.2.8 BSD Yes JS library to get code syntaxique coloration in a textarea.

View File

@ -82,8 +82,14 @@ with
// LDR To open in same window
//var OpenWindow=window.open(pRef, "newwin", "height="+vHeight+",width="+vWidth);
window.location.href=pRef
* Replace hard coded string with i18n["String"];
* Replace
vTmpDiv=this.newNode(vTmpCell, 'div', null, null, vTaskList[i].getResource());
with
var vTmpNode=this.newNode(vTmpCell, 'div', null, '');
vTmpNode=this.newNode(vTmpNode, 'a', null, '', vLangs[vLang]['moreinfo']);
vTmpNode.setAttribute('href',vTaskList[i].getLink());
JCROP:
------

View File

@ -0,0 +1,180 @@
# Contributing to jsGanttImproved
We'd love for you to contribute to our source code and to make jsGanttImproved even better than it is
today! Here are the guidelines we'd like you to follow:
- [Issues and Bugs](#issue)
- [Feature Requests](#feature)
- [Submission Guidelines](#submit)
- [Coding Rules](#rules)
- [Commit Message Guidelines](#commit)
- [Further Info](#info)
## <a name="issue"></a> Found an Issue?
If you find a bug in the source code or a mistake in the documentation, you can help us by
submitting an issue to our [GitHub Repository][github]. Even better you can submit a Pull Request
with a fix.
**Please see the [Submission Guidelines](#submit) below.**
## <a name="feature"></a> Want a Feature?
You can request a new feature by submitting an issue to our [GitHub Repository][github]. If you
would like to implement a new feature then it can be crafted and submitted as a Pull Request.
## <a name="submit"></a> Submission Guidelines
### Submitting an Issue
Before you submit your issue search the archive, maybe your question was already answered.
If your issue appears to be a bug, and hasn't been reported, open a new issue. Help us to maximize
the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
Providing the following information will increase the chances of your issue being dealt with
quickly:
* **Overview of the Issue** - if an error is being thrown a non-minified stack trace helps
* **Motivation for or Use Case** - explain why this is a bug for you
* **Version(s)** - what is the version(s) being used?
* **Browsers and Operating System** - is this a problem with all browsers or only specific ones?
* **Reproduce the Error** - provide a live example (using [Plunker][plunker] or
[JSFiddle][jsfiddle]) or an unambiguous set of steps.
* **Related Issues** - has a similar issue been reported before?
* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be
causing the problem (line of code or commit)
### Submitting a Pull Request
Before you submit your pull request consider the following guidelines:
* Search [GitHub](https://github.com/jsGanttImproved/jsgantt-improved/pulls) for an open or closed Pull Request
that relates to your submission. You don't want to duplicate effort.
* Make your changes in a new git branch:
```shell
git checkout -b my-fix-branch master
```
* Create your patch.
* Follow our [Coding Rules](#rules).
* Commit your changes using a descriptive commit message that follows our
[commit message conventions](#commit).
```shell
git commit -a
```
Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files.
* Push your branch to GitHub:
```shell
git push origin my-fix-branch
```
In GitHub, send a pull request to `master`.
If we suggest changes, then:
* Make the required updates.
* Commit your changes to your branch (e.g. `my-fix-branch`).
* Push the changes to your GitHub repository (this will update your Pull Request).
If the PR gets too outdated we may ask you to rebase and force push to update the PR:
```shell
git rebase master -i
git push origin my-fix-branch -f
```
_WARNING: Squashing or reverting commits and force-pushing thereafter may remove GitHub comments
on code that were previously made by you or others in your commits. Avoid any form of rebasing
unless necessary._
That's it! Thank you for your contribution!
#### After your pull request is merged
After your pull request is merged, you can safely delete your branch and pull the changes
from the main (upstream) repository:
* Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows:
```shell
git push origin --delete my-fix-branch
```
* Check out the master branch:
```shell
git checkout master -f
```
* Delete the local branch:
```shell
git branch -D my-fix-branch
```
* Update your master with the latest upstream version:
```shell
git pull --ff upstream master
```
## <a name="rules"></a> Coding Rules
To ensure consistency throughout the source code, keep these rules in mind as you are working:
* With the exceptions listed below, we follow the rules contained in
[Google's JavaScript Style Guide][js-style-guide]:
* Wrap all code at **100 characters**.
## <a name="commit"></a> Git Commit Guidelines
We have very precise rules over how our git commit messages can be formatted. This leads to **more
readable messages** that are easy to follow when looking through the **project history**.
### Commit Message Format
Each commit message consists of a **subject**, a **body** and a **footer**:
```
<subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
```
The **subject** is mandatory.
Any line of the commit message cannot be longer 100 characters! This allows the message to be easier
to read on GitHub as well as in various git tools.
### Revert
If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit.
In the body it should say: `This reverts commit <hash>.`, where the hash is the SHA of the commit being reverted.
### Subject
The subject contains succinct description of the change:
* use the imperative, present tense: "change" not "changed" nor "changes"
* don't capitalize first letter
* no dot (.) at the end
### Body
Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes".
The body should include the motivation for the change and contrast this with previous behavior.
### Footer
The footer should contain any information about **Breaking Changes** and is also the place to
[reference GitHub issues that this commit closes][closing-issues].
**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines.
The rest of the commit message is then used for this.
## <a name="info"></a> Further Information
You can find out more detailed information about contributing in the [Documentation][docs].
[github]: https://github.com/jsGanttImproved/jsgantt-improved
[js-style-guide]: https://google.github.io/styleguide/jsguide.html
[closing-issues]: https://help.github.com/articles/closing-issues-via-commit-messages/
[docs]: https://github.com/jsGanttImproved/jsgantt-improved/wiki/Documentation

View File

@ -0,0 +1,51 @@
* Copyright (c) 2013-2017, Paul Geldart, Eduardo Rodrigues and Ricardo Cardoso.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Paul Geldart, Eduardo Rodrigues and Ricardo Cardoso nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY PAUL GELDART, EDUARDO RODRIGUES AND RICARDO CARDOSO ''AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL PAUL GELDART, EDUARDO RODRIGUES AND RICARDO CARDOSO BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This project is based on jsGantt 1.2, the original project license follows:
* Copyright (c) 2008, Shlomy Gantz/BlueBrick Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Shlomy Gantz or BlueBrick Inc. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY SHLOMY GANTZ/BLUEBRICK INC. ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL SHLOMY GANTZ/BLUEBRICK INC. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1,21 @@
A fully featured gantt chart component built entirely in Javascript, CSS and AJAX. It is lightweight and there is no need of external libraries or additional images.
You can view a live example at https://jsGanttImproved.github.io/jsgantt-improved
Features include:
* Tasks & Collapsible Task Groups
* Dependencies
* Task Completion
* Task Styling
* Milestones
* Resources
* Dynamic Loading of Tasks
* Dynamic change of format: Hour, Day, Week, Month, Quarter
* Load Gantt from XML
* From external files (including experimental support for MS Project XML files)
* From JavaScript Strings
* Support for Internationalization (all hard coded strings can be overridden)
Project forked as I was unable to contact the original maintainers. This work was done to support a personal project that didn't warrant a more heavyweight system (e.g. the dojo toolkit gantt chart features).
See the [Documentation](https://github.com/jsGanttImproved/jsgantt-improved/wiki/Documentation) wiki page or the included ``index.html`` file for instructions on use.

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 KiB

View File

@ -1,564 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>
<head>
<link rel="stylesheet" type="text/css" href="jsgantt.css"/>
<script language="javascript" src="jsgantt.js"></script>
<script language="javascript" src="graphics.js"></script>
<style type="text/css">
<!--
.style1 {color: #0000FF}
.roundedCorner{display:block}
.roundedCorner *{
display:block;
height:1px;
overflow:hidden;
font-size:.01em;
background:#0061ce}
.roundedCorner1{
margin-left:3px;
margin-right:3px;
padding-left:1px;
padding-right:1px;
border-left:1px solid #91bbe9;
border-right:1px solid #91bbe9;
background:#3f88da}
.roundedCorner2{
margin-left:1px;
margin-right:1px;
padding-right:1px;
padding-left:1px;
border-left:1px solid #e5effa;
border-right:1px solid #e5effa;
background:#307fd7}
.roundedCorner3{
margin-left:1px;
margin-right:1px;
border-left:1px solid #307fd7;
border-right:1px solid #307fd7;}
.roundedCorner4{
border-left:1px solid #91bbe9;
border-right:1px solid #91bbe9}
.roundedCorner5{
border-left:1px solid #3f88da;
border-right:1px solid #3f88da}
.roundedCornerfg{
background:#0061ce;}
-->
</style>
<title>FREE javascript gantt - JSGantt HTML and CSS only</title></head>
<body>
<!-- content goes here -->
<TABLE width="100%" cellpadding="0" cellspacing="0" style="position:absolute; top:0; left:0;">
<TBODY><TR>
<TD bgcolor="#298eff" style="height:3px;"></TD></TR>
<TR>
<TD bgcolor="#0061ce" style="padding-top:5px; padding-bottom:5px;"><FONT face="Arial,Helvetica" size="5" color="#FFFFFF"><I><STRONG>&nbsp;&nbsp;jsGantt - 1.2</STRONG></I></FONT></TD>
</TR>
<TR><TD bgcolor="#CFCFCF" style="height:3px;"></TD></TR>
<TR>
<TD bgcolor="#ffffff" style="color:#444444; text-decoration:none;"><FONT face="Arial,Helvetica" size="3" color="#FFFFFF"><I><STRONG>&nbsp;&nbsp;<a href="#tBugs">Bugs/Issues</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tDownload">Download</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tLicense">License</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tUsage">Usage</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tExamples">Examples</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.jsgantt.com/docs/index.html">Documenation</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tSubscribe">Subscribe</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tCredits">Credits</a> </STRONG></I></FONT></TD>
</TR>
<TR><TD bgcolor="#FFFFFF" style="height:2px;"></TD></TR>
<TR><TD bgcolor="#CFCFCF" style="height:1px;"></TD></TR>
</TBODY>
</TABLE>
<BR><BR>
<BR>
<BR>
<FONT face="Arial,Helvetica" size="3">&nbsp;&nbsp;100% Free Javascript / CSS/ HTML Gantt chart control. Completely buzzword compliant including AJAX !</FONT><BR><BR>
<div style="position:relative" class="gantt" id="GanttChartDIV"></div>
<script>
// here's all the html code neccessary to display the chart object
// Future idea would be to allow XML file name to be passed in and chart tasks built from file.
var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day');
g.setShowRes(1); // Show/Hide Responsible (0/1)
g.setShowDur(1); // Show/Hide Duration (0/1)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setCaptionType('Resource'); // Set to Show Caption (None,Caption,Resource,Duration,Complete)
//var gr = new Graphics();
if( g ) {
// Parameters (pID, pName, pStart, pEnd, pColor, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption)
// You can also use the XML file parser JSGantt.parseXML('project.xml',g)
g.AddTaskItem(new JSGantt.TaskItem(1, 'Define Chart API', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1));
g.AddTaskItem(new JSGantt.TaskItem(11, 'Chart Object', '7/20/2008', '7/20/2008', 'ff00ff', 'http://www.yahoo.com', 1, 'Shlomy', 100, 0, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(12, 'Task Objects', '', '', '00ff00', '', 0, 'Shlomy', 40, 1, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(121, 'Constructor Proc', '7/21/2008', '8/9/2008', '00ffff', 'http://www.yahoo.com', 0, 'Brian T.', 60, 0, 12, 1));
g.AddTaskItem(new JSGantt.TaskItem(122, 'Task Variables', '8/6/2008', '8/11/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 12, 1,121));
g.AddTaskItem(new JSGantt.TaskItem(123, 'Task by Minute/Hour', '8/6/2008', '8/11/2008 12:00', 'ffff00', 'http://help.com', 0, 'Ilan', 60, 0, 12, 1,121));
g.AddTaskItem(new JSGantt.TaskItem(124, 'Task Functions', '8/9/2008', '8/29/2008', 'ff0000', 'http://help.com', 0, 'Anyone', 60, 0, 12, 1, 0, 'This is another caption'));
g.AddTaskItem(new JSGantt.TaskItem(2, 'Create HTML Shell', '8/24/2008', '8/25/2008', 'ffff00', 'http://help.com', 0, 'Brian', 20, 0, 0, 1,122));
g.AddTaskItem(new JSGantt.TaskItem(3, 'Code Javascript', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1 ));
g.AddTaskItem(new JSGantt.TaskItem(31, 'Define Variables', '7/25/2008', '8/17/2008', 'ff00ff', 'http://help.com', 0, 'Brian', 30, 0, 3, 1, '','Caption 1'));
g.AddTaskItem(new JSGantt.TaskItem(32, 'Calculate Chart Size', '8/15/2008', '8/24/2008', '00ff00', 'http://help.com', 0, 'Shlomy', 40, 0, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(33, 'Draw Taks Items', '', '', '00ff00', 'http://help.com', 0, 'Someone', 40, 1, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(332, 'Task Label Table', '8/6/2008', '8/11/2008', '0000ff', 'http://help.com', 0, 'Brian', 60, 0, 33, 1));
g.AddTaskItem(new JSGantt.TaskItem(333, 'Task Scrolling Grid', '8/9/2008', '8/20/2008', '0000ff', 'http://help.com', 0, 'Brian', 60, 0, 33, 1));
g.AddTaskItem(new JSGantt.TaskItem(34, 'Draw Task Bars', '', '', '990000', 'http://help.com', 0, 'Anybody', 60, 1, 3, 0));
g.AddTaskItem(new JSGantt.TaskItem(341, 'Loop each Task', '8/26/2008', '9/11/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(342, 'Calculate Start/Stop', '9/12/2008', '10/18/2008', 'ff6666', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(343, 'Draw Task Div', '10/13/2008', '10/17/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(344, 'Draw Completion Div', '10/17/2008', '11/04/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1,"342,343"));
g.AddTaskItem(new JSGantt.TaskItem(35, 'Make Updates', '12/17/2008','2/04/2009','f600f6', 'http://help.com', 0, 'Brian', 30, 0, 3, 1));
g.Draw();
g.DrawDependencies();
}
else
{
alert("not defined");
}
</script>
<BR>
<FONT face="Arial,Helvetica" size="3">
<strong>Basic Features</strong><BR>
<ul>
<li>Tasks & Collapsible Task Groups</li>
<li>Multiple Dependencies</li>
<li>Task Completion</li>
<li>Task Color</li>
<li>Milestones</li>
<li>Resources</li>
<li>No images needed</li>
</ul>
<strong>Advanced Features</strong><BR>
</FONT><ul>
<li><font size="3" face="Arial,Helvetica">Dynamic Loading of Tasks</font></li>
<li><font size="3" face="Arial,Helvetica">Dynamic change of format </font>
<ul>
<li>Day</li>
<li>Week</li>
<li>Month</li>
<li>Quarter</li>
<li>Hour</li>
<li>Minute</li>
</ul>
</li>
<li><font size="3" face="Arial,Helvetica">Load Gantt from XML file</font></li>
</ul>
<FONT face="Arial,Helvetica" size="3"><BR>
</FONT>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg">
<a name="tBugs" />
<table width="50%" >
<tr><td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;BUGS/ISSUES</b></i></font>
</td></tr></table>
</div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<br>
Current Issues:
<ol>
<li>Currently only one gantt chart is allowed per page. </li>
</ol><br>
New in 1.2:
<ul>
<li>Support for half-days</li>
<li>Hour/Minute format</li>
</ul>
<BR>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"> <a name="tDownload" />
<table width="50%"><tr><td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;DOWNLOAD</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<a href="http://www.jsgantt.com/zip/">Click here to download the jsgantt</a> <br>
You can download the latest bleeding edge version, request features and report issues at <a href="http://code.google.com/p/jsgantt/">http://code.google.com/p/jsgantt/</a>
<br><br>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tLicense" />
<table width="50%"><tr><td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;LICENSE</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
JSGantt is released under BSD license. If you require another license please contact <a href="mailto:shlomygantz@hotmail.com">shlomygantz@hotmail.com</a><br>
If you plan to use it in a commercial product please consider donating the first sale to charity.
<br><br>
<textarea cols="80" rows="5">
* Copyright (c) 2008, Shlomy Gantz/BlueBrick Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Shlomy Gantz or BlueBrick Inc. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY SHLOMY GANTZ/BLUEBRICK INC. ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL SHLOMY GANTZ/BLUEBRICK INC. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</textarea><br><br>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tUsage" />
<table width="50%"><tr>
<td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;USAGE</b></i></font>
</td>
</tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>1. Include JSGantt CSS and Javascript</p>
<pre class="style1">
&lt;link rel="stylesheet" type="text/css" href="jsgantt.css" /&gt;
&lt;script language="javascript" src="jsgantt.js"&gt;&lt;/script&gt;
</pre>
<p>2. Create a div element to hold the gantt chart</p>
<pre class="style1">&lt;div style="position:relative" class="gantt" id="GanttChartDIV"&gt;&lt;/div&gt;</pre>
<p>3. Start a &lt;script&gt; block</p>
<pre class="style1">&lt;script language="javascript"&gt;</pre>
<p>4. Instantiate JSGantt using GanttChart()</p>
<pre class="style1">var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day');
</pre>
<p>GanttChart(<em>pGanttVar, pDiv, pFormat</em>)<br>
<em>pGanttVar</em>: (required) name of the variable assigned<br>
<em>pDiv</em>: (required) this is a DIV object created in HTML<br>
<em>pFormat</em>: (required) - used to indicate whether chart should be drawn in "day", "week", "month", or "quarter" format</p>
<p>Customize the look and feel using the following setters<br><br>
<pre class="style1">g.setShowRes(1); // Show/Hide Responsible (0/1)
g.setShowDur(1); // Show/Hide Duration (0/1)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setCaptionType('Resource'); // Set to Show Caption (None,Caption,Resource,Duration,Complete)
g.setShowStartDate(1); // Show/Hide Start Date(0/1)
g.setShowEndDate(1); // Show/Hide End Date(0/1)
g.setDateInputFormat('mm/dd/yyyy') // Set format of input dates ('mm/dd/yyyy', 'dd/mm/yyyy', 'yyyy-mm-dd')
g.setDateDisplayFormat('mm/dd/yyyy') // Set format to display dates ('mm/dd/yyyy', 'dd/mm/yyyy', 'yyyy-mm-dd')
g.setFormatArr("day","week","month","quarter") // Set format options (up to 4 : "minute","hour","day","week","month","quarter")
</pre>
</p>
<p>5. Add Tasks using AddTaskItem()</p>
<pre class="style1">
g.AddTaskItem(new JSGantt.TaskItem(1, 'Define Chart API', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1));
g.AddTaskItem(new JSGantt.TaskItem(11, 'Chart Object', '2/10/2008', '2/10/2008', 'ff00ff', 'http://www.yahoo.com', 1, 'Shlomy', 100, 0, 1, 1, "121,122", "My Caption"));
</pre>
TaskItem(<em>pID, pName, pStart, pEnd, pColor, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend</em>)<br>
<em>pID</em>: (required) is a unique ID used to identify each row for parent functions and for setting dom id for hiding/showing<br>
<em>pName</em>: (required) is the task Label<br>
<em>pStart</em>: (required) the task start date, can enter empty date ('') for groups. You can also enter specific time (2/10/2008 12:00) for additional percision or half days.<br>
<em>pEnd</em>: (required) the task end date, can enter empty date ('') for groups<br>
<em>pColor</em>: (required) the html color for this task; e.g. '00ff00'<br>
<em>pLink</em>: (optional) any http link navigated to when task bar is clicked.<br>
<em>pMile</em>:(optional) represent a milestone<br>
<em>pRes</em>: (optional) resource name<br>
<em>pComp</em>: (required) completion percent<br>
<em>pGroup</em>: (optional) indicates whether this is a group(parent) - 0=NOT Parent; 1=IS Parent<br>
<em>pParent</em>: (required) identifies a parent pID, this causes this task to be a child of identified task<br>
<em>pOpen</em>: can be initially set to close folder when chart is first drawn<br>
<em>pDepend</em>: optional list of id's this task is dependent on ... line drawn from dependent to this item<br>
<em>pCaption</em>: optional caption that will be added after task bar if CaptionType set to "Caption"<br>
*You should be able to add items to the chart in realtime via javascript and issuing "g.Draw()" command.
<p>5a. Another way to add tasks is to use an external XML file with parseXML()</p>
<pre class="style1">
JSGantt.parseXML("project.xml",g);
</pre>
The structure of the XML file:<br>
<textarea name="textarea" cols="150" rows="10">
<project>
<task>
<pID>10</pID>
<pName>WCF Changes</pName>
<pStart></pStart>
<pEnd></pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes></pRes>
<pComp>0</pComp>
<pGroup>1</pGroup>
<pParent>0</pParent>
<pOpen>1</pOpen>
<pDepend />
</task>
<task>
<pID>20</pID>
<pName>Move to WCF from remoting</pName>
<pStart>8/11/2008</pStart>
<pEnd>8/15/2008</pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Rich</pRes>
<pComp>10</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend></pDepend>
</task>
<task>
<pID>30</pID>
<pName>add Auditing</pName>
<pStart>8/19/2008</pStart>
<pEnd>8/21/2008</pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Mal</pRes>
<pComp>50</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend>20</pDepend>
</task>
</project>
</textarea>
<p>6. Call Draw() and DrawDependencies()</p>
<pre class="style1">
g.Draw();
g.DrawDependencies();
</pre>
<br>
<p>7. Close the &lt;script&gt; block</p>
<pre class="style1">&lt;/script&gt;</pre>
<br><br>
Final code should look like
<textarea name="textarea2" cols="150" rows="20">
&lt;link rel="stylesheet" type="text/css" href="jsgantt.css" /&gt;
&lt;script language="javascript" src="jsgantt.js"&gt;&lt;/script&gt;
&lt;div style="position:relative" class="gantt" id="GanttChartDIV"&gt;&lt;/div&gt;
&lt;script&gt;
var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day');
g.setShowRes(1); // Show/Hide Responsible (0/1)
g.setShowDur(1); // Show/Hide Duration (0/1)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setCaptionType('Resource'); // Set to Show Caption
if( g ) {
g.AddTaskItem(new JSGantt.TaskItem(1, 'Define Chart API', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1));
g.AddTaskItem(new JSGantt.TaskItem(11, 'Chart Object', '2/20/2008', '2/20/2008', 'ff00ff', 'http://www.yahoo.com', 1, 'Shlomy', 100, 0, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(12, 'Task Objects', '', '', '00ff00', '', 0, 'Shlomy', 40, 1, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(121, 'Constructor Proc', '2/21/2008', '3/9/2008', '00ffff', 'http://www.yahoo.com', 0, 'Brian T.', 60, 0, 12, 1));
g.AddTaskItem(new JSGantt.TaskItem(122, 'Task Variables', '3/6/2008', '3/11/2008', 'ff0000', 'http://help.com', 0, '', 60, 0, 12, 1,121));
g.AddTaskItem(new JSGantt.TaskItem(123, 'Task Functions', '3/9/2008', '3/29/2008', 'ff0000', 'http://help.com', 0, 'Anyone', 60, 0, 12, 1, 0, 'This is another caption'));
g.AddTaskItem(new JSGantt.TaskItem(2, 'Create HTML Shell', '3/24/2008', '3/25/2008', 'ffff00', 'http://help.com', 0, 'Brian', 20, 0, 0, 1,122));
g.AddTaskItem(new JSGantt.TaskItem(3, 'Code Javascript', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1 ));
g.AddTaskItem(new JSGantt.TaskItem(31, 'Define Variables', '2/25/2008', '3/17/2008', 'ff00ff', 'http://help.com', 0, 'Brian', 30, 0, 3, 1, ,'Caption 1'));
g.AddTaskItem(new JSGantt.TaskItem(32, 'Calculate Chart Size', '3/15/2008', '3/24/2008', '00ff00', 'http://help.com', 0, 'Shlomy', 40, 0, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(33, 'Draw Taks Items', '', '', '00ff00', 'http://help.com', 0, 'Someone', 40, 1, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(332, 'Task Label Table', '3/6/2008', '3/11/2008', '0000ff', 'http://help.com', 0, 'Brian', 60, 0, 33, 1));
g.AddTaskItem(new JSGantt.TaskItem(333, 'Task Scrolling Grid', '3/9/2008', '3/20/2008', '0000ff', 'http://help.com', 0, 'Brian', 60, 0, 33, 1));
g.AddTaskItem(new JSGantt.TaskItem(34, 'Draw Task Bars', '', '', '990000', 'http://help.com', 0, 'Anybody', 60, 1, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(341, 'Loop each Task', '3/26/2008', '4/11/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1, "332,333"));
g.AddTaskItem(new JSGantt.TaskItem(342, 'Calculate Start/Stop', '4/12/2008', '5/18/2008', 'ff6666', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(343, 'Draw Task Div', '5/13/2008', '5/17/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(344, 'Draw Completion Div', '5/17/2008', '6/04/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(35, 'Make Updates', '10/17/2008','12/04/2008','f600f6', 'http://help.com', 0, 'Brian', 30, 0, 3, 1));
g.Draw();
g.DrawDependencies();
}
else
{
alert("not defined");
}
&lt;/script&gt;
</textarea>
</p>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tExamples"/>
<table width="50%">
<tr><td><font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;ADDITIONAL DEMOS</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>
<ul>
<li><a href="index.htm">jsGantt</a></li>
<li><a href="jsgantt_exExternalXML.html">jsGantt with external XML file</a></li>
<li><a href="jsgantt_Minutes.html">jsGantt by minutes</a></li>
</ul>
</p>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tSubscribe"/>
<table width="50%">
<tr><td><font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;SUBSCRIBE</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>
Enter your email address to receive JSGantt announcements<br />
<form action="http://www.jsgantt.com/subscribe/?subsribe" method="post">
<input type="text" name="email" size="20" />
<input type="submit" value="Subscribe" />
</form><br />
</p>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tCredits"/>
<table width="50%">
<tr><td><font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;CREDITS</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>Developed by Shlomy Gantz and Brian Twidt<br>
Contributed: Paul Labuschagne, Kevin Badgett, Ilan Admon<br>
</p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* Sample CSS for jsGanttImproved v1.7.3 */
div.gantt { font-family:tahoma, arial, verdana, Sans-serif; font-size:10px; color: #2F2F2F; }
/* Sample CSS for jsGanttImproved v1.7.5.4 */
div.gantt { font-family:tahoma, arial, verdana, Sans-serif; font-size:10px; color: #656565; }
.gantt table { border-collapse: collapse; }
.gantt td { padding: 0px; }
@ -42,7 +42,7 @@ td.gspanning { border-left: none; border-right: none; }
.genddate { text-align: center; min-width: 70px; max-width: 70px; width: 70px; font-size: 10px; }
.gtaskheading { text-align: center; }
.gtaskname div, /* needed for IE8 */
.gtaskname { min-width: 170px; max-width: 170px; width: 170px;/* font-size: 9px;*/ border-left: none; }
.gtaskname { min-width: 170px; max-width: 170px; width: 170px; font-size: 9px; border-left: none; }
.gselector { text-align: left; white-space: nowrap; min-width: 170px; max-width: 170px; width: 170px; }
@ -62,7 +62,7 @@ span.gfoldercollapse { color:#000000; cursor:pointer; font-weight:bold; font-si
.glineitem { background-color: #ffffff; }
/* highlight row (applied to row) */
.gitemhighlight td { background-image: none; background-color: #fffaaa;}
.gitemhighlight td { background-image: none; background-color: #fffde5;}
/* task bar caption text styles */
.gmilecaption,
@ -98,34 +98,34 @@ span.gfoldercollapse { color:#000000; cursor:pointer; font-weight:bold; font-si
.ggroupblackendpointright { overflow: hidden; width:0px; height:0px; top: 2px; border-top: 4px solid black; border-left: 4px solid transparent; border-bottom: 4px solid transparent; border-right: 4px solid transparent; float: right; }
.ggroupblackcomplete { float:left; overflow: hidden; height:3px; filter: alpha(opacity=80); opacity:0.8; background-color:#777777; margin-top:2px; margin-bottom: 2px; }
.gtaskblue {
background: rgb(58,132,195); /* Old browsers */
background: linear-gradient(to bottom, rgba(58,132,195,1) 0%,rgba(65,154,214,1) 20%,rgba(75,184,240,1) 40%,rgba(58,139,194,1) 70%,rgba(38,85,139,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4bb8f0', endColorstr='#3a84c3',GradientType=0 ); /* IE6-9 */
background: rgb(58,132,195); /* Old browsers */
background: linear-gradient(to bottom, rgba(58,132,195,1) 0%,rgba(65,154,214,1) 20%,rgba(75,184,240,1) 40%,rgba(58,139,194,1) 70%,rgba(38,85,139,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4bb8f0', endColorstr='#3a84c3',GradientType=0 ); /* IE6-9 */
}
.gtaskred {
background: rgb(196,58,58); /* Old browsers */
background: linear-gradient(to bottom, rgba(196,58,58,1) 0%,rgba(211,65,65,1) 20%,rgba(239,76,76,1) 40%,rgba(196,58,58,1) 70%,rgba(135,37,37,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ef4c4c', endColorstr='#c43a3a',GradientType=0 ); /* IE6-9 */
background: rgb(196,58,58); /* Old browsers */
background: linear-gradient(to bottom, rgba(196,58,58,1) 0%,rgba(211,65,65,1) 20%,rgba(239,76,76,1) 40%,rgba(196,58,58,1) 70%,rgba(135,37,37,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ef4c4c', endColorstr='#c43a3a',GradientType=0 ); /* IE6-9 */
}
.gtaskgreen {
background: rgb(80,193,58); /* Old browsers */
background: linear-gradient(to bottom, rgba(80,193,58,1) 0%,rgba(88,209,64,1) 20%,rgba(102,237,75,1) 40%,rgba(80,193,58,1) 70%,rgba(53,132,37,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66ED4B', endColorstr='#50c13a',GradientType=0 ); /* IE6-9 */
background: rgb(80,193,58); /* Old browsers */
background: linear-gradient(to bottom, rgba(80,193,58,1) 0%,rgba(88,209,64,1) 20%,rgba(102,237,75,1) 40%,rgba(80,193,58,1) 70%,rgba(53,132,37,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66ED4B', endColorstr='#50c13a',GradientType=0 ); /* IE6-9 */
}
.gtaskyellow {
background: rgb(247,228,56); /* Old browsers */
background: linear-gradient(to bottom, rgba(247,228,56,1) 0%,rgba(239,239,55,1) 20%,rgba(255,255,58,1) 40%,rgba(242,236,55,1) 70%,rgba(241,218,54,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffff3a', endColorstr='#f7e438',GradientType=0 ); /* IE6-9 */
background: rgb(247,228,56); /* Old browsers */
background: linear-gradient(to bottom, rgba(247,228,56,1) 0%,rgba(239,239,55,1) 20%,rgba(255,255,58,1) 40%,rgba(242,236,55,1) 70%,rgba(241,218,54,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffff3a', endColorstr='#f7e438',GradientType=0 ); /* IE6-9 */
}
.gtaskpurple {
background: rgb(193,58,193); /* Old browsers */
background: linear-gradient(to bottom, rgba(193,58,193,1) 0%,rgba(211,65,211,1) 20%,rgba(239,76,239,1) 40%,rgba(193,58,193,1) 70%,rgba(137,38,137,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ef4cef', endColorstr='#892689',GradientType=0 ); /* IE6-9 */
background: rgb(193,58,193); /* Old browsers */
background: linear-gradient(to bottom, rgba(193,58,193,1) 0%,rgba(211,65,211,1) 20%,rgba(239,76,239,1) 40%,rgba(193,58,193,1) 70%,rgba(137,38,137,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ef4cef', endColorstr='#892689',GradientType=0 ); /* IE6-9 */
}
.gtaskpink {
background: rgb(249,177,245); /* Old browsers */
background: linear-gradient(to bottom, rgba(249,177,245,1) 0%,rgba(247,192,243,1) 20%,rgba(247,202,244,1) 40%,rgba(249,192,246,1) 70%,rgba(252,174,247,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7caf4', endColorstr='#fcaef7',GradientType=0 ); /* IE6-9 */
background: rgb(249,177,245); /* Old browsers */
background: linear-gradient(to bottom, rgba(249,177,245,1) 0%,rgba(247,192,243,1) 20%,rgba(247,202,244,1) 40%,rgba(249,192,246,1) 70%,rgba(252,174,247,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7caf4', endColorstr='#fcaef7',GradientType=0 ); /* IE6-9 */
}
.gtaskbluecomplete,
.gtaskredcomplete,
@ -137,21 +137,21 @@ span.gfoldercollapse { color:#000000; cursor:pointer; font-weight:bold; font-si
/* Printer friendly styles - we could use these all the time but they are not as pretty! */
/* note that "@media print" is not supported in IE6 or 7. Fully patched IE8 should be OK */
@media print {
.ggroupblack { height:0px; border-top: 7px solid; border-color: #000000; }
.gtaskblue { height:0px; border-top: 13px solid; border-color: rgb(58,132,195); }
.gtaskred { height:0px; border-top: 13px solid; border-color: rgb(196,58,58); }
.gtaskgreen { height:0px; border-top: 13px solid; border-color: rgb(80,193,58); }
.gtaskyellow { height:0px; border-top: 13px solid; border-color: rgb(247,228,56); }
.gtaskpurple { height:0px; border-top: 13px solid; border-color: rgb(193,58,193); }
.gtaskpink { height:0px; border-top: 13px solid; border-color: rgb(249,177,245); }
.ggroupblack { height:0px; border-top: 7px solid; border-color: #000000; }
.gtaskblue { height:0px; border-top: 13px solid; border-color: rgb(58,132,195); }
.gtaskred { height:0px; border-top: 13px solid; border-color: rgb(196,58,58); }
.gtaskgreen { height:0px; border-top: 13px solid; border-color: rgb(80,193,58); }
.gtaskyellow { height:0px; border-top: 13px solid; border-color: rgb(247,228,56); }
.gtaskpurple { height:0px; border-top: 13px solid; border-color: rgb(193,58,193); }
.gtaskpink { height:0px; border-top: 13px solid; border-color: rgb(249,177,245); }
.gtaskbluecomplete,
.gtaskredcomplete,
.gtaskgreencomplete,
.gtaskyellowcomplete,
.gtaskpurplecomplete,
.gtaskpinkcomplete { height:0px; filter: alpha(opacity=40); opacity:0.4; margin-top: -9px; border-top: 5px solid; border-color: #000000; }
.ggroupblackcomplete { height: 0px; filter: alpha(opacity=80); opacity:0.8; margin-top:-5px; border-top:3px solid; border-color:#777777; }
.gtaskbluecomplete,
.gtaskredcomplete,
.gtaskgreencomplete,
.gtaskyellowcomplete,
.gtaskpurplecomplete,
.gtaskpinkcomplete { height:0px; filter: alpha(opacity=40); opacity:0.4; margin-top: -9px; border-top: 5px solid; border-color: #000000; }
.ggroupblackcomplete { height: 0px; filter: alpha(opacity=80); opacity:0.8; margin-top:-5px; border-top:3px solid; border-color:#777777; }
}
/* END Task bar styles */
@ -161,11 +161,11 @@ span.gfoldercollapse { color:#000000; cursor:pointer; font-weight:bold; font-si
.gDepFS,
.gDepSS,
.gDepSF,
.gDepFF { border-color: #26558b; }
.gDepFF { border-color: #ff0000; }
.gDepFSArw,
.gDepSSArw { overflow: hidden; width:0px; height:0px; border-bottom: 4px solid transparent; border-left: 4px solid #26558b; border-top: 4px solid transparent; border-right: 4px solid transparent;}
.gDepSSArw { overflow: hidden; width:0px; height:0px; border-bottom: 4px solid transparent; border-left: 4px solid #ff0000; border-top: 4px solid transparent; border-right: 4px solid transparent;}
.gDepFFArw,
.gDepSFArw { overflow: hidden; width:0px; height:0px; border-bottom: 4px solid transparent; border-left: 4px solid transparent; border-top: 4px solid transparent; border-right: 4px solid #26558b;}
.gDepSFArw { overflow: hidden; width:0px; height:0px; border-bottom: 4px solid transparent; border-left: 4px solid transparent; border-top: 4px solid transparent; border-right: 4px solid #ff0000;}
.gCurDate { border-color: #0000ff; }
@ -180,29 +180,30 @@ div.gtaskbarcontainer { z-index: 1; position: absolute; top: 0px }
.gTaskNotes {font-size: 11px; font-weight: normal; color: #323232; padding: 0 15px; display: block;}
.gTIn {padding-top: 10px;}
.gantt { min-width: 1064px; /* 2x LC width */ }
.gchartcontainer { padding-left: 532px; /* LC width */ }
.gcontainercol { position: relative; float: left; } /* Add a max-height value here if wanted */
.glistgrid { width: 532px; /* LC width */ margin-left: -100%; right: 532px; /* LC width */ padding-right: 0px; padding-left: 0px; padding-bottom: 0px; padding-top: 0px; background-color: #ffffff; overflow: hidden; }
.glistlbl { width: 532px; /* LC width */ margin-left: -100%; right: 532px; /* LC width */ padding-right: 0px; padding-left: 0px; padding-bottom: 0px; padding-top: 0px; background-color: #ffffff; overflow: hidden; }
.gantt { min-width: 632px; /* 2x LC width */ }
.gchartcontainer { /* padding-left: 532px; LC width */ line-height: 1; /* Overrides inherited CSS (e.g. from Bootstrap) */ }
.gcontainercol { position: relative; } /* Add a max-height value here if wanted */
.glistgrid { width: 532px; /* LC width */ float: left; /* LC width */ padding-right: 0px; padding-left: 0px; padding-bottom: 0px; padding-top: 0px; background-color: #ffffff; overflow: hidden; }
.glistlbl { width: 532px; /* LC width */ float: left; /* LC width */ padding-right: 0px; padding-left: 0px; padding-bottom: 0px; padding-top: 0px; background-color: #ffffff; overflow: hidden; }
.glabelfooter { clear: both; }
.ggridfooter { clear: both; }
/*.rhscrpad { width: 150px; position: absolute; top: 0px; height: 1px; }*/
.rhscrpad { width: 150px; position: absolute; top: 0px; height: 1px; }
.gchartgrid { width: 100%; padding-right: 0px; padding-left: 0px; padding-bottom: 0px; padding-top: 0px; background-color: #ffffff; position: relative; overflow: auto; min-height: 0%; }
.gchartlbl { width: 100%; padding-right: 0px; padding-left: 0px; padding-bottom: 0px; padding-top: 0px; background-color: #ffffff; position: relative; overflow: hidden; }
.gchartgrid { padding-right: 0px; padding-left: 0px; padding-bottom: 0px; padding-top: 0px; background-color: #ffffff; position: relative; overflow: auto; min-height: 0%; }
.gchartlbl { padding-right: 0px; padding-left: 0px; padding-bottom: 0px; padding-top: 0px; background-color: #ffffff; position: relative; overflow: hidden; }
/* Old Internet Explorer version hacks */
.gantt { _height: 100% } /* otherwise the chart disappears! */
div .gantt { _width: 1064px; } /* ie6 fixed width */
div .gantt { /* _width: 1064px; ie6 fixed width */ }
div.gchartlbl,
div.gchartgrid { _width: 532px; } /* ie6 fixed width */
div.gchartgrid {/* _width: 532px; */} /* ie6 fixed width */
div.glistlbl,
div.glistgrid {
*right: 0px; /* ie7 pulls the content too far left with the negative margin */
_right: 532px; /* but ie6 fixed width needs this */
_margin-left: -532px; /* ie6 fixed width */
*right: 0px; /* ie7 pulls the content too far left with the negative margin */
_right: 532px; /* but ie6 fixed width needs this */
_margin-left: -532px; /* ie6 fixed width */
float: left;
}
div.gchartgrid { *padding-bottom: 20px; *overflow-y: hidden; } /* variable height design, no need for vertical scroll */
td.gmajorheading div { *overflow: hidden; } /* stops resizing fixed width columns if the text is too wide */

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,548 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>
<head>
<link rel="stylesheet" type="text/css" href="jsgantt.css"/>
<script language="javascript" src="jsgantt.js"></script>
<script language="javascript" src="graphics.js"></script>
<style type="text/css">
<!--
.style1 {color: #0000FF}
.roundedCorner{display:block}
.roundedCorner *{
display:block;
height:1px;
overflow:hidden;
font-size:.01em;
background:#0061ce}
.roundedCorner1{
margin-left:3px;
margin-right:3px;
padding-left:1px;
padding-right:1px;
border-left:1px solid #91bbe9;
border-right:1px solid #91bbe9;
background:#3f88da}
.roundedCorner2{
margin-left:1px;
margin-right:1px;
padding-right:1px;
padding-left:1px;
border-left:1px solid #e5effa;
border-right:1px solid #e5effa;
background:#307fd7}
.roundedCorner3{
margin-left:1px;
margin-right:1px;
border-left:1px solid #307fd7;
border-right:1px solid #307fd7;}
.roundedCorner4{
border-left:1px solid #91bbe9;
border-right:1px solid #91bbe9}
.roundedCorner5{
border-left:1px solid #3f88da;
border-right:1px solid #3f88da}
.roundedCornerfg{
background:#0061ce;}
-->
</style>
<title>FREE javascript gantt - JSGantt HTML and CSS only</title></head>
<body>
<!-- content goes here -->
<TABLE width="100%" cellpadding="0" cellspacing="0" style="position:absolute; top:0; left:0;">
<TBODY><TR>
<TD bgcolor="#298eff" style="height:3px;"></TD></TR>
<TR>
<TD bgcolor="#0061ce" style="padding-top:5px; padding-bottom:5px;"><FONT face="Arial,Helvetica" size="5" color="#FFFFFF"><I><STRONG>&nbsp;&nbsp;jsGantt - 1.2</STRONG></I></FONT></TD>
</TR>
<TR><TD bgcolor="#CFCFCF" style="height:3px;"></TD></TR>
<TR>
<TD bgcolor="#ffffff" style="color:#444444; text-decoration:none;"><FONT face="Arial,Helvetica" size="3" color="#FFFFFF"><I><STRONG>&nbsp;&nbsp;<a href="#tBugs">Bugs/Issues</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tDownload">Download</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tLicense">License</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tUsage">Usage</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tExamples">Examples</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.jsgantt.com/docs/index.html">Documenation</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tSubscribe">Subscribe</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tCredits">Credits</a> </STRONG></I></FONT></TD>
</TR>
<TR><TD bgcolor="#FFFFFF" style="height:2px;"></TD></TR>
<TR><TD bgcolor="#CFCFCF" style="height:1px;"></TD></TR>
</TBODY>
</TABLE>
<BR><BR>
<BR>
<BR>
<FONT face="Arial,Helvetica" size="3">&nbsp;&nbsp;100% Free Javascript / CSS/ HTML Gantt chart control. Completely buzzword compliant including AJAX !</FONT><BR><BR>
<div style="position:relative" class="gantt" id="GanttChartDIV"></div>
<script>
// here's all the html code neccessary to display the chart object
// Future idea would be to allow XML file name to be passed in and chart tasks built from file.
var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'hour');
g.setShowRes(1); // Show/Hide Responsible (0/1)
g.setShowDur(1); // Show/Hide Duration (0/1)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setCaptionType('Resource'); // Set to Show Caption (None,Caption,Resource,Duration,Complete)
g.setFormatArr("hours","minutes")
//var gr = new Graphics();
if( g ) {
// Parameters (pID, pName, pStart, pEnd, pColor, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen)
// You can also use the XML file parser JSGantt.parseXML('project.xml',g)
g.AddTaskItem(new JSGantt.TaskItem(1, 'Add minutes/hours', '', '', 'ff0000', 'http://help.com', 0, 'Ilan', 0, 1, 0, 1));
g.AddTaskItem(new JSGantt.TaskItem(11, 'Add support for half days', '5/14/2009 14:00', '5/14/2009 15:30', 'ff00ff', 'http://www.jsgantt.com', 0, 'Ilan', 100, 0, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(12, 'Add minute view', '5/14/2009 16:00', '5/14/2009 17:00', '00ff00', '', 0, 'Ilan', 40, 0, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(13, 'Add hours view', '5/14/2009 16:00', '5/14/2009 17:00', '00ffff', 'http://www.yahoo.com', 0, 'Ilan', 60, 0, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(14, 'Add support for format options', '5/14/2009 18:00', '5/14/2009 19:00', '00ffff', 'http://www.yahoo.com', 0, 'Shlomy', 60, 0, 14, 1));
g.Draw();
g.DrawDependencies();
}
else
{
alert("not defined");
}
</script>
<BR>
<FONT face="Arial,Helvetica" size="3">
<strong>Basic Features</strong><BR>
<ul>
<li>Tasks & Collapsible Task Groups</li>
<li>Multiple Dependencies</li>
<li>Task Completion</li>
<li>Task Color</li>
<li>Milestones</li>
<li>Resources</li>
<li>No images needed</li>
</ul>
<strong>Advanced Features</strong><BR>
</FONT><ul>
<li><font size="3" face="Arial,Helvetica">Dynamic Loading of Tasks</font></li>
<li><font size="3" face="Arial,Helvetica">Dynamic change of format </font>
<ul>
<li>Day</li>
<li>Week</li>
<li>Month</li>
<li>Quarter</li>
<li>Hour</li>
<li>Minute</li>
</ul>
</li>
<li><font size="3" face="Arial,Helvetica">Load Gantt from XML file</font></li>
</ul>
<FONT face="Arial,Helvetica" size="3"><BR>
</FONT>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg">
<a name="tBugs" />
<table width="50%" >
<tr><td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;BUGS/ISSUES</b></i></font>
</td></tr></table>
</div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<br>
Current Issues:
<ol>
<li>Currently only one gantt chart is allowed per page. </li>
</ol><br>
New in 1.2:
<ul>
<li>Support for half-days</li>
<li>Hour/Minute format</li>
</ul>
<BR>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"> <a name="tDownload" />
<table width="50%"><tr><td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;DOWNLOAD</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<a href="http://www.jsgantt.com/zip/">Click here to download the jsgantt</a> <br>
You can download the latest bleeding edge version, request features and report issues at <a href="http://code.google.com/p/jsgantt/">http://code.google.com/p/jsgantt/</a>
<br><br>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tLicense" />
<table width="50%"><tr><td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;LICENSE</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
JSGantt is released under BSD license. If you require another license please contact <a href="mailto:shlomygantz@hotmail.com">shlomygantz@hotmail.com</a><br>
If you plan to use it in a commercial product please consider donating the first sale to charity.
<br><br>
<textarea cols="80" rows="5">
* Copyright (c) 2008, Shlomy Gantz/BlueBrick Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Shlomy Gantz or BlueBrick Inc. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY SHLOMY GANTZ/BLUEBRICK INC. ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL SHLOMY GANTZ/BLUEBRICK INC. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</textarea><br><br>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tUsage" />
<table width="50%"><tr>
<td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;USAGE</b></i></font>
</td>
</tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>1. Include JSGantt CSS and Javascript</p>
<pre class="style1">
&lt;link rel="stylesheet" type="text/css" href="jsgantt.css" /&gt;
&lt;script language="javascript" src="jsgantt.js"&gt;&lt;/script&gt;
</pre>
<p>2. Create a div element to hold the gantt chart</p>
<pre class="style1">&lt;div style="position:relative" class="gantt" id="GanttChartDIV"&gt;&lt;/div&gt;</pre>
<p>3. Start a &lt;script&gt; block</p>
<pre class="style1">&lt;script language="javascript"&gt;</pre>
<p>4. Instantiate JSGantt using GanttChart()</p>
<pre class="style1">var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day');
</pre>
<p>GanttChart(<em>pGanttVar, pDiv, pFormat</em>)<br>
<em>pGanttVar</em>: (required) name of the variable assigned<br>
<em>pDiv</em>: (required) this is a DIV object created in HTML<br>
<em>pFormat</em>: (required) - used to indicate whether chart should be drawn in "day", "week", "month", or "quarter" format</p>
<p>Customize the look and feel using the following setters<br><br>
<pre class="style1">g.setShowRes(1); // Show/Hide Responsible (0/1)
g.setShowDur(1); // Show/Hide Duration (0/1)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setCaptionType('Resource'); // Set to Show Caption (None,Caption,Resource,Duration,Complete)
g.setShowStartDate(1); // Show/Hide Start Date(0/1)
g.setShowEndDate(1); // Show/Hide End Date(0/1)
g.setDateInputFormat('mm/dd/yyyy') // Set format of input dates ('mm/dd/yyyy', 'dd/mm/yyyy', 'yyyy-mm-dd')
g.setDateDisplayFormat('mm/dd/yyyy') // Set format to display dates ('mm/dd/yyyy', 'dd/mm/yyyy', 'yyyy-mm-dd')
g.setFormatArr("day","week","month","quarter") // Set format options (up to 4 : "minute","hour","day","week","month","quarter")
</pre>
</p>
<p>5. Add Tasks using AddTaskItem()</p>
<pre class="style1">
g.AddTaskItem(new JSGantt.TaskItem(1, 'Define Chart API', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1));
g.AddTaskItem(new JSGantt.TaskItem(11, 'Chart Object', '2/10/2008', '2/10/2008', 'ff00ff', 'http://www.yahoo.com', 1, 'Shlomy', 100, 0, 1, 1, "121,122", "My Caption"));
</pre>
TaskItem(<em>pID, pName, pStart, pEnd, pColor, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend</em>)<br>
<em>pID</em>: (required) is a unique ID used to identify each row for parent functions and for setting dom id for hiding/showing<br>
<em>pName</em>: (required) is the task Label<br>
<em>pStart</em>: (required) the task start date, can enter empty date ('') for groups. You can also enter specific time (2/10/2008 12:00) for additional percision or half days.<br>
<em>pEnd</em>: (required) the task end date, can enter empty date ('') for groups<br>
<em>pColor</em>: (required) the html color for this task; e.g. '00ff00'<br>
<em>pLink</em>: (optional) any http link navigated to when task bar is clicked.<br>
<em>pMile</em>:(optional) represent a milestone<br>
<em>pRes</em>: (optional) resource name<br>
<em>pComp</em>: (required) completion percent<br>
<em>pGroup</em>: (optional) indicates whether this is a group(parent) - 0=NOT Parent; 1=IS Parent<br>
<em>pParent</em>: (required) identifies a parent pID, this causes this task to be a child of identified task<br>
<em>pOpen</em>: can be initially set to close folder when chart is first drawn<br>
<em>pDepend</em>: optional list of id's this task is dependent on ... line drawn from dependent to this item<br>
<em>pCaption</em>: optional caption that will be added after task bar if CaptionType set to "Caption"<br>
*You should be able to add items to the chart in realtime via javascript and issuing "g.Draw()" command.
<p>5a. Another way to add tasks is to use an external XML file with parseXML()</p>
<pre class="style1">
JSGantt.parseXML("project.xml",g);
</pre>
The structure of the XML file:<br>
<textarea name="textarea" cols="150" rows="10">
<project>
<task>
<pID>10</pID>
<pName>WCF Changes</pName>
<pStart></pStart>
<pEnd></pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes></pRes>
<pComp>0</pComp>
<pGroup>1</pGroup>
<pParent>0</pParent>
<pOpen>1</pOpen>
<pDepend />
</task>
<task>
<pID>20</pID>
<pName>Move to WCF from remoting</pName>
<pStart>8/11/2008</pStart>
<pEnd>8/15/2008</pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Rich</pRes>
<pComp>10</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend></pDepend>
</task>
<task>
<pID>30</pID>
<pName>add Auditing</pName>
<pStart>8/19/2008</pStart>
<pEnd>8/21/2008</pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Mal</pRes>
<pComp>50</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend>20</pDepend>
</task>
</project>
</textarea>
<p>6. Call Draw() and DrawDependencies()</p>
<pre class="style1">
g.Draw();
g.DrawDependencies();
</pre>
<br>
<p>7. Close the &lt;script&gt; block</p>
<pre class="style1">&lt;/script&gt;</pre>
<br><br>
Final code should look like
<textarea name="textarea2" cols="150" rows="20">
&lt;link rel="stylesheet" type="text/css" href="jsgantt.css" /&gt;
&lt;script language="javascript" src="jsgantt.js"&gt;&lt;/script&gt;
&lt;div style="position:relative" class="gantt" id="GanttChartDIV"&gt;&lt;/div&gt;
&lt;script&gt;
var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day');
g.setShowRes(1); // Show/Hide Responsible (0/1)
g.setShowDur(1); // Show/Hide Duration (0/1)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setCaptionType('Resource'); // Set to Show Caption
if( g ) {
g.AddTaskItem(new JSGantt.TaskItem(1, 'Define Chart API', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1));
g.AddTaskItem(new JSGantt.TaskItem(11, 'Chart Object', '2/20/2008', '2/20/2008', 'ff00ff', 'http://www.yahoo.com', 1, 'Shlomy', 100, 0, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(12, 'Task Objects', '', '', '00ff00', '', 0, 'Shlomy', 40, 1, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(121, 'Constructor Proc', '2/21/2008', '3/9/2008', '00ffff', 'http://www.yahoo.com', 0, 'Brian T.', 60, 0, 12, 1));
g.AddTaskItem(new JSGantt.TaskItem(122, 'Task Variables', '3/6/2008', '3/11/2008', 'ff0000', 'http://help.com', 0, '', 60, 0, 12, 1,121));
g.AddTaskItem(new JSGantt.TaskItem(123, 'Task Functions', '3/9/2008', '3/29/2008', 'ff0000', 'http://help.com', 0, 'Anyone', 60, 0, 12, 1, 0, 'This is another caption'));
g.AddTaskItem(new JSGantt.TaskItem(2, 'Create HTML Shell', '3/24/2008', '3/25/2008', 'ffff00', 'http://help.com', 0, 'Brian', 20, 0, 0, 1,122));
g.AddTaskItem(new JSGantt.TaskItem(3, 'Code Javascript', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1 ));
g.AddTaskItem(new JSGantt.TaskItem(31, 'Define Variables', '2/25/2008', '3/17/2008', 'ff00ff', 'http://help.com', 0, 'Brian', 30, 0, 3, 1, ,'Caption 1'));
g.AddTaskItem(new JSGantt.TaskItem(32, 'Calculate Chart Size', '3/15/2008', '3/24/2008', '00ff00', 'http://help.com', 0, 'Shlomy', 40, 0, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(33, 'Draw Taks Items', '', '', '00ff00', 'http://help.com', 0, 'Someone', 40, 1, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(332, 'Task Label Table', '3/6/2008', '3/11/2008', '0000ff', 'http://help.com', 0, 'Brian', 60, 0, 33, 1));
g.AddTaskItem(new JSGantt.TaskItem(333, 'Task Scrolling Grid', '3/9/2008', '3/20/2008', '0000ff', 'http://help.com', 0, 'Brian', 60, 0, 33, 1));
g.AddTaskItem(new JSGantt.TaskItem(34, 'Draw Task Bars', '', '', '990000', 'http://help.com', 0, 'Anybody', 60, 1, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(341, 'Loop each Task', '3/26/2008', '4/11/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1, "332,333"));
g.AddTaskItem(new JSGantt.TaskItem(342, 'Calculate Start/Stop', '4/12/2008', '5/18/2008', 'ff6666', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(343, 'Draw Task Div', '5/13/2008', '5/17/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(344, 'Draw Completion Div', '5/17/2008', '6/04/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(35, 'Make Updates', '10/17/2008','12/04/2008','f600f6', 'http://help.com', 0, 'Brian', 30, 0, 3, 1));
g.Draw();
g.DrawDependencies();
}
else
{
alert("not defined");
}
&lt;/script&gt;
</textarea>
</p>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tExamples"/>
<table width="50%">
<tr><td><font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;ADDITIONAL DEMOS</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>
<ul>
<li><a href="index.htm">jsGantt</a></li>
<li><a href="jsgantt_exExternalXML.html">jsGantt with external XML file</a></li>
<li><a href="jsgantt_Minutes.html">jsGantt by minutes</a></li>
</ul>
</p>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tSubscribe"/>
<table width="50%">
<tr><td><font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;SUBSCRIBE</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>
Enter your email address to receive JSGantt announcements<br />
<form action="http://www.jsgantt.com/subscribe/?subsribe" method="post">
<input type="text" name="email" size="20" />
<input type="submit" value="Subscribe" />
</form><br />
</p>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tCredits"/>
<table width="50%">
<tr><td><font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;CREDITS</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>Developed by Shlomy Gantz and Brian Twidt<br>
Contributed: Paul Labuschagne, Kevin Badgett, Ilan Admon<br>
</p>
</body>
</html>

View File

@ -1,533 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>
<head>
<link rel="stylesheet" type="text/css" href="jsgantt.css"/>
<script language="javascript" src="jsgantt.js"></script>
<script language="javascript" src="graphics.js"></script>
<style type="text/css">
<!--
.style1 {color: #0000FF}
.roundedCorner{display:block}
.roundedCorner *{
display:block;
height:1px;
overflow:hidden;
font-size:.01em;
background:#0061ce}
.roundedCorner1{
margin-left:3px;
margin-right:3px;
padding-left:1px;
padding-right:1px;
border-left:1px solid #91bbe9;
border-right:1px solid #91bbe9;
background:#3f88da}
.roundedCorner2{
margin-left:1px;
margin-right:1px;
padding-right:1px;
padding-left:1px;
border-left:1px solid #e5effa;
border-right:1px solid #e5effa;
background:#307fd7}
.roundedCorner3{
margin-left:1px;
margin-right:1px;
border-left:1px solid #307fd7;
border-right:1px solid #307fd7;}
.roundedCorner4{
border-left:1px solid #91bbe9;
border-right:1px solid #91bbe9}
.roundedCorner5{
border-left:1px solid #3f88da;
border-right:1px solid #3f88da}
.roundedCornerfg{
background:#0061ce;}
-->
</style>
<title>FREE javascript gantt - JSGantt HTML and CSS only</title></head>
<body>
<!-- content goes here -->
<TABLE width="100%" cellpadding="0" cellspacing="0" style="position:absolute; top:0; left:0;">
<TBODY><TR>
<TD bgcolor="#298eff" style="height:3px;"></TD></TR>
<TR>
<TD bgcolor="#0061ce" style="padding-top:5px; padding-bottom:5px;"><FONT face="Arial,Helvetica" size="5" color="#FFFFFF"><I><STRONG>&nbsp;&nbsp;jsGantt - 1.2</STRONG></I></FONT></TD>
</TR>
<TR><TD bgcolor="#CFCFCF" style="height:3px;"></TD></TR>
<TR>
<TD bgcolor="#ffffff" style="color:#444444; text-decoration:none;"><FONT face="Arial,Helvetica" size="3" color="#FFFFFF"><I><STRONG>&nbsp;&nbsp;<a href="#tBugs">Bugs/Issues</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tDownload">Download</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tLicense">License</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tUsage">Usage</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tExamples">Examples</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.jsgantt.com/docs/index.html">Documenation</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tSubscribe">Subscribe</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#tCredits">Credits</a> </STRONG></I></FONT></TD>
</TR>
<TR><TD bgcolor="#FFFFFF" style="height:2px;"></TD></TR>
<TR><TD bgcolor="#CFCFCF" style="height:1px;"></TD></TR>
</TBODY>
</TABLE>
<BR><BR>
<BR>
<BR>
<FONT face="Arial,Helvetica" size="3">&nbsp;&nbsp;100% Free Javascript / CSS/ HTML Gantt chart control. Completely buzzword compliant including AJAX !</FONT><BR><BR>
<div style="position:relative" class="gantt" id="GanttChartDIV"></div>
<script>
// here's all the html code neccessary to display the chart object
// Future idea would be to allow XML file name to be passed in and chart tasks built from file.
var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day');
g.setShowRes(1); // Show/Hide Responsible (0/1)
g.setShowDur(1); // Show/Hide Duration (0/1)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setCaptionType('Resource'); // Set to Show Caption (None,Caption,Resource,Duration,Complete)
if( g ) {
// Parameters (pID, pName, pStart, pEnd, pColor, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen)
// use the XML file parser
JSGantt.parseXML('project.xml',g)
g.Draw();
g.DrawDependencies();
}
else
{
alert("not defined");
}
</script>
<BR>
<FONT face="Arial,Helvetica" size="3">
<strong>Basic Features</strong><BR>
<ul>
<li>Tasks & Collapsible Task Groups</li>
<li>Multiple Dependencies</li>
<li>Task Completion</li>
<li>Task Color</li>
<li>Milestones</li>
<li>Resources</li>
<li>No images needed</li>
</ul>
<strong>Advanced Features</strong><BR>
</FONT><ul>
<li><font size="3" face="Arial,Helvetica">Dynamic Loading of Tasks</font></li>
<li><font size="3" face="Arial,Helvetica">Dynamic change of format </font>
<ul>
<li>Day</li>
<li>Week</li>
<li>Month</li>
<li>Quarter</li>
<li>Hour</li>
<li>Minute</li>
</ul>
</li>
<li><font size="3" face="Arial,Helvetica">Load Gantt from XML file</font></li>
</ul>
<FONT face="Arial,Helvetica" size="3"><BR>
</FONT>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg">
<a name="tBugs" />
<table width="50%" >
<tr><td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;BUGS/ISSUES</b></i></font>
</td></tr></table>
</div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<br>
Current Issues:
<ol>
<li>Currently only one gantt chart is allowed per page. </li>
</ol><br>
New in 1.2:
<ul>
<li>Support for half-days</li>
<li>Hour/Minute format</li>
</ul>
<BR>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"> <a name="tDownload" />
<table width="50%"><tr><td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;DOWNLOAD</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<a href="http://www.jsgantt.com/zip/">Click here to download the jsgantt</a> <br>
You can download the latest bleeding edge version, request features and report issues at <a href="http://code.google.com/p/jsgantt/">http://code.google.com/p/jsgantt/</a>
<br><br>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tLicense" />
<table width="50%"><tr><td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;LICENSE</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
JSGantt is released under BSD license. If you require another license please contact <a href="mailto:shlomygantz@hotmail.com">shlomygantz@hotmail.com</a><br>
If you plan to use it in a commercial product please consider donating the first sale to charity.
<br><br>
<textarea cols="80" rows="5">
* Copyright (c) 2008, Shlomy Gantz/BlueBrick Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Shlomy Gantz or BlueBrick Inc. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY SHLOMY GANTZ/BLUEBRICK INC. ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL SHLOMY GANTZ/BLUEBRICK INC. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</textarea><br><br>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tUsage" />
<table width="50%"><tr>
<td>
<font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;USAGE</b></i></font>
</td>
</tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>1. Include JSGantt CSS and Javascript</p>
<pre class="style1">
&lt;link rel="stylesheet" type="text/css" href="jsgantt.css" /&gt;
&lt;script language="javascript" src="jsgantt.js"&gt;&lt;/script&gt;
</pre>
<p>2. Create a div element to hold the gantt chart</p>
<pre class="style1">&lt;div style="position:relative" class="gantt" id="GanttChartDIV"&gt;&lt;/div&gt;</pre>
<p>3. Start a &lt;script&gt; block</p>
<pre class="style1">&lt;script language="javascript"&gt;</pre>
<p>4. Instantiate JSGantt using GanttChart()</p>
<pre class="style1">var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day');
</pre>
<p>GanttChart(<em>pGanttVar, pDiv, pFormat</em>)<br>
<em>pGanttVar</em>: (required) name of the variable assigned<br>
<em>pDiv</em>: (required) this is a DIV object created in HTML<br>
<em>pFormat</em>: (required) - used to indicate whether chart should be drawn in "day", "week", "month", or "quarter" format</p>
<p>Customize the look and feel using the following setters<br><br>
<pre class="style1">g.setShowRes(1); // Show/Hide Responsible (0/1)
g.setShowDur(1); // Show/Hide Duration (0/1)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setCaptionType('Resource'); // Set to Show Caption (None,Caption,Resource,Duration,Complete)
g.setShowStartDate(1); // Show/Hide Start Date(0/1)
g.setShowEndDate(1); // Show/Hide End Date(0/1)
g.setDateInputFormat('mm/dd/yyyy') // Set format of input dates ('mm/dd/yyyy', 'dd/mm/yyyy', 'yyyy-mm-dd')
g.setDateDisplayFormat('mm/dd/yyyy') // Set format to display dates ('mm/dd/yyyy', 'dd/mm/yyyy', 'yyyy-mm-dd')
g.setFormatArr("day","week","month","quarter") // Set format options (up to 4 : "minute","hour","day","week","month","quarter")
</pre>
</p>
<p>5. Add Tasks using AddTaskItem()</p>
<pre class="style1">
g.AddTaskItem(new JSGantt.TaskItem(1, 'Define Chart API', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1));
g.AddTaskItem(new JSGantt.TaskItem(11, 'Chart Object', '2/10/2008', '2/10/2008', 'ff00ff', 'http://www.yahoo.com', 1, 'Shlomy', 100, 0, 1, 1, "121,122", "My Caption"));
</pre>
TaskItem(<em>pID, pName, pStart, pEnd, pColor, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend</em>)<br>
<em>pID</em>: (required) is a unique ID used to identify each row for parent functions and for setting dom id for hiding/showing<br>
<em>pName</em>: (required) is the task Label<br>
<em>pStart</em>: (required) the task start date, can enter empty date ('') for groups. You can also enter specific time (2/10/2008 12:00) for additional percision or half days.<br>
<em>pEnd</em>: (required) the task end date, can enter empty date ('') for groups<br>
<em>pColor</em>: (required) the html color for this task; e.g. '00ff00'<br>
<em>pLink</em>: (optional) any http link navigated to when task bar is clicked.<br>
<em>pMile</em>:(optional) represent a milestone<br>
<em>pRes</em>: (optional) resource name<br>
<em>pComp</em>: (required) completion percent<br>
<em>pGroup</em>: (optional) indicates whether this is a group(parent) - 0=NOT Parent; 1=IS Parent<br>
<em>pParent</em>: (required) identifies a parent pID, this causes this task to be a child of identified task<br>
<em>pOpen</em>: can be initially set to close folder when chart is first drawn<br>
<em>pDepend</em>: optional list of id's this task is dependent on ... line drawn from dependent to this item<br>
<em>pCaption</em>: optional caption that will be added after task bar if CaptionType set to "Caption"<br>
*You should be able to add items to the chart in realtime via javascript and issuing "g.Draw()" command.
<p>5a. Another way to add tasks is to use an external XML file with parseXML()</p>
<pre class="style1">
JSGantt.parseXML("project.xml",g);
</pre>
The structure of the XML file:<br>
<textarea name="textarea" cols="150" rows="10">
<project>
<task>
<pID>10</pID>
<pName>WCF Changes</pName>
<pStart></pStart>
<pEnd></pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes></pRes>
<pComp>0</pComp>
<pGroup>1</pGroup>
<pParent>0</pParent>
<pOpen>1</pOpen>
<pDepend />
</task>
<task>
<pID>20</pID>
<pName>Move to WCF from remoting</pName>
<pStart>8/11/2008</pStart>
<pEnd>8/15/2008</pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Rich</pRes>
<pComp>10</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend></pDepend>
</task>
<task>
<pID>30</pID>
<pName>add Auditing</pName>
<pStart>8/19/2008</pStart>
<pEnd>8/21/2008</pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Mal</pRes>
<pComp>50</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend>20</pDepend>
</task>
</project>
</textarea>
<p>6. Call Draw() and DrawDependencies()</p>
<pre class="style1">
g.Draw();
g.DrawDependencies();
</pre>
<br>
<p>7. Close the &lt;script&gt; block</p>
<pre class="style1">&lt;/script&gt;</pre>
<br><br>
Final code should look like
<textarea name="textarea2" cols="150" rows="20">
&lt;link rel="stylesheet" type="text/css" href="jsgantt.css" /&gt;
&lt;script language="javascript" src="jsgantt.js"&gt;&lt;/script&gt;
&lt;div style="position:relative" class="gantt" id="GanttChartDIV"&gt;&lt;/div&gt;
&lt;script&gt;
var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day');
g.setShowRes(1); // Show/Hide Responsible (0/1)
g.setShowDur(1); // Show/Hide Duration (0/1)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setCaptionType('Resource'); // Set to Show Caption
if( g ) {
g.AddTaskItem(new JSGantt.TaskItem(1, 'Define Chart API', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1));
g.AddTaskItem(new JSGantt.TaskItem(11, 'Chart Object', '2/20/2008', '2/20/2008', 'ff00ff', 'http://www.yahoo.com', 1, 'Shlomy', 100, 0, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(12, 'Task Objects', '', '', '00ff00', '', 0, 'Shlomy', 40, 1, 1, 1));
g.AddTaskItem(new JSGantt.TaskItem(121, 'Constructor Proc', '2/21/2008', '3/9/2008', '00ffff', 'http://www.yahoo.com', 0, 'Brian T.', 60, 0, 12, 1));
g.AddTaskItem(new JSGantt.TaskItem(122, 'Task Variables', '3/6/2008', '3/11/2008', 'ff0000', 'http://help.com', 0, '', 60, 0, 12, 1,121));
g.AddTaskItem(new JSGantt.TaskItem(123, 'Task Functions', '3/9/2008', '3/29/2008', 'ff0000', 'http://help.com', 0, 'Anyone', 60, 0, 12, 1, 0, 'This is another caption'));
g.AddTaskItem(new JSGantt.TaskItem(2, 'Create HTML Shell', '3/24/2008', '3/25/2008', 'ffff00', 'http://help.com', 0, 'Brian', 20, 0, 0, 1,122));
g.AddTaskItem(new JSGantt.TaskItem(3, 'Code Javascript', '', '', 'ff0000', 'http://help.com', 0, 'Brian', 0, 1, 0, 1 ));
g.AddTaskItem(new JSGantt.TaskItem(31, 'Define Variables', '2/25/2008', '3/17/2008', 'ff00ff', 'http://help.com', 0, 'Brian', 30, 0, 3, 1, ,'Caption 1'));
g.AddTaskItem(new JSGantt.TaskItem(32, 'Calculate Chart Size', '3/15/2008', '3/24/2008', '00ff00', 'http://help.com', 0, 'Shlomy', 40, 0, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(33, 'Draw Taks Items', '', '', '00ff00', 'http://help.com', 0, 'Someone', 40, 1, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(332, 'Task Label Table', '3/6/2008', '3/11/2008', '0000ff', 'http://help.com', 0, 'Brian', 60, 0, 33, 1));
g.AddTaskItem(new JSGantt.TaskItem(333, 'Task Scrolling Grid', '3/9/2008', '3/20/2008', '0000ff', 'http://help.com', 0, 'Brian', 60, 0, 33, 1));
g.AddTaskItem(new JSGantt.TaskItem(34, 'Draw Task Bars', '', '', '990000', 'http://help.com', 0, 'Anybody', 60, 1, 3, 1));
g.AddTaskItem(new JSGantt.TaskItem(341, 'Loop each Task', '3/26/2008', '4/11/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1, "332,333"));
g.AddTaskItem(new JSGantt.TaskItem(342, 'Calculate Start/Stop', '4/12/2008', '5/18/2008', 'ff6666', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(343, 'Draw Task Div', '5/13/2008', '5/17/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(344, 'Draw Completion Div', '5/17/2008', '6/04/2008', 'ff0000', 'http://help.com', 0, 'Brian', 60, 0, 34, 1));
g.AddTaskItem(new JSGantt.TaskItem(35, 'Make Updates', '10/17/2008','12/04/2008','f600f6', 'http://help.com', 0, 'Brian', 30, 0, 3, 1));
g.Draw();
g.DrawDependencies();
}
else
{
alert("not defined");
}
&lt;/script&gt;
</textarea>
</p>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tExamples"/>
<table width="50%">
<tr><td><font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;ADDITIONAL DEMOS</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>
<ul>
<li><a href="index.htm">jsGantt</a></li>
<li><a href="jsgantt_exExternalXML.html">jsGantt with external XML file</a></li>
<li><a href="jsgantt_Minutes.html">jsGantt by minutes</a></li>
</ul>
</p>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tSubscribe"/>
<table width="50%">
<tr><td><font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;SUBSCRIBE</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>
Enter your email address to receive JSGantt announcements<br />
<form action="http://www.jsgantt.com/subscribe/?subsribe" method="post">
<input type="text" name="email" size="20" />
<input type="submit" value="Subscribe" />
</form><br />
</p>
<div style="width:400px;">
<b class="roundedCorner">
<b class="roundedCorner1"><b></b></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner5"></b></b>
<div class="roundedCornerfg"><a name="tCredits"/>
<table width="50%">
<tr><td><font face="Arial,Helvetica" size="3" color="#FFFFFF"><i><b>&nbsp;&nbsp;CREDITS</b></i></font>
</td></tr></table></div>
<b class="roundedCorner">
<b class="roundedCorner5"></b>
<b class="roundedCorner4"></b>
<b class="roundedCorner3"></b>
<b class="roundedCorner2"><b></b></b>
<b class="roundedCorner1"><b></b></b></b>
</div>
<p>Developed by Shlomy Gantz and Brian Twidt<br>
Contributed: Paul Labuschagne, Kevin Badgett, Ilan Admon<br>
</p>
</body>
</html>

View File

@ -0,0 +1,126 @@
body {
position: relative;
}
.product-name {
font-family: Satisfy;
}
#my-navbar-nav {
font-size: 16px;
}
#my-nav-brand {
font-size: 24px;
margin: 2px 40px 0 10px;
color: #ffffff;
}
#home {
background: #323232 url(home-bg.jpg) center 0 no-repeat;
background-attachment: fixed;
background-size: cover;
min-height: 660px;
color: #ffffff;
}
#home-title {
font-size: 70px;
margin-top: 180px;
}
#home-subtitle {
font-size: 36px;
margin-top: 40px;
margin-bottom: 50px;
}
#learn-more {
padding: 0;
width: 50px;
height: 50px;
border-radius: 50%;
font-size: 38px;
margin-top: 60px;
}
@media screen and (max-width: 991px) {
#learn-more {
display: none;
}
}
.section {
margin: 0 15vw;
padding: 5px 0 0;
}
h1 {
font-family: Kelly Slab;
font-size: 56px;
margin: 50px 0 20px;
}
h2 {
font-family: Kelly Slab;
margin: 20px 0 10px;
}
h3 {
font-family: Kelly Slab;
}
#embedded-Gantt, #external-Gantt {
}
.code-block {
background-color: #222222;
}
.contact-card {
max-width: 200px;
margin: auto;
}
.contact-link {
font-size: 28px;
}
.footer {
margin-top: 10px;
padding-top: 10px;
border-top: solid #bbbbbb 1px;
}
#slide-card {
background: transparent;
border: none;
margin: 180px 50px 50px;
}
#slide-dots {
background: transparent;
border: none;
}
.dot {
cursor:pointer;
height: 13px;
width: 13px;
margin: 0 2px;
background-color: #ffffff;
opacity: 0.3;
border-radius: 50%;
display: inline-block;
-webkit-transition: all .5s; /* Safari */
transition: all .5s;
}
.dot:hover {
opacity: 1;
}
.dot.active {
opacity: 1;
}
.slide {
width: 100%;
height: 150px;
font-size: 20px;
display: none;
opacity: 0;
}
.slide-icon {
font-size: 60px;
}

View File

@ -0,0 +1,85 @@
$(document).ready(function() {
// Scrollspy changes navbar active links
$("body").scrollspy({target:"#my-navbar-nav", offset:50});
// Smooth scroll
$("a").click(function(event) {
if (this.hash !== "") {
event.preventDefault();
var linkOffset = 0;
if ($.inArray(this.hash,["#options","#xmlExport","#optionsLanguage","#setDayMajorDateDisplayFormat"]) != -1) {
linkOffset = -25;
}
$("html, body").animate({
scrollTop: $(this.hash).offset().top - $(".navbar").height() + linkOffset
}, 600);
}
});
// Demo buttons
$("#embedded-Gantt").hide(0);
$("#external-Gantt").hide(0);
$(".btn-demo").click(function() {
if ($(this).html().indexOf("Embedded Code") != -1) {
if ($("#external-Gantt").is(":visible")) {
$("#external-Gantt").animate({
height: "toggle",
opacity: "toggle"}, 300, function () {
$("#embedded-Gantt").animate({
height: "toggle",
opacity: "toggle"}, 600
);
}
);
$(".btn-demo:nth-child(2)").removeClass("active");
} else {
$("#embedded-Gantt").animate({
height: "toggle",
opacity: "toggle"}, 600
);
}
} else {
if ($("#embedded-Gantt").is(":visible")) {
$("#embedded-Gantt").animate({
height: "toggle",
opacity: "toggle"}, 300, function() {
$("#external-Gantt").animate({
height: "toggle",
opacity: "toggle"}, 600
);
}
);
$(".btn-demo:nth-child(1)").removeClass("active");
} else {
$("#external-Gantt").animate({
height: "toggle",
opacity: "toggle"}, 600
);
}
}
});
// Slideshow
var slideIndex = 0;
carousel();
function carousel() {
var i;
var x = document.getElementsByClassName("slide");
var d = document.getElementsByClassName("dot");
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
slideIndex++;
if (slideIndex > x.length) {slideIndex = 1}
x[slideIndex-1].style.display = "inline-block";
$(".slide:nth-child(" + (slideIndex).toString() + ")").animate({
opacity: 1
}, 500);
$(".dot").removeClass("active");
$(".dot:nth-child(" + (slideIndex).toString() + ")").addClass("active");
setTimeout(carousel, 2000); // Change image every 2 seconds
}
});

View File

@ -1,65 +1,131 @@
<project>
<task>
<pID>10</pID>
<pName>WCF Changes</pName>
<pStart></pStart>
<pEnd></pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes></pRes>
<pComp>0</pComp>
<pGroup>1</pGroup>
<pParent>0</pParent>
<pOpen>1</pOpen>
<pDepend />
</task>
<task>
<pID>20</pID>
<pName>Move to WCF from remoting</pName>
<pStart>9/11/2008</pStart>
<pEnd>9/15/2008</pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Rich</pRes>
<pComp>10</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend></pDepend>
<pCaption>Brian</pCaption>
</task>
<task>
<pID>30</pID>
<pName>add Auditing</pName>
<pStart>9/19/2008</pStart>
<pEnd>9/21/2008</pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Shlomy</pRes>
<pComp>50</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend>20</pDepend>
<pCaption>Shlomy</pCaption>
</task>
<task>
<pID>40</pID>
<pName>Yet another task</pName>
<pStart>9/23/2008</pStart>
<pEnd>9/24/2008</pEnd>
<pColor>0000ff</pColor>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Shlomy</pRes>
<pComp>30</pComp>
<pGroup>0</pGroup>
<pParent>0</pParent>
<pOpen>1</pOpen>
<pDepend>20,30</pDepend>
<pCaption>Shlomy</pCaption>
</task>
</project>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<task>
<pID>10</pID>
<pName>WCF Changes</pName>
<pStart></pStart>
<pEnd></pEnd>
<pClass>ggroupblack</pClass>
<pLink></pLink>
<pMile>0</pMile>
<pRes></pRes>
<pComp>0</pComp>
<pGroup>1</pGroup>
<pParent>0</pParent>
<pOpen>1</pOpen>
<pDepend />
</task>
<task>
<pID>20</pID>
<pName>Move to WCF from remoting</pName>
<pStart>2017-05-11 09:00</pStart>
<pEnd>2017-05-15</pEnd>
<pClass>gtaskblue</pClass>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Paul</pRes>
<pComp>10</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend></pDepend>
<pCaption>Paul</pCaption>
<pNotes>This text is only available in tool tips</pNotes>
</task>
<task>
<pID>30</pID>
<pName>add Auditing</pName>
<pStart>2017-05-18 10:30</pStart>
<pEnd>2017-05-20 12:00</pEnd>
<pClass>gtaskblue</pClass>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Eduardo</pRes>
<pComp>50</pComp>
<pGroup>0</pGroup>
<pParent>10</pParent>
<pOpen>1</pOpen>
<pDepend>20</pDepend>
<pCaption>Eduardo</pCaption>
</task>
<task>
<pID>40</pID>
<pName>Yet another task</pName>
<pStart>2017-05-24</pStart>
<pEnd>2017-05-25</pEnd>
<pClass>gtaskblue</pClass>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Ricardo</pRes>
<pComp>30</pComp>
<pGroup>0</pGroup>
<pParent>0</pParent>
<pOpen>1</pOpen>
<pDepend>20,30</pDepend>
<pCaption>Ricardo</pCaption>
</task>
<task>
<pID>50</pID>
<pName>Another Group</pName>
<pStart></pStart>
<pEnd></pEnd>
<pClass>ggroupblack</pClass>
<pLink></pLink>
<pMile>0</pMile>
<pRes></pRes>
<pComp>0</pComp>
<pGroup>1</pGroup>
<pParent>0</pParent>
<pOpen>1</pOpen>
<pDepend />
</task>
<task>
<pID>60</pID>
<pName>Move to GitHub</pName>
<pStart>2017-05-14 09:00</pStart>
<pEnd>2017-05-16</pEnd>
<pClass>gtaskblue</pClass>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Ricardo</pRes>
<pComp>10</pComp>
<pGroup>0</pGroup>
<pParent>50</pParent>
<pOpen>1</pOpen>
<pDepend></pDepend>
<pCaption>Ricardo</pCaption>
<pNotes>This text is only available in tool tips</pNotes>
</task>
<task>
<pID>70</pID>
<pName>Updating files</pName>
<pStart>2017-05-18 10:30</pStart>
<pEnd>2017-05-21 12:00</pEnd>
<pClass>gtaskred</pClass>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Paul</pRes>
<pComp>50</pComp>
<pGroup>0</pGroup>
<pParent>50</pParent>
<pOpen>1</pOpen>
<pDepend>60</pDepend>
<pCaption>Paul</pCaption>
</task>
<task>
<pID>80</pID>
<pName>Yet another task</pName>
<pStart>2017-05-23</pStart>
<pEnd>2017-05-25</pEnd>
<pClass>gtaskyellow</pClass>
<pLink></pLink>
<pMile>0</pMile>
<pRes>Eduardo</pRes>
<pComp>30</pComp>
<pGroup>0</pGroup>
<pParent>50</pParent>
<pOpen>1</pOpen>
<pDepend>60,70</pDepend>
<pCaption>Eduardo</pCaption>
</task>
</project>

View File

@ -99,9 +99,14 @@ if (g.getDivId() != null)
g.setShowComp(1); // Show/Hide % Complete(0/1)
g.setShowStartDate(1); // Show/Hide % Complete(0/1)
g.setShowEndDate(1); // Show/Hide % Complete(0/1)
g.setFormatArr("day","week","month","quarter") // Set format options (up to 4 : "minute","hour","day","week","month","quarter")
g.setShowTaskInfoLink(1);
g.setFormatArr("day","week","month") // Set format options (up to 4 : "minute","hour","day","week","month","quarter")
g.setCaptionType('Caption'); // Set to Show Caption (None,Caption,Resource,Duration,Complete)
g.setUseFade(0);
g.setDayColWidth(20);
/* g.setShowTaskInfoLink(1) */
g.addLang('<?php print $langs->getDefaultLang(1);?>', vLangs['<?php print $langs->getDefaultLang(1);?>']);
g.setLang('<?php print $langs->getDefaultLang(1);?>');
<?php
$level=0;
@ -208,7 +213,7 @@ function constructGanttLine($tarr,$task,$project_dependencies,$level=0,$project_
$s = "\n// Add taks id=".$task["task_id"]." level = ".$level."\n";
// $s.= "g.AddTaskItem(new JSGantt.TaskItem(".$task['task_id'].",'".dol_escape_js($name)."','".$start_date."', '".$end_date."', '".$task['task_color']."', '".$link."', ".$task['task_milestone'].", '".$resources."', ".($percent >= 0 ? $percent : 0).", ".($task["task_is_group"]>0?1:0).", '".$parent."', 1, '".($depend?$depend:"")."', '".$note."'));";
// For JSGanttImproved
$s.= "g.AddTaskItem(new JSGantt.TaskItem(".$task['task_id'].",'".dol_escape_js(trim($name))."','".$start_date."', '".$end_date."', '".$task['task_css']."', '".$link."', ".$task['task_milestone'].", '".dol_escape_js($resources)."', ".($percent >= 0 ? $percent : 0).", ".($task["task_is_group"]).", '".$parent."', 1, '".($depend?$depend:$parent."SS")."', '".($percent >= 0 ? $percent.'%' : '0%')."','".dol_escape_js($task['note'])."'));";
$s.= "g.AddTaskItem(new JSGantt.TaskItem(".$task['task_id'].",'".dol_escape_js(trim($name))."','".$start_date."', '".$end_date."', '".$task['task_css']."', '".$link."', ".$task['task_milestone'].", '".dol_escape_js($resources)."', ".($percent >= 0 ? $percent : 0).", ".($task["task_is_group"]).", ".$parent.", 1, '".($depend?$depend:$parent."SS")."', '".($percent >= 0 ? $percent.'%' : '0%')."','".dol_escape_js($task['note'])."', g));";
echo $s;

View File

@ -322,7 +322,7 @@ if (count($tasksarray)>0)
print '<div class="div-table-responsive">';
print '<div id="tabs" class="gantt" style="width: 80vw; border: 1px solid #ACACAC;">'."\n";
print '<div id="tabs" class="gantt" style="width: 80vw;">'."\n";
include_once DOL_DOCUMENT_ROOT.'/projet/ganttchart.inc.php';
print '</div>'."\n";

View File

@ -42,7 +42,7 @@ global $langs;
var vLangs={'<?php print $langs->getDefaultLang(1);?>':
{
'format':'<?php print $langs->transnoentities('Period');?>','hour':'"<?php print $langs->transnoentities('Hour'); ?>','day':'<?php print $langs->transnoentities('Day'); ?>',
'format':'<?php print '-';?>','hour':'"<?php print $langs->transnoentities('Hour'); ?>','day':'<?php print $langs->transnoentities('Day'); ?>',
'week':'<?php print $langs->transnoentities('Week'); ?>','month':'<?php print $langs->transnoentities('Month'); ?>','quarter':'<?php print $langs->transnoentities('Quadri'); ?>',
'hours':'<?php print $langs->transnoentities('Hours'); ?>','days':'<?php print $langs->transnoentities('Days'); ?>','weeks':'<?php print $langs->transnoentities('Weeks');?>',
'months':'<?php print $langs->transnoentities('Months'); ?>','quarters':'<?php print $langs->transnoentities('Quadri'); ?>','hr':'Hr','dy':'<?php print $langs->transnoentities('Day'); ?>','wk':'<?php print $langs->transnoentities('Week'); ?>','mth':'<?php print $langs->transnoentities('Month'); ?>','qtr':'<?php print $langs->transnoentities('Quadri'); ?>','hrs':'<?php print $langs->transnoentities('Hours'); ?>',

View File

@ -3530,21 +3530,6 @@ table.cal_event td.cal_event_right { padding: 4px 4px !important; }
cursor:pointer;
}
/* ============================================================================== */
/* Gantt
/* ============================================================================== */
div.gTaskInfo {
background: #f0f0f0 !important;
}
.gtaskblue {
background: rgb(108,152,185) !important;
}
td.gtaskname {
overflow: hidden;
text-overflow: ellipsis;
}
/* ============================================================================== */
/* jQuery - jeditable */
@ -3914,6 +3899,26 @@ div.scroll2 {
width: <?php print isset($_SESSION['dol_screenwidth'])?max($_SESSION['dol_screenwidth']-830,450):'450'; ?>px !important;
}
.gtaskname div, .gtaskname {
font-size: unset !important;
}
div.gantt, .gtaskheading, .gmajorheading, .gminorheading, .gminorheadingwkend {
font-size: unset !important;
font-weight: normal !important;
color: #000 !important;
}
div.gTaskInfo {
background: #f0f0f0 !important;
}
.gtaskblue {
background: rgb(108,152,185) !important;
}
td.gtaskname {
overflow: hidden;
text-overflow: ellipsis;
}
/* ============================================================================== */
/* jFileTree */