You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

844 lines
15 KiB

body{
/*overflow: hidden;*/
}
.TWGanttWorkSpace.ganttFullScreen{
position: fixed;
top:0;
left:0;
bottom:0;
right: 0;
margin: auto;
z-index: 1000;
background-color: #fff;
}
/* -------------------------------------- GRIDIFY -----------------------------------*/
.gdfTable {
table-layout: fixed;
border-collapse: separate;
border-spacing: 0;
background-color: #fff;
}
.gdfTable td, .gdfTable th {
vertical-align: middle;
overflow: hidden;
text-overflow: clip;
white-space: nowrap;
font-size: 14px
}
.gdfCell {
overflow: hidden;
padding:4px 2px;
border-bottom: 1px solid #eee;
border-right: 1px solid #eee;
font-family: arial, helvetica, sans-serif;
}
.gdfCell.noClip{
overflow: visible;
}
.gdfColHeader {
min-width: 5px;
height: 30px;
background-color: #eee;
border-bottom:2px solid #bbb;
border-right: 1px solid #bbb;
}
.gdfColHeader:last-of-type {
border-right: none;
}
.gdfCell:last-of-type {
border-right: none;
}
.gdfCellInput {
border: 0 none;
font-size: 12px;
height: 20px;
margin: 0;
padding: 0;
width: 100%;
background-color: #d4fbe8;
}
.gdfCellWrap {
border: 0 none;
font-size: 12px;
height: 17px;
margin: 0;
padding: 0;
width: 100%;
overflow: hidden;
background-color: #ffcccc;
}
.gdfHResizing {
cursor: w-resize;
}
/* -------------------------------------- SPLITTER -----------------------------------*/
.splitterContainer {
width: 100%;
height: 100%;
}
.splitBox1{
overflow-x: scroll;
overflow-y: hidden;
}
.splitBox2 {
overflow-x: scroll;
overflow-y: auto;
}
.splitElement {
outline-style: none;
position: absolute;
height: 100%;
background-color: #f3f3f3;
}
.vSplitBar {
position: relative;
width: 5px;
/*background-color: rgba(170, 170, 170, .2);*/
cursor: ew-resize;
text-align: center;
color: white;
box-shadow: 0 0 3px rgba(0, 0, 0, .4);
background: rgba(170, 170, 170, .2) url("res/ganttSplitterGrip.png") no-repeat center center;
z-index: 5;
}
.unselectable .vSplitBar, .vSplitBar:hover {
background-color: rgba(170, 170, 170, .5);
box-shadow: 0 0 5px rgba(0, 0, 0, .5);
}
.vSplitBar .toLeft,.vSplitBar .toRight,.vSplitBar .toCenter{
font-family: icons,TeamworkRegular;
cursor: pointer;
position: absolute;
top: 0;
margin-top: 0;
/*background-color: rgba(170, 170, 170, .2);*/
/*background-color: rgba(0, 126, 221, 0.3);*/
background-color: rgba(47, 170, 201, 0.3);
z-index: 2;
font-size: 10px;
width: 15px;
/*box-shadow: 0 0 1px rgba(0, 0, 0, .5);*/
}
.unselectable .vSplitBar .toLeft,.unselectable .vSplitBar .toCenter,.unselectable .vSplitBar .toRight, .vSplitBar:hover .toLeft, .vSplitBar:hover .toRight, .vSplitBar:hover .toCenter{
/*background-color: rgba(170, 170, 170, 1);*/
/*background-color: rgba(0, 126, 221, 1);*/
background-color: rgba(47, 170, 201, 1);
box-shadow: 0 0 1px rgba(0, 0, 0, .4);
}
.vSplitBar .toLeft {
left: -19px;
text-align: left;
}
.vSplitBar .toCenter{
left:-4px;
text-align: center;
}
.vSplitBar .toRight{
left:10px;
text-align: right;
}
.ganttFixHead{
position: absolute;
z-index: 2;
top:0;
}
/* -------------------------------------- GANTT -----------------------------------*/
.ganttTable{
table-layout:fixed;
background-color: #ffffff;
}
.ganttTable td,.ganttTable th{
overflow: hidden;
text-overflow: clip;
white-space: nowrap;
}
.ganttHead1,.ganttHead2{
height:20px;
}
.ganttHead1 th{
border-left:1px solid #b0b0b0;
padding: 0;
margin: 0;
/*border-right: 1px solid #bbb;*/
border-bottom:1px solid #bbb;
background: #EEEEEE;
white-space: pre-line;
word-break: break-all;
}
.ganttHead1 th,
.ganttHead2 th{
white-space: nowrap;
overflow: hidden;
}
.ganttHead2 th{
padding: 0;
margin: 0;
border-left:1px solid #b0b0b0;
/*border-right: 1px solid #bbb;*/
border-bottom:2px solid #bbb;
background: #EEEEEE;
}
.ganttHead1 th.headSmall,.ganttHead2 th.headSmall{
font-size: 10px;
}
.ganttHead1 th.headLeft,.ganttHead2 th.headLeft{
text-align: left;
}
.ganttToday{
position:absolute;
top:0;
width:1px;
height:100%;
border-left:2px dotted #13AFA5;
}
.ganttTitle img {
max-width: 150px;
}
.ganttButtonBar{
position:relative;
z-index: 2;
/*background-color: #fff;*/
border-bottom: 1px solid #959595;
padding: 5px 0 5px 10px;
}
.dataTable .ganttButtonBar{
border-bottom: none;
}
.ganttButtonBar .buttons {
position: relative;
display:inline-block;
width: 100%;
margin-top: 0;
height: 45px;
}
.dataTable .ganttButtonBar .buttons {
display:inline-block;
width: 100%;
}
.ganttButtonBar .buttons button{
vertical-align: middle;
margin:0;
outline: none;
}
.ganttButtonBar .buttons .button.textual.icon {
height: 45px;
}
.button span.teamworkIcon {
text-indent: -10px;
}
.button.textual span.teamworkIcon {
font-size: 140%
}
#saveGanttButton {
margin-left:20px;
padding: 5px 12px;
margin-bottom: 0;
vertical-align: middle;
}
.ganttButtonSeparator{
border-left:1px solid #dadada;
margin:0 10px;
font-size: 130%;
vertical-align: middle;
}
.ganttLines{
position:absolute;
width:100%;
height:1px;
border-top:1px solid #eee;
z-index:1;
}
.ganttLinks{
z-index:10;
}
.ganttTable td.end{
border-right: 2px dotted #ddd;
}
.ganttHead2 th.holy{
background-color: rgba(236, 195, 176, 0.40);
}
.ganttBodyCell.holy{
background-color: rgba(255, 245, 230, 0.51);
}
/* -------------------------------------- TASK -----------------------------------*/
.taskBoxDiv{
position:absolute;
height:25px;
margin-top:3px;
z-index:100;
}
.taskBoxDiv .layout {
height:100%;
color:#DB2727;
border-radius:2px;
background: #eee; /* Old browsers */
border:1px solid #bbb;
}
.taskBoxDiv .taskStatus {
left:5px;
top:10px;
position:absolute;
width:10px;
height:10px;
}
.taskBoxDiv .layout .milestone{
top:0;
position:absolute;
width:18px;
background: url(res/milestone.png) no-repeat;
height:18px;
display:none;
}
.taskBoxDiv .layout .milestone.end{
right:0;
}
.taskBoxDiv .layout .milestone.active{
display:block;
}
.taskBoxDiv.hasChild .layout{
border-top:2px solid black;
}
.taskBoxDiv .taskProgress{
height:5px;
position:absolute;
}
.taskBoxDiv .layout.extDep{
background-image:url(res/hasExternalDeps.png);
}
.taskLabel{
position:absolute;
height:28px;
color:black;
text-align:right;
padding-right:5px;
overflow:hidden;
left:-200px;
width:195px;
white-space:nowrap;
}
.taskDepLine {
border: 1px solid #9999ff;
overflow: hidden;
position: absolute;
}
.taskEditRow,.emptyRow {
height:30px;
}
.taskEditRow input, .columnWidthTest{
border: 0 none;
font-size: 14px;
height: 20px;
margin: 0;
padding:0;
outline: 0;
width: 100%;
border-radius: 0;
vertical-align: text-bottom;
}
.taskEditRow input[type=checkbox]{
transform:scale(.7);
width:15px;
height: 15px;
}
.columnWidthTest{
width: auto;
}
.taskEditRow input:focus{
font-weight: bold;
}
.taskEditRow input{
background-color: transparent;
}
.taskEditRow.rowSelected td{
background-color:rgb(234, 248, 255);
}
.isGanttList .taskEditRow:nth-child(odd), .assigEditRow:nth-child(odd){
background-color: #ffffff;
}
.isGanttList .taskEditRow:nth-child(even), .assigEditRow:nth-child(even){
background-color: #ffffff;
}
input[readonly]{
color: #c0c0c0;
}
.taskStatusBox{
position:absolute;
/*width:100px;*/
height:26px;
border:1px solid #a0a0a0;
background-color:#fff;
margin-top:-21px;
margin-left:-2px;
padding: 4px;
z-index: 100;
}
.taskStatus{
width:15px;
height:15px;
display:inline-block;
text-indent: 0;
position:relative;
box-shadow: none;
border-radius: 50%;
border:0;
cursor: pointer;
}
.taskStatus[status=STATUS_ACTIVE]{
background-color: #3BBF67;
color: #fff;
}
.taskStatus[status=STATUS_DONE]{
background-color: #6EBEF4;
color:#000;
}
.taskStatus[status=STATUS_FAILED]{
background-color: #763A96;
color: #fff;
}
.taskStatus[status=STATUS_SUSPENDED]{
background-color: #F9C154;
color:#000;
}
.taskStatus[status=STATUS_WAITING]{
background-color:#F79136;
color:#000;
}
.taskStatus[status=STATUS_UNDEFINED]{
background-color: #dededf;
color:#000;
}
.taskStatus.selected{
border:#666 2px solid;
}
select.taskStatus{
width: auto;
height: auto;
border-radius: 2px;
}
.assigsTableWrapper{
position: relative;
height: 150px;
overflow: auto;
margin-top: -20px;
}
.unselectable {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;
}
.exp-controller{
display:inline-block;
width:16px;
height:16px;
position: relative;
top: 2px;
margin-left: -18px;
}
.isParent .exp-controller{
background-image: url(res/toggle_collapse.png);
}
.isParent.collapsed .exp-controller{
cursor: pointer;
background-image: url(res/toggle-expand.png);
}
.ui-resizable-helper { border: 1px dotted #00F; }
.ui-resizable-e, .ui-resizable-w {width: 5px;}
.ui-draggable{
cursor:move;
}
/*--------------------------------------------------- SVG --------------------------------------------------*/
.ganttSVGBox{
position: absolute;
top:0;
left: 0;
height: 100%;
background-color: transparent;
width: 100%;
overflow-y: hidden; /*IE11 bug*/
}
.taskBoxSVG{
overflow: visible;
}
.taskBoxSVG .taskLayout{
stroke-width:0;
stroke:#999;
}
.taskLinkPathSVG{
stroke: rgba(47, 151, 198, 1);
/*stroke:#9999ff;*/
stroke-width:2.5px;
fill:none;
cursor:pointer;
}
.ganttLinesSVG{
fill:transparent;
stroke-width:1;
stroke:#eee;
}
.isGanttList .ganttLinesSVG:nth-child(even){
fill:transparent;
stroke-width:1;
stroke:#fff;
}
.isGanttList .ganttLinesSVG:nth-child(odd){
fill:transparent;
stroke-width:1;
stroke:#eee;
}
.ganttLinesSVG.rowSelected{
fill: rgb(234, 248, 255) !important;
/*fill: rgba(255, 255, 153, 0.50) !important;*/
}
.ganttTodaySVG{
stroke-width:2px;
stroke:#e06671;
stroke-linecap:"round";
stroke-dasharray:2,2;
}
.colorByStatus .taskStatusSVG[status=STATUS_ACTIVE]{
fill: #3BBF67;
}
.colorByStatus .taskStatusSVG[status=STATUS_DONE]{
fill: #6EBEF4;
}
.colorByStatus .taskStatusSVG[status=STATUS_FAILED]{
fill: #763A96;
}
.colorByStatus .taskStatusSVG[status=STATUS_SUSPENDED]{
fill: #f9c154;
}
.colorByStatus .taskStatusSVG[status=STATUS_UNDEFINED]{
fill: #dededf;
}
.colorByStatus .taskStatusSVG[status=STATUS_UNDEFINED] .taskLayout{
stroke: #ccc;
stroke-width:1;
}
.colorByStatus .taskStatusSVG[status=STATUS_DONE] .textPerc,
.colorByStatus .taskStatusSVG[status=STATUS_ACTIVE] .textPerc,
.colorByStatus .taskStatusSVG[status=STATUS_FAILED] .textPerc{
fill: #fff;
}
.deSVG.deSVGdrag {
cursor: move;
}
.deSVG.deSVGhand {
cursor: ew-resize;
}
.linkHandleSVG{
display:none;
stroke:transparent;
stroke-width:5;
fill: rgba(47, 151, 198, 0.7);
cursor: pointer;
}
.linkLineSVG{
stroke-width:5px;
stroke: rgba(47, 151, 198, 0.7);
stroke-linecap:"round";
opacity: .5;
}
.linkOnProgress .deSVG.taskBoxSVG {
cursor:cell;
}
.taskBoxSVG.linkOver .taskLayout{
stroke-width:1px;
stroke:rgba(47, 151, 198, 0.7);
opacity: 1;
}
.taskLabelSVG {
stroke: none;
fill:#999;
font-size: 12px;
}
.critical .taskLinkPathSVG{
stroke:red;
}
.taskBoxSVG.critical .taskLayout{
stroke:red;
}
.focused .taskLinkPathSVG{
stroke-width:5px;
stroke: rgba(47, 151, 198, 0.7);
}
.taskBoxSVG.focused .taskLayout{
stroke-width:3px;
stroke: rgba(47, 151, 198, 0.7);
}
.taskBoxSVG.critical .taskLayout{
stroke-width:3px;
stroke: rgba(255, 0, 0, 0.7);
}
/*--------------------------------------------------- RESOURCE ADD --------------------------------------------------*/
.ganttAddResource{
position: absolute;
width: 660px;
height: 300px;
border: 1px solid red;
background-color: white;
box-shadow: 0 0 5px rgba(0,0,0,0.3);
top:120px;
left:70px;
z-index: 200;
padding: 10px;
}
.ganttAddResource tr.isCompany{
display:none;
}
.ganttAddResource.isCompany tr.isCompany{
display:table-row;
}
.ganttAddResource.isCompany tr.isPerson{
display:none;
}
.ganttAddResourceBG {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, .3);
z-index: 200;
}
/*---------------------------------#LOG_CHANGES_CONTAINER --------------------------------------------*/
#LOG_CHANGES_CONTAINER{
display: none;
width: 300px;
top:-130px;
margin-left: -35px
}
.userProfile {
font-size: 16px;
vertical-align: middle;
text-align: right;
margin: 0 5px 0 0;
padding: 5px;
float: right;
position: relative;
z-index: 50;
line-height: 40px;
vertical-align: middle;
position: absolute;
right: 0;
}
.userLine {
max-width: 150px;
display: inline-block;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
margin: 0;padding: 0;
vertical-align: middle;
}
.avatar {
vertical-align: middle;
padding: 1px;
width: 27px;
height: 27px;
border: 1px solid #dedede
}
.node .content {
white-space: pre-wrap !important;
/* width: fit-content; */
height: fit-content !important;
text-align: left !important;
}
/*--------------------------------------------------- Media queries --------------------------------------------------*/
/* Large screens */
@media only screen and (max-width : 1260px) {
.ganttButtonBar .button span.teamworkIcon {
font-size: 130%;
}
.userLine {
display: none;
}
}
@media only screen and (min-width : 1261px) and (max-width : 1320px) {
.ganttButtonBar .button span.teamworkIcon {
font-size: 130%;
}
.button {
font-size: 100%;
padding: 3px 9px 6px;
margin-right: 5px;
margin-bottom: 5px
}
.userLine {
display: none;
}
}
@media only screen and (max-width : 1160px) {
.userProfile {
float: none;
position: absolute;
top:0;
right: 10px;
}
.userProfile .teamworkIcon {
color: rgb(255, 255, 255);
}
.userProfile .ganttButtonSeparator, .userProfile .avatar {
border-color: rgb(127, 154, 170);
}
}
/* Ipad */
@media only screen and (min-width: 768px) and (max-width: 1024px){
.ganttButtonSeparator {
margin-left: 2px;
padding-right: 6px;
font-size: 100%;
}
.button {
padding: 5px 6px 6px;
}
}
/* Mobile TODO */
@media only screen and (max-width: 767px) {
.button {
font-size: 50%;
}
}