Index: includes/form.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/form.inc,v retrieving revision 1.337 diff -u -p -r1.337 form.inc --- includes/form.inc 24 May 2009 17:39:30 -0000 1.337 +++ includes/form.inc 28 May 2009 12:49:18 -0000 @@ -2356,7 +2356,15 @@ function theme_vertical_tabs($element) { drupal_add_js('misc/vertical-tabs.js', array('weight' => JS_DEFAULT - 1)); drupal_add_css('misc/vertical-tabs.css'); - return '
' . $element['#children'] . '
'; + // Make sure not to overwrite classes. + if (isset($element['#attributes']['class'])) { + $element['#attributes']['class'] = 'vertical-tabs-panes ' . $element['#attributes']['class']; + } + else { + $element['#attributes']['class'] = 'vertical-tabs-panes'; + } + + return '
' . $element['#children'] . '
'; } /** Index: misc/vertical-tabs.js =================================================================== RCS file: /cvs/drupal/drupal/misc/vertical-tabs.js,v retrieving revision 1.4 diff -u -p -r1.4 vertical-tabs.js --- misc/vertical-tabs.js 27 Apr 2009 20:19:35 -0000 1.4 +++ misc/vertical-tabs.js 28 May 2009 12:49:18 -0000 @@ -20,7 +20,15 @@ Drupal.behaviors.verticalTabs = { var focus; // Create the tab column. var list = $(''); - $(this).wrap('
').before(list); + + // Propagate the form-meta-element class to the vertical tabs + // container, if we have that. + var extraClass = ''; + if ($(this).hasClass('form-meta-element')) { + extraClass = ' form-meta-element'; + $(this).removeClass('form-meta-element'); + } + $(this).wrap('
').before(list); // Transform each fieldset into a tab. $('> fieldset', this).each(function () { Index: modules/node/node.css =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.css,v retrieving revision 1.7 diff -u -p -r1.7 node.css --- modules/node/node.css 30 Mar 2009 03:15:40 -0000 1.7 +++ modules/node/node.css 28 May 2009 12:49:18 -0000 @@ -43,3 +43,27 @@ td.revision-current { display: inline; } +#node-form-components-menu { + float: right; + width: 20%; + text-align: right; +} +#node-form-components-menu a { + font-weight: bold; +} +#node-form-components-menu a.link-disabled { + color: #cdcdcd; +} +#node-form .node-form { + float: left; + width: 80%; +} +#node-form-buttons { + margin-top: 0.5em; + float: right; +} +#node-form-buttons input { + display: block; + margin: 0.5em 0; + width: 120px; +} Index: modules/node/node.js =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.js,v retrieving revision 1.4 diff -u -p -r1.4 node.js --- modules/node/node.js 27 Apr 2009 20:19:37 -0000 1.4 +++ modules/node/node.js 28 May 2009 12:49:18 -0000 @@ -32,4 +32,42 @@ Drupal.behaviors.nodeFieldsetSummaries = } }; +Drupal.behaviors.nodeEditMeta = { + attach: function (context) { + + // Add node components menu area for content/meta links and buttons. + $('#node-form .node-form').before('
' + Drupal.t('Content') + ' | ' + Drupal.t('Meta') + '
'); + + // Move buttons to the form components menu area. + $('#node-form-components-menu #node-form-buttons').append($('#node-form .form-submit')); + + $('#node-form .node-form .standard').after('
'); + $('#node-meta-elements').append($('.form-meta-element')); + + // Add click functionality to show and hide meta elements. + $('#node-form-components-menu a').click(function() { + switch ($(this).attr('id')) { + case 'show-node-content-edit': + $('#node-meta-elements').hide(); + $('#node-form .node-form .standard').show(); + $('#show-node-content-edit').addClass('link-disabled'); + $('#show-node-meta-edit').removeClass('link-disabled'); + break; + case 'show-node-meta-edit': + $('#node-meta-elements').show(); + $('#node-form .node-form .standard').hide(); + $('#show-node-meta-edit').addClass('link-disabled'); + $('#show-node-content-edit').removeClass('link-disabled'); + break; + } + // Avoid default click action to fire. + return false; + }); + + // Hide the meta elements by default. + $('#node-meta-elements').hide(); + $('#show-node-content-edit').addClass('link-disabled'); + } +}; + })(jQuery); Index: modules/node/node.pages.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v retrieving revision 1.66 diff -u -p -r1.66 node.pages.inc --- modules/node/node.pages.inc 25 May 2009 15:39:12 -0000 1.66 +++ modules/node/node.pages.inc 28 May 2009 12:49:18 -0000 @@ -156,6 +156,7 @@ function node_form(&$form_state, $node) $form['additional_settings'] = array( '#type' => 'vertical_tabs', + '#attributes' => array('class' => 'form-meta-element'), ); // Add a log field if the "Create new revision" option is checked, or if the