Security update for Core, with self-updated composer
[yaffs-website] / web / core / lib / Drupal / Core / Field / Plugin / Field / FieldWidget / LanguageSelectWidget.php
index 776e060ca27b2e68ea48d1e37ea7cd04dda2da15..0872ba3b2078227462f75afd2e2814f02ff5f11f 100644 (file)
@@ -27,7 +27,32 @@ class LanguageSelectWidget extends WidgetBase {
     $element['value'] = $element + [
       '#type' => 'language_select',
       '#default_value' => $items[$delta]->value,
-      '#languages' => LanguageInterface::STATE_ALL,
+      '#languages' => $this->getSetting('include_locked') ? LanguageInterface::STATE_ALL : LanguageInterface::STATE_CONFIGURABLE,
+    ];
+
+    return $element;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function defaultSettings() {
+    $settings = parent::defaultSettings();
+    $settings['include_locked'] = TRUE;
+
+    return $settings;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsForm(array $form, FormStateInterface $form_state) {
+    $element = parent::settingsForm($form, $form_state);
+
+    $element['include_locked'] = [
+      '#type' => 'checkbox',
+      '#title' => $this->t('Include locked languages such as <em>Not specified</em> and <em>Not applicable</em>'),
+      '#default_value' => $this->getSetting('include_locked'),
     ];
 
     return $element;