From 878dc659b1425f159e466218d49f61ad3428806f Mon Sep 17 00:00:00 2001
From: nathangray
Date: Fri, 24 Apr 2020 10:54:08 -0600
Subject: [PATCH] * Calendar: Add clickable link to videoconference in event
tooltip
---
calendar/inc/class.calendar_uilist.inc.php | 2 +-
calendar/js/app.js | 20 +++-
calendar/js/app.ts | 25 ++++-
calendar/js/et2_widget_event.js | 30 ++++-
calendar/js/et2_widget_event.ts | 35 +++++-
calendar/templates/default/app.css | 5 +
calendar/templates/pixelegg/app.css | 125 +++++++++++----------
7 files changed, 172 insertions(+), 70 deletions(-)
diff --git a/calendar/inc/class.calendar_uilist.inc.php b/calendar/inc/class.calendar_uilist.inc.php
index 888d3467ed..ed3531eb58 100644
--- a/calendar/inc/class.calendar_uilist.inc.php
+++ b/calendar/inc/class.calendar_uilist.inc.php
@@ -962,7 +962,7 @@ class calendar_uilist extends calendar_ui
'join' => [
'caption' => 'Join',
'icon' => 'status/videoconference_join',
- 'onExecute' => 'javaScript:app.calendar.joinVideoConference',
+ 'onExecute' => 'javaScript:app.calendar.joinVideoConferenceAction',
'allowOnMultiple' => false,
]
]
diff --git a/calendar/js/app.js b/calendar/js/app.js
index 541d925211..2f688eba07 100644
--- a/calendar/js/app.js
+++ b/calendar/js/app.js
@@ -3367,9 +3367,25 @@ var CalendarApp = /** @class */ (function (_super) {
var data = egw.dataGetUIDdata(_selected[0].id);
return data && data.data ? data.data['##videoconference'] : false;
};
- CalendarApp.prototype.joinVideoConference = function (_action, _sender) {
+ /**
+ * Action handler for join videoconference context menu
+ *
+ * @param _action
+ * @param _sender
+ */
+ CalendarApp.prototype.joinVideoConferenceAction = function (_action, _sender) {
var data = egw.dataGetUIDdata(_sender[0].id)['data'];
- egw.json("EGroupware\\Status\\Videoconference\\Call::ajax_genMeetingUrl", [data['##videoconference'],
+ return this.joinVideoConference(data['##videoconference']);
+ };
+ /**
+ * Join a videoconference
+ *
+ * Using the videoconference tag/ID, generate the URL and open it via JSON
+ *
+ * @param {string} videoconference
+ */
+ CalendarApp.prototype.joinVideoConference = function (videoconference) {
+ return egw.json("EGroupware\\Status\\Videoconference\\Call::ajax_genMeetingUrl", [videoconference,
{
name: egw.user('account_fullname'),
account_id: egw.user('account_id'),
diff --git a/calendar/js/app.ts b/calendar/js/app.ts
index aea0a79d64..e4e41e3a89 100644
--- a/calendar/js/app.ts
+++ b/calendar/js/app.ts
@@ -4172,12 +4172,31 @@ class CalendarApp extends EgwApp
return data && data.data ? data.data['##videoconference'] : false;
}
- public joinVideoConference(_action, _sender)
+ /**
+ * Action handler for join videoconference context menu
+ *
+ * @param _action
+ * @param _sender
+ */
+ public joinVideoConferenceAction(_action : egwAction, _sender : egwActionObject[])
{
let data = egw.dataGetUIDdata(_sender[0].id)['data'];
- egw.json(
+
+ return this.joinVideoConference(data['##videoconference']);
+ }
+
+ /**
+ * Join a videoconference
+ *
+ * Using the videoconference tag/ID, generate the URL and open it via JSON
+ *
+ * @param {string} videoconference
+ */
+ public joinVideoConference(videoconference)
+ {
+ return egw.json(
"EGroupware\\Status\\Videoconference\\Call::ajax_genMeetingUrl",
- [data['##videoconference'],
+ [videoconference,
{
name:egw.user('account_fullname'),
account_id:egw.user('account_id'),
diff --git a/calendar/js/et2_widget_event.js b/calendar/js/et2_widget_event.js
index 73d42012a5..2f487819a4 100644
--- a/calendar/js/et2_widget_event.js
+++ b/calendar/js/et2_widget_event.js
@@ -411,6 +411,21 @@ var et2_calendar_event = /** @class */ (function (_super) {
}
cat.destroy();
}
+ // Location + Videoconference
+ var location = '';
+ if (this.options.value.location || this.options.value['##videoconference']) {
+ location += '' + this.egw().lang('Location') + ':' +
+ egw.htmlspecialchars(this.options.value.location);
+ if (this.options.value['##videoconference']) {
+ // Click handler is set in _bind_videoconference()
+ location += (this.options.value.location.trim() ? '
' : '') +
+ '' + this.egw().lang('Videoconference') +
+ '';
+ this._bind_videoconference();
+ }
+ location += '
';
+ }
+ // Participants
var participants = '';
if (this.options.value.participant_types['']) {
participants += this.options.value.participant_types[''].join("
");
@@ -432,8 +447,7 @@ var et2_calendar_event = /** @class */ (function (_super) {
'' + egw.htmlspecialchars(this.options.value.title) + '
' +
egw.htmlspecialchars(this.options.value.description) + '
' +
'' + times + '
' +
- (this.options.value.location ? '' + this.egw().lang('Location') + ':' +
- egw.htmlspecialchars(this.options.value.location) + '
' : '') +
+ location +
(cat_label ? '' + this.egw().lang('Category') + ':' + cat_label + '
' : '') +
'' + this.egw().lang('Participants') + ':
' +
participants + '
' + this._participant_summary(this.options.value.participants) +
@@ -527,6 +541,18 @@ var et2_calendar_event = /** @class */ (function (_super) {
}
return icons;
};
+ /**
+ * Bind the click handler for opening the video conference
+ *
+ * Tooltips are placed in the DOM directly in the body, managed by egw.
+ */
+ et2_calendar_event.prototype._bind_videoconference = function () {
+ var vc_event = 'click.calendar_videoconference';
+ jQuery('body').off(vc_event)
+ .on(vc_event, '[data-videoconference]', function (event) {
+ app.calendar.joinVideoConference(this.dataset.videoconference);
+ });
+ };
/**
* Get a text representation of the timespan of the event. Either start
* - end, or 'all day'
diff --git a/calendar/js/et2_widget_event.ts b/calendar/js/et2_widget_event.ts
index 99748667d4..0c6c0b66b9 100644
--- a/calendar/js/et2_widget_event.ts
+++ b/calendar/js/et2_widget_event.ts
@@ -525,6 +525,25 @@ export class et2_calendar_event extends et2_valueWidget implements et2_IDetached
}
cat.destroy();
}
+
+ // Location + Videoconference
+ let location = '';
+ if(this.options.value.location || this.options.value['##videoconference'])
+ {
+ location += '' + this.egw().lang('Location') + ':' +
+ egw.htmlspecialchars(this.options.value.location);
+ if(this.options.value['##videoconference'])
+ {
+ // Click handler is set in _bind_videoconference()
+ location += (this.options.value.location.trim() ? '
' : '') +
+ '' + this.egw().lang('Videoconference') +
+ '';
+ this._bind_videoconference();
+ }
+ location += '
';
+ }
+
+ // Participants
let participants = '';
if(this.options.value.participant_types[''])
{
@@ -550,8 +569,7 @@ export class et2_calendar_event extends et2_valueWidget implements et2_IDetached
''+egw.htmlspecialchars(this.options.value.title)+'
'+
egw.htmlspecialchars(this.options.value.description)+''+
''+times+'
'+
- (this.options.value.location ? ''+this.egw().lang('Location') + ':' +
- egw.htmlspecialchars(this.options.value.location)+'
' : '')+
+ location +
(cat_label ? ''+this.egw().lang('Category') + ':' + cat_label +'
' : '')+
''+this.egw().lang('Participants')+':
'+
participants + '
'+ this._participant_summary(this.options.value.participants) +
@@ -672,6 +690,19 @@ export class et2_calendar_event extends et2_valueWidget implements et2_IDetached
return icons;
}
+ /**
+ * Bind the click handler for opening the video conference
+ *
+ * Tooltips are placed in the DOM directly in the body, managed by egw.
+ */
+ _bind_videoconference()
+ {
+ let vc_event = 'click.calendar_videoconference';
+ jQuery('body').off(vc_event)
+ .on(vc_event, '[data-videoconference]',function(event) {
+ app.calendar.joinVideoConference(this.dataset.videoconference);
+ });
+ }
/**
* Get a text representation of the timespan of the event. Either start
* - end, or 'all day'
diff --git a/calendar/templates/default/app.css b/calendar/templates/default/app.css
index b57e2a70c4..b0fdd7536b 100644
--- a/calendar/templates/default/app.css
+++ b/calendar/templates/default/app.css
@@ -807,6 +807,11 @@ Hide subsequent headers in week view with non-consolidated owners
}
.calendar_calEventTooltip img {
max-width: 1.5em;
+ vertical-align: middle;
+ padding-left: 5px;
+}
+.calendar_calEventTooltip [data-videoconference] {
+ cursor: pointer;
}
.calendar_calAddEvent{
diff --git a/calendar/templates/pixelegg/app.css b/calendar/templates/pixelegg/app.css
index c79cc22ec7..ed75709b12 100755
--- a/calendar/templates/pixelegg/app.css
+++ b/calendar/templates/pixelegg/app.css
@@ -791,6 +791,11 @@ Hide subsequent headers in week view with non-consolidated owners
}
.calendar_calEventTooltip img {
max-width: 1.5em;
+ vertical-align: middle;
+ padding-left: 5px;
+}
+.calendar_calEventTooltip [data-videoconference] {
+ cursor: pointer;
}
.calendar_calAddEvent {
width: 100%;
@@ -1597,13 +1602,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,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-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-repeat: repeat-x;
}
/* calender view*/
@@ -1627,26 +1632,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 containing navigation buttons */
- background-color: #FFDD73;
+ background-color: #ffdd73;
color: #fff;
}
.calendar thead .daynames {
@@ -1676,7 +1681,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,
@@ -1721,7 +1726,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;
@@ -1903,7 +1908,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 {
@@ -1921,7 +1926,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;
@@ -2025,10 +2030,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;
@@ -2036,7 +2041,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;
@@ -2144,12 +2149,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
@@ -2165,7 +2170,7 @@ e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget
overflow: auto;
}
.calendar_calAddEvent:hover {
- background-color: #FFDD73;
+ background-color: #ffdd73;
cursor: pointer;
color: #ffffff;
}
@@ -2190,7 +2195,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;
@@ -2212,13 +2217,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,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-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-repeat: repeat-x;
}
.calendar_calDayTodos .calendar_calDayTodosHeader a img {
@@ -2239,7 +2244,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;
}
@@ -2250,7 +2255,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;
@@ -2260,13 +2265,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,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-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-repeat: repeat-x;
}
.calendar_calDayTodos .calendar_calDayTodosTable table td img {
@@ -2435,7 +2440,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;
@@ -2445,13 +2450,13 @@ button#series {
}
button#series img[url*="svg"] {
background-color: #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-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-repeat: repeat-x;
fill: red;
}
@@ -2488,7 +2493,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;
@@ -2498,13 +2503,13 @@ button#exception {
}
button#exception img[url*="svg"] {
background-color: #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-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-repeat: repeat-x;
fill: red;
}
@@ -2568,22 +2573,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;
@@ -2612,7 +2617,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);