Reviewers: #roundcube_kolab_plugins_developers Subscribers: #roundcube_kolab_plugins_developers Differential Revision: https://git.kolab.org/D2179
1310 lines
26 KiB
Text
1310 lines
26 KiB
Text
/**
|
|
* Kolab core library
|
|
*
|
|
* This file contains Elastic skin styles for calendar plugin.
|
|
*
|
|
* @author Aleksander Machniak <machniak@kolabsys.com>
|
|
*
|
|
* Copyright (C) 2012-2018, Kolab Systems AG <contact@kolabsys.com>
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
.menu {
|
|
a.calendarlink:before {
|
|
content: @fa-var-calendar-alt;
|
|
}
|
|
|
|
a.send:before {
|
|
content: @fa-var-paper-plane;
|
|
}
|
|
}
|
|
|
|
// Icon for resources in autocompletion list
|
|
.listing.iconized li.resource > i:before {
|
|
content: @fa-var-cube;
|
|
}
|
|
|
|
a.button {
|
|
&.today:before {
|
|
.font-icon-regular(@fa-var-calendar);
|
|
}
|
|
|
|
&.date:before {
|
|
.font-icon-regular(@fa-var-calendar-alt);
|
|
}
|
|
}
|
|
|
|
.listing {
|
|
li {
|
|
& > div {
|
|
&.calendar {
|
|
.calname:before {
|
|
&:extend(.font-icon-class);
|
|
content: @fa-var-calendar-alt;
|
|
}
|
|
|
|
.actions {
|
|
padding-right: .25rem;
|
|
|
|
:last-child {
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.calendar.cal---invitation--pending .calname:before,
|
|
&.calendar.cal---invitation--declined .calname:before {
|
|
.font-icon-regular(@fa-var-calendar-alt);
|
|
}
|
|
|
|
&.calendar.cal-__bdays__ .calname:before {
|
|
content: @fa-var-birthday-cake;
|
|
}
|
|
|
|
&.calendar.cal---invitation--pending,
|
|
&.calendar.cal---invitation--declined,
|
|
&.calendar.cal-__bdays__ {
|
|
font-style: italic;
|
|
|
|
a.calname {
|
|
padding-right: 2.5em;
|
|
}
|
|
|
|
.count {
|
|
right: 4.2em;
|
|
font-style: normal;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Calednars list element (color indicator) used in Larry
|
|
span.handle {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
#calendarcategories {
|
|
.input-group:not(:last-child) {
|
|
margin-bottom: .25rem;
|
|
}
|
|
}
|
|
|
|
fieldset.categories .input-group {
|
|
.minicolors-input {
|
|
border-radius: 0;
|
|
}
|
|
|
|
.minicolors + .input-group-append {
|
|
margin-left: 0;
|
|
}
|
|
|
|
a.button.create {
|
|
&:before {
|
|
&:extend(.font-icon-class);
|
|
content: @fa-var-plus;
|
|
line-height: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
.calendar-invitebox {
|
|
& > i.icon:before {
|
|
content: @fa-var-calendar !important;
|
|
}
|
|
}
|
|
|
|
.calendar-agenda-preview {
|
|
display: none;
|
|
margin-top: .5rem;
|
|
border-top: 1px solid #ddd;
|
|
|
|
h3 {
|
|
margin-top: .5rem;
|
|
}
|
|
|
|
.event-row {
|
|
white-space: nowrap;
|
|
.overflow-ellipsis();
|
|
|
|
&.current {
|
|
color: #333;
|
|
font-weight: bold;
|
|
}
|
|
|
|
&.no-event {
|
|
font-style: italic;
|
|
}
|
|
|
|
&.fc-invitation-needs-action {
|
|
color: @color-black-shade-text;
|
|
|
|
.event-title {
|
|
font-style: italic;
|
|
}
|
|
}
|
|
}
|
|
|
|
.event-title {
|
|
padding-left: .5rem;
|
|
}
|
|
|
|
.event-date {
|
|
}
|
|
}
|
|
|
|
#calendar.content {
|
|
// fullcalendar widget implements scrolling on its own
|
|
overflow: hidden !important;
|
|
position: relative;
|
|
}
|
|
|
|
.calendar-datepicker {
|
|
// overwrite jQuery-UI datepicker styles
|
|
.ui-datepicker {
|
|
margin: 0 !important;
|
|
border: 0;
|
|
border-radius: 0;
|
|
width: auto;
|
|
min-width: auto !important;
|
|
font-size: .9rem;
|
|
background-color: @color-black-shade-bg;
|
|
|
|
table {
|
|
margin: 0;
|
|
}
|
|
|
|
td a {
|
|
font-size: .9rem !important;
|
|
}
|
|
}
|
|
|
|
.ui-datepicker-header {
|
|
background-color: @color-black-shade-bg;
|
|
border-top: 1px solid @color-layout-border;
|
|
}
|
|
|
|
.ui-dialog & {
|
|
.ui-datepicker {
|
|
background: transparent;
|
|
}
|
|
|
|
.ui-datepicker-header {
|
|
background: transparent;
|
|
border: 0;
|
|
}
|
|
|
|
td a {
|
|
line-height: 3em !important;
|
|
font-size: 1rem !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Fullcalendar styles
|
|
@import "fullcalendar";
|
|
|
|
@color-calendar-border: @color-layout-border;
|
|
@color-calendar-free-bg: fadeout(@color-black-shade-text, 80%);
|
|
@color-calendar-today: fadeout(@color-warning, 80%);
|
|
@color-event-default: #c00;
|
|
|
|
.fc {
|
|
body.quickview-active & .fc-scroller {
|
|
background: data-uri("image/svg+xml;charset=utf-8", "../images/eye.svg") center no-repeat;
|
|
background-size: 50%;
|
|
}
|
|
|
|
.fc-header-toolbar {
|
|
display: flex;
|
|
background-color: @color-black-shade-bg;
|
|
margin: 0;
|
|
|
|
& > * > * {
|
|
float: none;
|
|
margin: 0;
|
|
}
|
|
}
|
|
|
|
.fc-left {
|
|
order: 1;
|
|
|
|
.fc-button-group {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.fc-center {
|
|
flex: 1;
|
|
order: 2;
|
|
text-align: center;
|
|
padding: .25rem;
|
|
|
|
h2 {
|
|
margin: 0;
|
|
color: @color-black-shade-text;
|
|
white-space: nowrap;
|
|
font-size: 1.25rem;
|
|
font-weight: bold;
|
|
}
|
|
}
|
|
|
|
.fc-right {
|
|
order: 3;
|
|
text-align: right;
|
|
|
|
.fc-button {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
button {
|
|
height: unset;
|
|
padding: .3rem .75rem;
|
|
}
|
|
|
|
button.prev:before {
|
|
&:extend(.font-icon-class);
|
|
content: @fa-var-angle-left;
|
|
margin: 0 !important;
|
|
line-height: 1;
|
|
}
|
|
|
|
button.next:before {
|
|
&:extend(.font-icon-class);
|
|
content: @fa-var-angle-right;
|
|
margin: 0 !important;
|
|
line-height: 1;
|
|
}
|
|
|
|
.btn-group {
|
|
padding: .5rem;
|
|
margin: 0;
|
|
}
|
|
|
|
.fc-type-freebusy {
|
|
opacity: 0.6;
|
|
|
|
.fc-title {
|
|
position: absolute;
|
|
top: -5000px;
|
|
}
|
|
|
|
td {
|
|
color: #999;
|
|
}
|
|
}
|
|
|
|
.fc-event-dot {
|
|
background-color: @color-event-default;
|
|
}
|
|
|
|
a.fc-event, a.fc-event:hover {
|
|
color: #fff;
|
|
}
|
|
|
|
.fc-event {
|
|
font-size: 13px;
|
|
background-color: @color-event-default;
|
|
border-color: @color-event-default;
|
|
|
|
.fc-title {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.fc-bg {
|
|
opacity: .15;
|
|
margin-top: 1.1rem;
|
|
}
|
|
|
|
&.fc-invitation-needs-action,
|
|
&.fc-invitation-tentative,
|
|
&.fc-invitation-declined {
|
|
border: 1px dashed #999;
|
|
}
|
|
|
|
&.fc-event-ns-other.fc-invitation-declined {
|
|
opacity: 0.7;
|
|
|
|
.fc-title {
|
|
text-decoration: line-through;
|
|
}
|
|
}
|
|
|
|
&.fc-invitation-tentative .fc-bg {
|
|
background: url(data:image/gif;base64,R0lGODlhCAAIAPABAOuJAP///yH/C1hNUCBEYXRhWE1QAT8AIfkEBQAAAQAsAAAAAAgACAAAAg4Egmipx+ZaDPCtVPFNBQA7) 0 0 repeat #fff;
|
|
}
|
|
|
|
&.fc-invitation-needs-action .fc-bg {
|
|
background: url(data:image/gif;base64,R0lGODlhCAAIAPABAFdXx////yH/C1hNUCBEYXRhWE1QAT8AIfkEBQAAAQAsAAAAAAgACAAAAg4Egmipx+ZaDPCtVPFNBQA7) 0 0 repeat #fff;
|
|
}
|
|
|
|
&.fc-invitation-declined .fc-bg {
|
|
background: url(data:image/gif;base64,R0lGODlhCAAIAPABAMwAAP///yH/C1hNUCBEYXRhWE1QAT8AIfkEBQAAAQAsAAAAAAgACAAAAg4Egmipx+ZaDPCtVPFNBQA7) 0 0 repeat #fff;
|
|
}
|
|
}
|
|
|
|
.fc-list-view {
|
|
tr.fc-invitation-tentative,
|
|
tr.fc-invitation-declined,
|
|
tr.fc-invitation-needs-action {
|
|
color: #888;
|
|
|
|
.fc-event-dot {
|
|
background-color: #888;
|
|
}
|
|
}
|
|
}
|
|
|
|
.fc-needs-action,
|
|
.fc-declined,
|
|
.cal-event-status-cancelled {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.fc-time i {
|
|
display: inline-block;
|
|
width: 1em;
|
|
height: 1em;
|
|
margin-left: .25rem;
|
|
|
|
&:before {
|
|
&:extend(.font-icon-class);
|
|
font-size: 1em;
|
|
line-height: 1;
|
|
margin-top: .1rem;
|
|
}
|
|
|
|
&.fc-icon-recurring:before {
|
|
.font-icon-regular(@fa-var-clone);
|
|
}
|
|
|
|
&.fc-icon-alarms:before {
|
|
content: @fa-var-bell;
|
|
}
|
|
|
|
&.fc-icon-sensitive:before {
|
|
content: @fa-var-lock;
|
|
}
|
|
}
|
|
|
|
.fc-event-temp {
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.fc-nonbusiness {
|
|
background-color: @color-calendar-free-bg;
|
|
}
|
|
|
|
.fc-day.fc-today {
|
|
background: @color-calendar-today !important;
|
|
}
|
|
|
|
.fc-now-indicator {
|
|
border-color: @color-success;
|
|
border-width: 1.5px;
|
|
}
|
|
|
|
.fc-list-item,
|
|
.fc-list-item:hover td {
|
|
background: transparent;
|
|
}
|
|
|
|
.fc-list-item td,
|
|
.fc-list-item a {
|
|
cursor: default;
|
|
}
|
|
|
|
.fc-list-item-title {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.fc-list-table td {
|
|
padding: .5rem;
|
|
}
|
|
|
|
.fc-list-heading td {
|
|
background: fadeout(@color-black-shade-text, 90%);
|
|
}
|
|
|
|
.fc-list-empty {
|
|
display: none;
|
|
}
|
|
|
|
.fc-more {
|
|
color: @color-link !important;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.fc-axis,
|
|
.fc-day-number,
|
|
.fc-week-number,
|
|
.fc-day-header,
|
|
.fc-week-header {
|
|
color: @color-black-shade-text;
|
|
font-size: .95rem;
|
|
padding: .15rem !important;
|
|
}
|
|
|
|
.fc-week-number {
|
|
text-align: center;
|
|
}
|
|
|
|
.fc-popover {
|
|
border-radius: .3rem;
|
|
|
|
.fc-header {
|
|
color: @color-black-shade-text;
|
|
font-size: .95rem;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.fc-icon-x::after {
|
|
top: 3px;
|
|
}
|
|
}
|
|
|
|
// remove redundant borders
|
|
.fc-view.fc-widget-content,
|
|
td.fc-head-container {
|
|
border-left-width: 0;
|
|
}
|
|
|
|
.fc-list-view,
|
|
.fc-body > tr > .fc-widget-content,
|
|
.fc-body .fc-bg-sceleton .fc-widget-content,
|
|
.fc-body .fc-bg .fc-widget-content {
|
|
border-bottom-width: 0;
|
|
}
|
|
|
|
// fullcalendar style overrides for printing
|
|
.print-content & {
|
|
.fc-header-toolbar {
|
|
background-color: #fff;
|
|
}
|
|
|
|
.fc-center h2 {
|
|
color: #000;
|
|
padding-bottom: .75rem;
|
|
font-size: 1.5rem !important;
|
|
}
|
|
|
|
.fc-day.fc-today {
|
|
background: transparent !important;
|
|
}
|
|
|
|
a.fc-event {
|
|
color: #000;
|
|
background-color: #fff !important;
|
|
}
|
|
|
|
.fc-event-description {
|
|
white-space: pre-wrap;
|
|
font-size: 90%;
|
|
}
|
|
|
|
.fc-event-location {
|
|
width: 20%;
|
|
}
|
|
|
|
.fc-event-row-secondary td {
|
|
border: 0;
|
|
padding-top: 0 !important;
|
|
}
|
|
|
|
.fc-scroller {
|
|
overflow: visible !important;
|
|
height: auto !important;
|
|
}
|
|
|
|
// Re-add removed borders
|
|
.fc-view.fc-widget-content,
|
|
td.fc-head-container {
|
|
border-left-width: 1px;
|
|
}
|
|
|
|
.fc-list-view,
|
|
.fc-agenda-view,
|
|
.fc-month-view {
|
|
border-bottom: 1px solid #ddd;
|
|
}
|
|
}
|
|
|
|
@media screen and (max-width: @screen-width-small) {
|
|
.fc-left {
|
|
display: block;
|
|
width: 100%;
|
|
padding: 0;
|
|
|
|
button {
|
|
flex: 1 1 auto;
|
|
border-radius: 0;
|
|
}
|
|
|
|
.btn-group {
|
|
padding: 0;
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
.fc-list-table .fc-event-location,
|
|
.fc-center,
|
|
.fc-right {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media screen and (min-width: (@screen-width-small + 1px)) and (max-width: 920px) {
|
|
.fc-center {
|
|
.overflow-ellipsis();
|
|
flex: 1;
|
|
|
|
h2 {
|
|
font-size: 1rem;
|
|
line-height: 1;
|
|
padding-top: .45rem;
|
|
}
|
|
}
|
|
|
|
.fc-left,
|
|
.fc-right {
|
|
.btn {
|
|
padding-left: .5rem;
|
|
padding-right: .5rem;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Add scrollbar on iOS
|
|
html:matches(.ipad,.iphone) {
|
|
.ui-dialog-content:not(.iframe),
|
|
#fish-eye-view,
|
|
.fc-scroller {
|
|
&::-webkit-scrollbar {
|
|
-webkit-appearance: none;
|
|
}
|
|
|
|
&::-webkit-scrollbar:vertical {
|
|
width: .6rem;
|
|
}
|
|
|
|
&::-webkit-scrollbar:horizontal {
|
|
height: .6rem;
|
|
}
|
|
|
|
&::-webkit-scrollbar-thumb {
|
|
background-color: rgba(0, 0, 0, .4);
|
|
border-radius: .3rem;
|
|
border: 2px solid #fff;
|
|
}
|
|
}
|
|
}
|
|
|
|
body.task-calendar {
|
|
#print-layout {
|
|
#calendar-view-selector {
|
|
float: right;
|
|
padding-top: .25rem;
|
|
}
|
|
|
|
#calendarlist {
|
|
margin-top: 1rem;
|
|
|
|
&, ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
}
|
|
|
|
li {
|
|
display: inline-block;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
ul, li, div {
|
|
float: left;
|
|
}
|
|
|
|
div {
|
|
margin-right: 2rem;
|
|
}
|
|
|
|
a {
|
|
text-decoration: none;
|
|
cursor: auto;
|
|
}
|
|
|
|
input,
|
|
span.actions,
|
|
span.handle {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
@media screen and (min-width: (@screen-width-small + 1px)) {
|
|
#layout-sidebar {
|
|
flex: 2;
|
|
max-width: 400px;
|
|
min-width: 240px;
|
|
}
|
|
}
|
|
|
|
// improve datepicker
|
|
.ui-datepicker {
|
|
td {
|
|
width: 12.5%;
|
|
}
|
|
|
|
.ui-datepicker-week-col {
|
|
color: @color-black-shade-border;
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
.ui-datepicker-inline {
|
|
.ui-datepicker-week-col {
|
|
color: @color-link;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.ui-datepicker-activerange {
|
|
background-color: @color-list-selected-background;
|
|
}
|
|
}
|
|
}
|
|
|
|
#timezone-display {
|
|
font-size: .9rem;
|
|
color: @color-black-shade-text;
|
|
}
|
|
|
|
#agendaoptions {
|
|
padding: 0 .5rem .5rem .5rem;
|
|
display: flex;
|
|
background-color: @color-black-shade-bg;
|
|
|
|
.input-group {
|
|
padding-right: .5rem;
|
|
flex-wrap: nowrap;
|
|
// width: 50%;
|
|
|
|
&:last-child {
|
|
padding-right: 0;
|
|
}
|
|
}
|
|
|
|
select {
|
|
min-width: 7em;
|
|
}
|
|
|
|
.input-group-prepend {
|
|
overflow: hidden;
|
|
margin-bottom: 0;
|
|
|
|
span {
|
|
display: block;
|
|
.overflow-ellipsis();
|
|
}
|
|
}
|
|
}
|
|
|
|
#eventshow {
|
|
margin: 0;
|
|
|
|
.event-title {
|
|
font-size: 1.5rem;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.event-location {
|
|
.overflow-ellipsis();
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.event-description {
|
|
margin: 1rem 0;
|
|
}
|
|
|
|
.event-attendees {
|
|
margin-bottom: 1rem;
|
|
|
|
.attendee {
|
|
margin-right: .25rem;
|
|
}
|
|
}
|
|
|
|
.event-partstat {
|
|
& > span {
|
|
display: flex;
|
|
}
|
|
|
|
.rsvp-status {
|
|
&:before {
|
|
display: inline;
|
|
float: none;
|
|
}
|
|
}
|
|
|
|
.changersvp {
|
|
cursor: pointer;
|
|
font-size: 1.2rem;
|
|
margin-left: 1em;
|
|
|
|
&:before {
|
|
&:extend(.font-icon-class);
|
|
content: @fa-var-pen-square;
|
|
float: none;
|
|
display: inline;
|
|
line-height: 1;
|
|
}
|
|
}
|
|
|
|
.inner {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
#eventedit {
|
|
.edit-attendees-table td {
|
|
padding-top: .15rem;
|
|
|
|
&.role {
|
|
padding-left: 0;
|
|
width: 9em;
|
|
}
|
|
}
|
|
}
|
|
|
|
#fish-eye-view {
|
|
padding: 0;
|
|
|
|
@media screen and (min-width: (@screen-width-small + 1px)) {
|
|
border-bottom: 1px solid @color-calendar-border;
|
|
}
|
|
}
|
|
|
|
@color-availability-unknown: #bbb; // Larry: #ddd;
|
|
@color-availability-free: @color-success; // Larry: #abd640;
|
|
@color-availability-busy: @color-error; // Larry: #e26569;
|
|
@color-availability-tentative: #8383fc;
|
|
@color-availability-out-of-office: #fbaa68;
|
|
|
|
.availability {
|
|
span {
|
|
margin-right: .5rem;
|
|
color: @color-black-shade-text;
|
|
|
|
&:before {
|
|
&:extend(.font-icon-class);
|
|
content: @fa-var-square;
|
|
display: inline;
|
|
float: none;
|
|
}
|
|
|
|
&.legend:before {
|
|
font-size: 1em;
|
|
}
|
|
|
|
&.loading:before {
|
|
.animated-icon-class();
|
|
content: @fa-var-circle-notch;
|
|
display: block;
|
|
line-height: 1;
|
|
}
|
|
|
|
&.unknown:before {
|
|
color: @color-availability-unknown;
|
|
}
|
|
|
|
&.free:before {
|
|
color: @color-availability-free;
|
|
}
|
|
|
|
&.busy:before {
|
|
color: @color-availability-busy;
|
|
}
|
|
|
|
&.tentative:before {
|
|
color: @color-availability-tentative;
|
|
}
|
|
|
|
&.out-of-office:before {
|
|
color: @color-availability-out-of-office;
|
|
}
|
|
}
|
|
}
|
|
|
|
// fixes additional checkbox in Elastic's .datetime widget
|
|
.datetime {
|
|
.custom-switch {
|
|
padding-left: .5rem;
|
|
|
|
label {
|
|
line-height: 2;
|
|
margin-top: .2rem;
|
|
}
|
|
}
|
|
|
|
input {
|
|
width: 10em !important;
|
|
}
|
|
|
|
@media screen and (max-width: 420px) {
|
|
input {
|
|
width: 8em !important;
|
|
|
|
& + input {
|
|
width: 6em !important;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.calendar-scheduler {
|
|
.nav {
|
|
align-items: center;
|
|
|
|
button:first-child {
|
|
margin-right: .25rem;
|
|
}
|
|
|
|
& > div {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
@media screen and (max-width: 420px) {
|
|
button {
|
|
padding-left: .5rem;
|
|
padding-right: .5rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
.schedule-buttons {
|
|
.prev-slot:before {
|
|
content: @fa-var-chevron-left;
|
|
}
|
|
|
|
.next-slot:after {
|
|
&:extend(.font-icon-class);
|
|
content: @fa-var-chevron-right;
|
|
display: inline-block;
|
|
float: none;
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
|
|
.schedule-options {
|
|
flex: 1;
|
|
margin-left: 1rem;
|
|
|
|
html.layout-phone & {
|
|
order: 100;
|
|
margin-left: 0;
|
|
}
|
|
}
|
|
|
|
.schedule-nav {
|
|
flex: 1;
|
|
margin-left: .3rem;
|
|
text-align: right;
|
|
|
|
button {
|
|
line-height: 1.8;
|
|
}
|
|
}
|
|
|
|
.schedule-range {
|
|
width: 60%;
|
|
margin-top: 2rem;
|
|
|
|
html.layout-phone & {
|
|
margin: 0;
|
|
}
|
|
}
|
|
|
|
.schedule-legend {
|
|
.attendee {
|
|
margin-right: .5rem;
|
|
}
|
|
}
|
|
|
|
.attendees-list {
|
|
position: relative;
|
|
|
|
a.attendee-role-toggle {
|
|
position: absolute;
|
|
left: 0;
|
|
display: inline-block;
|
|
width: 1em;
|
|
cursor: pointer;
|
|
}
|
|
|
|
div.attendee {
|
|
border-top: 1px solid @color-list-border;
|
|
line-height: 1.7rem;
|
|
height: 1.8rem;
|
|
}
|
|
|
|
.attendee {
|
|
white-space: nowrap;
|
|
|
|
&.spacer {
|
|
height: 10px;
|
|
}
|
|
|
|
&.loading:before {
|
|
.animated-icon-class();
|
|
.font-icon-solid(@fa-var-circle-notch);
|
|
}
|
|
|
|
&.total {
|
|
font-weight: bold;
|
|
}
|
|
|
|
&.total,
|
|
&.spacer {
|
|
&:before {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.schedule-table {
|
|
table-layout: fixed;
|
|
|
|
th {
|
|
border-top: 0;
|
|
}
|
|
|
|
td.attendees {
|
|
width: 25%;
|
|
overflow: hidden;
|
|
border-top: 0;
|
|
|
|
html.layout-phone & {
|
|
width: 35%;
|
|
}
|
|
|
|
.attendees-list {
|
|
border-bottom: 1px solid @color-table-border;
|
|
}
|
|
}
|
|
|
|
td.times {
|
|
width: auto;
|
|
border-top: 0;
|
|
|
|
table {
|
|
margin: 0;
|
|
}
|
|
|
|
td {
|
|
height: 1.8rem;
|
|
border-top: 1px solid @color-list-border;
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
|
|
div.scroll {
|
|
position: relative;
|
|
overflow: auto;
|
|
}
|
|
|
|
.timesheader {
|
|
height: 1.4rem;
|
|
border-top: 1px solid @color-table-border;
|
|
}
|
|
|
|
.boxtitle {
|
|
margin: 0;
|
|
padding: 0;
|
|
font-size: 1rem;
|
|
font-weight: bold;
|
|
padding-top: .5rem;
|
|
line-height: 2;
|
|
}
|
|
|
|
td {
|
|
padding: 4px;
|
|
}
|
|
|
|
tbody td {
|
|
padding: 0;
|
|
|
|
div {
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
tr.spacer td {
|
|
padding: 0;
|
|
height: 10px;
|
|
}
|
|
|
|
tr.dates th[colspan="1"] {
|
|
min-width: 48px;
|
|
max-width: 48px;
|
|
text-align: center;
|
|
font-size: .7rem;
|
|
line-height: 2.9;
|
|
}
|
|
|
|
tr.times td {
|
|
cursor: pointer;
|
|
min-width: 48px;
|
|
max-width: 48px;
|
|
font-size: .7rem;
|
|
text-align: center;
|
|
color: @color-link;
|
|
height: 1.4rem;
|
|
padding: 0 .1rem;
|
|
vertical-align: middle;
|
|
border-top: 1px solid @color-table-border;
|
|
border-left: 1px solid @color-list-border;
|
|
}
|
|
|
|
.fbcontent {
|
|
td {
|
|
border-left: 1px solid @color-list-border;
|
|
}
|
|
|
|
&:last-child td {
|
|
border-bottom: 1px solid @color-table-border;
|
|
}
|
|
}
|
|
|
|
div.unknown {
|
|
background-color: @color-availability-unknown;
|
|
}
|
|
|
|
div.free {
|
|
background-color: @color-availability-free;
|
|
}
|
|
|
|
div.busy {
|
|
background-color: @color-availability-busy;
|
|
}
|
|
|
|
div.tentative {
|
|
background-color: @color-availability-tentative;
|
|
}
|
|
|
|
div.out-of-office {
|
|
background-color: @color-availability-out-of-office;
|
|
}
|
|
|
|
div.all-busy,
|
|
div.all-tentative,
|
|
div.all-out-of-office {
|
|
overflow: hidden;
|
|
|
|
// This span imitates a slanting line across the parent element
|
|
span {
|
|
display: block;
|
|
width: 300%;
|
|
height: 300%;
|
|
border: 1px solid #fff;
|
|
background: darken(@color-availability-busy, 10%);
|
|
transform: rotate(42deg) translate(2%);
|
|
}
|
|
|
|
&.w10 span {
|
|
display: none;
|
|
}
|
|
|
|
&.w20 span,
|
|
&.w25 span {
|
|
transform: rotate(17deg) translate(-9%);
|
|
}
|
|
|
|
&.w30 span {
|
|
transform: rotate(28deg) translate(-7%);
|
|
}
|
|
|
|
&.w33 span {
|
|
transform: rotate(32deg) translate(-5%);
|
|
}
|
|
|
|
&.w40 span {
|
|
transform: rotate(36deg) translate(-3%);
|
|
}
|
|
|
|
&.w60 span {
|
|
transform: rotate(48deg) translate(6%);
|
|
}
|
|
|
|
&.w67 span {
|
|
transform: rotate(52deg) translate(9%);
|
|
}
|
|
|
|
&.w70 span,
|
|
&.w75 span {
|
|
transform: rotate(55deg) translate(12%, 30%);
|
|
}
|
|
|
|
&.w80 span {
|
|
transform: rotate(56deg) translate(13%, 30%);
|
|
}
|
|
|
|
&.w90 span {
|
|
transform: rotate(59deg) translate(16%, 30%);
|
|
}
|
|
|
|
&.w100 span {
|
|
transform: rotate(62deg) translate(19%, 30%);
|
|
}
|
|
}
|
|
|
|
div.all-tentative span {
|
|
background: darken(@color-availability-tentative, 10%);
|
|
}
|
|
|
|
div.all-out-of-office span {
|
|
background: darken(@color-availability-out-of-office, 10%);
|
|
}
|
|
}
|
|
}
|
|
|
|
#schedule-event-time {
|
|
position: absolute;
|
|
border-radius: .3rem;
|
|
cursor: move;
|
|
border: 2px solid #444;
|
|
background-color: rgba(0, 0, 0, .3);
|
|
}
|
|
|
|
.resources-dialog {
|
|
.resource-selection {
|
|
flex: 4;
|
|
min-width: 300px;
|
|
}
|
|
|
|
.resource-content {
|
|
flex: 10;
|
|
margin-left: 1em;
|
|
}
|
|
|
|
.listing li.resource > a {
|
|
color: @color-font;
|
|
|
|
&:before {
|
|
&:extend(.font-icon-class);
|
|
content: @fa-var-cube;
|
|
}
|
|
}
|
|
|
|
.slot-nav {
|
|
display: none; // TODO
|
|
}
|
|
}
|
|
|
|
#resource-availability {
|
|
height: 100%;
|
|
|
|
.fc {
|
|
height: 100%;
|
|
overflow: hidden;
|
|
position: relative;
|
|
border-bottom: 1px solid #ddd;
|
|
}
|
|
|
|
.fc-view {
|
|
border-left: 1px solid #ddd;
|
|
}
|
|
|
|
.fc-header-toolbar {
|
|
height: 0;
|
|
}
|
|
}
|
|
|
|
.standalone-invitebox {
|
|
margin: 0 auto;
|
|
max-width: 500px;
|
|
width: 95%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
top: 15vh;
|
|
position: relative;
|
|
|
|
#logo {
|
|
max-height: 90px;
|
|
}
|
|
|
|
.invitebox {
|
|
margin-top: 3em !important;
|
|
}
|
|
}
|
|
|
|
.searchbar a.button.date {
|
|
@media screen and (min-width: (@screen-width-small + 1px)) {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
#rcmfd_alarmvalue {
|
|
max-width: 80px;
|
|
}
|
|
|
|
@media screen and (max-width: @screen-width-small) {
|
|
#agendaoptions {
|
|
padding-top: .5rem;
|
|
}
|
|
|
|
.calendar-scheduler {
|
|
.schedule-range {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
#layout-sidebar .calendar-datepicker {
|
|
display: none;
|
|
}
|
|
|
|
.resources-dialog {
|
|
.resource-content {
|
|
display: none;
|
|
margin: 0;
|
|
}
|
|
|
|
.resource-content {
|
|
ul {
|
|
margin: 1em 1em 0 1em;
|
|
}
|
|
}
|
|
}
|
|
|
|
#resource-availability {
|
|
margin: 0 1em;
|
|
}
|
|
}
|
|
|
|
body.task-calendar .header-title {
|
|
position: relative;
|
|
|
|
.tz {
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
line-height: 2;
|
|
font-size: .8rem;
|
|
font-weight: normal;
|
|
color: @color-black-shade-text;
|
|
}
|
|
}
|