diff --git includes/admin.inc includes/admin.inc index cdb3666..0a15c43 100644 --- includes/admin.inc +++ includes/admin.inc @@ -1472,6 +1472,15 @@ function views_ui_standard_form_buttons(&$form, &$form_state, $form_id, $name = ); } + // Add the override and update button + if ($form_state['update_name'] == t('Update default display')) { + $form['buttons']['override_update'] = array( + '#type' => 'submit', + '#value' => t('Override and Update'), + '#submit' => array('views_ui_edit_display_form_override_update'), + ); + } + $cancel_submit = function_exists($form_id . '_cancel') ? $form_id . '_cancel' : 'views_ui_standard_cancel'; $form['buttons']['cancel'] = array( '#type' => 'submit', @@ -2292,6 +2301,17 @@ function views_ui_edit_display_form_override($form, &$form_state) { $form_state['rebuild'] = TRUE; } /** + * Override handler and submit views_ui_edit_display_form + */ +function views_ui_edit_display_form_override_update($form, &$form_state) { + $display = &$form_state['view']->display[$form_state['display_id']]; + $display->handler->options_override($form, $form_state); + $display->handler->options_submit($form, $form_state); + + views_ui_cache_set($form_state['view']); +} + +/** * Form to config items in the views UI. */ function views_ui_config_type_form(&$form_state) {