Update jsGant lib to 2.7.3
This commit is contained in:
parent
d3ba87b09a
commit
506659a9d2
@ -52,7 +52,7 @@ jQuery jqueryFileTree 1.0.1 GPL and MIT License Yes
|
|||||||
jQuery jquerytreeview 1.4.1 MIT License Yes JS library for filetree
|
jQuery jquerytreeview 1.4.1 MIT License Yes JS library for filetree
|
||||||
jQuery TableDnD 0.6 GPL and MIT License Yes JS library plugin TableDnD (to reorder table rows)
|
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 Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker
|
||||||
jsGanttImproved 1.7.5.4 BSD License Yes JS library (to build Gantt reports)
|
jsGanttImproved 2.7.3 BSD License Yes JS library (to build Gantt reports)
|
||||||
JsTimezoneDetect 1.0.6 MIT License Yes JS library to detect user timezone
|
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
|
SwaggerUI 2.0.24 GPL-2+ Yes JS library to offer the REST API explorer
|
||||||
|
|
||||||
|
|||||||
@ -177,4 +177,4 @@ You can find out more detailed information about contributing in the [Documentat
|
|||||||
[github]: https://github.com/jsGanttImproved/jsgantt-improved
|
[github]: https://github.com/jsGanttImproved/jsgantt-improved
|
||||||
[js-style-guide]: https://google.github.io/styleguide/jsguide.html
|
[js-style-guide]: https://google.github.io/styleguide/jsguide.html
|
||||||
[closing-issues]: https://help.github.com/articles/closing-issues-via-commit-messages/
|
[closing-issues]: https://help.github.com/articles/closing-issues-via-commit-messages/
|
||||||
[docs]: https://github.com/jsGanttImproved/jsgantt-improved/wiki/Documentation
|
[docs]: https://github.com/jsGanttImproved/jsgantt-improved/wiki/Documentation
|
||||||
@ -1,5 +1,4 @@
|
|||||||
* Copyright (c) 2013-2017, Paul Geldart, Eduardo Rodrigues and Ricardo Cardoso.
|
* Copyright (c) 2013-2018, Paul Geldart, Eduardo Rodrigues and Ricardo Cardoso.
|
||||||
* All rights reserved.
|
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@ -26,7 +25,6 @@
|
|||||||
This project is based on jsGantt 1.2, the original project license follows:
|
This project is based on jsGantt 1.2, the original project license follows:
|
||||||
|
|
||||||
* Copyright (c) 2008, Shlomy Gantz/BlueBrick Inc.
|
* Copyright (c) 2008, Shlomy Gantz/BlueBrick Inc.
|
||||||
* All rights reserved.
|
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@ -48,4 +46,4 @@ This project is based on jsGantt 1.2, the original project license follows:
|
|||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* 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
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
@ -1,21 +1,151 @@
|
|||||||
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.
|
[](https://travis-ci.com/jsGanttImproved/jsgantt-improved)
|
||||||
|
|
||||||
You can view a live example at https://jsGanttImproved.github.io/jsgantt-improved
|
|
||||||
|
|
||||||
Features include:
|
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.
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
Start using with including the files `jsgantt.js` and `jsgantt.css` that are inside `docs/` folder.
|
||||||
|
|
||||||
|
Or install and use in JS
|
||||||
|
|
||||||
|
`npm install jsgantt-improved`
|
||||||
|
|
||||||
|
Import in your JS `import {JSGantt} from 'jsgantt-improved';`
|
||||||
|
|
||||||
|
See the [FULL DOCUMENTATION](./Documentation.md) for more details in all features.
|
||||||
|
|
||||||
|
For **Angular** use the component [ng-gantt](https://github.com/jsGanttImproved/ng-gantt)
|
||||||
|
|
||||||
|
For **React** use the component [react-jsgantt](https://github.com/jsGanttImproved/react-jsgantt)
|
||||||
|
|
||||||
|
|
||||||
|
For **Vue** , see this example: https://stackblitz.com/edit/vue-jsgantt
|
||||||
|
|
||||||
|
|
||||||
|
For **.NET** , see this example: [.NET Documentation](./docs/DotNet.md)
|
||||||
|
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
|
||||||
|
You can view a Solo live example at:
|
||||||
|
|
||||||
|
* https://jsganttimproved.github.io/jsgantt-improved/docs/demo.html
|
||||||
|
|
||||||
|
Or use a live coding example at Codenpen:
|
||||||
|
|
||||||
|
* https://codepen.io/mariomol/pen/mQzBPV
|
||||||
|
|
||||||
|
|
||||||
|
## Easy to Use
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link href="jsgantt.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script src="jsgantt.js" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<div style="position:relative" class="gantt" id="GanttChartDIV"></div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
var g = new JSGantt.GanttChart(document.getElementById('GanttChartDIV'), 'day');
|
||||||
|
|
||||||
|
g.setOptions({
|
||||||
|
vCaptionType: 'Complete', // Set to Show Caption : None,Caption,Resource,Duration,Complete,
|
||||||
|
vQuarterColWidth: 36,
|
||||||
|
vDateTaskDisplayFormat: 'day dd month yyyy', // Shown in tool tip box
|
||||||
|
vDayMajorDateDisplayFormat: 'mon yyyy - Week ww',// Set format to dates in the "Major" header of the "Day" view
|
||||||
|
vWeekMinorDateDisplayFormat: 'dd mon', // Set format to display dates in the "Minor" header of the "Week" view
|
||||||
|
vLang: 'en',
|
||||||
|
vShowTaskInfoLink: 1, // Show link in tool tip (0/1)
|
||||||
|
vShowEndWeekDate: 0, // Show/Hide the date for the last day of the week in header for daily
|
||||||
|
vAdditionalHeaders: { // Add data columns to your table
|
||||||
|
category: {
|
||||||
|
title: 'Category'
|
||||||
|
},
|
||||||
|
sector: {
|
||||||
|
title: 'Sector'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
vUseSingleCell: 10000, // Set the threshold cell per table row (Helps performance for large data.
|
||||||
|
vFormatArr: ['Day', 'Week', 'Month', 'Quarter'], // Even with setUseSingleCell using Hour format on such a large chart can cause issues in some browsers,
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// Load from a Json url
|
||||||
|
JSGantt.parseJSON('./fixes/data.json', g);
|
||||||
|
|
||||||
|
// Or Adding Manually
|
||||||
|
g.AddTaskItemObject({
|
||||||
|
pID: 1,
|
||||||
|
pName: "Define Chart <strong>API</strong>",
|
||||||
|
pStart: "2017-02-25",
|
||||||
|
pEnd: "2017-03-17",
|
||||||
|
pPlanStart: "2017-04-01",
|
||||||
|
pPlanEnd: "2017-04-15 12:00",
|
||||||
|
pClass: "ggroupblack",
|
||||||
|
pLink: "",
|
||||||
|
pMile: 0,
|
||||||
|
pRes: "Brian",
|
||||||
|
pComp: 0,
|
||||||
|
pGroup: 0,
|
||||||
|
pParent: 0,
|
||||||
|
pOpen: 1,
|
||||||
|
pDepend: "",
|
||||||
|
pCaption: "",
|
||||||
|
pCost: 1000,
|
||||||
|
pNotes: "Some Notes text",
|
||||||
|
category: "My Category",
|
||||||
|
sector: "Finance"
|
||||||
|
});
|
||||||
|
|
||||||
|
g.Draw();
|
||||||
|
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
* Tasks & Collapsible Task Groups
|
* Tasks & Collapsible Task Groups
|
||||||
* Dependencies
|
* Dependencies and Highlight when hover a task
|
||||||
|
* Edit data in gantt table with list of responsible
|
||||||
* Task Completion
|
* Task Completion
|
||||||
* Task Styling
|
* Table with Additional Columns
|
||||||
|
* Task Styling or as HTML tags
|
||||||
* Milestones
|
* Milestones
|
||||||
* Resources
|
* Resources
|
||||||
|
* Costs
|
||||||
|
* Plan Start and End Dates
|
||||||
|
* Gantt with Planned vs Executed
|
||||||
* Dynamic Loading of Tasks
|
* Dynamic Loading of Tasks
|
||||||
* Dynamic change of format: Hour, Day, Week, Month, Quarter
|
* Dynamic change of format: Hour, Day, Week, Month, Quarter
|
||||||
* Load Gantt from XML
|
* Load Gantt from JSON and XML
|
||||||
* From external files (including experimental support for MS Project XML files)
|
* From external files (including experimental support for MS Project XML files)
|
||||||
* From JavaScript Strings
|
* From JavaScript Strings
|
||||||
* Support for Internationalization (all hard coded strings can be overridden)
|
* Support for Internationalization
|
||||||
|
|
||||||
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).
|
## Documentation
|
||||||
|
|
||||||
|
See the [Documentation](./Documentation.md) wiki page or the included ``docs/index.html`` file for instructions on use.
|
||||||
|
|
||||||
|
Project based on https://code.google.com/p/jsgantt/.
|
||||||
|
|
||||||
|
|
||||||
|
## Want to Collaborate?
|
||||||
|
|
||||||
|
Its easy to get it set:
|
||||||
|
|
||||||
|
* Clone this repo
|
||||||
|
* Install lib dependencies: `npm i`
|
||||||
|
* Install global dependencies: `npm i -g browserify nodemon onchange`
|
||||||
|
* Run the demo, This will start a `localhost:8080` with a live example: `npm start`.
|
||||||
|
* Use `npm run watch` or do your change in `src` and restart this command refresh the changes.
|
||||||
|
|
||||||
|
For testing use `npm run test` with e2e tests.
|
||||||
|
|
||||||
|
Or help us donating...
|
||||||
|
|
||||||
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=S7B43P63C5QEN)
|
||||||
|
|
||||||
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.
|
Before Width: | Height: | Size: 372 KiB |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,126 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
@ -1,85 +0,0 @@
|
|||||||
$(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
|
|
||||||
}
|
|
||||||
});
|
|
||||||
@ -1,131 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@ -126,9 +126,14 @@ if (g.getDivId() != null)
|
|||||||
$projecttmp = new Project($db);
|
$projecttmp = new Project($db);
|
||||||
$projecttmp->fetch($t['task_project_id']);
|
$projecttmp->fetch($t['task_project_id']);
|
||||||
$tmpt = array(
|
$tmpt = array(
|
||||||
'task_id'=> '-'.$t['task_project_id'], 'task_alternate_id'=> '-'.$t['task_project_id'], 'task_name'=>$projecttmp->ref.' '.$projecttmp->title, 'task_resources'=>'',
|
'task_id'=> '-'.$t['task_project_id'],
|
||||||
'task_start_date'=>'', 'task_end_date'=>'',
|
'task_alternate_id'=> '-'.$t['task_project_id'],
|
||||||
'task_is_group'=>1, 'task_position'=>0, 'task_css'=>'ggroupblack', 'task_milestone'=> 0, 'task_parent'=>0, 'task_parent_alternate_id'=>0, 'task_notes'=>'',
|
'task_name'=>$projecttmp->ref.' '.$projecttmp->title,
|
||||||
|
'task_resources'=>'',
|
||||||
|
'task_start_date'=>'',
|
||||||
|
'task_end_date'=>'',
|
||||||
|
'task_is_group'=>1, 'task_position'=>0, 'task_css'=>'ggroupblack', 'task_milestone'=> 0, 'task_parent'=>0, 'task_parent_alternate_id'=>0,
|
||||||
|
'task_notes'=>'',
|
||||||
'task_planned_workload'=>0
|
'task_planned_workload'=>0
|
||||||
);
|
);
|
||||||
constructGanttLine($tasks, $tmpt, array(), 0, $t['task_project_id']);
|
constructGanttLine($tasks, $tmpt, array(), 0, $t['task_project_id']);
|
||||||
@ -180,6 +185,7 @@ function constructGanttLine($tarr, $task, $task_dependencies, $level = 0, $proje
|
|||||||
$end_date = dol_print_date($end_date, $dateformatinput2);
|
$end_date = dol_print_date($end_date, $dateformatinput2);
|
||||||
// Resources
|
// Resources
|
||||||
$resources = $task["task_resources"];
|
$resources = $task["task_resources"];
|
||||||
|
|
||||||
// Define depend (ex: "", "4,13", ...)
|
// Define depend (ex: "", "4,13", ...)
|
||||||
$depend = '';
|
$depend = '';
|
||||||
$count = 0;
|
$count = 0;
|
||||||
|
|||||||
@ -334,10 +334,11 @@ if (count($tasksarray) > 0)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//if ($s) $tasks[$taskcursor]['task_resources']='<a href="'.DOL_URL_ROOT.'/projet/tasks/contact.php?id='.$val->id.'&withproject=1" title="'.dol_escape_htmltag($s).'">'.$langs->trans("List").'</a>';
|
|
||||||
/* For JSGanttImproved */
|
/* For JSGanttImproved */
|
||||||
//if ($s) $tasks[$taskcursor]['task_resources']=implode(',',$idofusers);
|
//if ($s) $tasks[$taskcursor]['task_resources']=implode(',',$idofusers);
|
||||||
$tasks[$taskcursor]['task_resources'] = $s;
|
$tasks[$taskcursor]['task_resources'] = $s;
|
||||||
|
if ($s) $tasks[$taskcursor]['task_resources'] = '<a href="'.DOL_URL_ROOT.'/projet/tasks/contact.php?id='.$val->id.'&withproject=1" title="'.dol_escape_htmltag($s).'">'.$langs->trans("List").'</a>';
|
||||||
//print "xxx".$val->id.$tasks[$taskcursor]['task_resources'];
|
//print "xxx".$val->id.$tasks[$taskcursor]['task_resources'];
|
||||||
$tasks[$taskcursor]['note'] = $task->note_public;
|
$tasks[$taskcursor]['note'] = $task->note_public;
|
||||||
$taskcursor++;
|
$taskcursor++;
|
||||||
|
|||||||
@ -5095,10 +5095,15 @@ td.gminorheading {
|
|||||||
.glistlbl, .glistgrid {
|
.glistlbl, .glistgrid {
|
||||||
width: 582px !important;
|
width: 582px !important;
|
||||||
}
|
}
|
||||||
.gtaskname div, .gtaskname {
|
/*.gtaskname div, .gtaskname {
|
||||||
min-width: 250px !important;
|
min-width: 250px !important;
|
||||||
max-width: 250px !important;
|
max-width: 250px !important;
|
||||||
width: 250px !important;
|
width: 250px !important;
|
||||||
|
}*/
|
||||||
|
.gtaskname div, .gtaskname {
|
||||||
|
min-width: 250px !important;
|
||||||
|
max-width: unset !important;
|
||||||
|
width: unset !important;
|
||||||
}
|
}
|
||||||
.gpccomplete div, .gpccomplete {
|
.gpccomplete div, .gpccomplete {
|
||||||
min-width: 40px !important;
|
min-width: 40px !important;
|
||||||
@ -5108,7 +5113,12 @@ td.gminorheading {
|
|||||||
td.gtaskheading.gstartdate, td.gtaskheading.genddate {
|
td.gtaskheading.gstartdate, td.gtaskheading.genddate {
|
||||||
white-space: break-spaces;
|
white-space: break-spaces;
|
||||||
}
|
}
|
||||||
|
.gtasktableh tr:nth-child(2) td:nth-child(2), .gtasktableh tr:nth-child(2) td:nth-child(3), .gtasktableh tr:nth-child(2) td:nth-child(4), .gtasktableh tr:nth-child(2) td:nth-child(5), .gtasktableh tr:nth-child(2) td:nth-child(6), .gtasktableh tr:nth-child(2) td:nth-child(7) {
|
||||||
|
color: transparent !important;
|
||||||
|
border-left: none;
|
||||||
|
border-right: none;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
/* ============================================================================== */
|
/* ============================================================================== */
|
||||||
/* jFileTree */
|
/* jFileTree */
|
||||||
|
|||||||
@ -359,12 +359,41 @@ div.pagination .btnTitle:hover .btnTitle-label{
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* rule to reduce top menu - 2nd reduction: Reduce width of top menu icons again */
|
||||||
|
@media only screen and (max-width: <?php echo empty($conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC2) ? round($nbtopmenuentries * 69, 0) + 130 : $conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC2; ?>px) /* reduction 2 */
|
||||||
|
{
|
||||||
|
.butAction, .butActionRefused, .butActionDelete {
|
||||||
|
font-size: 0.95em;
|
||||||
|
}
|
||||||
|
.btnTitle, a.btnTitle {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 4px 4px 4px 4px;
|
||||||
|
min-width: unset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
<?php if (!empty($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED) && (!$user->admin)) { ?>
|
<?php if (!empty($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED) && (!$user->admin)) { ?>
|
||||||
.butActionRefused, .butActionNewRefused, .btnTitle.refused {
|
.butActionRefused, .butActionNewRefused, .btnTitle.refused {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
<?php }
|
<?php } ?>
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* BTN LINK
|
||||||
|
*/
|
||||||
|
|
||||||
|
.btn-link{
|
||||||
|
margin-right: 5px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
color: #333;
|
||||||
|
padding: 5px 10px;
|
||||||
|
border-radius:1em;
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-link:hover{
|
||||||
|
background-color: #ddd;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -549,8 +549,8 @@ input.removedfile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
input[type=file ] { background-color: transparent; border-top: none; border-left: none; border-right: none; box-shadow: none; }
|
input[type=file ] { background-color: transparent; border-top: none; border-left: none; border-right: none; box-shadow: none; }
|
||||||
input[type=checkbox] { background-color: transparent; border: none; box-shadow: none; }
|
input[type=checkbox] { background-color: transparent; border: none; box-shadow: none; vertical-align: middle; }
|
||||||
input[type=radio] { background-color: transparent; border: none; box-shadow: none; }
|
input[type=radio] { background-color: transparent; border: none; box-shadow: none; vertical-align: middle; }
|
||||||
input[type=image] { background-color: transparent; border: none; box-shadow: none; }
|
input[type=image] { background-color: transparent; border: none; box-shadow: none; }
|
||||||
input:-webkit-autofill {
|
input:-webkit-autofill {
|
||||||
background-color: #FBFFEA !important;
|
background-color: #FBFFEA !important;
|
||||||
@ -1899,6 +1899,11 @@ img.photoref, div.photoref {
|
|||||||
width: 80px;
|
width: 80px;
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.photoref .fa, div.photoref .fas, div.photoref .far {
|
||||||
|
font-size: 2.5em;
|
||||||
|
}
|
||||||
|
|
||||||
img.fitcontain {
|
img.fitcontain {
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
@ -4071,7 +4076,6 @@ div.titre {
|
|||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
/* text-shadow: 1px 1px 2px #FFFFFF; */
|
/* text-shadow: 1px 1px 2px #FFFFFF; */
|
||||||
<?php print (empty($conf->dol_optimize_smallscreen) ? '' : 'margin-top: 4px;'); ?>
|
|
||||||
}
|
}
|
||||||
div.titre {
|
div.titre {
|
||||||
color: var(--colortexttitlenotab);
|
color: var(--colortexttitlenotab);
|
||||||
@ -5000,6 +5004,12 @@ td.gminorheading {
|
|||||||
td.gtaskheading.gstartdate, td.gtaskheading.genddate {
|
td.gtaskheading.gstartdate, td.gtaskheading.genddate {
|
||||||
white-space: break-spaces;
|
white-space: break-spaces;
|
||||||
}
|
}
|
||||||
|
.gtasktableh tr:nth-child(2) td:nth-child(2), .gtasktableh tr:nth-child(2) td:nth-child(3), .gtasktableh tr:nth-child(2) td:nth-child(4), .gtasktableh tr:nth-child(2) td:nth-child(5), .gtasktableh tr:nth-child(2) td:nth-child(6), .gtasktableh tr:nth-child(2) td:nth-child(7) {
|
||||||
|
color: transparent !important;
|
||||||
|
border-left: none;
|
||||||
|
border-right: none;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ============================================================================== */
|
/* ============================================================================== */
|
||||||
@ -6484,12 +6494,10 @@ div.phpdebugbar-widgets-templates a.phpdebugbar-widgets-editor-link:before
|
|||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
}
|
}
|
||||||
img.photoref, div.photoref {
|
img.photoref, div.photoref {
|
||||||
border: none;
|
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||||
-webkit-box-shadow: none;
|
-webkit-box-shadow: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
height: 20px;
|
|
||||||
width: 20px;
|
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user