1 <html><head><title>Roo/grid/Calendar.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
8 * @class Roo.grid.Calendar
9 * @extends Roo.grid.Grid
10 * This class extends the Grid to provide a calendar widget
11 * <br><br>Usage:<pre><code>
12 var grid = new Roo.grid.Calendar("my-container-id", {
15 selModel: mySelectionModel,
16 autoSizeColumns: true,
17 monitorWindowResize: false,
19 eventstore : real data store..
25 * @param {String/HTMLElement/Roo.Element} container The element into which this grid will be rendered -
26 * The container MUST have some type of size defined for the grid to fill. The container will be
27 * automatically set to position relative if it isn't already.
28 * @param {Object} config A config object that sets properties on this grid.
30 </span><span class="jsdoc-var">Roo.grid.Calendar </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">container</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
31 </span><span class="jsdoc-comment">// initialize the container
32 </span><span class="jsdoc-var">this.container </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">container</span><span class="jsdoc-syntax">);
33 </span><span class="jsdoc-var">this.container.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">);
34 </span><span class="jsdoc-var">this.container.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"overflow"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"hidden"</span><span class="jsdoc-syntax">);
35 </span><span class="jsdoc-var">this.container.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-grid-container'</span><span class="jsdoc-syntax">);
37 </span><span class="jsdoc-var">this.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.container.id</span><span class="jsdoc-syntax">;
39 </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
40 </span><span class="jsdoc-comment">// check and correct shorthanded configs
42 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rows </span><span class="jsdoc-syntax">= [];
43 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">=1;
44 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= 0;</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">< 6;</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">++) {
46 </span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">]=[];
47 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">=0;</span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">< 7;</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">++) {
48 </span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">]= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
51 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.eventStore</span><span class="jsdoc-syntax">) {
52 </span><span class="jsdoc-var">this.eventStore</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.factory</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.eventStore</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.data</span><span class="jsdoc-syntax">);
53 </span><span class="jsdoc-var">this.eventStore.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'load'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.onLoad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
54 </span><span class="jsdoc-var">this.eventStore.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'beforeload'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.clearEvents</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
58 </span><span class="jsdoc-var">this.dataSource </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.Store</span><span class="jsdoc-syntax">({
59 </span><span class="jsdoc-var">proxy</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.MemoryProxy</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">),
60 </span><span class="jsdoc-var">reader</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.ArrayReader</span><span class="jsdoc-syntax">({}, [
61 </span><span class="jsdoc-string">'weekday0'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'weekday1'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'weekday2'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'weekday3'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'weekday4'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'weekday5'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'weekday6' </span><span class="jsdoc-syntax">])
64 </span><span class="jsdoc-var">this.dataSource.load</span><span class="jsdoc-syntax">();
65 </span><span class="jsdoc-var">this.ds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.dataSource</span><span class="jsdoc-syntax">;
66 </span><span class="jsdoc-var">this.ds.xmodule </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.xmodule </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
69 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cellRender </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">)
71 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(
72 </span><span class="jsdoc-string">'<div class="fc-day fc-widget-content"><div>' </span><span class="jsdoc-syntax">+
73 </span><span class="jsdoc-string">'<div class="fc-event-container"></div>' </span><span class="jsdoc-syntax">+
74 </span><span class="jsdoc-string">'<div class="fc-day-number">{0}</div>'</span><span class="jsdoc-syntax">+
76 </span><span class="jsdoc-string">'<div class="fc-day-content"><div style="position:relative"></div></div>' </span><span class="jsdoc-syntax">+
77 </span><span class="jsdoc-string">'</div></div>'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
82 </span><span class="jsdoc-var">this.colModel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.grid.ColumnModel</span><span class="jsdoc-syntax">( [
84 </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ColumnModel'</span><span class="jsdoc-syntax">,
85 </span><span class="jsdoc-var">xns</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.grid</span><span class="jsdoc-syntax">,
86 </span><span class="jsdoc-var">dataIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'weekday0'</span><span class="jsdoc-syntax">,
87 </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Sunday'</span><span class="jsdoc-syntax">,
88 </span><span class="jsdoc-var">renderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cellRender
89 </span><span class="jsdoc-syntax">},
91 </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ColumnModel'</span><span class="jsdoc-syntax">,
92 </span><span class="jsdoc-var">xns</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.grid</span><span class="jsdoc-syntax">,
93 </span><span class="jsdoc-var">dataIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'weekday1'</span><span class="jsdoc-syntax">,
94 </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Monday'</span><span class="jsdoc-syntax">,
95 </span><span class="jsdoc-var">renderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cellRender
96 </span><span class="jsdoc-syntax">},
98 </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ColumnModel'</span><span class="jsdoc-syntax">,
99 </span><span class="jsdoc-var">xns</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.grid</span><span class="jsdoc-syntax">,
100 </span><span class="jsdoc-var">dataIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'weekday2'</span><span class="jsdoc-syntax">,
101 </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Tuesday'</span><span class="jsdoc-syntax">,
102 </span><span class="jsdoc-var">renderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cellRender
103 </span><span class="jsdoc-syntax">},
105 </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ColumnModel'</span><span class="jsdoc-syntax">,
106 </span><span class="jsdoc-var">xns</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.grid</span><span class="jsdoc-syntax">,
107 </span><span class="jsdoc-var">dataIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'weekday3'</span><span class="jsdoc-syntax">,
108 </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Wednesday'</span><span class="jsdoc-syntax">,
109 </span><span class="jsdoc-var">renderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cellRender
110 </span><span class="jsdoc-syntax">},
112 </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ColumnModel'</span><span class="jsdoc-syntax">,
113 </span><span class="jsdoc-var">xns</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.grid</span><span class="jsdoc-syntax">,
114 </span><span class="jsdoc-var">dataIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'weekday4'</span><span class="jsdoc-syntax">,
115 </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Thursday'</span><span class="jsdoc-syntax">,
116 </span><span class="jsdoc-var">renderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cellRender
117 </span><span class="jsdoc-syntax">},
119 </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ColumnModel'</span><span class="jsdoc-syntax">,
120 </span><span class="jsdoc-var">xns</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.grid</span><span class="jsdoc-syntax">,
121 </span><span class="jsdoc-var">dataIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'weekday5'</span><span class="jsdoc-syntax">,
122 </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Friday'</span><span class="jsdoc-syntax">,
123 </span><span class="jsdoc-var">renderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cellRender
124 </span><span class="jsdoc-syntax">},
126 </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ColumnModel'</span><span class="jsdoc-syntax">,
127 </span><span class="jsdoc-var">xns</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.grid</span><span class="jsdoc-syntax">,
128 </span><span class="jsdoc-var">dataIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'weekday6'</span><span class="jsdoc-syntax">,
129 </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Saturday'</span><span class="jsdoc-syntax">,
130 </span><span class="jsdoc-var">renderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cellRender
131 </span><span class="jsdoc-syntax">}
133 </span><span class="jsdoc-var">this.cm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.colModel</span><span class="jsdoc-syntax">;
134 </span><span class="jsdoc-var">this.cm.xmodule </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.xmodule </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
138 </span><span class="jsdoc-comment">//this.selModel = new Roo.grid.CellSelectionModel();
139 //this.sm = this.selModel;
140 //this.selModel.init(this);
143 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">){
144 </span><span class="jsdoc-var">this.container.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">);
147 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">){
148 </span><span class="jsdoc-var">this.container.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">);
150 </span><span class="jsdoc-comment">/** @private */
151 </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
152 </span><span class="jsdoc-comment">// raw events
155 * The raw click event for the entire grid.
156 * @param {Roo.EventObject} e
158 </span><span class="jsdoc-string">"click" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
159 </span><span class="jsdoc-comment">/**
161 * The raw dblclick event for the entire grid.
162 * @param {Roo.EventObject} e
164 </span><span class="jsdoc-string">"dblclick" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
165 </span><span class="jsdoc-comment">/**
167 * The raw contextmenu event for the entire grid.
168 * @param {Roo.EventObject} e
170 </span><span class="jsdoc-string">"contextmenu" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
171 </span><span class="jsdoc-comment">/**
173 * The raw mousedown event for the entire grid.
174 * @param {Roo.EventObject} e
176 </span><span class="jsdoc-string">"mousedown" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
177 </span><span class="jsdoc-comment">/**
179 * The raw mouseup event for the entire grid.
180 * @param {Roo.EventObject} e
182 </span><span class="jsdoc-string">"mouseup" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
183 </span><span class="jsdoc-comment">/**
185 * The raw mouseover event for the entire grid.
186 * @param {Roo.EventObject} e
188 </span><span class="jsdoc-string">"mouseover" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
189 </span><span class="jsdoc-comment">/**
191 * The raw mouseout event for the entire grid.
192 * @param {Roo.EventObject} e
194 </span><span class="jsdoc-string">"mouseout" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
195 </span><span class="jsdoc-comment">/**
197 * The raw keypress event for the entire grid.
198 * @param {Roo.EventObject} e
200 </span><span class="jsdoc-string">"keypress" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
201 </span><span class="jsdoc-comment">/**
203 * The raw keydown event for the entire grid.
204 * @param {Roo.EventObject} e
206 </span><span class="jsdoc-string">"keydown" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
208 </span><span class="jsdoc-comment">// custom events
212 * Fires when a cell is clicked
214 * @param {Number} rowIndex
215 * @param {Number} columnIndex
216 * @param {Roo.EventObject} e
218 </span><span class="jsdoc-string">"cellclick" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
219 </span><span class="jsdoc-comment">/**
220 * @event celldblclick
221 * Fires when a cell is double clicked
223 * @param {Number} rowIndex
224 * @param {Number} columnIndex
225 * @param {Roo.EventObject} e
227 </span><span class="jsdoc-string">"celldblclick" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
228 </span><span class="jsdoc-comment">/**
230 * Fires when a row is clicked
232 * @param {Number} rowIndex
233 * @param {Roo.EventObject} e
235 </span><span class="jsdoc-string">"rowclick" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
236 </span><span class="jsdoc-comment">/**
238 * Fires when a row is double clicked
240 * @param {Number} rowIndex
241 * @param {Roo.EventObject} e
243 </span><span class="jsdoc-string">"rowdblclick" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
244 </span><span class="jsdoc-comment">/**
246 * Fires when a header is clicked
248 * @param {Number} columnIndex
249 * @param {Roo.EventObject} e
251 </span><span class="jsdoc-string">"headerclick" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
252 </span><span class="jsdoc-comment">/**
253 * @event headerdblclick
254 * Fires when a header cell is double clicked
256 * @param {Number} columnIndex
257 * @param {Roo.EventObject} e
259 </span><span class="jsdoc-string">"headerdblclick" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
260 </span><span class="jsdoc-comment">/**
261 * @event rowcontextmenu
262 * Fires when a row is right clicked
264 * @param {Number} rowIndex
265 * @param {Roo.EventObject} e
267 </span><span class="jsdoc-string">"rowcontextmenu" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
268 </span><span class="jsdoc-comment">/**
269 * @event cellcontextmenu
270 * Fires when a cell is right clicked
272 * @param {Number} rowIndex
273 * @param {Number} cellIndex
274 * @param {Roo.EventObject} e
276 </span><span class="jsdoc-string">"cellcontextmenu" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
277 </span><span class="jsdoc-comment">/**
278 * @event headercontextmenu
279 * Fires when a header is right clicked
281 * @param {Number} columnIndex
282 * @param {Roo.EventObject} e
284 </span><span class="jsdoc-string">"headercontextmenu" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
285 </span><span class="jsdoc-comment">/**
287 * Fires when the body element is scrolled
288 * @param {Number} scrollLeft
289 * @param {Number} scrollTop
291 </span><span class="jsdoc-string">"bodyscroll" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
292 </span><span class="jsdoc-comment">/**
293 * @event columnresize
294 * Fires when the user resizes a column
295 * @param {Number} columnIndex
296 * @param {Number} newSize
298 </span><span class="jsdoc-string">"columnresize" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
299 </span><span class="jsdoc-comment">/**
301 * Fires when the user moves a column
302 * @param {Number} oldIndex
303 * @param {Number} newIndex
305 </span><span class="jsdoc-string">"columnmove" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
306 </span><span class="jsdoc-comment">/**
308 * Fires when row(s) start being dragged
310 * @param {Roo.GridDD} dd The drag drop object
311 * @param {event} e The raw browser event
313 </span><span class="jsdoc-string">"startdrag" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
314 </span><span class="jsdoc-comment">/**
316 * Fires when a drag operation is complete
318 * @param {Roo.GridDD} dd The drag drop object
319 * @param {event} e The raw browser event
321 </span><span class="jsdoc-string">"enddrag" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
322 </span><span class="jsdoc-comment">/**
324 * Fires when dragged row(s) are dropped on a valid DD target
326 * @param {Roo.GridDD} dd The drag drop object
327 * @param {String} targetId The target drag drop object
328 * @param {event} e The raw browser event
330 </span><span class="jsdoc-string">"dragdrop" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
331 </span><span class="jsdoc-comment">/**
333 * Fires while row(s) are being dragged. "targetId" is the id of the Yahoo.util.DD object the selected rows are being dragged over.
335 * @param {Roo.GridDD} dd The drag drop object
336 * @param {String} targetId The target drag drop object
337 * @param {event} e The raw browser event
339 </span><span class="jsdoc-string">"dragover" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
340 </span><span class="jsdoc-comment">/**
342 * Fires when the dragged row(s) first cross another DD target while being dragged
344 * @param {Roo.GridDD} dd The drag drop object
345 * @param {String} targetId The target drag drop object
346 * @param {event} e The raw browser event
348 </span><span class="jsdoc-string">"dragenter" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
349 </span><span class="jsdoc-comment">/**
351 * Fires when the dragged row(s) leave another DD target while being dragged
353 * @param {Roo.GridDD} dd The drag drop object
354 * @param {String} targetId The target drag drop object
355 * @param {event} e The raw browser event
357 </span><span class="jsdoc-string">"dragout" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
358 </span><span class="jsdoc-comment">/**
360 * Fires when a row is rendered, so you can change add a style to it.
361 * @param {GridView} gridview The grid view
362 * @param {Object} rowcfg contains record rowIndex and rowClass - set rowClass to add a style.
364 </span><span class="jsdoc-string">'rowclass' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
366 </span><span class="jsdoc-comment">/**
368 * Fires when the grid is rendered
371 </span><span class="jsdoc-string">'render' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
372 </span><span class="jsdoc-comment">/**
374 * Fires when a date is selected
375 * @param {DatePicker} this
376 * @param {Date} date The selected date
378 </span><span class="jsdoc-string">'select'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
379 </span><span class="jsdoc-comment">/**
381 * Fires when the displayed month changes
382 * @param {DatePicker} this
383 * @param {Date} date The selected month
385 </span><span class="jsdoc-string">'monthchange'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
386 </span><span class="jsdoc-comment">/**
388 * Fires when mouse over an event
389 * @param {Calendar} this
390 * @param {event} Event
392 </span><span class="jsdoc-string">'evententer'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
393 </span><span class="jsdoc-comment">/**
395 * Fires when the mouse leaves an
396 * @param {Calendar} this
399 </span><span class="jsdoc-string">'eventleave'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
400 </span><span class="jsdoc-comment">/**
402 * Fires when the mouse click an
403 * @param {Calendar} this
406 </span><span class="jsdoc-string">'eventclick'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
407 </span><span class="jsdoc-comment">/**
409 * Fires before each cell is rendered, so you can modify the contents, like cls / title / qtip
410 * @param {Calendar} this
411 * @param {data} data to be modified
413 </span><span class="jsdoc-string">'eventrender'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
415 </span><span class="jsdoc-syntax">});
417 </span><span class="jsdoc-var">Roo.grid.Grid.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
418 </span><span class="jsdoc-var">this.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'render'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
419 </span><span class="jsdoc-var">this.view.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-grid-cal'</span><span class="jsdoc-syntax">);
421 (</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() { </span><span class="jsdoc-var">this.setDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()); })</span><span class="jsdoc-var">.defer</span><span class="jsdoc-syntax">(100,</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">//default today..
423 </span><span class="jsdoc-syntax">},</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
425 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">Roo.grid.Calendar.style</span><span class="jsdoc-syntax">) {
426 </span><span class="jsdoc-var">Roo.grid.Calendar.style </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.util.CSS.createStyleSheet</span><span class="jsdoc-syntax">({
429 </span><span class="jsdoc-string">'.x-grid-cal .x-grid-col' </span><span class="jsdoc-syntax">: {
430 </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'auto !important'</span><span class="jsdoc-syntax">,
431 </span><span class="jsdoc-string">'vertical-align'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'top'
432 </span><span class="jsdoc-syntax">},
433 </span><span class="jsdoc-string">'.x-grid-cal .fc-event-hori' </span><span class="jsdoc-syntax">: {
434 </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'14px'
435 </span><span class="jsdoc-syntax">}
438 }, </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">());
444 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.grid.Calendar</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.grid.Grid</span><span class="jsdoc-syntax">, {
445 </span><span class="jsdoc-comment">/**
446 * @cfg {Store} eventStore The store that loads events.
448 </span><span class="jsdoc-var">eventStore </span><span class="jsdoc-syntax">: 25,
451 </span><span class="jsdoc-var">activeDate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
452 </span><span class="jsdoc-var">startDay </span><span class="jsdoc-syntax">: 0,
453 </span><span class="jsdoc-var">autoWidth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
454 </span><span class="jsdoc-var">monitorWindowResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
457 </span><span class="jsdoc-var">resizeColumns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
458 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">col </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.view.el.getWidth</span><span class="jsdoc-syntax">() / 7) - 3;
459 </span><span class="jsdoc-comment">// loop through cols, and setWidth
460 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0 ; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< 7 ; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
461 </span><span class="jsdoc-var">this.cm.setColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">);
464 </span><span class="jsdoc-var">setDate </span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">) {
466 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'setDate?'</span><span class="jsdoc-syntax">);
468 </span><span class="jsdoc-var">this.resizeColumns</span><span class="jsdoc-syntax">();
469 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.activeDate</span><span class="jsdoc-syntax">;
470 </span><span class="jsdoc-var">this.activeDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">;
471 </span><span class="jsdoc-comment">// if(vd && this.el){
472 // var t = date.getTime();
473 // if(vd.getMonth() == date.getMonth() && vd.getFullYear() == date.getFullYear()){
474 // Roo.log('using add remove');
476 // this.fireEvent('monthchange', this, date);
478 // this.cells.removeClass("fc-state-highlight");
479 // this.cells.each(function(c){
480 // if(c.dateValue == t){
481 // c.addClass("fc-state-highlight");
482 // setTimeout(function(){
483 // try{c.dom.firstChild.focus();}catch(e){}
493 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">days </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date.getDaysInMonth</span><span class="jsdoc-syntax">();
495 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">firstOfMonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date.getFirstDateOfMonth</span><span class="jsdoc-syntax">();
496 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">startingPos </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">firstOfMonth.getDay</span><span class="jsdoc-syntax">()-</span><span class="jsdoc-var">this.startDay</span><span class="jsdoc-syntax">;
498 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">startingPos </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.startDay</span><span class="jsdoc-syntax">){
499 </span><span class="jsdoc-var">startingPos </span><span class="jsdoc-syntax">+= 7;
502 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Date.MONTH</span><span class="jsdoc-syntax">, -1);
503 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">prevStart </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pm.getDaysInMonth</span><span class="jsdoc-syntax">()-</span><span class="jsdoc-var">startingPos</span><span class="jsdoc-syntax">;
504 </span><span class="jsdoc-comment">//
507 </span><span class="jsdoc-var">this.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.view.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.x-grid-row .x-grid-col'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
509 </span><span class="jsdoc-var">this.textNodes </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.view.el.query</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.x-grid-row .x-grid-col .x-grid-cell-text'</span><span class="jsdoc-syntax">);
510 </span><span class="jsdoc-comment">//this.cells.addClassOnOver('fc-state-hover');
512 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cells.elements</span><span class="jsdoc-syntax">;
513 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">textEls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.textNodes</span><span class="jsdoc-syntax">;
515 </span><span class="jsdoc-comment">//Roo.each(cells, function(cell){
516 // cell.removeClass([ 'fc-past', 'fc-other-month', 'fc-future', 'fc-state-highlight', 'fc-state-disabled']);
519 </span><span class="jsdoc-var">days </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">startingPos</span><span class="jsdoc-syntax">;
521 </span><span class="jsdoc-comment">// convert everything to numbers so it's fast
522 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">day </span><span class="jsdoc-syntax">= 86400000;
523 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pm.getFullYear</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">pm.getMonth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">prevStart</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">.clearTime</span><span class="jsdoc-syntax">();
524 </span><span class="jsdoc-comment">//Roo.log(d);
526 //Roo.log(prevStart);
528 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">today </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.clearTime</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">();
529 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date.clearTime</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">();
530 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">min </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.minDate </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.minDate.clearTime</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-var">Number.NEGATIVE_INFINITY</span><span class="jsdoc-syntax">;
531 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">max </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.maxDate </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.maxDate.clearTime</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-var">Number.POSITIVE_INFINITY</span><span class="jsdoc-syntax">;
532 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ddMatch </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDatesRE</span><span class="jsdoc-syntax">;
533 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ddText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDatesText</span><span class="jsdoc-syntax">;
534 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ddays </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDays </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.disabledDays.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
535 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ddaysText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDaysText</span><span class="jsdoc-syntax">;
536 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">;
538 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">setCellClass </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cal</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
540 </span><span class="jsdoc-comment">//Roo.log('set Cell Class');
541 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">;
542 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getTime</span><span class="jsdoc-syntax">();
544 </span><span class="jsdoc-comment">//Roo.log(d);
547 </span><span class="jsdoc-var">cell.dateValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">;
548 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">today</span><span class="jsdoc-syntax">){
549 </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">" fc-today"</span><span class="jsdoc-syntax">;
550 </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">" fc-state-highlight"</span><span class="jsdoc-syntax">;
551 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cal.todayText</span><span class="jsdoc-syntax">;
553 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">sel</span><span class="jsdoc-syntax">){
554 </span><span class="jsdoc-comment">// disable highlight in other month..
555 </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">" fc-state-highlight"</span><span class="jsdoc-syntax">;
558 </span><span class="jsdoc-comment">// disabling
559 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">min</span><span class="jsdoc-syntax">) {
560 </span><span class="jsdoc-comment">//cell.className = " fc-state-disabled";
561 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cal.minText</span><span class="jsdoc-syntax">;
562 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
564 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">> </span><span class="jsdoc-var">max</span><span class="jsdoc-syntax">) {
565 </span><span class="jsdoc-comment">//cell.className = " fc-state-disabled";
566 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cal.maxText</span><span class="jsdoc-syntax">;
567 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
569 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddays</span><span class="jsdoc-syntax">){
570 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddays.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getDay</span><span class="jsdoc-syntax">()) != -1){
571 </span><span class="jsdoc-comment">// cell.title = ddaysText;
572 // cell.className = " fc-state-disabled";
573 </span><span class="jsdoc-syntax">}
575 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddMatch </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">){
576 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fvalue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.dateFormat</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">);
577 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddMatch.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fvalue</span><span class="jsdoc-syntax">)){
578 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ddText.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"%0"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fvalue</span><span class="jsdoc-syntax">);
579 </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">" fc-state-disabled"</span><span class="jsdoc-syntax">;
583 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cell.initialClassName</span><span class="jsdoc-syntax">) {
584 </span><span class="jsdoc-var">cell.initialClassName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cell.dom.className</span><span class="jsdoc-syntax">;
587 </span><span class="jsdoc-var">cell.dom.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cell.initialClassName </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">' ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">cell.className</span><span class="jsdoc-syntax">;
590 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0;
592 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">startingPos</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
593 </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dayName </span><span class="jsdoc-syntax">= (++</span><span class="jsdoc-var">prevStart</span><span class="jsdoc-syntax">);
594 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">textEls</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
595 </span><span class="jsdoc-var">d.setDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getDate</span><span class="jsdoc-syntax">()+1);
597 </span><span class="jsdoc-comment">//cells[i].className = "fc-past fc-other-month";
598 </span><span class="jsdoc-var">setCellClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
601 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">intDay </span><span class="jsdoc-syntax">= 0;
603 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">days</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
604 </span><span class="jsdoc-var">intDay </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">startingPos </span><span class="jsdoc-syntax">+ 1;
605 </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dayName </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">intDay</span><span class="jsdoc-syntax">);
606 </span><span class="jsdoc-var">d.setDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getDate</span><span class="jsdoc-syntax">()+1);
608 </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// "x-date-active";
609 </span><span class="jsdoc-var">setCellClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
611 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">extraDays </span><span class="jsdoc-syntax">= 0;
613 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< 42; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
614 </span><span class="jsdoc-comment">//textEls[i].innerHTML = (++extraDays);
616 </span><span class="jsdoc-var">d.setDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getDate</span><span class="jsdoc-syntax">()+1);
617 </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dayName </span><span class="jsdoc-syntax">= (++</span><span class="jsdoc-var">extraDays</span><span class="jsdoc-syntax">);
618 </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">"fc-future fc-other-month"</span><span class="jsdoc-syntax">;
619 </span><span class="jsdoc-var">setCellClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
622 </span><span class="jsdoc-comment">//this.el.select('.fc-header-title h2',true).update(Date.monthNames[date.getMonth()] + " " + date.getFullYear());
624 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">totalRows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.ceil</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">date.getDaysInMonth</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">date.getFirstDateOfMonth</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getDay</span><span class="jsdoc-syntax">()) / 7);
626 </span><span class="jsdoc-comment">// this will cause all the cells to mis
627 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">= [];
628 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0;
629 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= 0;</span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">< 6;</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">++) {
630 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">=0;</span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">< 7;</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">++) {
631 </span><span class="jsdoc-var">this.ds.getAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.set</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'weekday' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++]</span><span class="jsdoc-var">.dayName </span><span class="jsdoc-syntax">);
635 </span><span class="jsdoc-var">this.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.view.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.x-grid-row .x-grid-col'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
636 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax"><</span><span class="jsdoc-var">cells.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
638 </span><span class="jsdoc-var">this.cells.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dayName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dayName </span><span class="jsdoc-syntax">;
639 </span><span class="jsdoc-var">this.cells.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.className</span><span class="jsdoc-syntax">;
640 </span><span class="jsdoc-var">this.cells.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.initialClassName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.initialClassName </span><span class="jsdoc-syntax">;
641 </span><span class="jsdoc-var">this.cells.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.title </span><span class="jsdoc-syntax">;
642 </span><span class="jsdoc-var">this.cells.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dateValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dateValue </span><span class="jsdoc-syntax">;
648 </span><span class="jsdoc-comment">//this.el.select('tr.fc-week.fc-prev-last',true).removeClass('fc-last');
649 //this.el.select('tr.fc-week.fc-next-last',true).addClass('fc-last').show();
651 ////if(totalRows != 6){
652 //this.el.select('tr.fc-week.fc-last',true).removeClass('fc-last').addClass('fc-next-last').hide();
653 // this.el.select('tr.fc-week.fc-prev-last',true).addClass('fc-last');
656 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'monthchange'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">);
660 </span><span class="jsdoc-comment">/**
661 * Returns the grid's SelectionModel.
662 * @return {SelectionModel}
664 </span><span class="jsdoc-var">getSelectionModel </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
665 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.selModel</span><span class="jsdoc-syntax">){
666 </span><span class="jsdoc-var">this.selModel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.grid.CellSelectionModel</span><span class="jsdoc-syntax">();
668 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.selModel</span><span class="jsdoc-syntax">;
671 </span><span class="jsdoc-var">load</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
672 </span><span class="jsdoc-var">this.eventStore.load</span><span class="jsdoc-syntax">()
678 </span><span class="jsdoc-var">findCell </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dt</span><span class="jsdoc-syntax">) {
679 </span><span class="jsdoc-var">dt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dt.clearTime</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">();
680 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
681 </span><span class="jsdoc-var">this.cells.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">){
682 </span><span class="jsdoc-comment">//Roo.log("check " +c.dateValue + '?=' + dt);
683 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.dateValue </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">dt</span><span class="jsdoc-syntax">){
684 </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">;
685 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
687 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
690 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
693 </span><span class="jsdoc-var">findCells </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec</span><span class="jsdoc-syntax">) {
694 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rec.data.start_dt.clone</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.clearTime</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">();
695 </span><span class="jsdoc-comment">// Roo.log(s);
696 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rec.data.end_dt.clone</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.clearTime</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">();
697 </span><span class="jsdoc-comment">// Roo.log(e);
698 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= [];
699 </span><span class="jsdoc-var">this.cells.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">){
700 </span><span class="jsdoc-comment">////Roo.log("check " +c.dateValue + '<' + e + ' > ' + s);
702 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.dateValue </span><span class="jsdoc-syntax">> </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
703 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">;
705 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.dateValue </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">){
706 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">;
708 </span><span class="jsdoc-var">ret.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">);
711 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
714 </span><span class="jsdoc-var">findBestRow</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">)
716 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= 0;
718 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0 ; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">cells.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
719 </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.rows </span><span class="jsdoc-syntax">|| 0,</span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">);
721 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
726 </span><span class="jsdoc-var">addItem </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec</span><span class="jsdoc-syntax">)
728 </span><span class="jsdoc-comment">// look for vertical location slot in
729 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findCells</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec</span><span class="jsdoc-syntax">);
731 </span><span class="jsdoc-var">rec.row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findBestRow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">);
733 </span><span class="jsdoc-comment">// work out the location.
735 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">crow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
736 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rows </span><span class="jsdoc-syntax">= [];
737 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">cells.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
738 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">crow</span><span class="jsdoc-syntax">) {
739 </span><span class="jsdoc-var">crow </span><span class="jsdoc-syntax">= {
740 </span><span class="jsdoc-var">start </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">],
741 </span><span class="jsdoc-var">end </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]
743 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
745 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">crow.start.getY</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.getY</span><span class="jsdoc-syntax">()) {
746 </span><span class="jsdoc-comment">// on same row.
747 </span><span class="jsdoc-var">crow.end </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
748 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
750 </span><span class="jsdoc-comment">// different row.
751 </span><span class="jsdoc-var">rows.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">crow</span><span class="jsdoc-syntax">);
752 </span><span class="jsdoc-var">crow </span><span class="jsdoc-syntax">= {
753 </span><span class="jsdoc-var">start</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">],
754 </span><span class="jsdoc-var">end </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]
759 </span><span class="jsdoc-var">rows.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">crow</span><span class="jsdoc-syntax">);
760 </span><span class="jsdoc-var">rec.els </span><span class="jsdoc-syntax">= [];
761 </span><span class="jsdoc-var">rec.rows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">;
762 </span><span class="jsdoc-var">rec.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">;
763 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">cells.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
764 </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.rows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.rows </span><span class="jsdoc-syntax">|| 0 , </span><span class="jsdoc-var">rec.row </span><span class="jsdoc-syntax">+ 1 );
771 </span><span class="jsdoc-var">clearEvents</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
773 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.eventStore.getCount</span><span class="jsdoc-syntax">()) {
774 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
776 </span><span class="jsdoc-comment">// reset number of rows in cells.
777 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cells.elements</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">){
778 </span><span class="jsdoc-var">c.rows </span><span class="jsdoc-syntax">= 0;
781 </span><span class="jsdoc-var">this.eventStore.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
782 </span><span class="jsdoc-var">this.clearEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
783 },</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
787 </span><span class="jsdoc-var">clearEvent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">)
789 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev.els</span><span class="jsdoc-syntax">) {
790 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev.els</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">) {
791 </span><span class="jsdoc-var">el.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mouseenter' </span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.onEventEnter</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
792 </span><span class="jsdoc-var">el.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mouseleave' </span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.onEventLeave</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
793 </span><span class="jsdoc-var">el.remove</span><span class="jsdoc-syntax">();
794 },</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
795 </span><span class="jsdoc-var">ev.els </span><span class="jsdoc-syntax">= [];
800 </span><span class="jsdoc-var">renderEvent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">ctr</span><span class="jsdoc-syntax">) {
801 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ctr</span><span class="jsdoc-syntax">) {
802 </span><span class="jsdoc-var">ctr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.view.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.fc-event-container'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
806 </span><span class="jsdoc-var">this.clearEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">);
807 </span><span class="jsdoc-comment">//code
811 </span><span class="jsdoc-var">ev.els </span><span class="jsdoc-syntax">= [];
812 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.cells</span><span class="jsdoc-syntax">;
813 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rows </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.rows</span><span class="jsdoc-syntax">;
814 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'eventrender'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">);
816 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">rows.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
818 </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
819 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">== 0) {
820 </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' fc-event-start'</span><span class="jsdoc-syntax">;
822 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">+1) == </span><span class="jsdoc-var">rows.length</span><span class="jsdoc-syntax">) {
823 </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' fc-event-end'</span><span class="jsdoc-syntax">;
826 </span><span class="jsdoc-comment">//Roo.log(ev.data);
827 // how many rows should it span..
828 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.eventTmpl.append</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ctr</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">({
829 </span><span class="jsdoc-var">fccls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cls
831 </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-var">ev.data</span><span class="jsdoc-syntax">) , </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
834 </span><span class="jsdoc-var">cg.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mouseenter' </span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.onEventEnter</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">);
835 </span><span class="jsdoc-var">cg.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mouseleave' </span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.onEventLeave</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">);
836 </span><span class="jsdoc-var">cg.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onEventClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">);
838 </span><span class="jsdoc-var">ev.els.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cg</span><span class="jsdoc-syntax">);
840 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sbox </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.start.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.fc-day-content'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getBox</span><span class="jsdoc-syntax">();
841 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ebox </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.end.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.fc-day-content'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getBox</span><span class="jsdoc-syntax">();
842 </span><span class="jsdoc-comment">//Roo.log(cg);
844 </span><span class="jsdoc-var">cg.setXY</span><span class="jsdoc-syntax">([</span><span class="jsdoc-var">sbox.x </span><span class="jsdoc-syntax">+2, </span><span class="jsdoc-var">sbox.y </span><span class="jsdoc-syntax">+(</span><span class="jsdoc-var">ev.row </span><span class="jsdoc-syntax">* 20)]);
845 </span><span class="jsdoc-var">cg.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ebox.right </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">sbox.x </span><span class="jsdoc-syntax">-2);
849 </span><span class="jsdoc-var">renderEvents</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
851 </span><span class="jsdoc-comment">// first make sure there is enough space..
853 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.eventTmpl</span><span class="jsdoc-syntax">) {
854 </span><span class="jsdoc-var">this.eventTmpl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(
855 </span><span class="jsdoc-string">'<div class="roo-dynamic fc-event fc-event-hori fc-event-draggable ui-draggable {fccls} {cls}" style="position: absolute" unselectable="on">' </span><span class="jsdoc-syntax">+
856 </span><span class="jsdoc-string">'<div class="fc-event-inner">' </span><span class="jsdoc-syntax">+
857 </span><span class="jsdoc-string">'<span class="fc-event-time">{time}</span>' </span><span class="jsdoc-syntax">+
858 </span><span class="jsdoc-string">'<span class="fc-event-title" qtip="{qtip}">{title}</span>' </span><span class="jsdoc-syntax">+
859 </span><span class="jsdoc-string">'</div>' </span><span class="jsdoc-syntax">+
860 </span><span class="jsdoc-string">'<div class="ui-resizable-heandle ui-resizable-e">&nbsp;&nbsp;&nbsp;</div>' </span><span class="jsdoc-syntax">+
861 </span><span class="jsdoc-string">'</div>'
862 </span><span class="jsdoc-syntax">);
868 </span><span class="jsdoc-var">this.cells.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">) {
869 </span><span class="jsdoc-comment">//Roo.log(c.select('.fc-day-content div',true).first());
870 </span><span class="jsdoc-var">c.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.fc-day-content div'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(34, (</span><span class="jsdoc-var">c.rows </span><span class="jsdoc-syntax">|| 1) * 20));
873 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ctr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.view.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.fc-event-container'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
875 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">;
876 </span><span class="jsdoc-var">this.eventStore.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">){
878 </span><span class="jsdoc-var">this.renderEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">);
881 }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
882 </span><span class="jsdoc-var">this.view.layout</span><span class="jsdoc-syntax">();
886 </span><span class="jsdoc-var">onEventEnter</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">) {
887 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'evententer'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">);
890 </span><span class="jsdoc-var">onEventLeave</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">) {
891 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'eventleave'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">);
894 </span><span class="jsdoc-var">onEventClick</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">) {
895 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'eventclick'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">event</span><span class="jsdoc-syntax">);
898 </span><span class="jsdoc-var">onMonthChange</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
899 </span><span class="jsdoc-var">this.store.load</span><span class="jsdoc-syntax">();
902 </span><span class="jsdoc-var">onLoad</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
904 </span><span class="jsdoc-comment">//Roo.log('calendar onload');
906 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.eventStore.getCount</span><span class="jsdoc-syntax">() > 0){
910 </span><span class="jsdoc-var">this.eventStore.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">){
913 </span><span class="jsdoc-comment">// FIXME..
914 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">add </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.data</span><span class="jsdoc-syntax">;
915 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">add.end_dt</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
916 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Missing End time in calendar data: "</span><span class="jsdoc-syntax">);
917 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
918 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
920 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">add.start_dt</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
921 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Missing Start time in calendar data: "</span><span class="jsdoc-syntax">);
922 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
923 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
925 </span><span class="jsdoc-var">add.start_dt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">add.start_dt</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">Date.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">add.start_dt</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'Y-m-d H:i:s'</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">add.start_dt</span><span class="jsdoc-syntax">,
926 </span><span class="jsdoc-var">add.end_dt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">add.end_dt</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">Date.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">add.end_dt</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'Y-m-d H:i:s'</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">add.end_dt</span><span class="jsdoc-syntax">,
927 </span><span class="jsdoc-var">add.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">add.id </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">d.id</span><span class="jsdoc-syntax">;
928 </span><span class="jsdoc-var">add.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">add.title </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'??'</span><span class="jsdoc-syntax">;
930 </span><span class="jsdoc-var">this.addItem</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
933 },</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
936 </span><span class="jsdoc-var">this.renderEvents</span><span class="jsdoc-syntax">();
941 </span><span class="jsdoc-comment">/*
950 if (!this.view.el.hasClass('course-timesheet')) {
951 this.view.el.addClass('course-timesheet');
958 Roo.log(_this.grid.view.el.getWidth());
961 this.tsStyle = Roo.util.CSS.createStyleSheet({
962 '.course-timesheet .x-grid-row' : {
968 '.course-edit-link' : {
970 'text-overflow' : 'ellipsis',
971 'overflow' : 'hidden',
972 'white-space' : 'nowrap',
978 '.de-act-sup-link' : {
980 'text-decoration' : 'line-through'
984 'text-decoration' : 'line-through'
986 '.course-timesheet .course-highlight' : {
987 'border-top-style': 'dashed !important',
988 'border-bottom-bottom': 'dashed !important'
990 '.course-timesheet .course-item' : {
991 'font-family' : 'tahoma, arial, helvetica',
992 'font-size' : '11px',
993 'overflow' : 'hidden',
994 'padding-left' : '10px',
995 'padding-right' : '10px',
996 'padding-top' : '10px'
1004 monitorWindowResize : false,
1005 cellrenderer : function(v,x,r)
1010 xtype: 'CellSelectionModel',
1017 beforeload : function (_self, options)
1019 options.params = options.params || {};
1020 options.params._month = _this.monthField.getValue();
1021 options.params.limit = 9999;
1022 options.params['sort'] = 'when_dt';
1023 options.params['dir'] = 'ASC';
1024 this.proxy.loadResponse = this.loadResponse;
1025 Roo.log("load?");
1026 //this.addColumns();
1028 load : function (_self, records, options)
1030 _this.grid.view.el.select('.course-edit-link', true).on('click', function() {
1031 // if you click on the translation.. you can edit it...
1032 var el = Roo.get(this);
1033 var id = el.dom.getAttribute('data-id');
1034 var d = el.dom.getAttribute('data-date');
1035 var t = el.dom.getAttribute('data-time');
1036 //var id = this.child('span').dom.textContent;
1039 Pman.Dialog.CourseCalendar.show({
1043 productitem_active : id ? 1 : 0
1045 _this.grid.ds.load({});
1050 _this.panel.fireEvent('resize', [ '', '' ]);
1053 loadResponse : function(o, success, response){
1054 // this is overridden on before load..
1056 Roo.log("our code?");
1059 delete this.activeRequest;
1061 this.fireEvent("loadexception", this, o, response);
1062 o.request.callback.call(o.request.scope, null, o.request.arg, false);
1067 result = o.reader.read(response);
1069 Roo.log("load exception?");
1070 this.fireEvent("loadexception", this, o, response, e);
1071 o.request.callback.call(o.request.scope, null, o.request.arg, false);
1074 Roo.log("ready...");
1075 // loop through result.records;
1076 // and set this.tdate[date] = [] << array of records..
1078 Roo.each(result.records, function(r){
1080 if(typeof(_this.tdata[r.data.when_dt.format('j')]) == 'undefined'){
1081 _this.tdata[r.data.when_dt.format('j')] = [];
1083 _this.tdata[r.data.when_dt.format('j')].push(r.data);
1086 //Roo.log(_this.tdata);
1088 result.records = [];
1089 result.totalRecords = 6;
1091 // let's generate some duumy records for the rows.
1092 //var st = _this.dateField.getValue();
1094 // work out monday..
1095 //st = st.add(Date.DAY, -1 * st.format('w'));
1097 var date = Date.parseDate(_this.monthField.getValue(), "Y-m-d");
1099 var firstOfMonth = date.getFirstDayOfMonth();
1100 var days = date.getDaysInMonth();
1102 var firstAdded = false;
1103 for (var i = 0; i < result.totalRecords ; i++) {
1104 //var d= st.add(Date.DAY, i);
1107 for(var w = 0 ; w < 7 ; w++){
1108 if(!firstAdded && firstOfMonth != w){
1115 var dd = (d > 0 && d < 10) ? "0"+d : d;
1116 row['weekday'+w] = String.format(
1117 '<span style="font-size: 16px;"><b>{0}</b></span>'+
1118 '<span class="course-edit-link" style="color:blue;" data-id="0" data-date="{1}"> Add New</span>',
1120 date.format('Y-m-')+dd
1123 if(typeof(_this.tdata[d]) != 'undefined'){
1124 Roo.each(_this.tdata[d], function(r){
1128 var desc = (r.productitem_id_descrip) ? r.productitem_id_descrip : '';
1129 if(r.parent_id*1>0){
1130 is_sub = (r.productitem_id_visible*1 < 1) ? 'de-act-sup-link' :'sub-link';
1133 if(r.productitem_id_visible*1 < 1 && r.parent_id*1 < 1){
1134 deactive = 'de-act-link';
1137 row['weekday'+w] += String.format(
1138 '<br /><span class="course-edit-link {3} {4}" qtip="{5}" data-id="{0}">{2} - {1}</span>',
1140 r.product_id_name, //1
1141 r.when_dt.format('h:ia'), //2
1151 // only do this if something added..
1153 result.records.push(_this.grid.dataSource.reader.newRow(row));
1157 // push it twice. (second one with an hour..
1161 this.fireEvent("load", this, o, o.request.arg);
1162 o.request.callback.call(o.request.scope, result, o.request.arg, true);
1164 sortInfo : {field: 'when_dt', direction : 'ASC' },
1169 url : baseURL + '/Roo/Shop_course.php'
1172 xtype: 'JsonReader',
1189 'name': 'parent_id',
1193 'name': 'product_id',
1197 'name': 'productitem_id',
1215 click : function (_self, e)
1217 var sd = Date.parseDate(_this.monthField.getValue(), "Y-m-d");
1218 sd.setMonth(sd.getMonth()-1);
1219 _this.monthField.setValue(sd.format('Y-m-d'));
1220 _this.grid.ds.load({});
1223 text : "Back"
1230 xtype: 'MonthField',
1233 render : function (_self)
1235 _this.monthField = _self;
1236 // _this.monthField.set today
1238 select : function (combo, date)
1240 _this.grid.ds.load({});
1243 value : (function() { return new Date(); })()
1252 text : "Blue: in-active, green: in-active sup-event, red: de-active, purple: de-active sup-event"
1262 click : function (_self, e)
1264 var sd = Date.parseDate(_this.monthField.getValue(), "Y-m-d");
1265 sd.setMonth(sd.getMonth()+1);
1266 _this.monthField.setValue(sd.format('Y-m-d'));
1267 _this.grid.ds.load({});
1270 text : "Next"
1278 */</span></code></body></html>