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 = (typeof(cells[i].row) == 'undefined') ? 1 : (cells[i].row + 1);
+
+ cells[i].row = cells[0].row;
+
+ if(i == 0){
+ cells[i].row = cells[i].row + 1;
+ }
+
if (!crow) {
crow = {
start : cells[i],
ev.rows = rows;
ev.cells = cells;
-// if((typeof(cells[0].events) == 'undefined')){
-// cells[0].events = [];
-// }
-//
-// cells[0].events.push(ev);
-// 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.row = 0;
+ c.events = [];
c.more = [];
});
},
renderEvents: function()
- {
+ {
+ var _this = this;
+
this.cells.each(function(c) {
- c.row = 0;
- c.more = [];
+
+ if(c.row < 5){
+ return;
+ }
+
+ var ev = c.events;
+
+ var r = 4;
+ if(c.row != c.events.length){
+ r = 4 - (4 - (c.row - c.events.length));
+ }
+
+ c.events = ev.slice(0, r);
+ c.more = ev.slice(r);
+
+ if(c.more.length && c.more.length == 1){
+ c.events.push(c.more.pop());
+ }
+
+ c.row = (c.row - ev.length) + c.events.length + ((c.more.length) ? 1 : 0);
+
});
-
- for (var e = 0; e < this.calevents.length; e++) {
- var ev = this.calevents[e];
- var cells = ev.cells;
- var rows = ev.rows;
+ this.cells.each(function(c) {
+
+ c.select('.fc-day-content div',true).first().setHeight(Math.max(34, c.row * 20));
- Roo.log(cells);
- for (var i = 0; i < rows.length; i++){
- // how many rows should it span..
+ 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++) {
+
+ // how many rows should it span..
- var cfg = {
- cls : 'roo-dynamic fc-event fc-event-hori fc-event-draggable ui-draggable',
- style : 'position: absolute', // left: 387px; width: 121px; top: 359px;
+ var cfg = {
+ cls : 'roo-dynamic fc-event fc-event-hori fc-event-draggable ui-draggable',
+ style : 'position: absolute', // left: 387px; width: 121px; top: 359px;
+ unselectable : "on",
+ cn : [
+ {
+ cls: 'fc-event-inner',
+ cn : [
+ // {
+ // tag:'span',
+ // cls: 'fc-event-time',
+ // html : cells.length > 1 ? '' : ev.time
+ // },
+ {
+ tag:'span',
+ cls: 'fc-event-title',
+ html : String.format('{0}', ev.title)
+ }
+
+
+ ]
+ },
+ {
+ cls: 'ui-resizable-handle ui-resizable-e',
+ html : '  '
+ }
+
+ ]
+ };
+
+ if (i == 0) {
+ cfg.cls += ' fc-event-start';
+ }
+ if ((i+1) == rows.length) {
+ cfg.cls += ' fc-event-end';
+ }
+
+ var ctr = _this.el.select('.fc-event-container',true).first();
+ var cg = ctr.createChild(cfg);
+
+ var sbox = rows[i].start.select('.fc-day-content',true).first().getBox();
+ var ebox = rows[i].end.select('.fc-day-content',true).first().getBox();
+
+ 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);
+ cg.on('mouseleave' ,_this.onEventLeave, _this, ev);
+ cg.on('click', _this.onEventClick, _this, ev);
+
+ ev.els.push(cg);
+
+ }
+
+ }
+
+
+ if(c.more.length){
+ var cfg = {
+ cls : 'fc-more-event roo-dynamic fc-event fc-event-hori fc-event-draggable ui-draggable fc-event-start fc-event-end',
+ style : 'position: absolute',
unselectable : "on",
cn : [
{
cls: 'fc-event-inner',
cn : [
-// {
-// tag:'span',
-// cls: 'fc-event-time',
-// html : cells.length > 1 ? '' : ev.time
-// },
{
tag:'span',
cls: 'fc-event-title',
- html : String.format('{0}', ev.title)
+ html : 'More'
}
]
};
- if (i == 0) {
- cfg.cls += ' fc-event-start';
- }
- if ((i+1) == rows.length) {
- cfg.cls += ' fc-event-end';
- }
-
- var ctr = this.el.select('.fc-event-container',true).first();
+ var ctr = _this.el.select('.fc-event-container',true).first();
var cg = ctr.createChild(cfg);
- 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 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.row - 1) * 20)]);
cg.setWidth(ebox.right - sbox.x -2);
- cg.on('mouseenter' ,this.onEventEnter, this, ev);
- cg.on('mouseleave' ,this.onEventLeave, this, ev);
- cg.on('click', this.onEventClick, this, ev);
-
- ev.els.push(cg);
-
+ cg.on('click', _this.onMoreEventClick, _this, c.more);
}
- }
-
-// for (var e = 0; e < this.calevents.length; e++) {
-//
-// var ev = this.calevents[e];
-// var cells = ev.cells;
-// var rows = ev.rows;
-//
-// 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 _this = this;
-//
-// this.cells.each(function(c) {
-// if(c.more.length && c.more.length == 1){
-// c.rows.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));
-//
-//
-// for (var e = 0; e < c.rows.length; e++){
-// var ev = c.rows[e];
-//
-// if(ev.rendered){
-// continue;
-// }
-//
-// var cells = ev.cells;
-// var rows = ev.rows;
-//
-// for(var i = 0; i < rows.length; i++) {
-//
-// // how many rows should it span..
-//
-// var cfg = {
-// cls : 'roo-dynamic fc-event fc-event-hori fc-event-draggable ui-draggable',
-// style : 'position: absolute', // left: 387px; width: 121px; top: 359px;
-//
-// unselectable : "on",
-// cn : [
-// {
-// cls: 'fc-event-inner',
-// cn : [
-// // {
-// // tag:'span',
-// // cls: 'fc-event-time',
-// // html : cells.length > 1 ? '' : ev.time
-// // },
-// {
-// tag:'span',
-// cls: 'fc-event-title',
-// html : String.format('{0}', ev.title)
-// }
-//
-//
-// ]
-// },
-// {
-// cls: 'ui-resizable-handle ui-resizable-e',
-// html : '  '
-// }
-//
-// ]
-// };
-//
-// if (i == 0) {
-// cfg.cls += ' fc-event-start';
-// }
-// if ((i+1) == rows.length) {
-// cfg.cls += ' fc-event-end';
-// }
-//
-// var ctr = _this.el.select('.fc-event-container',true).first();
-// var cg = ctr.createChild(cfg);
-//
-// 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)]);
-// cg.setWidth(ebox.right - sbox.x -2);
-//
-// cg.on('mouseenter' ,_this.onEventEnter, _this, ev);
-// cg.on('mouseleave' ,_this.onEventLeave, _this, ev);
-// cg.on('click', _this.onEventClick, _this, ev);
-//
-// ev.els.push(cg);
-//
-// ev.rendered = true;
-// }
-//
-// }
-//
-//
-// if(c.more.length){
-// var cfg = {
-// cls : 'fc-more-event roo-dynamic fc-event fc-event-hori fc-event-draggable ui-draggable fc-event-start fc-event-end',
-// style : 'position: absolute',
-// unselectable : "on",
-// cn : [
-// {
-// cls: 'fc-event-inner',
-// cn : [
-// {
-// tag:'span',
-// cls: 'fc-event-title',
-// html : 'More'
-// }
-//
-//
-// ]
-// },
-// {
-// cls: 'ui-resizable-handle ui-resizable-e',
-// html : '  '
-// }
-//
-// ]
-// };
-//
-// var ctr = _this.el.select('.fc-event-container',true).first();
-// var cg = ctr.createChild(cfg);
-//
-// 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.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);