- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以通过创建封装 fullcalendar 的新插件来添加议程 View ,例如在 google 日历中找到的议程 View ,将所有事件列出到 fullcalendar。这意味着,在不使用原始代码的情况下,有没有办法实现这一目标?我已经用 1.6.2 Fullcalendar 版本完成了。
请帮忙!!
最佳答案
试试这个..将其添加到完整日历中
看这个 --> http://paulthedutchman.nl/calendar_standalone/
fcViews.agendaList = agendaListView;
defaults.buttonText.agendaList='agenda';
defaults.titleFormat.agendaList='W';
defaults.agendaDisType = true;
function agendaListView(element, calendar) {
var t = this;
t.render = render;
ListView.call(t, element, calendar );
var opt = t.opt;
var formatDate = calendar.formatDate;
function render(date, delta) {
if (delta) {
addDays(date, delta * 7);
}
var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + 7) % 7));
// var start = addDays(cloneDate(date), 1);
var end = addDays(cloneDate(start), 7);
var visStart = cloneDate(start);
var visEnd = cloneDate(end);
var weekends = opt('weekends');
if (!weekends) {
skipWeekend(visStart);
skipWeekend(visEnd, -1, true);
}
t.title = formatDates(
visStart,
addDays(cloneDate(visEnd), -1),
opt('titleFormat')
);
t.start = start;
t.end = end;
t.visStart = visStart;
t.visEnd = visEnd;
//renderAgendaList(false);
}
}
function ListView(element, calendar) {
var t = this;
// exports
//t.renderAgendaList = renderAgendaList;
t.setHeight = setHeight;
t.setWidth = setWidth;
t.renderEvents = renderEvents;
t.clearEvents = clearEvents;
t.cellIsAllDay = function () {
return true
};
t.getColWidth = function () {
return colWidth
};
t.getDaySegmentContainer = function () {
return daySegmentContainer
};
// imports
View.call(t, element, calendar, 'agendaList' );
OverlayManager.call(t);
SelectionManager.call(t);
var opt = t.opt;
var trigger = t.trigger;
var formatDate = calendar.formatDate;
// locals
var updateEvents = t.calendar.updateEvents;
var body;
var viewWidth;
var viewHeight;
var colWidth;
var firstDay;
var eventElementHandlers = t.eventElementHandlers;
// We are switching to List display, hence no need of this function anymore
// But if you would prefer the consistency, we can swicth and have table based listview
/*
function renderAgendaList() {
if (!body) {
buildTable();
} else {
clearEvents();
}
}*/
function buildTable() {
body = false;
}
function setHeight(height) {
viewHeight = height;
var bodyHeight = viewHeight;
}
function setWidth(width) {
viewWidth = width;
}
var reportEventClear = t.reportEventClear;
var getDaySegmentContainer = t.getDaySegmentContainer;
/*Date.prototype.addDays = function( days ) {
this.setDate(this.getDate() + days );
return this;
}*/
function renderEvents(events, modifiedEventId) {
//Duplicate the list of events to be used during the display
//For repeating and multi-days events, we wanna make sure we add those days each event happens
//for example event that start from 1st to 4th, we will add on our list displayeventlist 1,2,3 and 4th this event
// We could have used other methods like scanning the dates and checking each event, but this seem to be more efficient
var displayeventlist = [];
var tstart, tend;
var j = 0;
for(i in events) {
displayeventlist[j] = Object.create(events[i]);
tstart = cloneDate(events[i].start,true);
tend = cloneDate(events[i].end,true);
// console.log(" Event start date "+ displayeventlist[i].start +" end date "+ displayeventlist[i].end+" "+ displayeventlist[i].title);
while( (tend - tstart) > 0 ) {
j = j + 1;
displayeventlist[j] = Object.create(events[i]);
tstart = addDays(tstart, 1);
displayeventlist[j].start = cloneDate(tstart);
}
j = j + 1;
}
// sort our display list, makes easier to display
displayeventlist.sort(function(a,b) {
var dateA = new Date(a.start);
var dateB = new Date(b.start);
return dateA-dateB;
});
//Start displaying our sorted list
var html = $("<ul class='fc-agendaList'></ul>");
var mm, dd, tt, dt, lurl, ltitle, em;
var temp, i = 0;
var vm = formatDate(t.visStart, 'W');
for (i in displayeventlist) {
//console.log(" Event start date "+ displayeventlist[i].start +" end date "+ displayeventlist[i].end+" "+ displayeventlist[i].title);
z = i;
em = formatDate(displayeventlist[i].start, 'W');
// retrieve only current view week events
if ( em == vm ) {
dd = formatDate(displayeventlist[i].start, 'dddd');
lday = formatDate(displayeventlist[i].start, 'd MMMM yyyy');
ltitle = displayeventlist[i].title;
allDay = displayeventlist[i].allDay;
st = formatDate(displayeventlist[i].start, 'H:mm');
et = formatDate(displayeventlist[i].end, 'H:mm');
lurl = displayeventlist[i].url;
classes = displayeventlist[i].className;
ldesc = displayeventlist[i].location;
if (lday != temp) { //on change de jour
$("<li class='fc-agendaList-dayHeader ui-widget-header'>" +
"<span class='fc-agendaList-day'>"+dd+"</span>" +
"<span class='fc-agendaList-date'>"+lday+"</span>" +
"</li>").appendTo(html);
temp = lday;
}
if (allDay) {
eventdisplay = $("<li class='fc-agendaList-item fc-today fc-thu'>"+
"<"+ (lurl ? "a href='"+ lurl +"'" : "div") + " class='fc-agendaList-event fc-eventlist "+classes+"'>"+
"<div class='fc-event-time'>"+
"<span class='fc-event-all-day'></span>"+
"</div>"+
"<div class='fc-agendaList-eventDetails'>"+
"<div class='fc-eventlist-title'>"+ltitle+"</div>"+
(opt('showLocation') ? "<div class='fc-eventlist-desc'>"+ldesc+"</div>" : "")+
"</div>"+
"</" + (lurl ? "a" : "div") + ">"+
"</li>").appendTo(html);
} else {
eventdisplay = $("<li class='fc-agendaList-item fc-today fc-thu'>"+
"<"+ (lurl ? "a href='"+ lurl +"'" : "div") + " class='fc-agendaList-event fc-eventlist "+classes+"'>"+
"<div class='fc-event-time'>"+
"<span class='fc-event-start-time'>"+st+(et ? " - "+et : "")+"</span> "+
"</div>"+
"<div class='fc-agendaList-eventDetails'>"+
"<div class='fc-eventlist-title'>"+ltitle+"</div>"+
(opt('showLocation') ? "<div class='fc-eventlist-desc'>"+ldesc+"</div>" : "")+
"</div>"+
"</" + (lurl ? "a" : "div") + ">"+
"</li>").appendTo(html);
}
eventElementHandlers(displayeventlist[i], eventdisplay);
}
}
$(element).html(html);
trigger('eventAfterAllRender');
}
function clearEvents() {
//implement this in case we wanna do list based display
}
}
;;
关于javascript - 如何在Fullcalendar 2.2.6中实现议程 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28061622/
我有一个包含用户及其每周日历的 mysql 表。 每个用户都可以设置自己一周的空闲时间(早上、下午、晚上/周一到周六),并且不会经常更改,几乎永远不会更改。 想象一下,这些用户是健身房的私有(priv
我无法动态更改选定的日期。例如,我想在离开屏幕时将选定的日期更改为今天;我不想在今天以外的其他日期离开...我该怎么做?我正在使用议程。另外,我想在用户单击该屏幕中的某个按钮时更改选定的日期。如果我只
如何添加操作监听器,以便在单击议程上的约会时打开一个新窗口,其中包含有关该特定单击约会的更多详细信息。 最佳答案 Agenda 似乎没有相应的 api。您可以看到议程的来源:AbstractAppoi
我在使用带有议程 View 的全日历时遇到了一些问题。在周 View 中,网格内没有垂直边框,如您在这张图片中所见: http://cjoint.com/14av/DDlkmc7Kjgp.htm在基本
议程/cron 支持这种情况的重复吗?示例:在周一和周二每两周重复一次工作,我可以每两周重复一次工作,但不能在特定日期重复一次工作,如果是,时间间隔的表达式是什么。周和日都可以是动态的。谢谢 最佳答案
我想在每天 8:30 到 17:00 的日程 View 中只显示营业时间, 像下面这样: 最佳答案 您是在问如何隐藏营业时间以外的时间吗?如果是这样,请使用 minTime 和 maxTime 选项:
从议程 View 中,我想按一个键并从该 TODO 条目中删除 SCHEDULED: 行。 最佳答案 按 C-u C-c C-s 要重建议程缓冲区,请按 r 请参阅 The manual 中的议程命
使用 Agenda ,是否可以设置作业在失败后多次重试? 最佳答案 不直接支持重试作为选项,但通过将失败的作业 nextRunAt 设置为 future 时间,它有一个简单的解决方法。 引用这篇文章:
我已将 FullCalendar 版本从 v. 2.3.1 更新到 2.4.0,之前一切正常,但现在在 周 View 和 议程 View 中 我无法添加该事件。这件事很奇怪,因为在月 View 中我看
我希望 Org-mode 议程在我打开 Emacs 时自动显示我今天必须做的事情。 org-agenda 命令是交互式的,因此它似乎不适用于此目的。 有没有办法在 Emacs 启动时显示 Org-mo
最近,我开始使用来自以下 repo 的日历控件:https://github.com/wix/react-native-calendars最初日历控件正确对齐所有项目,但似乎有些东西完全破坏了对齐。
我通过表单从用户那里收集了 Activity 日期、标题、地点、参加者、开始和结束时间、位置和其他元数据,然后存储在 mysql 数据库表中。我想从数据库中检索事件并以 Google 日历样式列出它们
我正在使用来自 http://jfxtras.org/ 的 FXtras(版本 8.0-r5)议程,我在其中定义了两种类型的约会:个人(group1)和共享(group2)。用户可以编辑个人约会的时间
我想安排这样的任务: 安排 11 月 1 日开始的任务 之后每个月重复该任务 我不想在任务安排在 11 月 1 日才开始的那一刻运行它。 我正在使用 Agenda.js我需要确保我正确地执行了此操作,
我尝试使用以下 CSS 隐藏 kendo 调度程序议程 View 中的时间列。 .k-scheduler-timecolumn{ visibility:collapse !important;
我是一名优秀的程序员,十分优秀!