setDefaults({ weekMode: 'fixed' }); function BasicView(element, calendar, viewName) { var t = this; // exports t.renderBasic = renderBasic; t.setHeight = setHeight; t.setWidth = setWidth; t.renderDayOverlay = renderDayOverlay; t.defaultSelectionEnd = defaultSelectionEnd; t.renderSelection = renderSelection; t.clearSelection = clearSelection; t.reportDayClick = reportDayClick; // for selection (kinda hacky) t.dragStart = dragStart; t.dragStop = dragStop; t.getHoverListener = function() { return hoverListener; }; t.colLeft = colLeft; t.colRight = colRight; t.colContentLeft = colContentLeft; t.colContentRight = colContentRight; t.getIsCellAllDay = function() { return true; }; t.allDayRow = allDayRow; t.getRowCnt = function() { return rowCnt; }; t.getColCnt = function() { return colCnt; }; t.getColWidth = function() { return colWidth; }; t.getDaySegmentContainer = function() { return daySegmentContainer; }; // imports View.call(t, element, calendar, viewName); OverlayManager.call(t); SelectionManager.call(t); BasicEventRenderer.call(t); var opt = t.opt; var trigger = t.trigger; var renderOverlay = t.renderOverlay; var clearOverlays = t.clearOverlays; var daySelectionMousedown = t.daySelectionMousedown; var cellToDate = t.cellToDate; var dateToCell = t.dateToCell; var rangeToSegments = t.rangeToSegments; var formatDate = calendar.formatDate; var calculateWeekNumber = calendar.calculateWeekNumber; // locals var table; var head; var headCells; var body; var bodyRows; var bodyCells; var bodyFirstCells; var firstRowCellInners; var firstRowCellContentInners; var daySegmentContainer; var viewWidth; var viewHeight; var colWidth; var weekNumberWidth; var rowCnt, colCnt; var showNumbers; var coordinateGrid; var hoverListener; var colPositions; var colContentPositions; var tm; var colFormat; var showWeekNumbers; /* Rendering ------------------------------------------------------------*/ disableTextSelection(element.addClass('fc-grid')); function renderBasic(_rowCnt, _colCnt, _showNumbers) { rowCnt = _rowCnt; colCnt = _colCnt; showNumbers = _showNumbers; updateOptions(); if (!body) { buildEventContainer(); } buildTable(); } function updateOptions() { tm = opt('theme') ? 'ui' : 'fc'; colFormat = opt('columnFormat'); showWeekNumbers = opt('weekNumbers'); } function buildEventContainer() { daySegmentContainer = $("
") .appendTo(element); } function buildTable() { var html = buildTableHTML(); if (table) { table.remove(); } table = $(html).appendTo(element); head = table.find('thead'); headCells = head.find('.fc-day-header'); body = table.find('tbody'); bodyRows = body.find('tr'); bodyCells = body.find('.fc-day'); bodyFirstCells = bodyRows.find('td:first-child'); firstRowCellInners = bodyRows.eq(0).find('.fc-day > div'); firstRowCellContentInners = bodyRows.eq(0).find('.fc-day-content > div'); markFirstLast(head.add(head.find('tr'))); // marks first+last tr/th's markFirstLast(bodyRows); // marks first+last td's bodyRows.eq(0).addClass('fc-first'); bodyRows.filter(':last').addClass('fc-last'); bodyCells.each(function(i, _cell) { var date = cellToDate( Math.floor(i / colCnt), i % colCnt ); trigger('dayRender', t, date, $(_cell)); }); dayBind(bodyCells); } /* HTML Building -----------------------------------------------------------*/ function buildTableHTML() { var html = "