Index: t3lib/class.t3lib_tceforms.php =================================================================== --- t3lib/class.t3lib_tceforms.php (revision 9446) +++ t3lib/class.t3lib_tceforms.php (revision ) @@ -1097,7 +1097,17 @@ // css class and id will show the kind of field if (in_array('date', $evalList)) { $inputId = uniqid('tceforms-datefield-'); - $cssClasses[] = 'tceforms-textfield tceforms-datefield'; + + $dateRange = ''; + if (isset($config['range']['lower'])) { + $dateRange .= ' lower-' . intval($config['range']['lower']); + } + if (isset($config['range']['upper'])) { + $dateRange .= ' upper-' . intval($config['range']['upper']); + } + + $cssClasses[] = 'tceforms-textfield tceforms-datefield' . $dateRange; + $fieldAppendix = t3lib_iconWorks::getSpriteIcon( 'actions-edit-pick-date', array( Index: t3lib/js/extjs/tceforms.js =================================================================== --- t3lib/js/extjs/tceforms.js (revision 8012) +++ t3lib/js/extjs/tceforms.js (revision ) @@ -38,17 +38,27 @@ }, convertDateFieldsToDatePicker: function() { - var dateFields = Ext.select("input[id^=tceforms-date]"); + var dateFields = Ext.select("input[id^=tceforms-date]"), + minDate, maxDate, lowerMatch, upperMatch; + dateFields.each(function(element) { var index = element.dom.id.match(/tceforms-datefield-/) ? 0 : 1; var format = TYPO3.settings.datePickerUSmode ? TYPO3.settings.dateFormatUS : TYPO3.settings.dateFormat; var datepicker = element.next('span'); + // check for daterange + lowerMatch = element.dom.className.match(/lower-(\d+)\b/); + minDate = Ext.isArray(lowerMatch) ? new Date(lowerMatch[1] * 1000) : null; + upperMatch = element.dom.className.match(/upper-(\d+)\b/); + maxDate = Ext.isArray(upperMatch) ? new Date(upperMatch[1] * 1000) : null; + //console.log(minDate, maxDate); var menu = new Ext.menu.DateMenu({ id: 'p' + element.dom.id, format: format[index], value: Date.parseDate(element.dom.value, format[index]), + minDate: minDate, + maxDate: maxDate, handler: function(picker, date){ var relElement = Ext.getDom(picker.ownerCt.id.substring(1)); relElement.value = date.format(format[index]); @@ -71,7 +81,7 @@ }); }); }, - + convertTextareasResizable: function() { var textAreas = Ext.select("textarea[id^=tceforms-textarea-]"); textAreas.each(function(element) { @@ -92,6 +102,6 @@ } }); } - + } -Ext.onReady(TYPO3.TCEFORMS.init, TYPO3.TCEFORMS); \ No newline at end of file +Ext.onReady(TYPO3.TCEFORMS.init, TYPO3.TCEFORMS);