public function getCMSFields()
 {
     $path = '/' . dirname($this->getFilename());
     $previewLink = Convert::raw2att($this->PreviewLink());
     $image = "<img src=\"{$previewLink}\" class=\"editor__thumbnail\" />";
     $link = $this->Link();
     $statusTitle = $this->getStatusTitle();
     $statusFlag = "<span class=\"editor__status-flag\">{$statusTitle}</span>";
     $content = Tab::create('Main', HeaderField::create('TitleHeader', $this->Title, 1)->addExtraClass('editor__heading'), LiteralField::create("ImageFull", $image)->addExtraClass('editor__file-preview'), TabSet::create('Editor', Tab::create('Details', TextField::create("Title", $this->fieldLabel('Title')), TextField::create("Name", $this->fieldLabel('Filename')), ReadonlyField::create("Path", _t('AssetTableField.PATH', 'Path'), ($path !== '/.' ? $path : '') . '/'), HTMLReadonlyField::create('ClickableURL', _t('AssetTableField.URL', 'URL'), sprintf('<i class="%s"></i><a href="%s" target="_blank">%s</a>', 'font-icon-link btn--icon-large form-control-static__icon', $link, $link))), Tab::create('Usage', DatetimeField::create("Created", _t('AssetTableField.CREATED', 'First uploaded'))->setReadonly(true), DatetimeField::create("LastEdited", _t('AssetTableField.LASTEDIT', 'Last changed'))->setReadonly(true))), HiddenField::create('ID', $this->ID));
     if ($dimensions = $this->getDimensions()) {
         $content->insertAfter('TitleHeader', LiteralField::create("DisplaySize", sprintf('<div class="editor__specs">%spx, %s %s</div>', $dimensions, $this->getSize(), $statusFlag)));
     } else {
         $content->insertAfter('TitleHeader', LiteralField::create('StatusFlag', $statusFlag));
     }
     $fields = FieldList::create(TabSet::create('Root', $content));
     $this->extend('updateCMSFields', $fields);
     return $fields;
 }
 /**
  * Build "Usage" tab
  *
  * @param File $record
  * @param array $context
  * @return Tab
  */
 protected function getFormFieldUsageTab($record, $context = [])
 {
     // Add new tab for usage
     return Tab::create('Usage', DatetimeField::create("Created", _t('AssetTableField.CREATED', 'First uploaded'))->setReadonly(true), DatetimeField::create("LastEdited", _t('AssetTableField.LASTEDIT', 'Last changed'))->setReadonly(true));
 }
 public function scaffoldFormField($title = null, $params = null)
 {
     $field = DatetimeField::create($this->name, $title);
     // Show formatting hints for better usability
     $dateField = $field->getDateField();
     $dateField->setDescription(sprintf(_t('FormField.Example', 'e.g. %s', 'Example format'), Convert::raw2xml(Zend_Date::now()->toString($dateField->getConfig('dateformat')))));
     $dateField->setAttribute('placeholder', $dateField->getConfig('dateformat'));
     $timeField = $field->getTimeField();
     $timeField->setDescription(sprintf(_t('FormField.Example', 'e.g. %s', 'Example format'), Convert::raw2xml(Zend_Date::now()->toString($timeField->getConfig('timeformat')))));
     $timeField->setAttribute('placeholder', $timeField->getConfig('timeformat'));
     return $field;
 }
 public function testSetName()
 {
     $field = new DatetimeField('Datetime', 'Datetime');
     $field->setName('CustomDatetime');
     $this->assertEquals('CustomDatetime', $field->getName());
     $this->assertEquals('CustomDatetime[date]', $field->getDateField()->getName());
     $this->assertEquals('CustomDatetime[time]', $field->getTimeField()->getName());
     $this->assertEquals('CustomDatetime[timezone]', $field->getTimezoneField()->getName());
 }