Commit f9fab5d4 by Carsten Brandt

Lazy fallback of label creation for Sort class

parent 713a987a
...@@ -127,7 +127,7 @@ class Sort extends Object ...@@ -127,7 +127,7 @@ class Sort extends Object
* a sort link. If not set, [[Inflector::camel2words()]] will be called to get a label. * a sort link. If not set, [[Inflector::camel2words()]] will be called to get a label.
* *
* Note that if the Sort object is already created, you can only use the full format * Note that if the Sort object is already created, you can only use the full format
* to configure every attribute. Each attribute must include these elements: asc, desc and label. * to configure every attribute. Each attribute must include these elements: asc and desc.
*/ */
public $attributes = array(); public $attributes = array();
/** /**
...@@ -195,13 +195,11 @@ class Sort extends Object ...@@ -195,13 +195,11 @@ class Sort extends Object
$attributes[$attribute] = array( $attributes[$attribute] = array(
'asc' => array($attribute => self::ASC), 'asc' => array($attribute => self::ASC),
'desc' => array($attribute => self::DESC), 'desc' => array($attribute => self::DESC),
'label' => Inflector::camel2words($attribute),
); );
} elseif (!isset($attribute['asc'], $attribute['desc'], $attribute['label'])) { } elseif (!isset($attribute['asc'], $attribute['desc'])) {
$attributes[$name] = array_merge(array( $attributes[$name] = array_merge(array(
'asc' => array($name => self::ASC), 'asc' => array($name => self::ASC),
'desc' => array($name => self::DESC), 'desc' => array($name => self::DESC),
'label' => Inflector::camel2words($name),
), $attribute); ), $attribute);
} else { } else {
$attributes[$name] = $attribute; $attributes[$name] = $attribute;
...@@ -304,7 +302,12 @@ class Sort extends Object ...@@ -304,7 +302,12 @@ class Sort extends Object
$url = $this->createUrl($attribute); $url = $this->createUrl($attribute);
$options['data-sort'] = $this->createSortVar($attribute); $options['data-sort'] = $this->createSortVar($attribute);
return Html::a($this->attributes[$attribute]['label'], $url, $options); if (isset($this->attributes[$attribute]['label'])) {
$label = $this->attributes[$attribute]['label'];
} else {
$label = Inflector::camel2words($attribute);
}
return Html::a($label, $url, $options);
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment