Changeset 576

Show
Ignore:
Timestamp:
05/01/08 13:17:46 (7 months ago)
Author:
bermiferrer
Message:

Fixing #161, for allowing selection of blank date in date_helper

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/AkActionView/helpers/date_helper.php

    r378 r576  
    297297        } 
    298298 
    299         return DateHelper::_select_for('month', explode(',',$month_details),'n',(empty($date) ? Ak::getDate() : $date), $options,'_add_one'); 
     299        $date = !empty($options['include_blank']) ? (!empty($date) ? $date : 0) : (!empty($date) ? $date : Ak::getDate()); 
     300 
     301        return DateHelper::_select_for('month', explode(',',$month_details),'n', $date, $options,'_add_one'); 
    300302    } 
    301303 
     
    327329    { 
    328330        $options_array = array(); 
    329         $datetime = empty($datetime) ? Ak::getDate() : $datetime; 
    330         $datetime_unit = Ak::getDate(Ak::getTimestamp($datetime),$date_format); 
     331         
     332        if (!empty($options['include_blank']) && $datetime == 0) { 
     333            $datetime_unit = ""; 
     334            $date_blank = true; 
     335        } else { 
     336            $datetime = empty($datetime) ? Ak::getDate() : $datetime; 
     337            $datetime_unit = Ak::getDate(Ak::getTimestamp($datetime),$date_format); 
     338            $date_blank = false; 
     339        }  
    331340 
    332341        foreach ($range as $k=>$time_unit){ 
     
    340349        } 
    341350        return DateHelper::_select_html(empty($options['field_name']) ? $select_type : $options['field_name'], 
    342         $options_array, @$options['prefix'], @$options['include_blank'], @$options['discard_type'], @$options['disabled']); 
    343     } 
    344  
    345     function _select_html($type, $options, $prefix = null, $include_blank = false, $discard_type = false, $disabled = false
     351        $options_array, @$options['prefix'], @$options['include_blank'], @$options['discard_type'], @$options['disabled'], $date_blank); 
     352    } 
     353 
     354    function _select_html($type, $options, $prefix = null, $include_blank = false, $discard_type = false, $disabled = false, $date_blank = false
    346355    { 
    347356        return '<select name="'.(empty($prefix) ? AK_DATE_HELPER_DEFAULT_PREFIX : $prefix). 
    348357        ($discard_type ? '' : $type).'"'. 
    349358        ($disabled ? ' disabled="disabled"' : '').">\n". 
    350         ($include_blank ? "<option value=\"\"></option>\n" : ''). 
     359        ($include_blank && $date_blank ? "<option value=\"\" selected=\"selected\"></option>\n" : ''). 
     360        ($include_blank && !$date_blank ? "<option value=\"\"></option>\n" : ''). 
    351361        (!empty($options) ? join("\n",$options) : '')."\n</select>\n"; 
    352362    } 
  • trunk/test/unit/lib/AkActionView/helpers/date_helper.php

    r217 r576  
    44require_once(AK_LIB_DIR.DS.'AkActionView'.DS.'helpers'.DS.'date_helper.php'); 
    55 
    6 class DateHelperTests extends HelpersUnitTester  
    7 {     
     6class DateHelperTests extends HelpersUnitTester 
     7{ 
    88    function setUp() 
    99    { 
     
    117117        $this->assertEqual(DateHelper::locale_date($this->date), '1978-06-16'); 
    118118    } 
     119 
     120    function test_should_select_blank() 
     121    { 
     122        $this->blank_date = ""; 
     123        $this->assertEqual($this->date_helper->date_select('person','blank_date',array('include_blank'=>true, 'start_year'=>1973, 'end_year'=>1983)), file_get_contents(AK_TEST_HELPERS_DIR.DS.'date_helper_'.__FUNCTION__.'.txt')); 
     124    } 
    119125} 
    120126