mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-06-09 04:19:43 +00:00
fcba6f2ddb
Moved toolbars inside "list" and "detail" views, like we do in the other modules. With this change, it was possible to move the navitation button (chevrons) inside the top toolbar of the detail view. Also move the view headers inside a toolbar. The all-day events of the day and week views have also been moved inside this toolbar.
293 lines
5.7 KiB
SCSS
293 lines
5.7 KiB
SCSS
/// SchedulerUI.scss -*- Mode: scss; indent-tabs-mode: nil; basic-offset: 2 -*-
|
|
$hours_margin: 50px;
|
|
$scrollbar_width: 16px;
|
|
|
|
/**
|
|
* Affected templates:
|
|
* - SchedulerUI/UIxCalDayView.wox
|
|
* - SchedulerUI/UIxCalWeekView.wox
|
|
* - SchedulerUI/UIxCalDayTable.wox
|
|
* - SchedulerUI/UIxCalMonthView.wox
|
|
*/
|
|
|
|
[ui-view=calendars] {
|
|
|
|
// Decrease with of middle column (list of events and tasks)
|
|
$listView-width: grid-step(5) !global;
|
|
$detailView-width: grid-step(11) !global;
|
|
|
|
.view-list {
|
|
min-width: ($listView-width - ($pitch * 2));
|
|
@include at(md){
|
|
@include flex-col(md, 6, 1, 1);
|
|
min-width: ($pitch * 3);
|
|
}
|
|
@include from(lg) {
|
|
@include flex-col(lg, 5, 1, 0);
|
|
}
|
|
}
|
|
|
|
.view-detail {
|
|
@include at(md) {
|
|
@include flex-col(md, 10);
|
|
}
|
|
@include from(lg) {
|
|
@include flex-col(lg, 11, 1, 1);
|
|
}
|
|
}
|
|
|
|
// The calendar view container
|
|
.calendarView {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
left: 0;
|
|
}
|
|
|
|
// The days labels appear in the toolbar
|
|
md-toolbar {
|
|
&.daysView {
|
|
overflow: hidden;
|
|
z-index: $z-index-toolbar - 1;
|
|
.days {
|
|
margin-left: $hours_margin;
|
|
margin-right: $scrollbar_width; // scrollbar
|
|
&.dayLabels {
|
|
.day {
|
|
padding-left: 1%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
&[sg-view=dayview] {
|
|
.dayLabels {
|
|
.day {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
}
|
|
}
|
|
// &.monthView {
|
|
// > div {
|
|
// margin-right: $scrollbar_width;
|
|
// }
|
|
// }
|
|
}
|
|
|
|
// The all-day events appear in the shrinkable toolbar, bellow the days labels
|
|
.allDaysView {
|
|
border-bottom: 1px solid sg-color($sogoPaper, 300);
|
|
max-height: $sg-font-size-4 * 6;
|
|
|
|
.sg-event {
|
|
margin: 2%; // See sgCalendarDayBlock.directive.js
|
|
line-height: initial;
|
|
position: relative;
|
|
}
|
|
|
|
.gradient, .text {
|
|
position: relative;
|
|
}
|
|
}
|
|
|
|
// Days row
|
|
.days {
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: stretch;
|
|
.day {
|
|
flex-grow: 1;
|
|
flex-basis: 0;
|
|
border-left: 1px solid sg-color($sogoPaper, 300);
|
|
.clickableHourCell {
|
|
height: 40px;
|
|
border-bottom: 1px solid sg-color($sogoPaper, 300);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Header of month tiles
|
|
.sg-calendar-tile-header {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
font-size: $sg-font-size-2;
|
|
//font-weight: $sg-font-light;
|
|
overflow: hidden;
|
|
padding: 2px;
|
|
}
|
|
|
|
// The left column of hours
|
|
.hours {
|
|
color: sg-color($sogoBlue, 700);
|
|
display: inline-block;
|
|
float: left;
|
|
clear: left;
|
|
font-weight: $sg-font-light;
|
|
height: auto;
|
|
left: 0;
|
|
position: relative;
|
|
top: 0;
|
|
width: $hours_margin;
|
|
.hour {
|
|
border-bottom: 1px solid sg-color($sogoPaper, 300);
|
|
text-align: right;
|
|
height: 40px;
|
|
left: 0;
|
|
padding: 2px;
|
|
position: relative;
|
|
right: 0;
|
|
top: 0;
|
|
}
|
|
}
|
|
|
|
// A container for a day-long (column) of hour cells
|
|
.hourCells {
|
|
position: relative;
|
|
}
|
|
|
|
// The outer event container
|
|
.sg-event {
|
|
font-size: $sg-font-size-2;
|
|
&, md-icon {
|
|
color: #fff;
|
|
}
|
|
.material-icons {
|
|
font-size: $sg-font-size-2;
|
|
}
|
|
}
|
|
|
|
// Events from editable calendars are draggable
|
|
.sg-draggable {
|
|
cursor: move;
|
|
}
|
|
|
|
.sg-event {
|
|
border-radius: 3px;
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
opacity: 0.9; // When events from a same calendar overlap, it creates a border to help distinguish the events
|
|
overflow: hidden;
|
|
$i: 0;
|
|
@while $i < 96 { // number of 15-minutes blocks in a day
|
|
&.starts#{$i} { top: 10px * $i; }
|
|
&.lasts#{$i} { height: 10px * $i; }
|
|
$i: $i + 1;
|
|
}
|
|
.eventInside {
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
|
|
.monthView {
|
|
md-grid-tile {
|
|
border: 1px solid sg-color($sogoPaper, 300);
|
|
overflow: auto;
|
|
}
|
|
.sg-event {
|
|
position: relative;
|
|
border-radius: 1px;
|
|
overflow: hidden;
|
|
padding: 2%;
|
|
margin: 2%;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
span { // hours
|
|
font-weight: $sg-font-light;
|
|
}
|
|
}
|
|
}
|
|
|
|
.minutes15, .minutes30, .minutes45 {
|
|
display: block;
|
|
height: 25%;
|
|
}
|
|
|
|
.minutes30 {
|
|
border-bottom: 1px dotted sg-color($sogoPaper, 300);
|
|
}
|
|
|
|
.gradient, .text {
|
|
position: absolute;
|
|
top: 1px;
|
|
left: 4px;
|
|
right: 2px;
|
|
bottom: 1px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.gradient > IMG {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 100%;
|
|
min-height: 15px; /* for 15-minute events */
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
/* Attendees Editor */
|
|
.attendees {
|
|
overflow: hidden;
|
|
overflow-x: auto;
|
|
md-content {
|
|
display: table-row;
|
|
}
|
|
md-list {
|
|
display: table-cell;
|
|
vertical-align: top;
|
|
padding-top: 0;
|
|
&.day {
|
|
min-width: 408px;
|
|
md-list-item {
|
|
//padding: 0;
|
|
align-items: stretch;
|
|
}
|
|
}
|
|
}
|
|
md-list-item {
|
|
padding-left: 0;
|
|
&:hover {
|
|
background-color: initial;
|
|
}
|
|
// img {
|
|
// margin-right: $mg/4;
|
|
// }
|
|
}
|
|
.md-tile-left {
|
|
height: initial;
|
|
min-height: 48px;
|
|
width: initial;
|
|
padding: 4px;
|
|
}
|
|
.hours {
|
|
font-size: 9px;
|
|
}
|
|
.hour {
|
|
display: flex;
|
|
border-left: 1px solid sg-color($sogoPaper, 100);
|
|
min-width: 16px;
|
|
min-height: 16px;
|
|
flex-wrap: nowrap;
|
|
flex-grow: 0;
|
|
flex-basis: 17px; // hour's width + hour's border
|
|
align-items: stretch;
|
|
}
|
|
.quarter {
|
|
min-width: 4px;
|
|
display: flex;
|
|
align-items: stretch;
|
|
.busy {
|
|
margin: 8px 0;
|
|
min-width: 4px;
|
|
background-color: sg-color($sogoPaper, 600);
|
|
}
|
|
&.event {
|
|
background-color: sg-color($sogoBlue, 300);
|
|
}
|
|
}
|
|
} |