FALSE, ] + parent::defaultSettings(); } /** * {@inheritdoc} */ public function settingsForm(array $form, FormStateInterface $form_state) { $elements = parent::settingsForm($form, $form_state); $elements['move_asset_button'] = [ '#title' => $this->t('Move asset button'), '#description' => $this->t('Include a button to move the asset.'), '#type' => 'checkbox', '#default_value' => $this->getSetting('move_asset_button'), ]; return $elements; } /** * {@inheritdoc} */ public function settingsSummary() { $summary = parent::settingsSummary(); $summary[] = $this->getSetting('move_asset_button') ? $this->t('Include move asset button') : $this->t('No move asset button'); return $summary; } /** * {@inheritdoc} */ public function viewElements(FieldItemListInterface $items, $langcode) { // Build labels in parent. $elements = parent::viewElements($items, $langcode); // Get the asset. $asset = $items->getEntity(); // If the asset is fixed don't render additional information. if ($asset->get('is_fixed')->value) { return $elements; } // If there are no current locations only render if configured to. if (empty($elements) && !$this->getSetting('render_without_location')) { return $elements; } // Add the move asset button if configured. if ($this->getSetting('move_asset_button')) { // Append a "Move asset" link. $options = [ 'query' => [ 'asset' => $asset->id(), 'destination' => $asset->toUrl()->toString(), ], ]; $elements[] = [ '#type' => 'link', '#title' => $this->t('Move asset'), '#url' => Url::fromRoute('farm.quick.movement', [], $options), '#attributes' => [ 'class' => ['button', 'button--small'], ], ]; } return $elements; } }