Update fullcalendar script and styles to version 1.6.4
This commit is contained in:
parent
d95e90531e
commit
f2e66acc6a
9 changed files with 3929 additions and 4030 deletions
|
@ -1,943 +0,0 @@
|
|||
--- js/fullcalendar-1.5.2.js 2011-08-21 22:07:18.000000000 +0200
|
||||
+++ js/fullcalendar.js 2011-11-14 23:44:05.000000000 +0100
|
||||
@@ -29,6 +29,7 @@
|
||||
right: 'today prev,next'
|
||||
},
|
||||
weekends: true,
|
||||
+ currentTimeIndicator: false,
|
||||
|
||||
// editing
|
||||
//editable: false,
|
||||
@@ -47,12 +48,16 @@
|
||||
titleFormat: {
|
||||
month: 'MMMM yyyy',
|
||||
week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}",
|
||||
- day: 'dddd, MMM d, yyyy'
|
||||
+ day: 'dddd, MMM d, yyyy',
|
||||
+ list: 'MMM d, yyyy',
|
||||
+ table: 'MMM d, yyyy'
|
||||
},
|
||||
columnFormat: {
|
||||
month: 'ddd',
|
||||
week: 'ddd M/d',
|
||||
- day: 'dddd M/d'
|
||||
+ day: 'dddd M/d',
|
||||
+ list: 'dddd, MMM d, yyyy',
|
||||
+ table: 'dddd, MMM d, yyyy'
|
||||
},
|
||||
timeFormat: { // for event elements
|
||||
'': 'h(:mm)t' // default
|
||||
@@ -73,8 +78,28 @@
|
||||
today: 'today',
|
||||
month: 'month',
|
||||
week: 'week',
|
||||
- day: 'day'
|
||||
+ day: 'day',
|
||||
+ list: 'list',
|
||||
+ table: 'table'
|
||||
},
|
||||
+ listTexts: {
|
||||
+ until: 'until',
|
||||
+ past: 'Past events',
|
||||
+ today: 'Today',
|
||||
+ tomorrow: 'Tomorrow',
|
||||
+ thisWeek: 'This week',
|
||||
+ nextWeek: 'Next week',
|
||||
+ thisMonth: 'This month',
|
||||
+ nextMonth: 'Next month',
|
||||
+ future: 'Future events',
|
||||
+ week: 'W'
|
||||
+ },
|
||||
+
|
||||
+ // list/table options
|
||||
+ listSections: 'month', // false|'day'|'week'|'month'|'smart'
|
||||
+ listRange: 30, // number of days to be displayed
|
||||
+ listPage: 7, // number of days to jump when paging
|
||||
+ tableCols: ['handle', 'date', 'time', 'title'],
|
||||
|
||||
// jquery-ui theming
|
||||
theme: false,
|
||||
@@ -424,6 +449,7 @@
|
||||
setSize();
|
||||
unselect();
|
||||
currentView.clearEvents();
|
||||
+ currentView.trigger('viewRender', currentView);
|
||||
currentView.renderEvents(events);
|
||||
currentView.sizeDirty = false;
|
||||
}
|
||||
@@ -500,8 +526,8 @@
|
||||
}
|
||||
|
||||
|
||||
- function refetchEvents() {
|
||||
- fetchEvents(currentView.visStart, currentView.visEnd); // will call reportEvents
|
||||
+ function refetchEvents(source) {
|
||||
+ fetchEvents(currentView.visStart, currentView.visEnd, source); // will call reportEvents
|
||||
}
|
||||
|
||||
|
||||
@@ -523,6 +549,7 @@
|
||||
markEventsDirty();
|
||||
if (elementVisible()) {
|
||||
currentView.clearEvents();
|
||||
+ currentView.trigger('viewRender', currentView);
|
||||
currentView.renderEvents(events, modifiedEventID);
|
||||
currentView.eventsDirty = false;
|
||||
}
|
||||
@@ -632,6 +659,12 @@
|
||||
if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') {
|
||||
options[name] = value;
|
||||
updateSize();
|
||||
+ } else if (name.indexOf('list') == 0 || name == 'tableCols') {
|
||||
+ options[name] = value;
|
||||
+ currentView.start = null; // force re-render
|
||||
+ }
|
||||
+ else if (name == 'maxHeight') {
|
||||
+ options[name] = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -897,15 +930,16 @@
|
||||
}
|
||||
|
||||
|
||||
- function fetchEvents(start, end) {
|
||||
+ function fetchEvents(start, end, src) {
|
||||
rangeStart = start;
|
||||
rangeEnd = end;
|
||||
- cache = [];
|
||||
+ cache = typeof src != 'undefined' ? $.grep(cache, function(e) { return !isSourcesEqual(e.source, src); }) : [];
|
||||
var fetchID = ++currentFetchID;
|
||||
var len = sources.length;
|
||||
- pendingSourceCnt = len;
|
||||
+ pendingSourceCnt = typeof src == 'undefined' ? len : 1;
|
||||
for (var i=0; i<len; i++) {
|
||||
- fetchEventSource(sources[i], fetchID);
|
||||
+ if (typeof src == 'undefined' || isSourcesEqual(sources[i], src))
|
||||
+ fetchEventSource(sources[i], fetchID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1092,8 +1126,9 @@
|
||||
stickySource.events.push(event);
|
||||
event.source = stickySource;
|
||||
}
|
||||
- cache.push(event);
|
||||
}
|
||||
+
|
||||
+ cache.push(event);
|
||||
reportEvents(cache);
|
||||
}
|
||||
|
||||
@@ -1581,10 +1616,23 @@
|
||||
return 'th';
|
||||
}
|
||||
return ['st', 'nd', 'rd'][date%10-1] || 'th';
|
||||
- }
|
||||
+ },
|
||||
+ W : function(d) { return iso8601Week(d); }
|
||||
};
|
||||
|
||||
|
||||
+// Determine the week of the year based on the ISO 8601 definition.
|
||||
+// copied from jquery UI Datepicker
|
||||
+var iso8601Week = function(date) {
|
||||
+ var checkDate = cloneDate(date);
|
||||
+ // Find Thursday of this week starting on Monday
|
||||
+ checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
|
||||
+ var time = checkDate.getTime();
|
||||
+ checkDate.setMonth(0); // Compare with Jan 1
|
||||
+ checkDate.setDate(1);
|
||||
+ return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
|
||||
+};
|
||||
+
|
||||
|
||||
fc.applyAll = applyAll;
|
||||
|
||||
@@ -3536,10 +3584,10 @@
|
||||
function slotSelectionMousedown(ev) {
|
||||
if (ev.which == 1 && opt('selectable')) { // ev.which==1 means left mouse button
|
||||
unselect(ev);
|
||||
- var dates;
|
||||
+ var dates, helperOption = opt('selectHelper');
|
||||
hoverListener.start(function(cell, origCell) {
|
||||
clearSelection();
|
||||
- if (cell && cell.col == origCell.col && !cellIsAllDay(cell)) {
|
||||
+ if (cell && (cell.col == origCell.col || !helperOption) && !cellIsAllDay(cell)) {
|
||||
var d1 = cellDate(origCell);
|
||||
var d2 = cellDate(cell);
|
||||
dates = [
|
||||
@@ -3651,7 +3699,7 @@
|
||||
var calendar = t.calendar;
|
||||
var formatDate = calendar.formatDate;
|
||||
var formatDates = calendar.formatDates;
|
||||
-
|
||||
+ var timeLineInterval;
|
||||
|
||||
|
||||
/* Rendering
|
||||
@@ -3675,6 +3723,12 @@
|
||||
setHeight(); // no params means set to viewHeight
|
||||
}
|
||||
renderSlotSegs(compileSlotSegs(slotEvents), modifiedEventId);
|
||||
+
|
||||
+ if (opt('currentTimeIndicator')) {
|
||||
+ window.clearInterval(timeLineInterval);
|
||||
+ timeLineInterval = window.setInterval(setTimeIndicator, 30000);
|
||||
+ setTimeIndicator();
|
||||
+ }
|
||||
}
|
||||
|
||||
|
||||
@@ -3764,7 +3818,8 @@
|
||||
height,
|
||||
slotSegmentContainer = getSlotSegmentContainer(),
|
||||
rtl, dis, dit,
|
||||
- colCnt = getColCnt();
|
||||
+ colCnt = getColCnt(),
|
||||
+ overlapping = colCnt > 1;
|
||||
|
||||
if (rtl = opt('isRTL')) {
|
||||
dis = -1;
|
||||
@@ -3791,8 +3846,11 @@
|
||||
outerWidth = availWidth / (levelI + forward + 1);
|
||||
}else{
|
||||
if (forward) {
|
||||
- // moderately wide, aligned left still
|
||||
- outerWidth = ((availWidth / (forward + 1)) - (12/2)) * 2; // 12 is the predicted width of resizer =
|
||||
+ if (overlapping) { // moderately wide, aligned left still
|
||||
+ outerWidth = ((availWidth / (forward + 1)) - (12/2)) * 2; // 12 is the predicted width of resizer =
|
||||
+ }else{
|
||||
+ outerWidth = outerWidth = availWidth / (forward + 1);
|
||||
+ }
|
||||
}else{
|
||||
// can be entire width, aligned left
|
||||
outerWidth = availWidth;
|
||||
@@ -3803,7 +3861,7 @@
|
||||
* dis + (rtl ? availWidth - outerWidth : 0); // rtl
|
||||
seg.top = top;
|
||||
seg.left = left;
|
||||
- seg.outerWidth = outerWidth;
|
||||
+ seg.outerWidth = outerWidth - (overlapping ? 0 : 1);
|
||||
seg.outerHeight = bottom - top;
|
||||
html += slotSegHtml(event, seg);
|
||||
}
|
||||
@@ -3953,6 +4011,37 @@
|
||||
}
|
||||
|
||||
|
||||
+ // draw a horizontal line across the agenda view indicating the current time (#143)
|
||||
+ function setTimeIndicator()
|
||||
+ {
|
||||
+ var container = getBodyContent();
|
||||
+ var timeline = container.children('.fc-timeline');
|
||||
+ if (timeline.length == 0) { // if timeline isn't there, add it
|
||||
+ timeline = $('<hr>').addClass('fc-timeline').appendTo(container);
|
||||
+ }
|
||||
+
|
||||
+ var cur_time = new Date();
|
||||
+ if (t.visStart < cur_time && t.visEnd > cur_time) {
|
||||
+ timeline.show();
|
||||
+ }
|
||||
+ else {
|
||||
+ timeline.hide();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ var secs = (cur_time.getHours() * 60 * 60) + (cur_time.getMinutes() * 60) + cur_time.getSeconds();
|
||||
+ var percents = secs / 86400; // 24 * 60 * 60 = 86400, # of seconds in a day
|
||||
+
|
||||
+ timeline.css('top', Math.floor(container.height() * percents - 1) + 'px');
|
||||
+
|
||||
+ if (t.name == 'agendaWeek') { // week view, don't want the timeline to go the whole way across
|
||||
+ var daycol = $('.fc-today', t.element);
|
||||
+ var left = daycol.position().left + 1;
|
||||
+ var width = daycol.width();
|
||||
+ timeline.css({ left: left + 'px', width: width + 'px' });
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
|
||||
/* Dragging
|
||||
-----------------------------------------------------------------------------------*/
|
||||
@@ -4262,7 +4351,7 @@
|
||||
|
||||
function opt(name, viewNameOverride) {
|
||||
var v = options[name];
|
||||
- if (typeof v == 'object') {
|
||||
+ if (typeof v == 'object' && !v.length) {
|
||||
return smartProperty(v, viewNameOverride || viewName);
|
||||
}
|
||||
return v;
|
||||
@@ -4528,6 +4617,9 @@
|
||||
var seg;
|
||||
var top;
|
||||
var k;
|
||||
+ var overflows;
|
||||
+ var overflowLinks;
|
||||
+ var maxHeight = opt('maxHeight');
|
||||
segmentContainer[0].innerHTML = daySegHTML(segs); // faster than .html()
|
||||
daySegElementResolve(segs, segmentContainer.children());
|
||||
daySegElementReport(segs);
|
||||
@@ -4539,26 +4631,69 @@
|
||||
// set row heights, calculate event tops (in relation to row top)
|
||||
for (rowI=0; rowI<rowCnt; rowI++) {
|
||||
levelI = 0;
|
||||
+ overflows = [];
|
||||
+ overflowLinks = {};
|
||||
colHeights = [];
|
||||
for (j=0; j<colCnt; j++) {
|
||||
+ overflows[j] = 0;
|
||||
colHeights[j] = 0;
|
||||
}
|
||||
while (i<segCnt && (seg = segs[i]).row == rowI) {
|
||||
// loop through segs in a row
|
||||
top = arrayMax(colHeights.slice(seg.startCol, seg.endCol));
|
||||
- seg.top = top;
|
||||
- top += seg.outerHeight;
|
||||
+ if (maxHeight && top + seg.outerHeight > maxHeight) {
|
||||
+ seg.overflow = true;
|
||||
+ }
|
||||
+ else {
|
||||
+ seg.top = top;
|
||||
+ top += seg.outerHeight;
|
||||
+ }
|
||||
for (k=seg.startCol; k<seg.endCol; k++) {
|
||||
- colHeights[k] = top;
|
||||
+ if (overflows[k])
|
||||
+ seg.overflow = true;
|
||||
+ if (seg.overflow) {
|
||||
+ if (seg.isStart && !overflowLinks[k])
|
||||
+ overflowLinks[k] = { seg:seg, top:top, date:cloneDate(seg.start, true), count:0 };
|
||||
+ if (overflowLinks[k])
|
||||
+ overflowLinks[k].count++;
|
||||
+ overflows[k]++;
|
||||
+ }
|
||||
+ else
|
||||
+ colHeights[k] = top;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
rowDivs[rowI].height(arrayMax(colHeights));
|
||||
+ renderOverflowLinks(overflowLinks, rowDivs[rowI]);
|
||||
}
|
||||
daySegSetTops(segs, getRowTops(rowDivs));
|
||||
}
|
||||
|
||||
|
||||
+ function renderOverflowLinks(overflowLinks, rowDiv) {
|
||||
+ var container = getDaySegmentContainer();
|
||||
+ var colCnt = getColCnt();
|
||||
+ var element, triggerRes, link;
|
||||
+ for (var j=0; j<colCnt; j++) {
|
||||
+ if ((link = overflowLinks[j])) {
|
||||
+ if (link.count > 1) {
|
||||
+ element = $('<a>').addClass('fc-more-link').html('+'+link.count).appendTo(container);
|
||||
+ element[0].style.position = 'absolute';
|
||||
+ element[0].style.left = link.seg.left + 'px';
|
||||
+ element[0].style.top = (link.top + rowDiv[0].offsetTop) + 'px';
|
||||
+ triggerRes = trigger('overflowRender', link, { count:link.count, date:link.date }, element);
|
||||
+ if (triggerRes === false)
|
||||
+ element.remove();
|
||||
+ }
|
||||
+ else {
|
||||
+ link.seg.top = link.top;
|
||||
+ link.seg.overflow = false;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
function renderTempDaySegs(segs, adjustRow, adjustTop) {
|
||||
var tempContainer = $("<div/>");
|
||||
var elements;
|
||||
@@ -4806,6 +4941,8 @@
|
||||
}
|
||||
seg.outerHeight = element[0].offsetHeight + val;
|
||||
}
|
||||
+ else
|
||||
+ seg.outerHeight = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4842,11 +4979,13 @@
|
||||
for (i=0; i<segCnt; i++) {
|
||||
seg = segs[i];
|
||||
element = seg.element;
|
||||
- if (element) {
|
||||
+ if (element && !seg.overflow) {
|
||||
element[0].style.top = rowTops[seg.row] + (seg.top||0) + 'px';
|
||||
event = seg.event;
|
||||
trigger('eventAfterRender', event, event, element);
|
||||
}
|
||||
+ else if (element)
|
||||
+ element.hide();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5206,5 +5345,561 @@
|
||||
};
|
||||
|
||||
}
|
||||
-
|
||||
-})(jQuery);
|
||||
+
|
||||
+
|
||||
+/* Additional view: list (by bruederli@kolabsys.com)
|
||||
+---------------------------------------------------------------------------------*/
|
||||
+
|
||||
+function ListEventRenderer() {
|
||||
+ var t = this;
|
||||
+
|
||||
+ // exports
|
||||
+ t.renderEvents = renderEvents;
|
||||
+ t.renderEventTime = renderEventTime;
|
||||
+ t.compileDaySegs = compileSegs; // for DayEventRenderer
|
||||
+ t.clearEvents = clearEvents;
|
||||
+ t.lazySegBind = lazySegBind;
|
||||
+ t.sortCmp = sortCmp;
|
||||
+
|
||||
+ // imports
|
||||
+ DayEventRenderer.call(t);
|
||||
+ var opt = t.opt;
|
||||
+ var trigger = t.trigger;
|
||||
+ var reportEvents = t.reportEvents;
|
||||
+ var reportEventClear = t.reportEventClear;
|
||||
+ var reportEventElement = t.reportEventElement;
|
||||
+ var eventElementHandlers = t.eventElementHandlers;
|
||||
+ var showEvents = t.showEvents;
|
||||
+ var hideEvents = t.hideEvents;
|
||||
+ var getListContainer = t.getDaySegmentContainer;
|
||||
+ var calendar = t.calendar;
|
||||
+ var formatDate = calendar.formatDate;
|
||||
+ var formatDates = calendar.formatDates;
|
||||
+
|
||||
+
|
||||
+ /* Rendering
|
||||
+ --------------------------------------------------------------------*/
|
||||
+
|
||||
+ function clearEvents() {
|
||||
+ reportEventClear();
|
||||
+ getListContainer().empty();
|
||||
+ }
|
||||
+
|
||||
+ function renderEvents(events, modifiedEventId) {
|
||||
+ events.sort(sortCmp);
|
||||
+ reportEvents(events);
|
||||
+ renderSegs(compileSegs(events), modifiedEventId);
|
||||
+ }
|
||||
+
|
||||
+ function compileSegs(events) {
|
||||
+ var segs = [];
|
||||
+ var colFormat = opt('titleFormat', 'day');
|
||||
+ var firstDay = opt('firstDay');
|
||||
+ var segmode = opt('listSections');
|
||||
+ var event, i, dd, wd, md, seg, segHash, curSegHash, segDate, curSeg = -1;
|
||||
+ var today = clearTime(new Date());
|
||||
+ var weekstart = addDays(cloneDate(today), -((today.getDay() - firstDay + 7) % 7));
|
||||
+
|
||||
+ for (i=0; i < events.length; i++) {
|
||||
+ event = events[i];
|
||||
+
|
||||
+ // skip events out of range
|
||||
+ if (event.end < t.start || event.start > t.visEnd)
|
||||
+ continue;
|
||||
+
|
||||
+ // define sections of this event
|
||||
+ // create smart sections such as today, tomorrow, this week, next week, next month, ect.
|
||||
+ segDate = cloneDate(event.start < t.start && event.end > t.start ? t.start : event.start, true);
|
||||
+ dd = dayDiff(segDate, today);
|
||||
+ wd = Math.floor(dayDiff(segDate, weekstart) / 7);
|
||||
+ md = segDate.getMonth() + ((segDate.getYear() - today.getYear()) * 12) - today.getMonth();
|
||||
+
|
||||
+ // build section title
|
||||
+ if (segmode == 'smart') {
|
||||
+ if (dd < 0) {
|
||||
+ segHash = opt('listTexts', 'past');
|
||||
+ } else if (dd == 0) {
|
||||
+ segHash = opt('listTexts', 'today');
|
||||
+ } else if (dd == 1) {
|
||||
+ segHash = opt('listTexts', 'tomorrow');
|
||||
+ } else if (wd == 0) {
|
||||
+ segHash = opt('listTexts', 'thisWeek');
|
||||
+ } else if (wd == 1) {
|
||||
+ segHash = opt('listTexts', 'nextWeek');
|
||||
+ } else if (md == 0) {
|
||||
+ segHash = opt('listTexts', 'thisMonth');
|
||||
+ } else if (md == 1) {
|
||||
+ segHash = opt('listTexts', 'nextMonth');
|
||||
+ } else if (md > 1) {
|
||||
+ segHash = opt('listTexts', 'future');
|
||||
+ }
|
||||
+ } else if (segmode == 'month') {
|
||||
+ segHash = formatDate(segDate, 'MMMM yyyy');
|
||||
+ } else if (segmode == 'week') {
|
||||
+ segHash = opt('listTexts', 'week') + formatDate(segDate, ' W');
|
||||
+ } else if (segmode == 'day') {
|
||||
+ segHash = formatDate(segDate, colFormat);
|
||||
+ } else {
|
||||
+ segHash = '';
|
||||
+ }
|
||||
+
|
||||
+ // start new segment
|
||||
+ if (segHash != curSegHash) {
|
||||
+ segs[++curSeg] = { events: [], start: segDate, title: segHash, daydiff: dd, weekdiff: wd, monthdiff: md };
|
||||
+ curSegHash = segHash;
|
||||
+ }
|
||||
+
|
||||
+ segs[curSeg].events.push(event);
|
||||
+ }
|
||||
+
|
||||
+ return segs;
|
||||
+ }
|
||||
+
|
||||
+ function sortCmp(a, b) {
|
||||
+ var sd = a.start.getTime() - b.start.getTime();
|
||||
+ return sd + (sd ? 0 : a.end.getTime() - b.end.getTime());
|
||||
+ }
|
||||
+
|
||||
+ function renderSegs(segs, modifiedEventId) {
|
||||
+ var tm = opt('theme') ? 'ui' : 'fc';
|
||||
+ var headerClass = tm + "-widget-header";
|
||||
+ var contentClass = tm + "-widget-content";
|
||||
+ var i, j, seg, event, times, s, skinCss, skinCssAttr, classes, segContainer, eventElements;
|
||||
+
|
||||
+ for (j=0; j < segs.length; j++) {
|
||||
+ seg = segs[j];
|
||||
+
|
||||
+ if (seg.title) {
|
||||
+ $('<div class="fc-list-header ' + headerClass + '">' + htmlEscape(seg.title) + '</div>').appendTo(getListContainer());
|
||||
+ }
|
||||
+ segContainer = $('<div>').addClass('fc-list-section ' + contentClass).appendTo(getListContainer());
|
||||
+ s = '';
|
||||
+
|
||||
+ for (i=0; i < seg.events.length; i++) {
|
||||
+ event = seg.events[i];
|
||||
+ times = renderEventTime(event, seg);
|
||||
+ skinCss = getSkinCss(event, opt);
|
||||
+ skinCssAttr = (skinCss ? " style='" + skinCss + "'" : '');
|
||||
+ classes = ['fc-event', 'fc-event-skin', 'fc-event-vert', 'fc-corner-top', 'fc-corner-bottom'].concat(event.className);
|
||||
+ if (event.source && event.source.className) {
|
||||
+ classes = classes.concat(event.source.className);
|
||||
+ }
|
||||
+
|
||||
+ s +=
|
||||
+ "<div class='" + classes.join(' ') + "'" + skinCssAttr + ">" +
|
||||
+ "<div class='fc-event-inner fc-event-skin'" + skinCssAttr + ">" +
|
||||
+ "<div class='fc-event-head fc-event-skin'" + skinCssAttr + ">" +
|
||||
+ "<div class='fc-event-time'>" +
|
||||
+ (times[0] ? '<span class="fc-col-date">' + times[0] + '</span> ' : '') +
|
||||
+ (times[1] ? '<span class="fc-col-time">' + times[1] + '</span>' : '') +
|
||||
+ "</div>" +
|
||||
+ "</div>" +
|
||||
+ "<div class='fc-event-content'>" +
|
||||
+ "<div class='fc-event-title'>" +
|
||||
+ htmlEscape(event.title) +
|
||||
+ "</div>" +
|
||||
+ "</div>" +
|
||||
+ "<div class='fc-event-bg'></div>" +
|
||||
+ "</div>" + // close inner
|
||||
+ "</div>"; // close outer
|
||||
+ }
|
||||
+
|
||||
+ segContainer[0].innerHTML = s;
|
||||
+ eventElements = segContainer.children();
|
||||
+
|
||||
+ // retrieve elements, run through eventRender callback, bind event handlers
|
||||
+ for (i=0; i < seg.events.length; i++) {
|
||||
+ event = seg.events[i];
|
||||
+ eventElement = $(eventElements[i]); // faster than eq()
|
||||
+ triggerRes = trigger('eventRender', event, event, eventElement);
|
||||
+ if (triggerRes === false) {
|
||||
+ eventElement.remove();
|
||||
+ } else {
|
||||
+ if (triggerRes && triggerRes !== true) {
|
||||
+ eventElement.remove();
|
||||
+ eventElement = $(triggerRes).appendTo(segContainer);
|
||||
+ }
|
||||
+ if (event._id === modifiedEventId) {
|
||||
+ eventElementHandlers(event, eventElement, seg);
|
||||
+ } else {
|
||||
+ eventElement[0]._fci = i; // for lazySegBind
|
||||
+ }
|
||||
+ reportEventElement(event, eventElement);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ lazySegBind(segContainer, seg, eventElementHandlers);
|
||||
+ }
|
||||
+
|
||||
+ markFirstLast(getListContainer());
|
||||
+ }
|
||||
+
|
||||
+ // event time/date range to display
|
||||
+ function renderEventTime(event, seg) {
|
||||
+ var timeFormat = opt('timeFormat');
|
||||
+ var dateFormat = opt('columnFormat');
|
||||
+ var segmode = opt('listSections');
|
||||
+ var duration = event.end.getTime() - event.start.getTime();
|
||||
+ var datestr = '', timestr = '';
|
||||
+
|
||||
+ if (segmode == 'smart') {
|
||||
+ if (event.start < seg.start) {
|
||||
+ datestr = opt('listTexts', 'until') + ' ' + formatDate(event.end, (event.allDay || event.end.getDate() != seg.start.getDate()) ? dateFormat : timeFormat);
|
||||
+ } else if (duration > DAY_MS) {
|
||||
+ datestr = formatDates(event.start, event.end, dateFormat + '{ - ' + dateFormat + '}');
|
||||
+ } else if (seg.daydiff == 0) {
|
||||
+ datestr = opt('listTexts', 'today');
|
||||
+ } else if (seg.daydiff == 1) {
|
||||
+ datestr = opt('listTexts', 'tomorrow');
|
||||
+ } else if (seg.weekdiff == 0 || seg.weekdiff == 1) {
|
||||
+ datestr = formatDate(event.start, 'dddd');
|
||||
+ } else if (seg.daydiff > 1 || seg.daydiff < 0) {
|
||||
+ datestr = formatDate(event.start, dateFormat);
|
||||
+ }
|
||||
+ } else if (segmode != 'day') {
|
||||
+ datestr = formatDates(event.start, event.end, dateFormat + (duration > DAY_MS ? '{ - ' + dateFormat + '}' : ''));
|
||||
+ }
|
||||
+
|
||||
+ if (!datestr && event.allDay) {
|
||||
+ timestr = opt('allDayText');
|
||||
+ } else if ((duration < DAY_MS || !datestr) && !event.allDay) {
|
||||
+ timestr = formatDates(event.start, event.end, timeFormat);
|
||||
+ }
|
||||
+
|
||||
+ return [datestr, timestr];
|
||||
+ }
|
||||
+
|
||||
+ function lazySegBind(container, seg, bindHandlers) {
|
||||
+ container.unbind('mouseover').mouseover(function(ev) {
|
||||
+ var parent = ev.target, e = parent, i, event;
|
||||
+ while (parent != this) {
|
||||
+ e = parent;
|
||||
+ parent = parent.parentNode;
|
||||
+ }
|
||||
+ if ((i = e._fci) !== undefined) {
|
||||
+ e._fci = undefined;
|
||||
+ event = seg.events[i];
|
||||
+ bindHandlers(event, container.children().eq(i), seg);
|
||||
+ $(ev.target).trigger(ev);
|
||||
+ }
|
||||
+ ev.stopPropagation();
|
||||
+ });
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
+
|
||||
+
|
||||
+fcViews.list = ListView;
|
||||
+
|
||||
+
|
||||
+function ListView(element, calendar) {
|
||||
+ var t = this;
|
||||
+
|
||||
+ // exports
|
||||
+ t.render = render;
|
||||
+ t.select = dummy;
|
||||
+ t.unselect = dummy;
|
||||
+ t.getDaySegmentContainer = function(){ return body; };
|
||||
+
|
||||
+ // imports
|
||||
+ View.call(t, element, calendar, 'list');
|
||||
+ ListEventRenderer.call(t);
|
||||
+ var opt = t.opt;
|
||||
+ var trigger = t.trigger;
|
||||
+ var clearEvents = t.clearEvents;
|
||||
+ var reportEventClear = t.reportEventClear;
|
||||
+ var formatDates = calendar.formatDates;
|
||||
+ var formatDate = calendar.formatDate;
|
||||
+
|
||||
+ // overrides
|
||||
+ t.setWidth = setWidth;
|
||||
+ t.setHeight = setHeight;
|
||||
+
|
||||
+ // locals
|
||||
+ var body;
|
||||
+ var firstDay;
|
||||
+ var nwe;
|
||||
+ var tm;
|
||||
+ var colFormat;
|
||||
+
|
||||
+
|
||||
+ function render(date, delta) {
|
||||
+ if (delta) {
|
||||
+ addDays(date, opt('listPage') * delta);
|
||||
+ }
|
||||
+ t.start = t.visStart = cloneDate(date, true);
|
||||
+ t.end = addDays(cloneDate(t.start), opt('listPage'));
|
||||
+ t.visEnd = addDays(cloneDate(t.start), opt('listRange'));
|
||||
+ addMinutes(t.visEnd, -1); // set end to 23:59
|
||||
+ t.title = formatDates(date, t.visEnd, opt('titleFormat'));
|
||||
+
|
||||
+ updateOptions();
|
||||
+
|
||||
+ if (!body) {
|
||||
+ buildSkeleton();
|
||||
+ } else {
|
||||
+ clearEvents();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ function updateOptions() {
|
||||
+ firstDay = opt('firstDay');
|
||||
+ nwe = opt('weekends') ? 0 : 1;
|
||||
+ tm = opt('theme') ? 'ui' : 'fc';
|
||||
+ colFormat = opt('columnFormat', 'day');
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ function buildSkeleton() {
|
||||
+ body = $('<div>').addClass('fc-list-content').appendTo(element);
|
||||
+ }
|
||||
+
|
||||
+ function setHeight(height, dateChanged) {
|
||||
+ body.css('height', (height-1)+'px').css('overflow', 'auto');
|
||||
+ }
|
||||
+
|
||||
+ function setWidth(width) {
|
||||
+ // nothing to be done here
|
||||
+ }
|
||||
+
|
||||
+ function dummy() {
|
||||
+ // Stub.
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/* Additional view: table (by bruederli@kolabsys.com)
|
||||
+---------------------------------------------------------------------------------*/
|
||||
+
|
||||
+function TableEventRenderer() {
|
||||
+ var t = this;
|
||||
+
|
||||
+ // imports
|
||||
+ ListEventRenderer.call(t);
|
||||
+ var opt = t.opt;
|
||||
+ var sortCmp = t.sortCmp;
|
||||
+ var trigger = t.trigger;
|
||||
+ var compileSegs = t.compileDaySegs;
|
||||
+ var reportEvents = t.reportEvents;
|
||||
+ var reportEventClear = t.reportEventClear;
|
||||
+ var reportEventElement = t.reportEventElement;
|
||||
+ var eventElementHandlers = t.eventElementHandlers;
|
||||
+ var renderEventTime = t.renderEventTime;
|
||||
+ var showEvents = t.showEvents;
|
||||
+ var hideEvents = t.hideEvents;
|
||||
+ var getListContainer = t.getDaySegmentContainer;
|
||||
+ var lazySegBind = t.lazySegBind;
|
||||
+ var calendar = t.calendar;
|
||||
+ var formatDate = calendar.formatDate;
|
||||
+ var formatDates = calendar.formatDates;
|
||||
+
|
||||
+ // exports
|
||||
+ t.renderEvents = renderEvents;
|
||||
+ t.clearEvents = clearEvents;
|
||||
+
|
||||
+
|
||||
+ /* Rendering
|
||||
+ --------------------------------------------------------------------*/
|
||||
+
|
||||
+ function clearEvents() {
|
||||
+ reportEventClear();
|
||||
+ getListContainer().children('tbody').remove();
|
||||
+ }
|
||||
+
|
||||
+ function renderEvents(events, modifiedEventId) {
|
||||
+ events.sort(sortCmp);
|
||||
+ reportEvents(events);
|
||||
+ renderSegs(compileSegs(events), modifiedEventId);
|
||||
+ getListContainer().removeClass('fc-list-smart fc-list-day fc-list-month fc-list-week').addClass('fc-list-' + opt('listSections'));
|
||||
+ }
|
||||
+
|
||||
+ function renderSegs(segs, modifiedEventId) {
|
||||
+ var tm = opt('theme') ? 'ui' : 'fc';
|
||||
+ var table = getListContainer();
|
||||
+ var headerClass = tm + "-widget-header";
|
||||
+ var contentClass = tm + "-widget-content";
|
||||
+ var tableCols = opt('tableCols');
|
||||
+ var timecol = $.inArray('time', tableCols) >= 0;
|
||||
+ var i, j, seg, event, times, s, skinCss, skinCssAttr, skinClasses, rowClasses, segContainer, eventElements;
|
||||
+
|
||||
+ for (j=0; j < segs.length; j++) {
|
||||
+ seg = segs[j];
|
||||
+
|
||||
+ if (seg.title) {
|
||||
+ $('<tbody class="fc-list-header"><tr><td class="fc-list-header ' + headerClass + '" colspan="' + tableCols.length + '">' + htmlEscape(seg.title) + '</td></tr></tbody>').appendTo(table);
|
||||
+ }
|
||||
+ segContainer = $('<tbody>').addClass('fc-list-section ' + contentClass).appendTo(table);
|
||||
+ s = '';
|
||||
+
|
||||
+ for (i=0; i < seg.events.length; i++) {
|
||||
+ event = seg.events[i];
|
||||
+ times = renderEventTime(event, seg);
|
||||
+ skinCss = getSkinCss(event, opt);
|
||||
+ skinCssAttr = (skinCss ? " style='" + skinCss + "'" : '');
|
||||
+ skinClasses = ['fc-event-skin', 'fc-corner-left', 'fc-corner-right', 'fc-corner-top', 'fc-corner-bottom'].concat(event.className);
|
||||
+ if (event.source && event.source.className) {
|
||||
+ skinClasses = skinClasses.concat(event.source.className);
|
||||
+ }
|
||||
+ rowClasses = ['fc-event', 'fc-event-row', 'fc-'+dayIDs[event.start.getDay()]];
|
||||
+ if (seg.daydiff == 0) {
|
||||
+ rowClasses.push('fc-today');
|
||||
+ }
|
||||
+
|
||||
+ s += "<tr class='" + rowClasses.join(' ') + "'>";
|
||||
+ for (var col, c=0; c < tableCols.length; c++) {
|
||||
+ col = tableCols[c];
|
||||
+ if (col == 'handle') {
|
||||
+ s += "<td class='fc-event-handle'>" +
|
||||
+ "<div class='" + skinClasses.join(' ') + "'" + skinCssAttr + ">" +
|
||||
+ "<span class='fc-event-inner'></span>" +
|
||||
+ "</div></td>";
|
||||
+ } else if (col == 'date') {
|
||||
+ s += "<td class='fc-event-date' colspan='" + (times[1] || !timecol ? 1 : 2) + "'>" + htmlEscape(times[0]) + "</td>";
|
||||
+ } else if (col == 'time') {
|
||||
+ if (times[1]) {
|
||||
+ s += "<td class='fc-event-time'>" + htmlEscape(times[1]) + "</td>";
|
||||
+ }
|
||||
+ } else {
|
||||
+ s += "<td class='fc-event-" + col + "'>" + (htmlEscape(event[col]) || ' ') + "</td>";
|
||||
+ }
|
||||
+ }
|
||||
+ s += "</tr>";
|
||||
+
|
||||
+ // IE doesn't like innerHTML on tbody elements so we insert every row individually
|
||||
+ if (document.all) {
|
||||
+ $(s).appendTo(segContainer);
|
||||
+ s = '';
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!document.all)
|
||||
+ segContainer[0].innerHTML = s;
|
||||
+
|
||||
+ eventElements = segContainer.children();
|
||||
+
|
||||
+ // retrieve elements, run through eventRender callback, bind event handlers
|
||||
+ for (i=0; i < seg.events.length; i++) {
|
||||
+ event = seg.events[i];
|
||||
+ eventElement = $(eventElements[i]); // faster than eq()
|
||||
+ triggerRes = trigger('eventRender', event, event, eventElement);
|
||||
+ if (triggerRes === false) {
|
||||
+ eventElement.remove();
|
||||
+ } else {
|
||||
+ if (triggerRes && triggerRes !== true) {
|
||||
+ eventElement.remove();
|
||||
+ eventElement = $(triggerRes).appendTo(segContainer);
|
||||
+ }
|
||||
+ if (event._id === modifiedEventId) {
|
||||
+ eventElementHandlers(event, eventElement, seg);
|
||||
+ } else {
|
||||
+ eventElement[0]._fci = i; // for lazySegBind
|
||||
+ }
|
||||
+ reportEventElement(event, eventElement);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ lazySegBind(segContainer, seg, eventElementHandlers);
|
||||
+ markFirstLast(segContainer);
|
||||
+ }
|
||||
+
|
||||
+ //markFirstLast(table);
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
+
|
||||
+
|
||||
+fcViews.table = TableView;
|
||||
+
|
||||
+
|
||||
+function TableView(element, calendar) {
|
||||
+ var t = this;
|
||||
+
|
||||
+ // exports
|
||||
+ t.render = render;
|
||||
+ t.select = dummy;
|
||||
+ t.unselect = dummy;
|
||||
+ t.getDaySegmentContainer = function(){ return table; };
|
||||
+
|
||||
+ // imports
|
||||
+ View.call(t, element, calendar, 'table');
|
||||
+ TableEventRenderer.call(t);
|
||||
+ var opt = t.opt;
|
||||
+ var trigger = t.trigger;
|
||||
+ var clearEvents = t.clearEvents;
|
||||
+ var reportEventClear = t.reportEventClear;
|
||||
+ var formatDates = calendar.formatDates;
|
||||
+ var formatDate = calendar.formatDate;
|
||||
+
|
||||
+ // overrides
|
||||
+ t.setWidth = setWidth;
|
||||
+ t.setHeight = setHeight;
|
||||
+
|
||||
+ // locals
|
||||
+ var div;
|
||||
+ var table;
|
||||
+ var firstDay;
|
||||
+ var nwe;
|
||||
+ var tm;
|
||||
+ var colFormat;
|
||||
+
|
||||
+
|
||||
+ function render(date, delta) {
|
||||
+ if (delta) {
|
||||
+ addDays(date, opt('listPage') * delta);
|
||||
+ }
|
||||
+ t.start = t.visStart = cloneDate(date, true);
|
||||
+ t.end = addDays(cloneDate(t.start), opt('listPage'));
|
||||
+ t.visEnd = addDays(cloneDate(t.start), opt('listRange'));
|
||||
+ addMinutes(t.visEnd, -1); // set end to 23:59
|
||||
+ t.title = (t.visEnd.getTime() - t.visStart.getTime() < DAY_MS) ? formatDate(date, opt('titleFormat')) : formatDates(date, t.visEnd, opt('titleFormat'));
|
||||
+
|
||||
+ updateOptions();
|
||||
+
|
||||
+ if (!table) {
|
||||
+ buildSkeleton();
|
||||
+ } else {
|
||||
+ clearEvents();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ function updateOptions() {
|
||||
+ firstDay = opt('firstDay');
|
||||
+ nwe = opt('weekends') ? 0 : 1;
|
||||
+ tm = opt('theme') ? 'ui' : 'fc';
|
||||
+ colFormat = opt('columnFormat');
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ function buildSkeleton() {
|
||||
+ var tableCols = opt('tableCols');
|
||||
+ var s =
|
||||
+ "<table class='fc-border-separate' style='width:100%' cellspacing='0'>" +
|
||||
+ "<colgroup>";
|
||||
+ for (var c=0; c < tableCols.length; c++) {
|
||||
+ s += "<col class='fc-event-" + tableCols[c] + "' />";
|
||||
+ }
|
||||
+ s += "</colgroup>" +
|
||||
+ "</table>";
|
||||
+ div = $('<div>').addClass('fc-list-content').appendTo(element);
|
||||
+ table = $(s).appendTo(div);
|
||||
+ }
|
||||
+
|
||||
+ function setHeight(height, dateChanged) {
|
||||
+ div.css('height', (height-1)+'px').css('overflow', 'auto');
|
||||
+ }
|
||||
+
|
||||
+ function setWidth(width) {
|
||||
+ // nothing to be done here
|
||||
+ }
|
||||
+
|
||||
+ function dummy() {
|
||||
+ // Stub.
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
+
|
||||
+
|
||||
+})(jQuery);
|
||||
\ No newline at end of file
|
File diff suppressed because it is too large
Load diff
|
@ -126,7 +126,7 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
// event rendering
|
||||
eventRender: function(event, element, view) {
|
||||
if (view.name != 'month') {
|
||||
var cont = element.find('div.fc-event-title');
|
||||
var cont = element.find('.fc-event-title');
|
||||
if (event.location) {
|
||||
cont.after('<div class="fc-event-location">@ ' + Q(event.location) + '</div>');
|
||||
cont = cont.next();
|
||||
|
@ -136,9 +136,9 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
|
|||
}
|
||||
/* TODO: create icons black on white
|
||||
if (event.recurrence)
|
||||
element.find('div.fc-event-time').append('<i class="fc-icon-recurring"></i>');
|
||||
element.find('.fc-event-time').append('<i class="fc-icon-recurring"></i>');
|
||||
if (event.alarms)
|
||||
element.find('div.fc-event-time').append('<i class="fc-icon-alarms"></i>');
|
||||
element.find('.fc-event-time').append('<i class="fc-icon-alarms"></i>');
|
||||
*/
|
||||
}
|
||||
if (view.name == 'table' && event.description && showdesc) {
|
||||
|
|
|
@ -369,7 +369,7 @@ pre {
|
|||
}
|
||||
|
||||
.calendarmain #quicksearchbar {
|
||||
top: 82px;
|
||||
top: 80px;
|
||||
right: 4px;
|
||||
}
|
||||
|
||||
|
@ -1380,7 +1380,7 @@ span.spacer {
|
|||
|
||||
#calendar .fc-header-right {
|
||||
padding-right: 200px;
|
||||
padding-top: 4px;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.rcube-fc-content {
|
||||
|
@ -1421,7 +1421,7 @@ span.spacer {
|
|||
font-style:italic;
|
||||
}
|
||||
|
||||
div.fc-event-location {
|
||||
.fc-event-location {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
|
@ -1466,6 +1466,14 @@ div.fc-event-location {
|
|||
cursor: pointer;
|
||||
}
|
||||
|
||||
#calendar .fc-event-vert .fc-event-head,
|
||||
#calendar .fc-event-vert .fc-event-content {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-view-list div.fc-list-header,
|
||||
.fc-view-table td.fc-list-header,
|
||||
.edit-attendees-table thead td {
|
||||
|
|
|
@ -1,724 +0,0 @@
|
|||
/*
|
||||
* FullCalendar v1.5.4-rcube-0.9.0 Stylesheet
|
||||
*
|
||||
* Copyright (c) 2011 Adam Shaw
|
||||
* Copyright (c) 2011, Kolab Systems AG
|
||||
* Dual licensed under the MIT and GPL licenses, located in
|
||||
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
|
||||
*
|
||||
* Date: Wed Nov 7 16:28:11 2012 +0100
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
.fc {
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
html .fc,
|
||||
.fc table {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.fc td,
|
||||
.fc th {
|
||||
padding: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Header
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-header td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc-header-left {
|
||||
width: 25%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc-header-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-header-right {
|
||||
width: 25%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-header-title {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.fc-header-title h2 {
|
||||
margin-top: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc .fc-header-space {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.fc-header .fc-button {
|
||||
margin-bottom: 1em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* buttons edges butting together */
|
||||
|
||||
.fc-header .fc-button {
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
.fc-header .fc-corner-right {
|
||||
margin-right: 1px; /* back to normal */
|
||||
}
|
||||
|
||||
.fc-header .ui-corner-right {
|
||||
margin-right: 0; /* back to normal */
|
||||
}
|
||||
|
||||
/* button layering (for border precedence) */
|
||||
|
||||
.fc-header .fc-state-hover,
|
||||
.fc-header .ui-state-hover {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-header .fc-state-down {
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.fc-header .fc-state-active,
|
||||
.fc-header .ui-state-active {
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Content
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-content {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.fc-view {
|
||||
width: 100%; /* needed for view switching (when view is absolute) */
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Cell Styles
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-widget-header, /* <th>, usually */
|
||||
.fc-widget-content { /* <td>, usually */
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
|
||||
background: #ffc;
|
||||
}
|
||||
|
||||
.fc-cell-overlay { /* semi-transparent rectangle while dragging */
|
||||
background: #9cf;
|
||||
opacity: .2;
|
||||
filter: alpha(opacity=20); /* for IE */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Buttons
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-button {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fc-state-default { /* non-theme */
|
||||
border-style: solid;
|
||||
border-width: 1px 0;
|
||||
}
|
||||
|
||||
.fc-button-inner {
|
||||
position: relative;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-state-default .fc-button-inner { /* non-theme */
|
||||
border-style: solid;
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-button-content {
|
||||
position: relative;
|
||||
float: left;
|
||||
height: 1.9em;
|
||||
line-height: 1.9em;
|
||||
padding: 0 .6em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* icon (for jquery ui) */
|
||||
|
||||
.fc-button-content .fc-icon-wrap {
|
||||
position: relative;
|
||||
float: left;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.fc-button-content .ui-icon {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-top: -50%;
|
||||
*margin-top: 0;
|
||||
*top: -50%;
|
||||
}
|
||||
|
||||
/* gloss effect */
|
||||
|
||||
.fc-state-default .fc-button-effect {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.fc-state-default .fc-button-effect span {
|
||||
position: absolute;
|
||||
top: -100px;
|
||||
left: 0;
|
||||
width: 500px;
|
||||
height: 100px;
|
||||
border-width: 100px 0 0 1px;
|
||||
border-style: solid;
|
||||
border-color: #fff;
|
||||
background: #444;
|
||||
opacity: .09;
|
||||
filter: alpha(opacity=9);
|
||||
}
|
||||
|
||||
/* button states (determines colors) */
|
||||
|
||||
.fc-state-default,
|
||||
.fc-state-default .fc-button-inner {
|
||||
border-style: solid;
|
||||
border-color: #ccc #bbb #aaa;
|
||||
background: #F3F3F3;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.fc-state-hover,
|
||||
.fc-state-hover .fc-button-inner {
|
||||
border-color: #999;
|
||||
}
|
||||
|
||||
.fc-state-down,
|
||||
.fc-state-down .fc-button-inner {
|
||||
border-color: #555;
|
||||
background: #777;
|
||||
}
|
||||
|
||||
.fc-state-active,
|
||||
.fc-state-active .fc-button-inner {
|
||||
border-color: #555;
|
||||
background: #777;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.fc-state-disabled,
|
||||
.fc-state-disabled .fc-button-inner {
|
||||
color: #999;
|
||||
border-color: #ddd;
|
||||
}
|
||||
|
||||
.fc-state-disabled {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.fc-state-disabled .fc-button-effect {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Global Event Styles
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event {
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
font-size: .85em;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
a.fc-event,
|
||||
.fc-event-draggable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a.fc-event {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-event {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-event-skin {
|
||||
border-color: #36c; /* default BORDER color */
|
||||
background-color: #36c; /* default BACKGROUND color */
|
||||
color: #fff; /* default TEXT color */
|
||||
}
|
||||
|
||||
.fc-event-inner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-event-time,
|
||||
.fc-event-title {
|
||||
padding: 0 1px;
|
||||
}
|
||||
|
||||
.fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 99999;
|
||||
overflow: hidden; /* hacky spaces (IE6/7) */
|
||||
font-size: 300%; /* */
|
||||
line-height: 50%; /* */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Horizontal Events
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-hori {
|
||||
border-width: 1px 0;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
/* resizable */
|
||||
|
||||
.fc-event-hori .ui-resizable-e {
|
||||
top: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
||||
right: -3px !important;
|
||||
width: 7px !important;
|
||||
height: 100% !important;
|
||||
cursor: e-resize;
|
||||
}
|
||||
|
||||
.fc-event-hori .ui-resizable-w {
|
||||
top: 0 !important;
|
||||
left: -3px !important;
|
||||
width: 7px !important;
|
||||
height: 100% !important;
|
||||
cursor: w-resize;
|
||||
}
|
||||
|
||||
.fc-event-hori .ui-resizable-handle {
|
||||
_padding-bottom: 14px; /* IE6 had 0 height */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Fake Rounded Corners (for buttons and events)
|
||||
------------------------------------------------------------*/
|
||||
|
||||
.fc-corner-left {
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-left .fc-button-inner,
|
||||
.fc-corner-left .fc-event-inner {
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.fc-corner-right {
|
||||
margin-right: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-right .fc-button-inner,
|
||||
.fc-corner-right .fc-event-inner {
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
.fc-corner-top {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-top .fc-event-inner {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.fc-corner-bottom {
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-bottom .fc-event-inner {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Fake Rounded Corners SPECIFICALLY FOR EVENTS
|
||||
-----------------------------------------------------------------*/
|
||||
|
||||
.fc-corner-left .fc-event-inner {
|
||||
border-left-width: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-right .fc-event-inner {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-top .fc-event-inner {
|
||||
border-top-width: 1px;
|
||||
}
|
||||
|
||||
.fc-corner-bottom .fc-event-inner {
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Reusable Separate-border Table
|
||||
------------------------------------------------------------*/
|
||||
|
||||
table.fc-border-separate {
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
.fc-border-separate th,
|
||||
.fc-border-separate td {
|
||||
border-width: 1px 0 0 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate th.fc-last,
|
||||
.fc-border-separate td.fc-last {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate tr.fc-last th,
|
||||
.fc-border-separate tr.fc-last td {
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate tbody tr.fc-first td,
|
||||
.fc-border-separate tbody tr.fc-first th {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Month View, Basic Week View, Basic Day View
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-grid th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-grid .fc-day-number {
|
||||
float: right;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.fc-grid .fc-other-month .fc-day-number {
|
||||
opacity: 0.3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
/* opacity with small font can sometimes look too faded
|
||||
might want to set the 'color' property instead
|
||||
making day-numbers bold also fixes the problem */
|
||||
}
|
||||
|
||||
.fc-grid .fc-day-content {
|
||||
clear: both;
|
||||
padding: 2px 2px 1px; /* distance between events and day edges */
|
||||
}
|
||||
|
||||
/* event styles */
|
||||
|
||||
.fc-grid .fc-event-time {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* right-to-left */
|
||||
|
||||
.fc-rtl .fc-grid .fc-day-number {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-grid .fc-event-time {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.fc-more-link {
|
||||
font-size: 0.85em;
|
||||
white-space: nowrap;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
/* Agenda Week View, Agenda Day View
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-agenda table {
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
.fc-agenda-days th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-agenda-axis {
|
||||
width: 50px;
|
||||
padding: 0 4px;
|
||||
vertical-align: middle;
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-day-content {
|
||||
padding: 2px 2px 1px;
|
||||
}
|
||||
|
||||
/* make axis border take precedence */
|
||||
|
||||
.fc-agenda-days .fc-agenda-axis {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-agenda-days .fc-col0 {
|
||||
border-left-width: 0;
|
||||
}
|
||||
|
||||
/* all-day area */
|
||||
|
||||
.fc-agenda-allday th {
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-agenda-allday .fc-day-content {
|
||||
min-height: 34px; /* TODO: doesnt work well in quirksmode */
|
||||
_height: 34px;
|
||||
}
|
||||
|
||||
/* divider (between all-day and slots) */
|
||||
|
||||
.fc-agenda-divider-inner {
|
||||
height: 2px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-widget-header .fc-agenda-divider-inner {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
/* slot rows */
|
||||
|
||||
.fc-agenda-slots th {
|
||||
border-width: 1px 1px 0;
|
||||
}
|
||||
|
||||
.fc-agenda-slots td {
|
||||
border-width: 1px 0 0;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.fc-agenda-slots td div {
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-slot0 th,
|
||||
.fc-agenda-slots tr.fc-slot0 td {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-minor th,
|
||||
.fc-agenda-slots tr.fc-minor td {
|
||||
border-top-style: dotted;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-minor th.ui-widget-header {
|
||||
*border-top-style: solid; /* doesn't work with background in IE6/7 */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Vertical Events
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-vert {
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-head,
|
||||
.fc-event-vert .fc-event-content {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-time {
|
||||
white-space: nowrap;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
opacity: .3;
|
||||
filter: alpha(opacity=30);
|
||||
}
|
||||
|
||||
.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */
|
||||
.fc-select-helper .fc-event-bg {
|
||||
display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */
|
||||
}
|
||||
|
||||
/* resizable */
|
||||
|
||||
.fc-event-vert .ui-resizable-s {
|
||||
bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
||||
width: 100% !important;
|
||||
height: 8px !important;
|
||||
overflow: hidden !important;
|
||||
line-height: 8px !important;
|
||||
font-size: 11px !important;
|
||||
font-family: monospace;
|
||||
text-align: center;
|
||||
cursor: s-resize;
|
||||
}
|
||||
|
||||
.fc-agenda .ui-resizable-resizing { /* TODO: better selector */
|
||||
_overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-timeline {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
border-top: 2px solid #3ec400;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* List view (by bruederli@kolabsys.com)
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-view-list,
|
||||
.fc-view-table {
|
||||
border: 1px solid #ccc;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.fc-view-list .fc-list-header,
|
||||
.fc-view-table td.fc-list-header {
|
||||
border-width: 0;
|
||||
border-bottom-width: 1px;
|
||||
padding: 3px 5px;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-first td.fc-list-header {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
.fc-list-section {
|
||||
padding: 4px 2px;
|
||||
border-width: 0;
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
.fc-view-list .fc-last {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
.fc-list-section .fc-event {
|
||||
position: relative;
|
||||
margin: 1px 2px 3px 2px;
|
||||
}
|
||||
|
||||
.fc-view-table tr.fc-event td {
|
||||
padding: 2px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.fc-view-table tr.fc-event td.fc-event-handle {
|
||||
padding: 3px 8px 3px 3px;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-event-handle .fc-event-skin {
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-event-handle .fc-event-inner {
|
||||
display: block;
|
||||
width: 8px;
|
||||
height: 10px;
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
}
|
||||
|
||||
.fc-view-table table {
|
||||
table-layout: fixed;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-handle {
|
||||
width: 18px;
|
||||
}
|
||||
|
||||
.fc-event-handle .fc-event-inner {
|
||||
border-color: inherit;
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-date {
|
||||
width: 7em;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-list-day col.fc-event-date {
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-time {
|
||||
width: 8em;
|
||||
}
|
||||
|
||||
.fc-view-table td.fc-event-date,
|
||||
.fc-view-table td.fc-event-time {
|
||||
white-space: nowrap;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
1
plugins/calendar/skins/classic/fullcalendar.css
Symbolic link
1
plugins/calendar/skins/classic/fullcalendar.css
Symbolic link
|
@ -0,0 +1 @@
|
|||
../larry/fullcalendar.css
|
|
@ -130,7 +130,7 @@ body, td, th, div, p, h3, select, input, textarea {
|
|||
font-style: italic;
|
||||
}
|
||||
|
||||
div.fc-event-location {
|
||||
.fc-event-location {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
|
|
|
@ -1303,15 +1303,11 @@ a.dropdown-link:after {
|
|||
}
|
||||
|
||||
.calendarmain .fc-button,
|
||||
.calendarmain .fc-button.fc-state-hover,
|
||||
.calendarmain .fc-button.fc-state-down {
|
||||
border: 0;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.calendarmain .fc-state-default .fc-button-inner,
|
||||
.calendarmain .fc-state-hover .fc-button-inner {
|
||||
.calendarmain .fc-button.fc-state-default,
|
||||
.calendarmain .fc-button.fc-state-hover {
|
||||
margin: 0 0 0 0;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
color: #505050;
|
||||
text-shadow: 0px 1px 1px #fff;
|
||||
border: 1px solid #e6e6e6;
|
||||
|
@ -1328,17 +1324,12 @@ a.dropdown-link:after {
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
.calendarmain .fc-state-disabled .fc-button-inner {
|
||||
.calendarmain .fc-button.fc-state-disabled {
|
||||
color: #999;
|
||||
background: #d8d8d8;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header .fc-button {
|
||||
margin-left: -1px;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.calendarmain .fc-state-down .fc-button-inner {
|
||||
.calendarmain .fc-button.fc-state-down {
|
||||
margin: 0;
|
||||
background: #bababa;
|
||||
background: -moz-linear-gradient(top, #bababa 0%, #d8d8d8 100%);
|
||||
|
@ -1348,7 +1339,7 @@ a.dropdown-link:after {
|
|||
background: linear-gradient(top, #bababa 0%, #d8d8d8 100%);
|
||||
}
|
||||
|
||||
.calendarmain .fc-state-active .fc-button-inner {
|
||||
.calendarmain .fc-button.fc-state-active {
|
||||
color: #333;
|
||||
background: #bababa;
|
||||
background: -moz-linear-gradient(top, #bababa 0%, #d8d8d8 100%);
|
||||
|
@ -1358,34 +1349,13 @@ a.dropdown-link:after {
|
|||
background: linear-gradient(top, #bababa 0%, #d8d8d8 100%);
|
||||
}
|
||||
|
||||
.calendarmain .fc-corner-left .fc-button-inner,
|
||||
.calendarmain .fc-corner-left .fc-button-content {
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
.calendarmain .fc-corner-right .fc-button-inner,
|
||||
.calendarmain .fc-corner-right .fc-button-content {
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
.calendarmain .fc-button-effect {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.calendarmain .fc-button-content {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
.calendarmain .fc-header .fc-button {
|
||||
margin-left: -1px;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button {
|
||||
margin: -7px 0 0 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-state-default .fc-button-inner,
|
||||
.calendarmain .fc-header-left .fc-state-hover .fc-button-inner {
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
font-size: 10px;
|
||||
|
@ -1393,9 +1363,11 @@ a.dropdown-link:after {
|
|||
min-width: 50px;
|
||||
max-width: 75px;
|
||||
height: 13px;
|
||||
line-height: 1em;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
margin: -7px 0 0 0;
|
||||
padding: 28px 2px 0 2px;
|
||||
text-shadow: 0px 1px 1px #EEE;
|
||||
border: 0;
|
||||
|
@ -1406,46 +1378,40 @@ a.dropdown-link:after {
|
|||
-moz-box-shadow: none;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button-content {
|
||||
float: none;
|
||||
line-height: 1em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-state-active .fc-button-content {
|
||||
.calendarmain .fc-header-left .fc-button.fc-state-active {
|
||||
font-weight: bold;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button-agendaDay .fc-button-inner {
|
||||
.calendarmain .fc-header-left .fc-button-agendaDay {
|
||||
background-position: center -120px;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button-agendaDay.fc-state-active .fc-button-inner {
|
||||
.calendarmain .fc-header-left .fc-button-agendaDay.fc-state-active {
|
||||
background-position: center -160px;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button-agendaWeek .fc-button-inner {
|
||||
.calendarmain .fc-header-left .fc-button-agendaWeek {
|
||||
background-position: center -200px;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button-agendaWeek.fc-state-active .fc-button-inner {
|
||||
.calendarmain .fc-header-left .fc-button-agendaWeek.fc-state-active {
|
||||
background-position: center -240px;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button-month .fc-button-inner {
|
||||
.calendarmain .fc-header-left .fc-button-month {
|
||||
background-position: center -280px;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button-month.fc-state-active .fc-button-inner {
|
||||
.calendarmain .fc-header-left .fc-button-month.fc-state-active {
|
||||
background-position: center -320px;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button-table .fc-button-inner {
|
||||
.calendarmain .fc-header-left .fc-button-table {
|
||||
background-position: center -360px;
|
||||
}
|
||||
|
||||
.calendarmain .fc-header-left .fc-button-table.fc-state-active .fc-button-inner {
|
||||
.calendarmain .fc-header-left .fc-button-table.fc-state-active {
|
||||
background-position: center -400px;
|
||||
}
|
||||
|
||||
|
@ -1487,6 +1453,10 @@ a.dropdown-link:after {
|
|||
padding-right: 0.3em;
|
||||
}
|
||||
|
||||
.calendarmain .fc-event-vert .fc-event-inner {
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.fc-event-cateories {
|
||||
font-style:italic;
|
||||
}
|
||||
|
@ -1580,6 +1550,7 @@ div.fc-event-location {
|
|||
width: 10px;
|
||||
height: 10px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
font-size: 10px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.4);
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
../classic/fullcalendar.css
|
707
plugins/calendar/skins/larry/fullcalendar.css
Normal file
707
plugins/calendar/skins/larry/fullcalendar.css
Normal file
|
@ -0,0 +1,707 @@
|
|||
/*!
|
||||
* FullCalendar v1.6.4-rcube-1.0 Stylesheet
|
||||
* Docs & License: http://arshaw.com/fullcalendar/
|
||||
* (c) 2013 Adam Shaw, 2014 Kolab Systems AG
|
||||
*/
|
||||
|
||||
|
||||
.fc {
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
html .fc,
|
||||
.fc table {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.fc td,
|
||||
.fc th {
|
||||
padding: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Header
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-header td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc-header-left {
|
||||
width: 25%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc-header-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-header-right {
|
||||
width: 25%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-header-title {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.fc-header-title h2 {
|
||||
margin-top: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc .fc-header-space {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.fc-header .fc-button {
|
||||
margin-bottom: 1em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* buttons edges butting together */
|
||||
|
||||
.fc-header .fc-button {
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
.fc-header .fc-corner-right, /* non-theme */
|
||||
.fc-header .ui-corner-right { /* theme */
|
||||
margin-right: 0; /* back to normal */
|
||||
}
|
||||
|
||||
/* button layering (for border precedence) */
|
||||
|
||||
.fc-header .fc-state-hover,
|
||||
.fc-header .ui-state-hover {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-header .fc-state-down {
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.fc-header .fc-state-active,
|
||||
.fc-header .ui-state-active {
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Content
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-content {
|
||||
clear: both;
|
||||
zoom: 1; /* for IE7, gives accurate coordinates for [un]freezeContentHeight */
|
||||
}
|
||||
|
||||
.fc-view {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Cell Styles
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-widget-header, /* <th>, usually */
|
||||
.fc-widget-content { /* <td>, usually */
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
|
||||
background: #fcf8e3;
|
||||
}
|
||||
|
||||
.fc-cell-overlay { /* semi-transparent rectangle while dragging */
|
||||
background: #bce8f1;
|
||||
opacity: .3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Buttons
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-button {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
padding: 0 .6em;
|
||||
overflow: hidden;
|
||||
height: 1.9em;
|
||||
line-height: 1.9em;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fc-state-default { /* non-theme */
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
.fc-state-default.fc-corner-left { /* non-theme */
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
.fc-state-default.fc-corner-right { /* non-theme */
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
/*
|
||||
Our default prev/next buttons use HTML entities like ‹ › « »
|
||||
and we'll try to make them look good cross-browser.
|
||||
*/
|
||||
|
||||
.fc-text-arrow {
|
||||
margin: 0 .1em;
|
||||
font-size: 2em;
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
vertical-align: baseline; /* for IE7 */
|
||||
}
|
||||
|
||||
.fc-button-prev .fc-text-arrow,
|
||||
.fc-button-next .fc-text-arrow { /* for ‹ › */
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* icon (for jquery ui) */
|
||||
|
||||
.fc-button .fc-icon-wrap {
|
||||
position: relative;
|
||||
float: left;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.fc-button .ui-icon {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-top: -50%;
|
||||
*margin-top: 0;
|
||||
*top: -50%;
|
||||
}
|
||||
|
||||
/*
|
||||
button states
|
||||
borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
|
||||
*/
|
||||
|
||||
.fc-state-default {
|
||||
background-color: #f5f5f5;
|
||||
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
color: #333;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.fc-state-hover,
|
||||
.fc-state-down,
|
||||
.fc-state-active,
|
||||
.fc-state-disabled {
|
||||
color: #333333;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
|
||||
.fc-state-hover {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
background-position: 0 -15px;
|
||||
-webkit-transition: background-position 0.1s linear;
|
||||
-moz-transition: background-position 0.1s linear;
|
||||
-o-transition: background-position 0.1s linear;
|
||||
transition: background-position 0.1s linear;
|
||||
}
|
||||
|
||||
.fc-state-down,
|
||||
.fc-state-active {
|
||||
background-color: #cccccc;
|
||||
background-image: none;
|
||||
outline: 0;
|
||||
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.fc-state-disabled {
|
||||
cursor: default;
|
||||
background-image: none;
|
||||
opacity: 0.65;
|
||||
filter: alpha(opacity=65);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Global Event Styles
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-container > * {
|
||||
z-index: 8;
|
||||
}
|
||||
|
||||
.fc-event-container > .ui-draggable-dragging,
|
||||
.fc-event-container > .ui-resizable-resizing {
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.fc-event {
|
||||
border: 1px solid #3a87ad; /* default BORDER color */
|
||||
background-color: #3a87ad; /* default BACKGROUND color */
|
||||
color: #fff; /* default TEXT color */
|
||||
font-size: .85em;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
a.fc-event {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.fc-event,
|
||||
.fc-event-draggable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-event {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-event-inner {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-event-time,
|
||||
.fc-event-title {
|
||||
padding: 0 1px;
|
||||
}
|
||||
|
||||
.fc .ui-resizable-handle {
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 99999;
|
||||
overflow: hidden; /* hacky spaces (IE6/7) */
|
||||
font-size: 300%; /* */
|
||||
line-height: 50%; /* */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Horizontal Events
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-hori {
|
||||
border-width: 1px 0;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-event-hori.fc-event-start,
|
||||
.fc-rtl .fc-event-hori.fc-event-end {
|
||||
border-left-width: 1px;
|
||||
border-top-left-radius: 3px;
|
||||
border-bottom-left-radius: 3px;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-event-hori.fc-event-end,
|
||||
.fc-rtl .fc-event-hori.fc-event-start {
|
||||
border-right-width: 1px;
|
||||
border-top-right-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
/* resizable */
|
||||
|
||||
.fc-event-hori .ui-resizable-e {
|
||||
top: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
||||
right: -3px !important;
|
||||
width: 7px !important;
|
||||
height: 100% !important;
|
||||
cursor: e-resize;
|
||||
}
|
||||
|
||||
.fc-event-hori .ui-resizable-w {
|
||||
top: 0 !important;
|
||||
left: -3px !important;
|
||||
width: 7px !important;
|
||||
height: 100% !important;
|
||||
cursor: w-resize;
|
||||
}
|
||||
|
||||
.fc-event-hori .ui-resizable-handle {
|
||||
_padding-bottom: 14px; /* IE6 had 0 height */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Reusable Separate-border Table
|
||||
------------------------------------------------------------*/
|
||||
|
||||
table.fc-border-separate {
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
.fc-border-separate th,
|
||||
.fc-border-separate td {
|
||||
border-width: 1px 0 0 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate th.fc-last,
|
||||
.fc-border-separate td.fc-last {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate tr.fc-last th,
|
||||
.fc-border-separate tr.fc-last td {
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
.fc-border-separate tbody tr.fc-first td,
|
||||
.fc-border-separate tbody tr.fc-first th {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Month View, Basic Week View, Basic Day View
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-grid th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc .fc-week-number {
|
||||
width: 22px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc .fc-week-number div {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.fc-grid .fc-day-number {
|
||||
float: right;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.fc-grid .fc-other-month .fc-day-number {
|
||||
opacity: 0.3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
/* opacity with small font can sometimes look too faded
|
||||
might want to set the 'color' property instead
|
||||
making day-numbers bold also fixes the problem */
|
||||
}
|
||||
|
||||
.fc-grid .fc-day-content {
|
||||
clear: both;
|
||||
padding: 2px 2px 1px; /* distance between events and day edges */
|
||||
}
|
||||
|
||||
/* event styles */
|
||||
|
||||
.fc-grid .fc-event-time {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* right-to-left */
|
||||
|
||||
.fc-rtl .fc-grid .fc-day-number {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-grid .fc-event-time {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.fc-more-link {
|
||||
font-size: 0.85em;
|
||||
white-space: nowrap;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
/* Agenda Week View, Agenda Day View
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-agenda table {
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
.fc-agenda-days th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-agenda-axis {
|
||||
width: 50px;
|
||||
padding: 0 4px;
|
||||
vertical-align: middle;
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-week-number {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fc-agenda .fc-day-content {
|
||||
padding: 2px 2px 1px;
|
||||
}
|
||||
|
||||
/* make axis border take precedence */
|
||||
|
||||
.fc-agenda-days .fc-agenda-axis {
|
||||
border-right-width: 1px;
|
||||
}
|
||||
|
||||
.fc-agenda-days .fc-col0 {
|
||||
border-left-width: 0;
|
||||
}
|
||||
|
||||
/* all-day area */
|
||||
|
||||
.fc-agenda-allday th {
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-agenda-allday .fc-day-content {
|
||||
min-height: 34px; /* TODO: doesnt work well in quirksmode */
|
||||
_height: 34px;
|
||||
}
|
||||
|
||||
/* divider (between all-day and slots) */
|
||||
|
||||
.fc-agenda-divider-inner {
|
||||
height: 2px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-widget-header .fc-agenda-divider-inner {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
/* slot rows */
|
||||
|
||||
.fc-agenda-slots th {
|
||||
border-width: 1px 1px 0;
|
||||
}
|
||||
|
||||
.fc-agenda-slots td {
|
||||
border-width: 1px 0 0;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.fc-agenda-slots td div {
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-slot0 th,
|
||||
.fc-agenda-slots tr.fc-slot0 td {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-minor th,
|
||||
.fc-agenda-slots tr.fc-minor td {
|
||||
border-top-style: dotted;
|
||||
}
|
||||
|
||||
.fc-agenda-slots tr.fc-minor th.ui-widget-header {
|
||||
*border-top-style: solid; /* doesn't work with background in IE6/7 */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Vertical Events
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event-vert {
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-head,
|
||||
.fc-event-vert .fc-event-content {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-event-vert.fc-event-start {
|
||||
border-top-width: 1px;
|
||||
border-top-left-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
}
|
||||
|
||||
.fc-event-vert.fc-event-end {
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-left-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-time {
|
||||
white-space: nowrap;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-inner {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
opacity: .25;
|
||||
filter: alpha(opacity=25);
|
||||
}
|
||||
|
||||
.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */
|
||||
.fc-select-helper .fc-event-bg {
|
||||
display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */
|
||||
}
|
||||
|
||||
/* resizable */
|
||||
|
||||
.fc-event-vert .ui-resizable-s {
|
||||
bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
||||
width: 100% !important;
|
||||
height: 8px !important;
|
||||
overflow: hidden !important;
|
||||
line-height: 8px !important;
|
||||
font-size: 11px !important;
|
||||
font-family: monospace;
|
||||
text-align: center;
|
||||
cursor: s-resize;
|
||||
}
|
||||
|
||||
.fc-agenda .ui-resizable-resizing { /* TODO: better selector */
|
||||
_overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-timeline {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
border-top: 2px solid #3ec400;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* List view (by bruederli@kolabsys.com)
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
.fc-view-list,
|
||||
.fc-view-table {
|
||||
border: 1px solid #ccc;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.fc-view-list .fc-list-header,
|
||||
.fc-view-table td.fc-list-header {
|
||||
border-width: 0;
|
||||
border-bottom-width: 1px;
|
||||
padding: 3px 5px;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-first td.fc-list-header {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
.fc-list-section {
|
||||
padding: 4px 2px;
|
||||
border-width: 0;
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
.fc-view-list .fc-last {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
.fc-list-section .fc-event {
|
||||
position: relative;
|
||||
margin: 1px 2px 3px 2px;
|
||||
}
|
||||
|
||||
.fc-view-table tr.fc-event {
|
||||
background: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.fc-view-table tr.fc-event td {
|
||||
padding: 2px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.fc-view-table tr.fc-event td.fc-event-handle {
|
||||
padding: 3px 8px 3px 3px;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-event-handle .fc-event-skin {
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-event-handle .fc-event-inner {
|
||||
display: block;
|
||||
width: 8px;
|
||||
height: 10px;
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
}
|
||||
|
||||
.fc-view-table table {
|
||||
table-layout: fixed;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-handle {
|
||||
width: 18px;
|
||||
}
|
||||
|
||||
.fc-event-handle .fc-event-inner {
|
||||
border-color: inherit;
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-date {
|
||||
width: 7em;
|
||||
}
|
||||
|
||||
.fc-view-table .fc-list-day col.fc-event-date {
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.fc-view-table col.fc-event-time {
|
||||
width: 9em;
|
||||
}
|
||||
|
||||
.fc-view-table td.fc-event-date,
|
||||
.fc-view-table td.fc-event-time {
|
||||
white-space: nowrap;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
|
@ -130,7 +130,7 @@ body, td, th, div, p, h3, select, input, textarea {
|
|||
font-style: italic;
|
||||
}
|
||||
|
||||
div.fc-event-location {
|
||||
.fc-event-location {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue