Skip to content

Commit

Permalink
Default size field option
Browse files Browse the repository at this point in the history
  • Loading branch information
Michel van der Steege committed May 24, 2019
1 parent aaa9aa7 commit 07df712
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 20 deletions.
4 changes: 4 additions & 0 deletions _config/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@ DNADesign\Elemental\Models\BaseElement:
DNADesign\Elemental\Models\ElementalArea:
extensions:
- TheWebmen\ElementalGrid\Extensions\ElementalAreaExtension

TheWebmen\ElementalGrid:
defaultSizeField: 'MD'
defaultOffsetField: 'MD'
12 changes: 6 additions & 6 deletions resources/css/elementalgrid.css
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@ tbody.row tr td {
}

/* STYLE TOOLBAR */
.col-OffsetMD,
.col-SizeMD {
.col-offsetfield,
.col-sizefield {
width: 49%;
display: inline-block;
padding: 10px 0 !important;
border-bottom: none !important;
}
.col-SizeMD {
.col-sizefield {
margin-right: 1%;
}
.col-OffsetMD {
.col-offsetfield {
margin-left: 1%;
}
.col-BlockType {
Expand Down Expand Up @@ -54,8 +54,8 @@ tr.block-type-full-width td {
border-bottom: none!important;
}

tr.block-type-full-width .col-OffsetMD,
tr.block-type-full-width .col-SizeMD {
tr.block-type-full-width .col-offsetfield,
tr.block-type-full-width .col-sizefield {
display: none;
}

Expand Down
4 changes: 2 additions & 2 deletions resources/js/elementalgrid.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@
var _tr = _this.closest('tr');
var _sizeField = _tr.find('select.grideditor-sizefield');
if(_sizeField.data('title')){
_tr.find('.col-SizeMD').prepend('<span class="grideditor-field-label">'+_sizeField.data('title')+'</span>');
_sizeField.closest('td').addClass('col-sizefield').prepend('<span class="grideditor-field-label">'+_sizeField.data('title')+'</span>');
_sizeField.data('title', false);
}
var _offsetField = _tr.find('select.grideditor-offsetfield');
if(_offsetField.data('title')){
_tr.find('.col-OffsetMD').prepend('<span class="grideditor-field-label">'+_offsetField.data('title')+'</span>');
_offsetField.closest('td').addClass('col-offsetfield').prepend('<span class="grideditor-field-label">'+_offsetField.data('title')+'</span>');
_offsetField.data('title', false);
}
},
Expand Down
12 changes: 8 additions & 4 deletions src/Extensions/BaseElementExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,11 @@ class BaseElementExtension extends \SilverStripe\ORM\DataExtension {
'BlockType' => 'Varchar'
);

private static $defaults = array(
'SizeMD' => 6
);
public function populateDefaults()
{
$defaultSizeField = 'Size' . Config::forClass('TheWebmen\ElementalGrid')->get('defaultSizeField');
$this->owner->$defaultSizeField = 6;
}

/**
* Get the options for col sizes
Expand Down Expand Up @@ -118,13 +120,15 @@ public function updateCMSFields(\SilverStripe\Forms\FieldList $fields)
*/
public function BootstrapColClasses(){
//Col options
$classes = 'col-md-' . $this->owner->SizeMD;
if($this->owner->SizeXS){
$classes .= ' col-xs-' . $this->owner->SizeXS;
}
if($this->owner->SizeSM){
$classes .= ' col-sm-' . $this->owner->SizeSM;
}
if($this->owner->SizeMD){
$classes .= ' col-md-' . $this->owner->SizeMD;
}
if($this->owner->SizeLG){
$classes .= ' col-lg-' . $this->owner->SizeLG;
}
Expand Down
29 changes: 21 additions & 8 deletions src/Extensions/ElementalEditorExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace TheWebmen\ElementalGrid\Extensions;

use SilverStripe\Core\Config\Config;
use SilverStripe\Forms\HiddenField;
use SilverStripe\ORM\DataExtension;
use SilverStripe\View\Requirements;
Expand All @@ -23,18 +24,30 @@ public function updateField($gridField){
$config->getComponentByType(GridFieldOrderableRows::class)->setImmediateUpdate(false);

//Add editable columns
$defaultSizeField = 'Size' . Config::forClass('TheWebmen\ElementalGrid')->get('defaultSizeField');
$defaultSizeFieldTitle = str_replace('Size', 'Size ', $defaultSizeField);
$defaultSizeFieldTranslateKey = strtoupper(str_replace(' ', '_', $defaultSizeFieldTitle));

$defaultOffsetField = 'Offset' . Config::forClass('TheWebmen\ElementalGrid')->get('defaultOffsetField');
$defaultOffsetFieldTitle = str_replace('Size', 'Size ', $defaultOffsetField);
$defaultOffsetFieldTranslateKey = strtoupper(str_replace(' ', '_', $defaultOffsetFieldTitle));

$editableColumns = new \Symbiote\GridFieldExtensions\GridFieldEditableColumns();
$editableColumns->setDisplayFields(array(
'SizeMD' => array(
'title' => _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.SIZE_MD', 'Size MD'),
'callback' => function($record, $column, $grid) {
return DropdownField::create('SizeMD', _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.SIZE_MD', 'Size MD'), BaseElementExtension::getColSizeOptions())->addExtraClass('grideditor-sizefield')->setAttribute('data-title', _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.SIZE_MD', 'Size MD'));
$defaultSizeField => array(
'title' => _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.' . $defaultSizeFieldTranslateKey, $defaultSizeFieldTitle),
'callback' => function($record, $column, $grid) use($defaultSizeField, $defaultSizeFieldTranslateKey, $defaultSizeFieldTitle) {
return DropdownField::create($defaultSizeField, _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.' . $defaultSizeFieldTranslateKey, $defaultSizeFieldTitle), BaseElementExtension::getColSizeOptions())
->addExtraClass('grideditor-sizefield')
->setAttribute('data-title', _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.' . $defaultSizeFieldTranslateKey, $defaultSizeFieldTitle));
}
),
'OffsetMD' => array(
'title' => _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.OFFSET_MD', 'Offset MD'),
'callback' => function($record, $column, $grid) {
return DropdownField::create('OffsetMD', _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.OFFSET_MD', 'Offset MD'), BaseElementExtension::getColSizeOptions(false, true))->addExtraClass('grideditor-offsetfield')->setAttribute('data-title', _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.OFFSET_MD', 'Offset MD'));
$defaultOffsetField => array(
'title' => _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.' . $defaultOffsetFieldTranslateKey, $defaultOffsetFieldTitle),
'callback' => function($record, $column, $grid) use($defaultOffsetField, $defaultOffsetFieldTranslateKey, $defaultOffsetFieldTitle) {
return DropdownField::create($defaultOffsetField, _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.' . $defaultOffsetFieldTranslateKey, $defaultOffsetFieldTitle), BaseElementExtension::getColSizeOptions(false, true))
->addExtraClass('grideditor-offsetfield')
->setAttribute('data-title', _t('TheWebmen\ElementalGrid\Extensions\BaseElementExtension.' . $defaultOffsetFieldTranslateKey, $defaultOffsetFieldTitle));
}
),
'BlockType' => array(
Expand Down

0 comments on commit 07df712

Please sign in to comment.