Roo.extend(Roo.bootstrap.Calendar, Roo.bootstrap.Component, {
+ /**
+ * @cfg {Roo.data.Store} store
+ * The data source for the calendar
+ */
+ store : false,
/**
* @cfg {Number} startDay
* Day index at which the week should begin, 0-based (defaults to 0, which is Sunday)
};
var cal_rows = function() {
- var ret = []
+ var ret = [];
for (var r = 0; r < 6; r++) {
var row= {
tag : 'tr',
cn: [
{
tag: "img",
- src: rootURL + '/roojs1/images/ux/lightbox/loading.gif'
+ src: Roo.rootURL + '/images/ux/lightbox/loading.gif'
},
{
tag: "span",
]
}
]
- }
+ };
this.maskEl = Roo.DomHelper.append(this.el.select('.fc-content', true).first(), mark, true);
var size = this.el.select('.fc-content', true).first().getSize();
var format = this.format;
var setCellClass = function(cal, cell){
-
+ cell.row = 0;
+ cell.events = [];
+ cell.more = [];
//Roo.log('set Cell Class');
cell.title = "";
var t = d.getTime();
var crow = false;
var rows = [];
for(var i =0; i < cells.length; i++) {
+
+ cells[i].row = cells[0].row;
+
+ if(i == 0){
+ cells[i].row = cells[i].row + 1;
+ }
+
if (!crow) {
crow = {
start : cells[i],
ev.els = [];
ev.rows = rows;
ev.cells = cells;
- ev.rendered = false;
-// for (var i = 0; i < cells.length;i++) {
-// cells[i].rows = Math.max(cells[i].rows || 0 , ev.row + 1 );
-//
-// }
+
+ cells[0].events.push(ev);
this.calevents.push(ev);
},
}
Roo.each(this.cells.elements, function(c){
- c.rows = [];
+ c.row = 0;
+ c.events = [];
c.more = [];
});
renderEvents: function()
{
- // first make sure there is enough space..
- this.cells.each(function(c) {
- c.rows = [];
- c.more = [];
- });
+ var _this = this;
- for (var e = 0; e < this.calevents.length; e++) {
+ this.cells.each(function(c) {
- var ev = this.calevents[e];
- var cells = ev.cells;
- var rows = ev.rows;
+ if(c.row < 5){
+ return;
+ }
- for(var i = 0; i < cells.length; i++){
-
- var cbox = this.cells.item(this.cells.indexOf(cells[i]));
-
- if(cells.length < 2 && cbox.rows.length > 3){
- cbox.more.push(ev);
- continue;
- }
-
- cbox.rows.push(ev);
+ var ev = c.events;
+
+ var r = 4;
+ if(c.row != c.events.length){
+ r = 4 - (4 - (c.row - c.events.length));
}
- }
-
- var _this = this;
-
- this.cells.each(function(c) {
+
+ c.events = ev.slice(0, r);
+ c.more = ev.slice(r);
+
if(c.more.length && c.more.length == 1){
- c.rows.push(c.more.pop());
+ c.events.push(c.more.pop());
}
- var r = (c.more.length) ? c.rows.length + 1 : c.rows.length;
- c.select('.fc-day-content div',true).first().setHeight(Math.max(34, r * 20));
+ c.row = (c.row - ev.length) + c.events.length + ((c.more.length) ? 1 : 0);
+ });
- for (var e = 0; e < c.rows.length; e++){
- var ev = c.rows[e];
-
- if(ev.rendered){
- continue;
- }
-
- var cells = ev.cells;
+ this.cells.each(function(c) {
+
+ c.select('.fc-day-content div',true).first().setHeight(Math.max(34, c.row * 20));
+
+
+ for (var e = 0; e < c.events.length; e++){
+ var ev = c.events[e];
var rows = ev.rows;
for(var i = 0; i < rows.length; i++) {
var sbox = rows[i].start.select('.fc-day-content',true).first().getBox();
var ebox = rows[i].end.select('.fc-day-content',true).first().getBox();
- cg.setXY([sbox.x +2, sbox.y +(e * 20)]);
+ var r = (c.more.length) ? 1 : 0;
+ cg.setXY([sbox.x +2, sbox.y + ((c.row - c.events.length - r + e) * 20)]);
cg.setWidth(ebox.right - sbox.x -2);
cg.on('mouseenter' ,_this.onEventEnter, _this, ev);
ev.els.push(cg);
- ev.rendered = true;
}
}
var sbox = c.select('.fc-day-content',true).first().getBox();
var ebox = c.select('.fc-day-content',true).first().getBox();
//Roo.log(cg);
- cg.setXY([sbox.x +2, sbox.y +(c.rows.length * 20)]);
+ cg.setXY([sbox.x +2, sbox.y +((c.row - 1) * 20)]);
cg.setWidth(ebox.right - sbox.x -2);
cg.on('click', _this.onMoreEventClick, _this, c.more);
var cfg = {
cls : 'fc-event-hori fc-event-draggable',
html : m.title
- }
+ };
var cg = ctr.createChild(cfg);
cg.on('click', _this.onEventClick, _this, m);