From 668f7c44706e2e05b507c4949e9c06009800f258 Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Sat, 20 Nov 2010 09:06:32 +0000 Subject: #964092 by Stalski, yched: Fixed Errors when integrating fieldgroup rows on 'Manage fields' screen --- modules/field_ui/field_ui.admin.inc | 19 +++++++++---------- modules/field_ui/field_ui.css | 16 ++++++++-------- modules/field_ui/field_ui.js | 35 +++++++++++++++++++---------------- 3 files changed, 36 insertions(+), 34 deletions(-) (limited to 'modules/field_ui') diff --git a/modules/field_ui/field_ui.admin.inc b/modules/field_ui/field_ui.admin.inc index dc1479fc7..8c2bfb0ba 100644 --- a/modules/field_ui/field_ui.admin.inc +++ b/modules/field_ui/field_ui.admin.inc @@ -158,15 +158,14 @@ function field_ui_table_pre_render($elements) { // Add row id and associate JS settings. $id = drupal_html_class($name); $row['#attributes']['id'] = $id; - $row += array( - '#js_settings' => array(), - ); - $row['#js_settings'] += array( - 'rowHandler' => $row['#row_type'], - 'name' => $name, - 'region' => $region_name, - ); - $js_settings[$id] = $row['#js_settings']; + if (isset($row['#js_settings'])) { + $row['#js_settings'] += array( + 'rowHandler' => $row['#row_type'], + 'name' => $name, + 'region' => $region_name, + ); + $js_settings[$id] = $row['#js_settings']; + } } } } @@ -304,7 +303,7 @@ function field_ui_field_overview_form($form, &$form_state, $entity_type, $bundle ), '#parent_options' => array(), '#regions' => array( - 'main' => array(), + 'main' => array('message' => t('No fields are present yet.')), 'add_new' => array('title' => ' '), ), '#attributes' => array( diff --git a/modules/field_ui/field_ui.css b/modules/field_ui/field_ui.css index a084e28b6..68307c324 100644 --- a/modules/field_ui/field_ui.css +++ b/modules/field_ui/field_ui.css @@ -14,20 +14,20 @@ table.field-ui-overview tr.add-new .add-new-placeholder { font-weight: bold; padding-bottom: .5em; } -table.field-ui-overview tr.region-add-new-title { - display: none; -} - -/* 'Manage display' overview */ -#field-display-overview tr.region-title td { +table.field-ui-overview tr.region-title td { font-weight: bold; } -#field-display-overview tr.region-message td { +table.field-ui-overview tr.region-message td { font-style: italic; } -#field-display-overview tr.region-populated { +table.field-ui-overview tr.region-populated { display: none; } +table.field-ui-overview tr.region-add-new-title { + display: none; +} + +/* 'Manage display' overview */ #field-display-overview .field-formatter-summary-cell { line-height: 1em; } diff --git a/modules/field_ui/field_ui.js b/modules/field_ui/field_ui.js index 660e34004..38ece520f 100644 --- a/modules/field_ui/field_ui.js +++ b/modules/field_ui/field_ui.js @@ -114,12 +114,14 @@ Drupal.fieldUIOverview = { $('tr.draggable', table).each(function () { // Extract server-side data for the row. var row = this; - var data = rowsData[row.id]; - data.tableDrag = tableDrag; + if (row.id in rowsData) { + var data = rowsData[row.id]; + data.tableDrag = tableDrag; - // Create the row handler, make it accessible from the DOM row element. - var rowHandler = eval('new rowHandlers.' + data.rowHandler + '(row, data);'); - $(row).data('fieldUIRowHandler', rowHandler); + // Create the row handler, make it accessible from the DOM row element. + var rowHandler = eval('new rowHandlers.' + data.rowHandler + '(row, data);'); + $(row).data('fieldUIRowHandler', rowHandler); + } }); }, @@ -156,17 +158,18 @@ Drupal.fieldUIOverview = { var dragObject = this; var row = dragObject.rowObject.element; var rowHandler = $(row).data('fieldUIRowHandler'); - - var regionRow = $(row).prevAll('tr.region-message').get(0); - var region = regionRow.className.replace(/([^ ]+[ ]+)*region-([^ ]+)-message([ ]+[^ ]+)*/, '$2'); - - if (region != rowHandler.region) { - // Let the row handler deal with the region change. - refreshRows = rowHandler.regionChange(region); - // Update the row region. - rowHandler.region = region; - // AJAX-update the rows. - Drupal.fieldUIOverview.AJAXRefreshRows(refreshRows); + if (rowHandler !== undefined) { + var regionRow = $(row).prevAll('tr.region-message').get(0); + var region = regionRow.className.replace(/([^ ]+[ ]+)*region-([^ ]+)-message([ ]+[^ ]+)*/, '$2'); + + if (region != rowHandler.region) { + // Let the row handler deal with the region change. + refreshRows = rowHandler.regionChange(region); + // Update the row region. + rowHandler.region = region; + // AJAX-update the rows. + Drupal.fieldUIOverview.AJAXRefreshRows(refreshRows); + } } }, -- cgit v1.2.3