Skip to content

Commit

Permalink
Merge branch '4.4' into 4
Browse files Browse the repository at this point in the history
  • Loading branch information
maxime-rainville committed Sep 3, 2019
2 parents 41a2bcb + 24015c7 commit dd40d53
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 17 deletions.
26 changes: 26 additions & 0 deletions .upgrade.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1100,6 +1100,32 @@ warnings:
'SilverStripe\Control\Email\Email->setTemplate()':
message: 'Renamed to setHTMLTemplate()'
replacement: 'setHTMLTemplate'
'SilverStripe\Control\Email\Email->replyTo()':
message: 'Renamed to setReplyTo()'
replacement: 'setReplyTo'
'SilverStripe\Control\Email\Email->attachFile()':
message: 'Renamed to addAttachment()'
replacement: 'addAttachment'
'SilverStripe\Control\Email\Email->Subject()':
message: 'Renamed to getSubject()'
replacement: 'getSubject'
'SilverStripe\Control\Email\Email->Body()':
message: 'Renamed to getBody()'
replacement: 'getBody'
'SilverStripe\Control\Email\Email->From()':
message: 'Renamed to getFrom()'
replacement: 'getFrom'
'SilverStripe\Control\Email\Email->To()':
message: 'Renamed to getTo()'
replacement: 'getTo'
'SilverStripe\Control\Email\Email->Cc()':
message: 'Renamed to getCc()'
replacement: 'getCc'
'SilverStripe\Control\Email\Email->Bcc()':
message: 'Renamed to getBcc()'
replacement: 'getBcc'
'SilverStripe\Control\Email\Email->addCustomHeader()':
message: 'addCustomHeader() is removed'
'SilverStripe\i18n\i18n::get_language_name()':
message: 'moved to SilverStripe\i18n\Data\Locales::languageName()'
replacement: 'getData()->languageName'
Expand Down
1 change: 1 addition & 0 deletions src/Dev/CsvBulkLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ protected function processAll($filepath, $preview = false)
$filepath = Director::getAbsFile($filepath);
$csvReader = Reader::createFromPath($filepath, 'r');
$csvReader->setDelimiter($this->delimiter);
$csvReader->stripBom(true);

$tabExtractor = function ($row, $rowOffset, $iterator) {
foreach ($row as &$item) {
Expand Down
2 changes: 1 addition & 1 deletion src/Forms/GridField/GridFieldDataColumns.php
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ public function getColumnContent($gridField, $record, $columnName)
{
// Find the data column for the given named column
$columns = $this->getDisplayFields($gridField);
$columnInfo = $columns[$columnName];
$columnInfo = array_key_exists($columnName, $columns) ? $columns[$columnName] : null;

// Allow callbacks
if (is_array($columnInfo) && isset($columnInfo['callback'])) {
Expand Down
21 changes: 15 additions & 6 deletions src/Forms/GridField/GridFieldDetailForm_ItemRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -349,17 +349,26 @@ protected function getRightGroupField()
*/
protected function getFormActions()
{
$actions = FieldList::create();
$manager = $this->getStateManager();

$actions = FieldList::create();
$majorActions = CompositeField::create()->setName('MajorActions');
$majorActions->setFieldHolderTemplate(get_class($majorActions) . '_holder_buttongroup');
$actions->push($majorActions);

if ($this->record->ID !== 0) { // existing record
if ($this->record->canEdit()) {
$actions->push(FormAction::create('doSave', _t('SilverStripe\\Forms\\GridField\\GridFieldDetailForm.Save', 'Save'))
$noChangesClasses = 'btn-outline-primary font-icon-tick';
$majorActions->push(FormAction::create('doSave', _t('SilverStripe\\Forms\\GridField\\GridFieldDetailForm.Save', 'Save'))
->addExtraClass($noChangesClasses)
->setAttribute('data-btn-alternate-add', 'btn-primary font-icon-save')
->setAttribute('data-btn-alternate-remove', $noChangesClasses)
->setUseButtonTag(true)
->addExtraClass('btn-primary font-icon-save'));
->setAttribute('data-text-alternate', _t('SilverStripe\\CMS\\Controllers\\CMSMain.SAVEDRAFT', 'Save')));
}

if ($this->record->canDelete()) {
$actions->push(FormAction::create('doDelete', _t('SilverStripe\\Forms\\GridField\\GridFieldDetailForm.Delete', 'Delete'))
$actions->insertAfter('MajorActions', FormAction::create('doDelete', _t('SilverStripe\\Forms\\GridField\\GridFieldDetailForm.Delete', 'Delete'))
->setUseButtonTag(true)
->addExtraClass('btn-outline-danger btn-hide-outline font-icon-trash-bin action--delete'));
}
Expand All @@ -371,7 +380,7 @@ protected function getFormActions()
$actions->push($this->getRightGroupField());
} else { // adding new record
//Change the Save label to 'Create'
$actions->push(FormAction::create('doSave', _t('SilverStripe\\Forms\\GridField\\GridFieldDetailForm.Create', 'Create'))
$majorActions->push(FormAction::create('doSave', _t('SilverStripe\\Forms\\GridField\\GridFieldDetailForm.Create', 'Create'))
->setUseButtonTag(true)
->addExtraClass('btn-primary font-icon-plus-thin'));

Expand All @@ -385,7 +394,7 @@ protected function getFormActions()
$oneLevelUp->Link, // url
_t('SilverStripe\\Forms\\GridField\\GridFieldDetailForm.CancelBtn', 'Cancel') // label
);
$actions->push(new LiteralField('cancelbutton', $text));
$actions->insertAfter('MajorActions', new LiteralField('cancelbutton', $text));
}
}

Expand Down
21 changes: 11 additions & 10 deletions src/Security/Group.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,15 +83,6 @@ class Group extends DataObject

private static $table_name = "Group";

public function populateDefaults()
{
parent::populateDefaults();

if (!$this->Title) {
$this->Title = _t(__CLASS__ . '.NEWGROUP', "New Group");
}
}

public function getAllChildren()
{
$doSet = new ArrayList();
Expand All @@ -105,6 +96,16 @@ public function getAllChildren()

return $doSet;
}

private function getDecodedBreadcrumbs()
{
$list = Group::get()->exclude('ID', $this->ID);
$groups = ArrayList::create();
foreach ($list as $group) {
$groups->push(['ID' => $group->ID, 'Title' => $group->getBreadcrumbs(' » ')]);
}
return $groups;
}

/**
* Caution: Only call on instances, not through a singleton.
Expand All @@ -125,7 +126,7 @@ public function getCMSFields()
$parentidfield = DropdownField::create(
'ParentID',
$this->fieldLabel('Parent'),
Group::get()->exclude('ID', $this->ID)->map('ID', 'Breadcrumbs')
$this->getDecodedBreadcrumbs()
)->setEmptyString(' '),
new TextareaField('Description', $this->fieldLabel('Description'))
),
Expand Down
15 changes: 15 additions & 0 deletions tests/php/Dev/CsvBulkLoaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace SilverStripe\Dev\Tests;

use League\Csv\Writer;
use SilverStripe\Dev\Tests\CsvBulkLoaderTest\CustomLoader;
use SilverStripe\Dev\Tests\CsvBulkLoaderTest\Player;
use SilverStripe\Dev\Tests\CsvBulkLoaderTest\PlayerContract;
Expand Down Expand Up @@ -300,6 +301,20 @@ public function testLoadWithCustomImportMethodDuplicateMap()
$this->assertEquals($player->FirstName, "John. He's a good guy. ");
}

public function testLoadWithByteOrderMark()
{
$loader = new CsvBulkLoader(Player::class);
$loader->load($this->csvPath . 'PlayersWithHeaderAndBOM.csv');

$players = Player::get();

$this->assertCount(3, $players);
$this->assertListContains([
['FirstName' => 'Jamie', 'Birthday' => '1882-01-31'],
['FirstName' => 'Järg', 'Birthday' => '1982-06-30'],
['FirstName' => 'Jacob', 'Birthday' => '2000-04-30'],
], $players);
}

protected function getLineCount(&$file)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FirstName,Biography,Birthday,IsRegistered
Jamie,"Pretty old\, with an escaped comma",1882-01-31,1
Järg,"Unicode FTW",1982-06-30,1
Jacob," Likes leading tabs in his biography",2000-04-30,0

0 comments on commit dd40d53

Please sign in to comment.