From df994a238b83b3c3da9f02b7e5a40f418ac1a61c Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Mon, 8 Aug 2011 13:22:08 -0400
Subject: [PATCH] - Patch #1199428 by ksenzee, yched: incremental UX
 improvements to Field UI.

---
 modules/field_ui/field_ui.admin.inc | 40 +++++++++++++++++++++++------
 modules/field_ui/field_ui.module    |  2 +-
 2 files changed, 33 insertions(+), 9 deletions(-)

diff --git a/modules/field_ui/field_ui.admin.inc b/modules/field_ui/field_ui.admin.inc
index b594faca3d81..9cd5ee15da7d 100644
--- a/modules/field_ui/field_ui.admin.inc
+++ b/modules/field_ui/field_ui.admin.inc
@@ -1783,12 +1783,6 @@ function field_ui_field_edit_form($form, &$form_state, $instance) {
     '#required' => TRUE,
     '#weight' => -20,
   );
-  $form['instance']['required'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Required field'),
-    '#default_value' => !empty($instance['required']),
-    '#weight' => -10,
-  );
 
   $form['instance']['description'] = array(
     '#type' => 'textarea',
@@ -1796,6 +1790,13 @@ function field_ui_field_edit_form($form, &$form_state, $instance) {
     '#default_value' => !empty($instance['description']) ? $instance['description'] : '',
     '#rows' => 5,
     '#description' => t('Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags', array('@tags' => _field_filter_xss_display_allowed_tags())),
+    '#weight' => -10,
+  );
+
+  $form['instance']['required'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Required field'),
+    '#default_value' => !empty($instance['required']),
     '#weight' => -5,
   );
 
@@ -1842,7 +1843,9 @@ function field_ui_field_edit_form($form, &$form_state, $instance) {
   // Create a form structure for the field values.
   $form['field'] = array(
     '#type' => 'fieldset',
-    '#title' => t('%field field settings', array('%field' => $instance['label'])),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+    '#title' => t('Global settings'),
     '#description' => $description,
     '#tree' => TRUE,
   );
@@ -1869,10 +1872,31 @@ function field_ui_field_edit_form($form, &$form_state, $instance) {
   }
 
   $form['actions'] = array('#type' => 'actions');
-  $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save settings'));
+  $form['actions']['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save settings')
+  );
+  $form['actions']['delete'] = array(
+    '#type' => 'submit',
+    '#value' => t('Delete field'),
+    '#submit' => array('field_ui_field_edit_form_delete_submit'),
+  );
   return $form;
 }
 
+/**
+ * Handle the 'Delete' button on the field instance edit form.
+ */
+function field_ui_field_edit_form_delete_submit($form, &$form_state) {
+  $destination = array();
+  if (isset($_GET['destination'])) {
+    $destination = drupal_get_destination();
+    unset($_GET['destination']);
+  }
+  $instance = $form['#instance'];
+  $form_state['redirect'] = array('admin/structure/types/manage/' . $instance['bundle'] . '/fields/' . $instance['field_name'] . '/delete', array('query' => $destination));
+}
+
 /**
  * Pre-render function for field instance settings.
  *
diff --git a/modules/field_ui/field_ui.module b/modules/field_ui/field_ui.module
index 392418985eee..dfca8cf5242a 100644
--- a/modules/field_ui/field_ui.module
+++ b/modules/field_ui/field_ui.module
@@ -138,7 +138,7 @@ function field_ui_menu() {
             'title' => 'Delete',
             'page callback' => 'drupal_get_form',
             'page arguments' => array('field_ui_field_delete_form', $field_position),
-            'type' => MENU_LOCAL_TASK,
+            'type' => MENU_VISIBLE_IN_BREADCRUMB,
             'weight' => 10,
             'file' => 'field_ui.admin.inc',
           ) + $access;
-- 
GitLab