Changeset 570


Ignore:
Timestamp:
Sep 26, 2013, 11:16:23 PM (11 years ago)
Author:
chronos
Message:
  • Přidáno: Podpora pro nulové nezadané časové položky typu Date, Time a DateTime.
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Common/Form/Form.php

    r551 r570  
    220220    (array_key_exists('ReadOnly', $Item) and
    221221    ($Item['ReadOnly'] != true))))
    222     {
    223       //if(array_key_exists($Context.$Index, $_POST))
    224         if(array_key_exists($Item['Type'], $this->FormManager->FormTypes))
    225         {           
    226           if(!array_key_exists($Item['Type'], $this->FormManager->Type->TypeDefinitionList))
    227             $this->FormManager->Type->RegisterType($Item['Type'], '',
    228               $this->FormManager->FormTypes[$Item['Type']]);
    229           if($this->FormManager->FormTypes[$Item['Type']]['Type'] == 'Reference')
    230             $UseType = 'OneToMany';
    231           else if($this->FormManager->FormTypes[$Item['Type']]['Type'] == 'Enumeration')
    232             $UseType = 'Enumeration';
    233         } else $UseType = $Item['Type'];
     222    {     
     223        //if(array_key_exists($Context.$Index, $_POST))
     224        if(array_key_exists($Item['Type'], $this->FormManager->FormTypes))
     225        {           
     226          if(!array_key_exists($Item['Type'], $this->FormManager->Type->TypeDefinitionList))
     227            $this->FormManager->Type->RegisterType($Item['Type'], '',
     228              $this->FormManager->FormTypes[$Item['Type']]);
     229          if($this->FormManager->FormTypes[$Item['Type']]['Type'] == 'Reference')
     230            $UseType = 'OneToMany';
     231          else if($this->FormManager->FormTypes[$Item['Type']]['Type'] == 'Enumeration')
     232            $UseType = 'Enumeration';
     233        } else $UseType = $Item['Type'];
     234        $Parameters = array('Name' => $Index, 'Type' => $Item['Type'], 'Values' => $this->Values);
     235        if(array_key_exists('Null', $Item)) $Parameters['Null'] = $Item['Null'];
     236          else unset($Parameters['Null']);
    234237        $Values[$Index] = $this->FormManager->Type->ExecuteTypeEvent($UseType, 'OnLoad',
    235           array('Name' => $Index, 'Type' => $Item['Type'], 'Values' => $this->Values));
     238          $Parameters);
    236239    }
    237240    return($Values);
  • trunk/Common/Form/Types/Date.php

    r548 r570  
    1111    global $MonthNames;
    1212
    13     if($Item['Value'] == 0) return('');
     13    if($Item['Value'] == null) return('');
    1414    if((strtolower($Item['Value']) == 'now') or (strtolower($Item['Value']) == '')) $Item['Value'] = time();
    1515    $Parts = getdate($Item['Value']);
    1616
    17     $Output = $Parts['mday'].'. '.$MonthNames[$Parts['mon']].' '.$Parts['year'];
     17    $Output = $Parts['mday'].'. '.$Parts['mon'].' '.$Parts['year'];
    1818    return($Output);
    1919  }
     
    2727
    2828    $Output = '';
    29     //if($Item['Value'] == '') $Checked = ' checked="1"'; else $Checked = '';
    30     //$Output .= '<input type="checkbox" name="'.$Item['Name'].'-null"'.$Checked.'/>';
    31 
     29    $Type = $this->FormManager->Type->TypeDefinitionList[$Item['Type']];
     30    $Style = '';
     31    if(array_key_exists('Null', $Item) and $Item['Null'])
     32    {
     33      if($Item['Value'] != null)
     34      {
     35        $Checked = ' checked="1"';
     36        $Style = 'style="display:inline;"';
     37      } else
     38      {
     39        $Checked = '';
     40        $Style = 'style="display:none;"';       
     41      }
     42      $Output .= '<input type="checkbox" name="'.$Item['Name'].'-null"'.$Checked.' onclick="toggle(\''.
     43        $Item['Name'].'-day\');toggle(\''.$Item['Name'].'-month\');toggle(\''.$Item['Name'].'-year\');"/>';     
     44    }
     45   
    3246    // Day
    33     $Output .= '<select name="'.$Item['Name'].'-day">';
     47    $Output .= '<select name="'.$Item['Name'].'-day" id="'.$Item['Name'].'-day" '.$Style.'>';
    3448    for($I = 1; $I <= 31; $I++)
    3549    {
     
    3953    $Output .= '</select>';
    4054    // Month
    41    $Output .= '<select name="'.$Item['Name'].'-month">';
     55   $Output .= '<select name="'.$Item['Name'].'-month" id="'.$Item['Name'].'-month" '.$Style.'>';
    4256   for($I = 1; $I <= 12; $I++)
    4357    {
     
    4761    $Output .= '</select>';
    4862    // Year
    49     $Output .= '<select name="'.$Item['Name'].'-year">';
     63    $Output .= '<select name="'.$Item['Name'].'-year" id="'.$Item['Name'].'-year" '.$Style.'>';
    5064    for($I = 1900; $I < 2100; $I++)
    5165    {
     
    5973  function OnLoad($Item)
    6074  {
    61     return(mktime(0, 0, 0, $_POST[$Item['Name'].'-month'], $_POST[$Item['Name'].'-day'], $_POST[$Item['Name'].'-year']));
     75    if(!array_key_exists($Item['Name'].'-null', $_POST) and array_key_exists('Null', $Item) and ($Item['Null'] == true)) return(null);
     76      else return(mktime(0, 0, 0, $_POST[$Item['Name'].'-month'], $_POST[$Item['Name'].'-day'], $_POST[$Item['Name'].'-year']));
    6277  }
    6378 
     
    6782  }
    6883
    69   function OnSaveDb($Item)
     84  function OnSaveDb($Item) 
    7085  {
    71     return(date('Y-m-d', $Item['Value']));
     86    if($Item['Value'] == null) return(null);
     87      else return(date('Y-m-d', $Item['Value']));
    7288  }
    7389
  • trunk/Common/Form/Types/DateTime.php

    r548 r570  
    2525    if((strtolower($Item['Value']) == 'now') or (strtolower($Item['Value']) == '')) $Item['Value'] = time();
    2626    $Parts = getdate($Item['Value']);
    27 
     27   
     28    $Output = '';
     29    $Style = '';
     30    if(array_key_exists('Null', $Item) and $Item['Null'])
     31    {
     32      if($Item['Value'] != null)
     33      {
     34        $Checked = ' checked="1"';
     35        $Style = 'style="display:inline;"';
     36      } else
     37      {
     38        $Checked = '';
     39        $Style = 'style="display:none;"';
     40      }
     41      $Output .= '<input type="checkbox" name="'.$Item['Name'].'-null"'.$Checked.' onclick="toggle(\''.
     42          $Item['Name'].'-hour\');toggle(\''.$Item['Name'].'-minute\');toggle(\''.$Item['Name'].'-second\');toggle(\''.
     43          $Item['Name'].'-day\');toggle(\''.$Item['Name'].'-month\');toggle(\''.$Item['Name'].'-year\');"/>';
     44    }
     45   
    2846    // Hour
    29     $Output = '<select name="'.$Item['Name'].'-hour">';
     47    $Output .= '<select name="'.$Item['Name'].'-hour" id="'.$Item['Name'].'-hour" '.$Style.'>';
    3048    for($I = 1; $I <= 24; $I++)
    3149    {
     
    3553    $Output .= '</select>';
    3654    // Minute
    37     $Output .= '<select name="'.$Item['Name'].'-minute">';
     55    $Output .= '<select name="'.$Item['Name'].'-minute" id="'.$Item['Name'].'-minute" '.$Style.'>';
    3856    for($I = 1; $I <= 60; $I++)
    3957    {
     
    4361    $Output .= '</select>';
    4462    // Second
    45     $Output .= '<select name="'.$Item['Name'].'-second">';
     63    $Output .= '<select name="'.$Item['Name'].'-second" id="'.$Item['Name'].'-second" '.$Style.'>';
    4664    for($I = 1; $I <= 60; $I++)
    4765    {
     
    5169    $Output .= '</select>';
    5270    // Day
    53     $Output .= ' <select name="'.$Item['Name'].'-day">';
     71    $Output .= ' <select name="'.$Item['Name'].'-day" id="'.$Item['Name'].'-day" '.$Style.'>';
    5472    for($I = 1; $I <= 31; $I++)
    5573    {
     
    5977    $Output .= '</select>';
    6078    // Month
    61     $Output .= '<select name="'.$Item['Name'].'-month">';
     79    $Output .= '<select name="'.$Item['Name'].'-month"  id="'.$Item['Name'].'-month" '.$Style.'>';
    6280    for($I = 1; $I <= 12; $I++)
    6381    {
     
    6785    $Output .= '</select>';
    6886    // Year
    69     $Output .= '<select name="'.$Item['Name'].'-year">';
     87    $Output .= '<select name="'.$Item['Name'].'-year" id="'.$Item['Name'].'-year" '.$Style.'>';
    7088    for($I = 1900; $I < 2100; $I++)
    7189    {
     
    7997  function OnLoad($Item)
    8098  {
    81     return(mktime($_POST[$Item['Name'].'-hour'], $_POST[$Item['Name'].'-minute'], $_POST[$Item['Name'].'-second'],
    82       $_POST[$Item['Name'].'-month'], $_POST[$Item['Name'].'-day'], $_POST[$Item['Name'].'-year']));
     99    if(!array_key_exists($Item['Name'].'-null', $_POST) and array_key_exists('Null', $Item) and ($Item['Null'] == true)) return(null);
     100      else return(mktime($_POST[$Item['Name'].'-hour'], $_POST[$Item['Name'].'-minute'], $_POST[$Item['Name'].'-second'],
     101        $_POST[$Item['Name'].'-month'], $_POST[$Item['Name'].'-day'], $_POST[$Item['Name'].'-year']));
    83102  }
    84103
     
    89108 
    90109  function OnSaveDb($Item)
    91   {
    92     return(date('Y-m-d H:i:s', $Item['Value']));
     110  {   
     111    if($Item['Value'] == null) return(null);
     112      else return(date('Y-m-d H:i:s', $Item['Value']));
    93113  }
    94114
  • trunk/Common/Form/Types/Time.php

    r548 r570  
    2222    $TimeParts = getdate($Item['Value']);
    2323
     24    $Output = '';
     25    $Style = '';
     26    if(array_key_exists('Null', $Item) and $Item['Null'])
     27    {
     28      if($Item['Value'] != null)
     29      {
     30        $Checked = ' checked="1"';
     31        $Style = 'style="display:inline;"';
     32      } else
     33      {
     34        $Checked = '';
     35        $Style = 'style="display:none;"';       
     36      }
     37      $Output .= '<input type="checkbox" name="'.$Item['Name'].'-null"'.$Checked.' onclick="toggle(\''.
     38        $Item['Name'].'-hour\');toggle(\''.$Item['Name'].'-minute\');toggle(\''.$Item['Name'].'-second\');"/>';     
     39    }
     40   
    2441    // Hour
    25     $Output = '<select name="'.$Item['Name'].'-hour">';
     42    $Output .= '<select name="'.$Item['Name'].'-hour" id="'.$Item['Name'].'-hour" '.$Style.'>';
    2643    for($I = 1; $I <= 24; $I++)
    2744    {
     
    3148    $Output .= '</select>';
    3249    // Minute
    33     $Output .= '<select name="'.$Item['Name'].'-minute">';
     50    $Output .= '<select name="'.$Item['Name'].'-minute" id="'.$Item['Name'].'-minute" '.$Style.'>';
    3451    for($I = 1; $I <= 60; $I++)
    3552    {
     
    3956    $Output .= '</select>';
    4057    // Second
    41     $Output .= '<select name="'.$Item['Name'].'-second">';
     58    $Output .= '<select name="'.$Item['Name'].'-second" id="'.$Item['Name'].'-second" '.$Style.'>';
    4259    for($I = 1; $I <= 60; $I++)
    4360    {
     
    5168  function OnLoad($Item)
    5269  {
    53     return(mktime($_POST[$Item['Name'].'-hour'], $_POST[$Item['Name'].'-minute'], $_POST[$Item['Name'].'-second']));
     70    if(!array_key_exists($Item['Name'].'-null', $_POST) and array_key_exists('Null', $Item) and ($Item['Null'] == true)) return(null);
     71      return(mktime($_POST[$Item['Name'].'-hour'], $_POST[$Item['Name'].'-minute'], $_POST[$Item['Name'].'-second']));
    5472  }
    5573
     
    6179  function OnSaveDb($Item)
    6280  {
    63     return(date('H:i:s', $Item['Value']));
     81    if($Item['Value'] == null) return(null);
     82      else return(date('H:i:s', $Item['Value']));
    6483  }
    6584
  • trunk/Common/Version.php

    r569 r570  
    11<?php
    22
    3 $Revision = 569; // Subversion revision
     3$Revision = 570; // Subversion revision
    44$DatabaseRevision = 565; // SQL structure revision
    5 $ReleaseTime = '2013-09-16';
     5$ReleaseTime = '2013-09-26';
  • trunk/Modules/Stock/Stock.php

    r546 r570  
    4242        'Product' => array('Type' => 'TProduct', 'Caption' => 'Produkt', 'Default' => ''),
    4343        'TimeEnlistment' => array('Type' => 'Date', 'Caption' => 'Datum zařazení', 'Default' => ''),
    44         'TimeElimination' => array('Type' => 'Date', 'Caption' => 'Datum vyřazení', 'Default' => ''),
     44        'TimeElimination' => array('Type' => 'Date', 'Caption' => 'Datum vyřazení', 'Default' => '', 'Null' => true),
    4545        'SellPrice' => array('Type' => 'Integer', 'Caption' => 'Prodejní cena', 'Default' => '0', 'Suffix' => 'Kč'),
    4646        'BuyPrice' => array('Type' => 'Integer', 'Caption' => 'Kupní cena', 'Default' => '0', 'Suffix' => 'Kč'),
  • trunk/style/new/global.js

    r536 r570  
    2323    el.display='none';
    2424  }
     25}
     26
     27function show(what)
     28{
     29  el = document.getElementById(what).style;
     30  el.display = 'block';
     31}
     32
     33function hide(what)
     34{
     35  el = document.getElementById(what).style;
     36  el.display = 'none';
     37}
     38
     39function toggle(what)
     40{
     41  el = document.getElementById(what).style;
     42  if(el.display == 'none') el.display = 'inline';
     43  else el.display = 'none';
    2544}
    2645
Note: See TracChangeset for help on using the changeset viewer.