HomeHelpTrac

Changeset 15704 for trunk/templates


Ignore:
Timestamp:
11/28/11 01:06:42 (6 months ago)
Author:
Alexander Trofimov
Message:

Grid - selected and disabled rows

Location:
trunk/templates/base
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/templates/base/css/grid.css

    r15675 r15704  
    2828    text-align:center; 
    2929    width:4px; 
    30 } 
    31  
    32 .bx-grid-footer { 
    33      
    34 } 
    35  
    36 .bx-grid-header { 
    37  
    3830} 
    3931 
     
    6961    padding-left:0; 
    7062} 
     63 
  • trunk/templates/base/grid.html

    r15685 r15704  
    3333            <tbody class="bx-def-border-bottom"> 
    3434                    <bx_repeat:rows_data> 
    35                         <tr id="__id_row__"> 
     35                        <tr id="__id_row__" class="__row_class__"> 
    3636                            __row__ 
    3737                        </tr> 
  • trunk/templates/base/scripts/BxBaseGrid.php

    r15692 r15704  
    222222            isset($aField['width']) ? 'width:' . $aField['width'] : false // add default styles 
    223223        ); 
    224         return '<th ' . $sAttr . '> <input type="checkbox" id="'. $this->_sObject . '_check_all" name="'. $this->_sObject . '_check_all" onclick="$(\'input[name='. $this->_sObject . '_check]\').attr(\'checked\', this.checked)" /> </th>'; 
     224        return '<th ' . $sAttr . '> <input type="checkbox" id="'. $this->_sObject . '_check_all" name="'. $this->_sObject . '_check_all" onclick="$(\'input[name='. $this->_sObject . '_check]:not([disabled])\').attr(\'checked\', this.checked)" /> </th>'; 
     225    } 
     226 
     227    /** 
     228     * Check if the whole row is disabled. 
     229     * When row is disabled checlbox is not selectable, actions aren't clickable and text is grayed out. 
     230     * By default all rows aren't disabled. 
     231     * @param $aRow row array 
     232     * @return boolean 
     233     */ 
     234    protected function _isRowDisabled($aRow) { 
     235        return false; 
     236    } 
     237     
     238    /** 
     239     * Check if the checkbox is disabled. 
     240     * @param $aRow row array 
     241     * @return boolean 
     242     */ 
     243    protected function _isCheckboxDisabled($aRow) { 
     244        return $this->_isRowDisabled($aRow); 
     245    } 
     246 
     247    /** 
     248     * Is checkbox is checked by default ? 
     249     * By default no one checkbox is selected. 
     250     * @return boolean 
     251     */ 
     252    protected function _isCheckboxSelected($mixedValue, $sKey, $aField, $aRow) { 
     253        return false; 
    225254    } 
    226255 
     
    231260            foreach ($this->_aOptions['fields'] as $sKey => $aField) 
    232261                $sRow .= $this->_getCellDesign($sKey, $aField, $aRow); 
    233             $aGrid[] = array('row' => $sRow, 'id_row' => $this->_sObject . '_row_' . $aRow[$this->_aOptions['field_id']]); 
     262            $aGrid[] = array('row' => $sRow, 'id_row' => $this->_sObject . '_row_' . $aRow[$this->_aOptions['field_id']], 'row_class' => $this->_isRowDisabled($aRow) ? 'bx-grid-row-disabled bx-def-font-grayed' : ''); 
    234263        }             
    235264        return $aGrid; 
     
    256285            isset($aField['width']) ? 'width:' . $aField['width'] : false  // add default styles 
    257286        ); 
    258         return '<td ' . $sAttr . '><input type="checkbox" name="'. $this->_sObject . '_check" value="'. $aRow[$this->_aOptions['field_id']] . '" /></td>';  
     287        $sDisabled = ($this->_isCheckboxDisabled($aRow) ? 'disabled="disabled"' : ''); 
     288        $sSelected = ($this->_isCheckboxSelected($mixedValue, $sKey, $aField, $aRow) ? 'checked="checked"' : ''); 
     289        $sVal = $aRow[$this->_aOptions['field_id']]; 
     290        return '<td ' . $sAttr . '><input type="checkbox" name="'. $this->_sObject . '_check" value="' . $sVal . '" ' . $sDisabled . ' ' . $sSelected . '/></td>';  
    259291    } 
    260292 
     
    274306            isset($aField['width']) ? 'width:' . $aField['width'] : false  // add default styles 
    275307        ); 
    276         return '<td ' . $sAttr . '>' . $this->_getActions('single', $aRow[$this->_aOptions['field_id']], true) . '</td>';  
     308        return '<td ' . $sAttr . '>' . $this->_getActions('single', $aRow[$this->_aOptions['field_id']], true, $this->_isRowDisabled($aRow)) . '</td>'; 
    277309    } 
    278310 
     
    287319     
    288320 
    289     protected function _getActions ($sType, $sActionData = false, $isSmall = false) { 
     321    protected function _getActions ($sType, $sActionData = false, $isSmall = false, $isDisabled = false) { 
    290322        $sActionsType = 'actions_' . $sType; 
    291323        if (empty($this->_aOptions[$sActionsType]) || !is_array($this->_aOptions[$sActionsType])) 
     
    303335                    $a['attr']['bx_grid_action_confirm'] = $a['confirm'] ? 1 : 0; 
    304336            } 
    305             $sRet .= $this->$sFunc($sType, $sKey, $a, $isSmall); 
     337            $sRet .= $this->$sFunc($sType, $sKey, $a, $isSmall, $isDisabled); 
    306338        } 
    307339        return $sRet; 
    308340    } 
    309341     
    310     protected function _getActionDefault ($sType, $sKey, $a, $isSmall = false) { 
     342    protected function _getActionDefault ($sType, $sKey, $a, $isSmall = false, $isDisabled = false) { 
    311343        $sAttr = $this->_convertAttrs( 
    312344            $a, 'attr', 
    313             'bx-btn bx-def-margin-sec-left' . ($isSmall ? ' bx-btn-small' : '') // add default classes 
     345            'bx-btn bx-def-margin-sec-left' . ($isSmall ? ' bx-btn-small' : '') . ($isDisabled ? ' bx-btn-disabled' : '') // add default classes 
    314346        ); 
    315347        return '<button ' . $sAttr . '>' . $a['title'] . '</button>'; 
    316348    } 
    317349 
    318     protected function _getActionDivider ($sType, $sKey, $a, $isSmall = false) { 
     350    protected function _getActionDivider ($sType, $sKey, $a, $isSmall = false, $isDisabled = false) { 
    319351        return '<div class="bx-grid-actions-divider bx-def-margin-sec-left"> | </div>'; 
    320352    } 
Note: See TracChangeset for help on using the changeset viewer.