2021-04-28 20:10:26 +02:00

632 lines
10 KiB
CSS

body{
overflow: hidden;
}
/* -------------------------------------- GRIDIFY -----------------------------------*/
.gdfTable {
table-layout: fixed;
border-collapse: separate;
border-spacing: 0;
}
.gdfTable td, .gdfTable th {
vertical-align: middle;
overflow: hidden;
text-overflow: clip;
white-space: nowrap;
font-size: 14px
}
.gdfCell {
overflow: hidden;
padding:4px 2px
}
.gdfCell.noClip{
overflow: visible;
}
.gdfColHeader {
min-width: 5px;
height: 30px;
}
.gdfCell, .gdfColHeader {
border-bottom: 1px solid #eee;
border-right: 1px solid #b0b0b0;
}
.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%;
}
.vSplitBar {
width: 5px;
background-color: #aaa;
cursor: w-resize;
text-align: center;
color: white;
}
.fixHead{
position: absolute;
z-index: 2000;
top:0;
}
/* -------------------------------------- GANTT -----------------------------------*/
.ganttTable{
table-layout:fixed;
}
.ganttTable td,.ganttTable th{
overflow: hidden;
text-overflow: clip;
white-space: nowrap;
}
.ganttHead1,.ganttHead2{
height:20px;
}
.ganttHead1 th, .ganttHead2 th{
border-left:1px solid #b0b0b0;
padding: 0;
margin: 0;
}
.ganttToday{
position:absolute;
top:0;
width:1px;
height:100%;
border-left:2px dotted #13AFA5;
}
.ganttHighLight{
position:absolute;
width:100%;
height:28px;
background-color:yellow;
opacity:.4;
}
.ganttButtonBar{
position:relative;
padding:5px;
height:55px;
}
.ganttButtonBar .buttons, .ganttButtonBar h1 {
display:inline-block;
margin:0px 0 0 10px;
}
.button span.teamworkIcon {
text-indent: -10px;
}
.button.textual span.teamworkIcon {
font-size: 140%
}
.ganttButtonBar .button.textual span.teamworkIcon{
font-size: 150%
}
.ganttButtonSeparator{
border-left:1px solid gray;
padding-right:10px;
margin-left:10px;
font-size: 130%
}
.ganttLines{
position:absolute;
width:100%;
height:1px;
border-top:1px solid #eee;
z-index:1;
}
.ganttLinks{
z-index:10;
}
.end{
border-right:1px dotted #666
}
.holyH{
background-color: #f3dfd5;
}
.holy{
background-color: #FFF5E6;
}
/* -------------------------------------- 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{
border: 0 none;
font-size: 14px;
height: 20px;
margin: 0;
padding:0;
outline: 0;
width: 100%;
border-radius: 0;
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
}
.taskEditRow input:focus{
font-weight: bold;
}
.taskEditRow.rowSelected td,.taskEditRow.rowSelected input{
background-color:#FFFF99;
}
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: 3px;
border: 1px solid rgba(0, 0, 0, 0.20)
}
.taskStatus[status=STATUS_ACTIVE]{
background-color: #3BBF67;
}
.taskStatus[status=STATUS_DONE]{
background-color: #0099FF;
}
.taskStatus[status=STATUS_FAILED]{
background-color: #660066;
}
.taskStatus[status=STATUS_SUSPENDED]{
background-color: #fbb11e;
}
.taskStatus[status=STATUS_UNDEFINED]{
background-color: #ffffff;
}
.taskStatus.selected{
border:#666 2px solid;
}
.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;
}
.expcoll{
cursor: pointer;
background-image: url(res/toggle-expand.png);
}
.expcoll.exp{
background-image: url(res/toggle_collapse.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%;
}
.taskBoxSVG{
overflow: visible;
}
.taskBoxSVG .taskLayout{
stroke-width:0;
stroke:#999;
/*fill:url('#taskGrad'); do not work on firefox*/
}
.taskLinkPathSVG{
stroke:#9999ff;
stroke-width:3px;
fill:none;
cursor:pointer;
}
.ganttLinesSVG{
stroke:#eee;
stroke-width:1;
}
.ganttTodaySVG{
stroke-width:2px;
stroke:#13AFA5;
stroke-linecap:"round";
stroke-dasharray:2,2;
}
.taskStatusSVG[status=STATUS_ACTIVE]{
fill: #3BBF67;
}
.taskStatusSVG[status=STATUS_DONE]{
fill: #0099FF;
}
.taskStatusSVG[status=STATUS_FAILED]{
fill: #660066;
}
.taskStatusSVG[status=STATUS_SUSPENDED]{
fill: #fbb11e;
}
.taskStatusSVG[status=STATUS_UNDEFINED]{
fill: #f0f0f0;
}
.taskStatusSVG[status=STATUS_UNDEFINED] .taskLayout{
stroke: #ccc;
stroke-width:1;
}
.taskStatusSVG[status=STATUS_DONE] .textPerc,
.taskStatusSVG[status=STATUS_ACTIVE] .textPerc,
.taskStatusSVG[status=STATUS_FAILED] .textPerc{
fill: #fff;
}
.deSVG.deSVGdrag {
cursor: move;
}
.deSVG.deSVGhand {
cursor: ew-resize;
}
.linkHandleSVG{
display:none;
stroke:#888;
stroke-width:2px;
fill:#eee;
cursor: pointer;
}
.linkLineSVG{
stroke-width:5px;
stroke: #9999ff;
stroke-linecap:"round";
opacity: .5;
/*stroke-dasharray:5,5;*/
}
.linkOnProgress .deSVG.taskBoxSVG {
cursor:cell;
}
.taskBoxSVG.linkOver .taskLayout{
stroke-width:1px;
stroke:#9999ff;
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: #4286ff;
}
.taskBoxSVG.focused .taskLayout{
stroke-width:3px;
stroke: #4286ff;
}
.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;
}
.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
}
/*--------------------------------------------------- Media queries --------------------------------------------------*/
/* Large screens */
@media only screen and (max-width : 1440px) and (min-width : 1260px) {
.ganttButtonBar .button.textual span.teamworkIcon {
font-size: 130%;
}
.userLine {
display: none;
}
}
@media only screen and (max-width: 1259px) and (min-width : 1150px) {
.ganttButtonBar .button.textual span.teamworkIcon {
font-size: 120%;
}
.button.textual span.teamworkIcon {
font-size: 120%;
}
.button {
font-size: 110%;
padding: 3px 9px 6px;
margin-right: 5px;
margin-bottom: 5px
}
.userLine {
display: none;
}
}
@media only screen and (max-width: 1149px) and (min-width : 989px) {
.button.textual span.teamworkIcon {
font-size: 110%;
}
.ganttButtonBar .button.textual span.teamworkIcon {
font-size: 110%;
}
.button {
font-size: 110%;
padding: 3px 9px 6px;
margin-right: 5px;
margin-bottom: 5px
}
.button em {
display: none;
}
.userLine {
display: none;
}
}
/* Ipad */
@media only screen and (max-width: 989px) and (min-width: 768px){
.ganttButtonSeparator {
margin-left: 2px;
padding-right: 6px;
font-size: 100%;
}
.ganttButtonBar .button.textual span.teamworkIcon {
font-size: 100%;
}
.button em {
display: none;
}
.userLine {
display: none;
}
}
/* Mobile TODO */
@media only screen and (max-width: 767px) {
.button.textual {
font-size: 50%;
}
.button em {
display: none;
}
}