mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-07 16:44:20 +01:00
Change sidebox calendar from jQuery to webcomponent / flatpickr
This commit is contained in:
parent
0017b78b53
commit
1c42668a97
@ -559,6 +559,21 @@ export class etemplate2
|
||||
{
|
||||
promisses.push(egw(currentapp, window).langRequire(window, _data.langRequire));
|
||||
}
|
||||
if(appname && typeof app[appname] !== "object")
|
||||
{
|
||||
/*
|
||||
Don't have the app.ts code - load it here and delay load until its ready
|
||||
promisses.push(import(egw.webserverUrl + "/" + appname + "/js/app.min.js?" + ((new Date).valueOf() / 86400 | 0).toString())
|
||||
.then(() =>
|
||||
{
|
||||
if(typeof app.classes[appname] === "undefined")
|
||||
{
|
||||
throw new Error("app.classes." + appname + " not found!");
|
||||
}
|
||||
}));
|
||||
*/
|
||||
|
||||
}
|
||||
return Promise.all(promisses).catch((err) =>
|
||||
{
|
||||
console.log("et2.load(): error loading lang-files and app.js: " + err.message);
|
||||
|
@ -998,6 +998,9 @@ abstract class Framework extends Framework\Extra
|
||||
// eTemplate2 uses jQueryUI, so load it first so et2 can override if needed
|
||||
self::includeCSS("/api/js/jquery/jquery-ui/themes/themes/redmond/jquery-ui.css");
|
||||
|
||||
// Et2Date uses flatpickr
|
||||
self::includeCSS('/node_modules/flatpickr/dist/themes/light.css');
|
||||
|
||||
// eTemplate2 - load in top so sidebox has styles too
|
||||
self::includeCSS('/api/templates/default/etemplate2.css');
|
||||
|
||||
|
@ -4016,3 +4016,44 @@ span.et2_countdown_seconds {
|
||||
body .flatpickr-calendar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/** Sizing for inline flatpickr, used in calendar sidebox **/
|
||||
div.flatpickr-calendar.inline {
|
||||
--dayWidth: calc((width - 80) / 7);
|
||||
--width: calc(var(--dayWidth) * 7);
|
||||
}
|
||||
|
||||
div.flatpickr-calendar.inline .dayContainer {
|
||||
width: var(--width);
|
||||
min-width: var(--width);
|
||||
max-width: var(--width);
|
||||
}
|
||||
|
||||
div.flatpickr-calendar.inline .flatpickr-months .flatpickr-month {
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
div.flatpickr-calendar.inline .flatpickr-months {
|
||||
background-color: #eceef1;
|
||||
}
|
||||
|
||||
div.flatpickr-calendar.inline .flatpickr-months .flatpickr-prev-month,
|
||||
div.flatpickr-calendar.inline .flatpickr-months .flatpickr-next-month {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
div.flatpickr-calendar.inline .flatpickr-current-month .flatpickr-monthDropdown-months {
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
div.flatpickr-calendar.inline .flatpickr-days {
|
||||
width: var(--width) !important;
|
||||
}
|
||||
|
||||
div.flatpickr-calendar.inline .flatpickr-day {
|
||||
max-width: var(--dayWidth);
|
||||
height: var(--dayWidth);
|
||||
line-height: var(--dayWidth);
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
358
calendar/js/SidemenuDate.ts
Normal file
358
calendar/js/SidemenuDate.ts
Normal file
@ -0,0 +1,358 @@
|
||||
import {Et2Date, formatDate, parseDate} from "../../api/js/etemplate/Et2Date/Et2Date";
|
||||
import {css} from "@lion/core";
|
||||
import {et2_calendar_view} from "./et2_widget_view";
|
||||
import {CalendarApp} from "./app";
|
||||
|
||||
export class SidemenuDate extends Et2Date
|
||||
{
|
||||
static get styles()
|
||||
{
|
||||
return [
|
||||
...super.styles,
|
||||
css`
|
||||
/** Hide input **/
|
||||
::slotted(input) {
|
||||
display: none;
|
||||
}
|
||||
/** Special sizing for headers **/
|
||||
.flatpickr-months > * {
|
||||
padding: 3px;
|
||||
height: 20px;
|
||||
}
|
||||
.flatpickr-current-month {
|
||||
height: 20px;
|
||||
font-size: 110%
|
||||
}
|
||||
div.flatpickr-calendar.inline .flatpickr-current-month .flatpickr-monthDropdown-months {
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
div.flatpickr-calendar.inline {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
/** Responsive resize is in etemplate2.css since we can't reach that far inside **/
|
||||
`
|
||||
];
|
||||
}
|
||||
|
||||
static _holidays : Object = null;
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this._onDayCreate = this._onDayCreate.bind(this);
|
||||
this._handleChange = this._handleChange.bind(this);
|
||||
this._handleDayHover = this._handleDayHover.bind(this);
|
||||
this._updateGoButton = this._updateGoButton.bind(this);
|
||||
}
|
||||
|
||||
async connectedCallback()
|
||||
{
|
||||
super.connectedCallback();
|
||||
|
||||
this.removeEventListener("change", this._oldChange);
|
||||
this.addEventListener("change", this._handleChange);
|
||||
if(null == SidemenuDate._holidays)
|
||||
{
|
||||
let holidays_or_promise = et2_calendar_view.get_holidays((new Date).getFullYear());
|
||||
if(holidays_or_promise instanceof Promise)
|
||||
{
|
||||
holidays_or_promise.then(holidays =>
|
||||
{
|
||||
SidemenuDate._holidays = holidays;
|
||||
this.requestUpdate();
|
||||
})
|
||||
}
|
||||
else
|
||||
{
|
||||
SidemenuDate._holidays = holidays_or_promise;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
disconnectedCallback()
|
||||
{
|
||||
super.disconnectedCallback();
|
||||
|
||||
this.removeEventListener("change", this._handleChange);
|
||||
if(this._instance.daysContainer !== undefined)
|
||||
{
|
||||
this._instance.weekNumbers.removeEventListener("mouseover", this._handleDayHover);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialze flatpickr, and bind to any internal elements we're interested in
|
||||
*
|
||||
* Normal pre-creation config goes in this.getOptions()
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async init()
|
||||
{
|
||||
await super.init();
|
||||
|
||||
// This needs to wait until after everything is created
|
||||
if(this._instance.daysContainer !== undefined)
|
||||
{
|
||||
this._instance.weekNumbers.addEventListener("mouseover", this._handleDayHover);
|
||||
}
|
||||
|
||||
// Move buttons into header
|
||||
if(this._goButton && this._headerNode)
|
||||
{
|
||||
this._headerNode.append(this._goButton);
|
||||
}
|
||||
if(this._todayButton && this._headerNode)
|
||||
{
|
||||
this._headerNode.append(this._todayButton);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Override some flatpickr defaults to get things how we like it
|
||||
*
|
||||
* @see https://flatpickr.js.org/options/
|
||||
* @returns {any}
|
||||
*/
|
||||
protected getOptions()
|
||||
{
|
||||
let options = super.getOptions();
|
||||
|
||||
options.inline = true;
|
||||
options.dateFormat = "Y-m-dT00:00:00\\Z";
|
||||
|
||||
options.onDayCreate = this._onDayCreate;
|
||||
options.onMonthChange = this._updateGoButton;
|
||||
|
||||
return options
|
||||
}
|
||||
|
||||
set_value(value)
|
||||
{
|
||||
if(!value || value == 0 || value == "0" || typeof value !== "string")
|
||||
{
|
||||
return super.set_value(value);
|
||||
}
|
||||
if(value.length == 8)
|
||||
{
|
||||
super.set_value(parseDate(value, "Ymd"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Customise date rendering
|
||||
*
|
||||
* @see https://flatpickr.js.org/events/
|
||||
*
|
||||
* @param {Date} dates Currently selected date(s)
|
||||
* @param dStr a string representation of the latest selected Date object by the user. The string is formatted as per the dateFormat option.
|
||||
* @param inst flatpickr instance
|
||||
* @param dayElement
|
||||
* @protected
|
||||
*/
|
||||
protected _onDayCreate(dates : Date[], dStr : string, inst, dayElement : HTMLElement)
|
||||
{
|
||||
//@ts-ignore flatpickr adds dateObj to days
|
||||
let date = dayElement.dateObj;
|
||||
if(!date || SidemenuDate._holidays === null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
let day_holidays = SidemenuDate._holidays[formatDate(date, {dateFormat: "Ymd"})]
|
||||
var tooltip = '';
|
||||
if(typeof day_holidays !== 'undefined' && day_holidays.length)
|
||||
{
|
||||
for(var i = 0; i < day_holidays.length; i++)
|
||||
{
|
||||
if(typeof day_holidays[i]['birthyear'] !== 'undefined')
|
||||
{
|
||||
dayElement.classList.add('calendar_calBirthday');
|
||||
}
|
||||
else
|
||||
{
|
||||
dayElement.classList.add('calendar_calHoliday');
|
||||
}
|
||||
tooltip += day_holidays[i]['name'] + "\n";
|
||||
}
|
||||
}
|
||||
if(tooltip)
|
||||
{
|
||||
this.egw().tooltipBind(dayElement, tooltip);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for change events. Re-bound to be able to cancel month changes, since it's an input and emits them
|
||||
*
|
||||
* @param dates
|
||||
* @param {string} dateString
|
||||
* @param instance
|
||||
* @protected
|
||||
*/
|
||||
protected _handleChange(_ev)
|
||||
{
|
||||
if(_ev.target == this._instance.monthsDropdownContainer)
|
||||
{
|
||||
_ev.preventDefault();
|
||||
_ev.stopPropagation();
|
||||
return false;
|
||||
}
|
||||
this._oldChange(_ev);
|
||||
}
|
||||
|
||||
_handleClick(_ev : MouseEvent) : boolean
|
||||
{
|
||||
//@ts-ignore
|
||||
if(this._instance.weekNumbers.contains(_ev.target))
|
||||
{
|
||||
return this._handleWeekClick(_ev);
|
||||
}
|
||||
|
||||
return super._handleClick(_ev);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle clicking on the week number
|
||||
*
|
||||
* @param {MouseEvent} _ev
|
||||
* @returns {boolean}
|
||||
*/
|
||||
_handleWeekClick(_ev : MouseEvent)
|
||||
{
|
||||
let view = app.calendar.state.view;
|
||||
let days = app.calendar.state.days;
|
||||
let fp = this._instance;
|
||||
|
||||
// Avoid a full state update, we just want the calendar to update
|
||||
// Directly update to avoid change event from the sidebox calendar
|
||||
|
||||
let week_index = Array.prototype.indexOf.call(fp.weekNumbers.children, _ev.target);
|
||||
if(week_index == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
let weekStartDay = fp.days.childNodes[7 * week_index].dateObj;
|
||||
fp.setDate(weekStartDay);
|
||||
|
||||
let date = new Date(weekStartDay);
|
||||
date.setUTCMinutes(date.getUTCMinutes() - date.getTimezoneOffset());
|
||||
date = app.calendar.date.toString(date);
|
||||
|
||||
// Set to week view, if in one of the views where we change view
|
||||
if(app.calendar.sidebox_changes_views.indexOf(view) >= 0)
|
||||
{
|
||||
app.calendar.update_state({view: 'week', date: date, days: days});
|
||||
}
|
||||
else if(view == 'planner')
|
||||
{
|
||||
// Clicked a week, show just a week
|
||||
app.calendar.update_state({date: date, planner_view: 'week'});
|
||||
}
|
||||
else if(view == 'listview')
|
||||
{
|
||||
app.calendar.update_state({
|
||||
date: date,
|
||||
end_date: app.calendar.date.toString(CalendarApp.views.week.end_date({date: date})),
|
||||
filter: 'week'
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
app.calendar.update_state({date: date});
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle a hover over a day
|
||||
* @param {MouseEvent} _ev
|
||||
* @returns {boolean}
|
||||
*/
|
||||
_handleDayHover(_ev : MouseEvent)
|
||||
{
|
||||
if(this._instance.weekNumbers.contains(_ev.target))
|
||||
{
|
||||
return this._highlightWeek(_ev.target);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Highlight a week based on the given week number HTMLElement
|
||||
*/
|
||||
_highlightWeek(weekElement)
|
||||
{
|
||||
let fp = this._instance;
|
||||
|
||||
let week_index = Array.prototype.indexOf.call(fp.weekNumbers.children, weekElement);
|
||||
if(week_index == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
fp.weekStartDay = fp.days.childNodes[7 * week_index].dateObj;
|
||||
fp.weekEndDay = fp.days.childNodes[7 * (week_index + 1) - 1].dateObj;
|
||||
|
||||
let days = fp.days.childNodes;
|
||||
for(let i = days.length; i--;)
|
||||
{
|
||||
let date = days[i].dateObj;
|
||||
if(date >= fp.weekStartDay && date <= fp.weekEndDay)
|
||||
{
|
||||
days[i].classList.add("inRange");
|
||||
}
|
||||
else
|
||||
{
|
||||
days[i].classList.remove("inRange")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_clearHover()
|
||||
{
|
||||
let days = this._instance.days.childNodes;
|
||||
for(var i = days.length; i--;)
|
||||
days[i].classList.remove("inRange");
|
||||
}
|
||||
|
||||
get _headerNode()
|
||||
{
|
||||
return this._instance?.monthNav;
|
||||
}
|
||||
|
||||
get _goButton()
|
||||
{
|
||||
return this.querySelector("button[id*='go']");
|
||||
}
|
||||
|
||||
get _todayButton()
|
||||
{
|
||||
return this.querySelector("button[id*='today']");
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the go button
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
protected _updateGoButton()
|
||||
{
|
||||
if(!this._goButton)
|
||||
{
|
||||
return;
|
||||
}
|
||||
let temp_date = new Date("" + this._instance.currentYear + "-" + (this._instance.currentMonth + 1) + "-01");
|
||||
temp_date.setUTCMinutes(temp_date.getUTCMinutes() + temp_date.getTimezoneOffset());
|
||||
|
||||
this._goButton.setAttribute('title', egw.lang(date('F', temp_date)));
|
||||
// Store current _displayed_ date in date button for clicking
|
||||
temp_date.setUTCMinutes(temp_date.getUTCMinutes() - temp_date.getTimezoneOffset());
|
||||
this._goButton.setAttribute('data-date', temp_date.toJSON());
|
||||
}
|
||||
}
|
||||
|
||||
// @ts-ignore TypeScript is not recognizing that Et2Date is a LitElement
|
||||
customElements.define("calendar-date", SidemenuDate);
|
@ -50,6 +50,8 @@ import {et2_template} from "../../api/js/etemplate/et2_widget_template";
|
||||
import {et2_checkbox} from "../../api/js/etemplate/et2_widget_checkbox";
|
||||
import {et2_grid} from "../../api/js/etemplate/et2_widget_grid";
|
||||
import {Et2Textbox} from "../../api/js/etemplate/Et2Textbox/Et2Textbox";
|
||||
import "./SidemenuDate";
|
||||
import {parseDate} from "../../api/js/etemplate/Et2Date/Et2Date";
|
||||
|
||||
/**
|
||||
* UI for calendar
|
||||
@ -287,6 +289,10 @@ export class CalendarApp extends EgwApp
|
||||
this._setup_sidebox_filters();
|
||||
|
||||
this.state = content.data;
|
||||
if(typeof this.state.date == "string" && this.state.date.length == 8)
|
||||
{
|
||||
this.state.date = parseDate(this.state.date, "Ymd");
|
||||
}
|
||||
break;
|
||||
|
||||
case 'calendar.add':
|
||||
@ -4161,7 +4167,7 @@ export class CalendarApp extends EgwApp
|
||||
* are set up here.
|
||||
*
|
||||
*/
|
||||
async _setup_sidebox_filters()
|
||||
_setup_sidebox_filters()
|
||||
{
|
||||
// Further date customizations
|
||||
var date_widget = <et2_date>this.sidebox_et2.getWidgetById('date');
|
||||
@ -4169,39 +4175,14 @@ export class CalendarApp extends EgwApp
|
||||
{
|
||||
// Dynamic resize of sidebox calendar to fill sidebox
|
||||
var preferred_width = jQuery('#calendar-sidebox_date .ui-datepicker-inline').outerWidth();
|
||||
var font_ratio = 12 / parseFloat(jQuery('#calendar-sidebox_date .ui-datepicker-inline').css('font-size'));
|
||||
var go_button_widget = <et2_button><unknown>date_widget.getRoot().getWidgetById('header_go');
|
||||
var auto_update = this.egw.preference('auto_update_on_sidebox_change', 'calendar') === '1';
|
||||
var calendar_resize = function() {
|
||||
try {
|
||||
var percent = 1+((jQuery(date_widget.getDOMNode()).width() - preferred_width) / preferred_width);
|
||||
percent *= font_ratio;
|
||||
jQuery('#calendar-sidebox_date .ui-datepicker-inline')
|
||||
.css('font-size',(percent*100)+'%');
|
||||
|
||||
// Position go and today
|
||||
go_button_widget.set_disabled(false);
|
||||
var buttons = jQuery('#calendar-sidebox_date .ui-datepicker-header a span');
|
||||
if(today.length && go_button.length)
|
||||
{
|
||||
go_button.position({my: 'left+8px center', at: 'right center-1',of: jQuery('#calendar-sidebox_date .ui-datepicker-year')});
|
||||
buttons.position({my: 'center', at: 'center', of: go_button})
|
||||
.css('left', '');
|
||||
today.position({my: 'top', at: 'top', of: buttons});
|
||||
today.css({
|
||||
'left': (buttons.first().offset().left + buttons.last().offset().left)/2 - Math.ceil(today.outerWidth()/2),
|
||||
});
|
||||
}
|
||||
if(auto_update)
|
||||
{
|
||||
go_button_widget.set_disabled(true);
|
||||
}
|
||||
} catch (e){
|
||||
// Resize didn't work
|
||||
}
|
||||
};
|
||||
|
||||
const holidays = await et2_calendar_view.get_holidays((new Date).getFullYear());
|
||||
/*
|
||||
const datepicker = date_widget.input_date.datepicker("option", {
|
||||
showButtonPanel: false,
|
||||
onChangeMonthYear: function(year, month, inst)
|
||||
@ -4250,70 +4231,11 @@ export class CalendarApp extends EgwApp
|
||||
}
|
||||
});
|
||||
|
||||
// Clickable week numbers
|
||||
date_widget.input_date.on('mouseenter','.ui-datepicker-week-col', function() {
|
||||
jQuery(this).siblings().find('a').addClass('ui-state-hover');
|
||||
})
|
||||
.on('mouseleave','.ui-datepicker-week-col', function() {
|
||||
jQuery(this).siblings().find('a').removeClass('ui-state-hover');
|
||||
})
|
||||
.on('click', '.ui-datepicker-week-col', function() {
|
||||
var view = app.calendar.state.view;
|
||||
var days = app.calendar.state.days;
|
||||
|
||||
// Avoid a full state update, we just want the calendar to update
|
||||
// Directly update to avoid change event from the sidebox calendar
|
||||
var date = new Date(this.nextSibling.dataset.year,this.nextSibling.dataset.month,this.nextSibling.firstChild.textContent,0,0,0);
|
||||
date.setUTCMinutes(date.getUTCMinutes() - date.getTimezoneOffset());
|
||||
date = app.calendar.date.toString(date);
|
||||
*/
|
||||
|
||||
// Set to week view, if in one of the views where we change view
|
||||
if(app.calendar.sidebox_changes_views.indexOf(view) >= 0)
|
||||
{
|
||||
app.calendar.update_state({view: 'week', date: date, days: days});
|
||||
}
|
||||
else if (view == 'planner')
|
||||
{
|
||||
// Clicked a week, show just a week
|
||||
app.calendar.update_state({date: date, planner_view: 'week'});
|
||||
}
|
||||
else if (view == 'listview')
|
||||
{
|
||||
app.calendar.update_state({
|
||||
date: date,
|
||||
end_date: app.calendar.date.toString(CalendarApp.views.week.end_date({date:date})),
|
||||
filter: 'week'
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
app.calendar.update_state({date: date});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Set today button
|
||||
var today = jQuery('#calendar-sidebox_header_today');
|
||||
today.attr('title',egw.lang('today'));
|
||||
|
||||
// Set go button
|
||||
var go_button_widget = <et2_button><unknown>date_widget.getRoot().getWidgetById('header_go');
|
||||
if(go_button_widget && go_button_widget.btn)
|
||||
{
|
||||
var go_button = go_button_widget.btn;
|
||||
var temp_date = new Date(date_widget.get_value());
|
||||
temp_date.setUTCDate(1);
|
||||
temp_date.setUTCMinutes(temp_date.getUTCMinutes() + temp_date.getTimezoneOffset());
|
||||
|
||||
go_button.attr('title', egw.lang(date('F',temp_date)));
|
||||
// Store current _displayed_ date in date button for clicking
|
||||
temp_date.setUTCMinutes(temp_date.getUTCMinutes() - temp_date.getTimezoneOffset());
|
||||
go_button.attr('data-date', temp_date.toJSON());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
jQuery(window).on('resize.calendar'+date_widget.dom_id,calendar_resize).trigger('resize');
|
||||
|
||||
// Avoid wrapping owner icons if user has group + search
|
||||
var button = jQuery('#calendar-sidebox_owner ~ span.et2_clickable');
|
||||
@ -4333,7 +4255,6 @@ export class CalendarApp extends EgwApp
|
||||
}
|
||||
}
|
||||
});
|
||||
window.setTimeout(calendar_resize,50);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -4700,4 +4621,7 @@ export class CalendarApp extends EgwApp
|
||||
}
|
||||
}
|
||||
|
||||
if(typeof app.classes.calendar == "undefined")
|
||||
{
|
||||
app.classes.calendar = CalendarApp;
|
||||
}
|
@ -83,8 +83,6 @@
|
||||
#calendar-sidebox_cat_id ~ * {
|
||||
vertical-align: top;
|
||||
display: inline-block;
|
||||
background-color: transparent;
|
||||
background-image: url(../../../api/js/jquery/jquery-ui/themes/themes/redmond/images/ui-icons_469bdd_256x240.png);
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
@ -97,7 +95,6 @@
|
||||
|
||||
#calendar-sidebox_header_go,
|
||||
#calendar-sidebox_header_today {
|
||||
position: absolute !important;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
top: 28px;
|
||||
@ -123,6 +120,7 @@
|
||||
background-color: #0c5da5;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
#calendar-sidebox_date .ui-datepicker-header a {
|
||||
top: 3px;
|
||||
}
|
||||
@ -139,9 +137,6 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
#calendar-sidebox_date .calendar_calHoliday {
|
||||
background: inherit;
|
||||
}
|
||||
#calendar-sidebox_date .calendar_calHoliday a {
|
||||
background-color: rgba(103, 159, 210, 0.5);
|
||||
}
|
||||
#calendar-sidebox_owner .ms-helper {
|
||||
@ -149,6 +144,22 @@
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
#calendar-sidebox_date .flatpickr-months > * {
|
||||
padding: 3px;
|
||||
height: 20px;
|
||||
}
|
||||
#calendar-sidebox_date .flatpickr-current-month {
|
||||
height: 20px;
|
||||
font-size: 110%
|
||||
}
|
||||
#calendar-sidebox_date div.flatpickr-calendar.inline .flatpickr-current-month .flatpickr-monthDropdown-months {
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
#calendar-sidebox_date div.flatpickr-calendar.inline {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
/* Conflict display */
|
||||
div.calendar_conflicts {
|
||||
max-height: 540px;
|
||||
|
@ -14,6 +14,9 @@ Egroupware
|
||||
<overlay>
|
||||
<template id="calendar.sidebox">
|
||||
<vbox parent_node="calendar-et2_target">
|
||||
<calendar-date id="date" class="et2_fullWidth" onchange="var view_change = app.calendar.sidebox_changes_views.indexOf(app.calendar.state.view);
|
||||
var update = {date:widget.getValue()};
|
||||
if(view_change >= 0) {update.view = app.calendar.sidebox_changes_views[view_change ? view_change - 1 : view_change];} else if (app.calendar.state.view == 'listview') {update.filter = 'after';} else if (app.calendar.state.view =='planner') { update.planner_view = 'day'; } app.calendar.update_state(update);">
|
||||
<buttononly id="header_today" label="•" icon="nope" onclick="
|
||||
var tempDate = new Date();
|
||||
var today = new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate(),0,-tempDate.getTimezoneOffset(),0);
|
||||
@ -23,9 +26,8 @@ widget.getRoot().getWidgetById('date').set_value(today);
|
||||
return false;"/>
|
||||
<buttononly id="header_go" label="↵" icon="nope" class="ui-corner-all"
|
||||
onclick="var change = {date: widget.btn.attr('data-date')}; if ( app.calendar.state.view == 'listview') {change.filter='month';} else if (app.calendar.state.view == 'planner') {} else {change.view = 'month';}app.calendar.update_state(change);"/>
|
||||
<date id="date" class="et2_fullWidth" inline="true" onchange="var view_change = app.calendar.sidebox_changes_views.indexOf(app.calendar.state.view);
|
||||
var update = {date:widget.getValue()};
|
||||
if(view_change >= 0) {update.view = app.calendar.sidebox_changes_views[view_change ? view_change - 1 : view_change];} else if (app.calendar.state.view == 'listview') {update.filter = 'after';} else if (app.calendar.state.view =='planner') { update.planner_view = 'day'; } app.calendar.update_state(update);"/>
|
||||
|
||||
</calendar-date>
|
||||
<textbox type="hidden" id="first"/>
|
||||
<textbox type="hidden" id="last"/>
|
||||
<hrule/>
|
||||
|
@ -21,7 +21,6 @@
|
||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||
* @author Stefan Reinhardt <stefan.reinhardt@pixelegg.de>
|
||||
* @package calendar
|
||||
* @version $Id$
|
||||
*/
|
||||
/* $Id$ */
|
||||
/*Media print classes*/
|
||||
@ -106,8 +105,6 @@
|
||||
#calendar-sidebox_cat_id ~ * {
|
||||
vertical-align: top;
|
||||
display: inline-block;
|
||||
background-color: transparent;
|
||||
background-image: url(../../../api/js/jquery/jquery-ui/themes/themes/redmond/images/ui-icons_469bdd_256x240.png);
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
@ -119,7 +116,6 @@
|
||||
}
|
||||
#calendar-sidebox_header_go,
|
||||
#calendar-sidebox_header_today {
|
||||
position: absolute !important;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
top: 28px;
|
||||
@ -162,15 +158,26 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
#calendar-sidebox_date .calendar_calHoliday {
|
||||
background: inherit;
|
||||
}
|
||||
#calendar-sidebox_date .calendar_calHoliday a {
|
||||
background-color: rgba(103, 159, 210, 0.5);
|
||||
}
|
||||
#calendar-sidebox_owner .ms-helper {
|
||||
padding: 2px;
|
||||
background-color: white;
|
||||
}
|
||||
#calendar-sidebox_date .flatpickr-months > * {
|
||||
padding: 3px;
|
||||
height: 20px;
|
||||
}
|
||||
#calendar-sidebox_date .flatpickr-current-month {
|
||||
height: 20px;
|
||||
font-size: 110%;
|
||||
}
|
||||
#calendar-sidebox_date div.flatpickr-calendar.inline .flatpickr-current-month .flatpickr-monthDropdown-months {
|
||||
width: 70%;
|
||||
}
|
||||
#calendar-sidebox_date div.flatpickr-calendar.inline {
|
||||
width: 100% !important;
|
||||
}
|
||||
/* Conflict display */
|
||||
div.calendar_conflicts {
|
||||
max-height: 540px;
|
||||
|
@ -9,7 +9,6 @@
|
||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||
* @author Stefan Reinhardt <stefan.reinhardt@pixelegg.de>
|
||||
* @package calendar
|
||||
* @version $Id$
|
||||
*/
|
||||
/* $Id$ */
|
||||
/*Media print classes*/
|
||||
@ -93,8 +92,6 @@
|
||||
#calendar-sidebox_cat_id ~ * {
|
||||
vertical-align: top;
|
||||
display: inline-block;
|
||||
background-color: transparent;
|
||||
background-image: url(../../../node_modules/jquery-ui-themes/themes/redmond/images/ui-icons_469bdd_256x240.png);
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
@ -106,7 +103,6 @@
|
||||
}
|
||||
#calendar-sidebox_header_go,
|
||||
#calendar-sidebox_header_today {
|
||||
position: absolute !important;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
top: 28px;
|
||||
@ -149,15 +145,26 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
#calendar-sidebox_date .calendar_calHoliday {
|
||||
background: inherit;
|
||||
}
|
||||
#calendar-sidebox_date .calendar_calHoliday a {
|
||||
background-color: rgba(103, 159, 210, 0.5);
|
||||
}
|
||||
#calendar-sidebox_owner .ms-helper {
|
||||
padding: 2px;
|
||||
background-color: white;
|
||||
}
|
||||
#calendar-sidebox_date .flatpickr-months > * {
|
||||
padding: 3px;
|
||||
height: 20px;
|
||||
}
|
||||
#calendar-sidebox_date .flatpickr-current-month {
|
||||
height: 20px;
|
||||
font-size: 110%;
|
||||
}
|
||||
#calendar-sidebox_date div.flatpickr-calendar.inline .flatpickr-current-month .flatpickr-monthDropdown-months {
|
||||
width: 70%;
|
||||
}
|
||||
#calendar-sidebox_date div.flatpickr-calendar.inline {
|
||||
width: 100% !important;
|
||||
}
|
||||
/* Conflict display */
|
||||
div.calendar_conflicts {
|
||||
max-height: 540px;
|
||||
@ -406,13 +413,13 @@ Hide subsequent headers in week view with non-consolidated owners
|
||||
top: 2em;
|
||||
}
|
||||
#calendar-view_view.hideDayColHeader tr:first-of-type .calendar_calGridHeader .calendar_calDayColHeader_spacer {
|
||||
height: calc(33.5em);
|
||||
height: calc(1.5em + 32px);
|
||||
}
|
||||
#calendar-view_view.hideDayColHeader tr .calendar_calGridHeader > span.et2_label {
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
position: static;
|
||||
width: calc(42%);
|
||||
width: calc(100% - 58px);
|
||||
margin-left: 58px;
|
||||
color: white;
|
||||
background-color: #2D6393;
|
||||
@ -1678,13 +1685,13 @@ img.sideboxstar:active {
|
||||
.calendar_calEventBodySmall img[src$="svg"],
|
||||
.calendar_calDayColHeader img[src$="svg"] {
|
||||
background-color: #0c5da5;
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjMGM1ZGE1IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjMGM1ZGE1IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: -ms-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0c5da5), to(#0c5da5));
|
||||
background-image: -webkit-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: -o-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjMEM1REE1IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjMEM1REE1IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: -ms-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0C5DA5), to(#0C5DA5));
|
||||
background-image: -webkit-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: -o-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
/* calender view*/
|
||||
@ -1708,26 +1715,26 @@ div.calendar {
|
||||
/* They are the navigation buttons */
|
||||
padding: 2px;
|
||||
/* Make the buttons seem like they're pressing */
|
||||
background-color: #ffdd73;
|
||||
background-color: #FFDD73;
|
||||
}
|
||||
.calendar .nav {
|
||||
/*background: url(../images/menuarrow.png) no-repeat 100% 100%;*/
|
||||
background-image: none;
|
||||
background-color: #ffdd73;
|
||||
background-color: #FFDD73;
|
||||
}
|
||||
.calendar thead .title {
|
||||
/* This holds the current "month, year" */
|
||||
font-weight: bold;
|
||||
/* Pressing it will take you to the current date */
|
||||
/*text-align: center;*/
|
||||
background-color: #679fd2;
|
||||
background-color: #679FD2;
|
||||
}
|
||||
.calendar thead .title:hover {
|
||||
background-color: #e6e6e6 !important;
|
||||
background-color: #E6E6E6 !important;
|
||||
}
|
||||
.calendar thead .headrow {
|
||||
/* Row <TR> containing navigation buttons */
|
||||
background-color: #ffdd73;
|
||||
background-color: #FFDD73;
|
||||
color: #fff;
|
||||
}
|
||||
.calendar thead .daynames {
|
||||
@ -1757,7 +1764,7 @@ div.calendar {
|
||||
}
|
||||
.calendar thead .active {
|
||||
/* Active (pressed) buttons in header */
|
||||
background_color: #408dd2;
|
||||
background_color: #408DD2;
|
||||
/*padding: 2px 0px 0px 2px;*/
|
||||
}
|
||||
.calendar tbody tr,
|
||||
@ -1802,7 +1809,7 @@ div.calendar {
|
||||
/*border: 0px solid @gray_50;*/
|
||||
/*padding: 1px 3px 1px 1px;*/
|
||||
/*padding: 0px;*/
|
||||
background-color: #ffdd73;
|
||||
background-color: #FFDD73;
|
||||
color: #000;
|
||||
-webkit-box-shadow: inset 1px 2px 1px #000000;
|
||||
-moz-box-shadow: inset 1px 2px 1px #000000;
|
||||
@ -1984,7 +1991,7 @@ div.calendar {
|
||||
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
#calendar-edit #calendar-edit_calendar-edit-details #calendar-edit_details_alarms {
|
||||
background-color: #cdcdcd;
|
||||
background-color: #CDCDCD;
|
||||
display: block !important;
|
||||
}
|
||||
#calendar-edit #calendar-edit_calendar-edit-description #calendar-edit_details_category {
|
||||
@ -2002,7 +2009,7 @@ div.calendar {
|
||||
}
|
||||
#calendar-edit #calendar-edit_calendar-edit-description #calendar-edit_category {
|
||||
border: 1px solid;
|
||||
border-color: #b4b4b4;
|
||||
border-color: #B4B4B4;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
@ -2103,10 +2110,10 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
|
||||
*/
|
||||
.calendar_calToday,
|
||||
.calendar_calTimeGrid .calendar_calDayColHeader .calendar_calToday.et2_link.et2_clickable {
|
||||
background-color: #ffdd73;
|
||||
background-color: #FFDD73;
|
||||
}
|
||||
.calendar_calWeek {
|
||||
background-color: #ffffff;
|
||||
background-color: #FFFFFF;
|
||||
width: auto;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
@ -2114,7 +2121,7 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
|
||||
}
|
||||
.calendar_calMonth {
|
||||
/*.background_table_cal_head;*/
|
||||
background-color: #ffffff;
|
||||
background-color: #FFFFFF;
|
||||
width: auto;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
@ -2222,12 +2229,12 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
|
||||
* border-color: depending on category
|
||||
* background: depending on category (shade)
|
||||
*/
|
||||
background-color: #679fd2;
|
||||
background-color: #679FD2;
|
||||
border-top: 1px solid;
|
||||
}
|
||||
.calendar_calEvent:not([class*=" cat_"]) {
|
||||
/* Defaults for no category, so we don't override it */
|
||||
background-color: #679fd2;
|
||||
background-color: #679FD2;
|
||||
}
|
||||
/**
|
||||
* All participants accepted the invitation
|
||||
@ -2243,7 +2250,7 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
|
||||
overflow: auto;
|
||||
}
|
||||
.calendar_calDayColHeader .calendar_calAddEvent:hover {
|
||||
background-color: #ffdd73;
|
||||
background-color: #FFDD73;
|
||||
cursor: pointer;
|
||||
color: #ffffff;
|
||||
}
|
||||
@ -2268,7 +2275,7 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
background-color: #e6e6e6;
|
||||
background-color: #E6E6E6;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
@ -2290,13 +2297,13 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
|
||||
}
|
||||
.calendar_calDayTodos .calendar_calDayTodosHeader a img[src$="svg"] {
|
||||
background-color: #0c5da5;
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjMGM1ZGE1IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjMGM1ZGE1IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: -ms-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0c5da5), to(#0c5da5));
|
||||
background-image: -webkit-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: -o-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjMEM1REE1IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjMEM1REE1IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: -ms-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0C5DA5), to(#0C5DA5));
|
||||
background-image: -webkit-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: -o-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.calendar_calDayTodos .calendar_calDayTodosHeader a img {
|
||||
@ -2317,7 +2324,7 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
|
||||
-moz-transition-timing-function: linear;
|
||||
-o-transition-timing-function: linear;
|
||||
transition-timing-function: linear;
|
||||
background-color: #e6e6e6;
|
||||
background-color: #E6E6E6;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
@ -2328,7 +2335,7 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
|
||||
background-color: inherit;
|
||||
}
|
||||
.calendar_calDayTodos .calendar_calDayTodosTable table tr:nth-child(even) {
|
||||
background: #ffffff;
|
||||
background: #FFFFFF;
|
||||
}
|
||||
.calendar_calDayTodos .calendar_calDayTodosTable table tr:nth-child(odd) {
|
||||
background: #f2f2f2;
|
||||
@ -2338,13 +2345,13 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
|
||||
}
|
||||
.calendar_calDayTodos .calendar_calDayTodosTable table td img[src$="svg"] {
|
||||
background-color: #0c5da5;
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjMGM1ZGE1IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjMGM1ZGE1IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: -ms-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0c5da5), to(#0c5da5));
|
||||
background-image: -webkit-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: -o-linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: linear-gradient(top, #0c5da5, #0c5da5);
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjMEM1REE1IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjMEM1REE1IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: -ms-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0C5DA5), to(#0C5DA5));
|
||||
background-image: -webkit-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: -o-linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-image: linear-gradient(top, #0C5DA5, #0C5DA5);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.calendar_calDayTodos .calendar_calDayTodosTable table td img {
|
||||
@ -2513,7 +2520,7 @@ button#series {
|
||||
-moz-transition-timing-function: linear;
|
||||
-o-transition-timing-function: linear;
|
||||
transition-timing-function: linear;
|
||||
background-color: #e6e6e6;
|
||||
background-color: #E6E6E6;
|
||||
padding-left: 30px;
|
||||
background-position: 6px center;
|
||||
background-repeat: no-repeat;
|
||||
@ -2523,13 +2530,13 @@ button#series {
|
||||
}
|
||||
button#series img[url*="svg"] {
|
||||
background-color: #b4b4b4;
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjYjRiNGI0IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjYjRiNGI0IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: -ms-linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b4b4b4), to(#b4b4b4));
|
||||
background-image: -webkit-linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: -o-linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjQjRCNEI0IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjRCNEI0IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-image: -ms-linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#B4B4B4), to(#B4B4B4));
|
||||
background-image: -webkit-linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-image: -o-linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-image: linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-repeat: repeat-x;
|
||||
fill: red;
|
||||
}
|
||||
@ -2566,7 +2573,7 @@ button#exception {
|
||||
-moz-transition-timing-function: linear;
|
||||
-o-transition-timing-function: linear;
|
||||
transition-timing-function: linear;
|
||||
background-color: #e6e6e6;
|
||||
background-color: #E6E6E6;
|
||||
padding-left: 30px;
|
||||
background-position: 6px center;
|
||||
background-repeat: no-repeat;
|
||||
@ -2576,13 +2583,13 @@ button#exception {
|
||||
}
|
||||
button#exception img[url*="svg"] {
|
||||
background-color: #b4b4b4;
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjYjRiNGI0IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjYjRiNGI0IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: -ms-linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b4b4b4), to(#b4b4b4));
|
||||
background-image: -webkit-linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: -o-linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: linear-gradient(top, #b4b4b4, #b4b4b4);
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iZzc0MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBzdG9wLWNvbG9yPSIjQjRCNEI0IiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjRCNEI0IiBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzc0MykiLz48L3N2Zz4=);
|
||||
background-image: -moz-linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-image: -ms-linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#B4B4B4), to(#B4B4B4));
|
||||
background-image: -webkit-linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-image: -o-linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-image: linear-gradient(top, #B4B4B4, #B4B4B4);
|
||||
background-repeat: repeat-x;
|
||||
fill: red;
|
||||
}
|
||||
@ -2646,22 +2653,22 @@ div#calendar-container div.calendar table {
|
||||
font-family: Verdana, "Lucida Grande", Helvetica, Sans-Serif;
|
||||
}
|
||||
div#calendar-container div.calendar table thead .button {
|
||||
background-color: #ffdd73;
|
||||
background-color: #FFDD73;
|
||||
}
|
||||
div#calendar-container div.calendar table thead .title {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
background-color: #ffdd73;
|
||||
background-color: #FFDD73;
|
||||
}
|
||||
div#calendar-container div.calendar table thead .headrow {
|
||||
color: #1e1e1e;
|
||||
color: #1E1E1E;
|
||||
}
|
||||
div#calendar-container div.calendar table thead .headrow td {
|
||||
background-color: #ffc200;
|
||||
}
|
||||
div#calendar-container div.calendar table thead .daynames {
|
||||
background-color: #679fd2;
|
||||
background-color: #679FD2;
|
||||
}
|
||||
div#calendar-container div.calendar table tbody tr.daysrow:hover {
|
||||
background-color: #ffc200;
|
||||
@ -2690,7 +2697,7 @@ div#calendar-container div.calendar table tbody tr.rowhilite td {
|
||||
box-shadow: none;
|
||||
}
|
||||
#calendar-sidebox_date .ui-datepicker-today {
|
||||
background-color: #ffdd73;
|
||||
background-color: #FFDD73;
|
||||
}
|
||||
#calendar-sidebox_date .ui-datepicker-calendar .ui-state-hover {
|
||||
background-color: rgba(153, 204, 255, 0.4);
|
||||
|
@ -14,6 +14,7 @@
|
||||
@import (reference) "../../../pixelegg/less/definitions.less";
|
||||
@import (less) "../default/app.css";
|
||||
|
||||
|
||||
/*generell*/
|
||||
|
||||
// makes svg visible
|
||||
|
@ -198,12 +198,6 @@
|
||||
/**
|
||||
* Basic rules
|
||||
*/
|
||||
input,
|
||||
button,
|
||||
select {
|
||||
margin: 1px;
|
||||
/*-webkit-appearance: none;*/
|
||||
}
|
||||
/**
|
||||
* img gray filter
|
||||
*/
|
||||
@ -524,8 +518,7 @@
|
||||
.et2_link_list tr:active {
|
||||
background-color: rgba(255, 194, 0, 0.01);
|
||||
}
|
||||
.et2_link_list .icon img,
|
||||
.et2_link_list .icon {
|
||||
.et2_link_list .icon img {
|
||||
width: 14px !important;
|
||||
height: 14px !important;
|
||||
}
|
||||
@ -1082,7 +1075,7 @@
|
||||
.ui-toolbar-menulistHeader {
|
||||
font-size: xx-small;
|
||||
height: 100%;
|
||||
margin-top: 2px;
|
||||
margin-top: 1px;
|
||||
direction: ltr;
|
||||
}
|
||||
.et2_toolbar_more {
|
||||
@ -3506,15 +3499,11 @@ div#etemplate\.tab_widget {
|
||||
/*##############################################*/
|
||||
.dialogFooterToolbar {
|
||||
background-color: transparent;
|
||||
margin: 10px 0 0 0;
|
||||
padding: 3px;
|
||||
white-space: nowrap;
|
||||
border-top: 3px solid #696969;
|
||||
padding-top: 8px !important;
|
||||
/*.et2_selectbox {height: 32px; top: 0px; font-size: 1em;}*/
|
||||
}
|
||||
.dialogFooterToolbar td {
|
||||
padding: 0px 5px 0px 0px;
|
||||
padding: 5px 5px 0px 0px;
|
||||
}
|
||||
.dialogFooterToolbar td:first-child {
|
||||
padding-left: 5px;
|
||||
@ -4184,7 +4173,7 @@ td.message span.message {
|
||||
* @version $Id: layout_table.less 3089 2014-06-11 14:02:57Z pixelegg $
|
||||
*/
|
||||
/*z.b. Dateimanager overlay*/
|
||||
.egwGridView_grid span.iconOverlayContainer {
|
||||
span.iconOverlayContainer {
|
||||
margin: 2px 5px 2px 2px;
|
||||
position: relative;
|
||||
-moz-user-select: none;
|
||||
@ -4193,20 +4182,20 @@ td.message span.message {
|
||||
overflow: visible;
|
||||
display: inline-block;
|
||||
}
|
||||
.egwGridView_grid span.overlayContainer {
|
||||
span.overlayContainer {
|
||||
position: absolute;
|
||||
right: -2px;
|
||||
bottom: -2px;
|
||||
vertical-align: bottom;
|
||||
text-align: right;
|
||||
}
|
||||
.egwGridView_grid span.iconContainer {
|
||||
span.iconContainer {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.egwGridView_grid span.overlayContainer img.overlay {
|
||||
span.overlayContainer img.overlay {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
margin: 0;
|
||||
@ -4214,6 +4203,10 @@ td.message span.message {
|
||||
height: 9px;
|
||||
width: 11px;
|
||||
}
|
||||
.et2_link_list span.overlayContainer img.overlay {
|
||||
height: 9px !important;
|
||||
width: 9px !important;
|
||||
}
|
||||
/**
|
||||
* EGroupware: Stylite Pixelegg template
|
||||
*
|
||||
|
@ -178,12 +178,6 @@
|
||||
/**
|
||||
* Basic rules
|
||||
*/
|
||||
input,
|
||||
button,
|
||||
select {
|
||||
margin: 1px;
|
||||
/*-webkit-appearance: none;*/
|
||||
}
|
||||
/**
|
||||
* img gray filter
|
||||
*/
|
||||
@ -504,8 +498,7 @@
|
||||
.et2_link_list tr:active {
|
||||
background-color: rgba(255, 194, 0, 0.01);
|
||||
}
|
||||
.et2_link_list .icon img,
|
||||
.et2_link_list .icon {
|
||||
.et2_link_list .icon img {
|
||||
width: 14px !important;
|
||||
height: 14px !important;
|
||||
}
|
||||
@ -1062,7 +1055,7 @@
|
||||
.ui-toolbar-menulistHeader {
|
||||
font-size: xx-small;
|
||||
height: 100%;
|
||||
margin-top: 2px;
|
||||
margin-top: 1px;
|
||||
direction: ltr;
|
||||
}
|
||||
.et2_toolbar_more {
|
||||
@ -3486,15 +3479,11 @@ div#etemplate\.tab_widget {
|
||||
/*##############################################*/
|
||||
.dialogFooterToolbar {
|
||||
background-color: transparent;
|
||||
margin: 10px 0 0 0;
|
||||
padding: 3px;
|
||||
white-space: nowrap;
|
||||
border-top: 3px solid #696969;
|
||||
padding-top: 8px !important;
|
||||
/*.et2_selectbox {height: 32px; top: 0px; font-size: 1em;}*/
|
||||
}
|
||||
.dialogFooterToolbar td {
|
||||
padding: 0px 5px 0px 0px;
|
||||
padding: 5px 5px 0px 0px;
|
||||
}
|
||||
.dialogFooterToolbar td:first-child {
|
||||
padding-left: 5px;
|
||||
@ -4164,7 +4153,7 @@ td.message span.message {
|
||||
* @version $Id: layout_table.less 3089 2014-06-11 14:02:57Z pixelegg $
|
||||
*/
|
||||
/*z.b. Dateimanager overlay*/
|
||||
.egwGridView_grid span.iconOverlayContainer {
|
||||
span.iconOverlayContainer {
|
||||
margin: 2px 5px 2px 2px;
|
||||
position: relative;
|
||||
-moz-user-select: none;
|
||||
@ -4173,20 +4162,20 @@ td.message span.message {
|
||||
overflow: visible;
|
||||
display: inline-block;
|
||||
}
|
||||
.egwGridView_grid span.overlayContainer {
|
||||
span.overlayContainer {
|
||||
position: absolute;
|
||||
right: -2px;
|
||||
bottom: -2px;
|
||||
vertical-align: bottom;
|
||||
text-align: right;
|
||||
}
|
||||
.egwGridView_grid span.iconContainer {
|
||||
span.iconContainer {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.egwGridView_grid span.overlayContainer img.overlay {
|
||||
span.overlayContainer img.overlay {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
margin: 0;
|
||||
@ -4194,6 +4183,10 @@ td.message span.message {
|
||||
height: 9px;
|
||||
width: 11px;
|
||||
}
|
||||
.et2_link_list span.overlayContainer img.overlay {
|
||||
height: 9px !important;
|
||||
width: 9px !important;
|
||||
}
|
||||
/**
|
||||
* EGroupware: Stylite Pixelegg template
|
||||
*
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user