diff --git a/config/views.view.archive.yml b/config/views.view.archive.yml index 6e783bd166827da4d179a7b3563d202f22b31678..b5ef6a06f63831fe0523f624cb93d69a0b65778f 100644 --- a/config/views.view.archive.yml +++ b/config/views.view.archive.yml @@ -27,8 +27,6 @@ display: type: basic pager: type: full - style_plugin: default - row_plugin: node sorts: created: id: created @@ -62,6 +60,10 @@ display: group: 0 expose: operator: false + style: + type: default + row: + type: node page: id: page display_title: Page diff --git a/config/views.view.backlinks.yml b/config/views.view.backlinks.yml index 4b06443f0627e82de4064ced460b43d6a8e184c3..c3739e8d746637f7e754fe5addbebbee37d26420 100644 --- a/config/views.view.backlinks.yml +++ b/config/views.view.backlinks.yml @@ -28,10 +28,6 @@ display: type: full options: items_per_page: 30 - style_plugin: html_list - style_options: - type: ol - row_plugin: fields empty: text: id: area @@ -70,6 +66,12 @@ display: group: 0 expose: operator: false + style: + type: html_list + options: + type: ol + row: + type: fields page: id: page display_title: Page @@ -101,8 +103,6 @@ display: row_options: false arguments: false use_more: true - style_plugin: html_list - row_plugin: fields arguments: nid: id: nid @@ -117,3 +117,7 @@ display: specify_validation: 1 validate: type: node + style: + type: html_list + row: + type: fields diff --git a/config/views.view.comments_recent.yml b/config/views.view.comments_recent.yml index 1c62bd486aec53b76dddb1fdc4049668108e7c87..337c356ecaf1cbf6a1b55948d744a9df118aeab2 100644 --- a/config/views.view.comments_recent.yml +++ b/config/views.view.comments_recent.yml @@ -30,8 +30,6 @@ display: type: some options: items_per_page: 5 - style_plugin: html_list - row_plugin: fields relationships: nid: id: nid @@ -63,6 +61,10 @@ display: field: status_extra relationship: nid group: 0 + style: + type: html_list + row: + type: fields page: id: page display_title: Page @@ -78,13 +80,6 @@ display: row_plugin: false row_options: false fields: false - style_plugin: html_list - row_plugin: fields - row_options: - inline: - title: title - timestamp: timestamp - separator: ' ' fields: title: id: title @@ -111,6 +106,15 @@ display: field: comment_body label: '' path: comments/recent + style: + type: html_list + row: + type: fields + options: + inline: + title: title + timestamp: timestamp + separator: ' ' block: id: block display_title: Block diff --git a/config/views.view.frontpage.yml b/config/views.view.frontpage.yml index fb73c42c1ee79c7bef1b166891886667e8932d43..4ad616439855c14b4efc1e0b7b589171587e9871 100644 --- a/config/views.view.frontpage.yml +++ b/config/views.view.frontpage.yml @@ -26,10 +26,12 @@ display: type: basic pager: type: full - style_plugin: default - row_plugin: node - row_options: - links: 1 + style: + type: default + row: + type: node + options: + links: 1 sorts: sticky: id: sticky @@ -82,8 +84,10 @@ display: title: 'Front page feed' pager: type: some - style_plugin: rss - row_plugin: node_rss + style: + type: rss + row: + type: node_rss path: rss.xml displays: default: default diff --git a/config/views.view.glossary.yml b/config/views.view.glossary.yml index 758a6bf089563028abe1aeb43a8f0080518ec17d..88de6990149153d6f3824d51e238c09fbb3c79e4 100644 --- a/config/views.view.glossary.yml +++ b/config/views.view.glossary.yml @@ -29,25 +29,6 @@ display: type: full options: items_per_page: 36 - style_plugin: table - style_options: - columns: - title: title - name: name - changed: changed - default: title - info: - title: - sortable: 1 - separator: '' - name: - sortable: 1 - separator: '' - changed: - sortable: 1 - separator: '' - override: 1 - sticky: 0 fields: title: id: title @@ -91,6 +72,26 @@ display: id: uid table: node field: uid + style: + type: table + options: + columns: + title: title + name: name + changed: changed + default: title + info: + title: + sortable: 1 + separator: '' + name: + sortable: 1 + separator: '' + changed: + sortable: 1 + separator: '' + override: 1 + sticky: 0 page: id: page display_title: Page diff --git a/config/views.view.taxonomy_term.yml b/config/views.view.taxonomy_term.yml index 66c3477ab340db594f491c334ffdcd9433fe3317..8cd3c791369ab60099521096019b4409dad96a2e 100644 --- a/config/views.view.taxonomy_term.yml +++ b/config/views.view.taxonomy_term.yml @@ -26,8 +26,6 @@ display: type: basic pager: type: full - style_plugin: default - row_plugin: node sorts: sticky: id: sticky @@ -75,6 +73,10 @@ display: group: 0 expose: operator: false + style: + type: default + row: + type: node page: id: page display_title: Page @@ -98,9 +100,11 @@ display: type: full options: items_per_page: 15 - style_plugin: rss - row_plugin: node_rss path: taxonomy/term/%/%/feed displays: page: page default: 0 + style: + type: rss + row: + type: node_rss diff --git a/config/views.view.tracker.yml b/config/views.view.tracker.yml index 41f6ce40284ce0e4f49bcdf167d9bf0060616bda..6d4d4a41d303b55aa7b3cd1502c0cefeafca2d44 100644 --- a/config/views.view.tracker.yml +++ b/config/views.view.tracker.yml @@ -29,39 +29,6 @@ display: type: full options: items_per_page: '25' - style_plugin: table - style_options: - columns: - type: type - title: title - name: name - comment_count: comment_count - last_comment_timestamp: last_comment_timestamp - timestamp: title - new_comments: comment_count - default: last_comment_timestamp - info: - type: - sortable: 1 - separator: '' - title: - sortable: 1 - separator: ' ' - name: - sortable: 1 - separator: '' - comment_count: - sortable: 1 - separator: '<br />' - last_comment_timestamp: - sortable: 1 - separator: ' ' - timestamp: - separator: '' - new_comments: - separator: '' - override: 1 - order: desc relationships: uid: id: uid @@ -134,6 +101,40 @@ display: group: 0 expose: operator: false + style: + type: table + options: + columns: + type: type + title: title + name: name + comment_count: comment_count + last_comment_timestamp: last_comment_timestamp + timestamp: title + new_comments: comment_count + default: last_comment_timestamp + info: + type: + sortable: 1 + separator: '' + title: + sortable: 1 + separator: ' ' + name: + sortable: 1 + separator: '' + comment_count: + sortable: 1 + separator: '<br />' + last_comment_timestamp: + sortable: 1 + separator: ' ' + timestamp: + separator: '' + new_comments: + separator: '' + override: 1 + order: desc page: id: page display_title: Page diff --git a/includes/admin.inc b/includes/admin.inc index 528eac8d67ad77f59c912cb8b1629a9dac289229..a83e62bcf09689e1340460cc84a762aeedb3c1bc 100644 --- a/includes/admin.inc +++ b/includes/admin.inc @@ -1963,15 +1963,17 @@ function views_ui_import_validate($form, &$form_state) { continue; } - $plugin = views_get_plugin('style', $display->getOption('style_plugin')); + $style = $display->getOption('style'); + $plugin = views_get_plugin('style', $style['type']); if (!$plugin) { - drupal_set_message(t('Style plugin @plugin is not available.', array('@plugin' => $display->getOption('style_plugin'))), 'error'); + drupal_set_message(t('Style plugin @plugin is not available.', array('@plugin' => $style['type'])), 'error'); $broken = TRUE; } elseif ($plugin->usesRowPlugin()) { - $plugin = views_get_plugin('row', $display->getOption('row_plugin')); + $row = $display->getOption('row'); + $plugin = views_get_plugin('row', $row['type']); if (!$plugin) { - drupal_set_message(t('Row plugin @plugin is not available.', array('@plugin' => $display->getOption('row_plugin'))), 'error'); + drupal_set_message(t('Row plugin @plugin is not available.', array('@plugin' => $row['type'])), 'error'); $broken = TRUE; } } @@ -2122,8 +2124,8 @@ function views_ui_edit_form_get_bucket($type, ViewExecutable $view, $display) { break; case 'field': // Fetch the style plugin info so we know whether to list fields or not. - $name = $view->displayHandlers[$display['id']]->getOption('style_plugin'); - $style_plugin = $view->displayHandlers[$display['id']]->getPlugin('style', $name); + $style = $view->displayHandlers[$display['id']]->getOption('style'); + $style_plugin = $view->displayHandlers[$display['id']]->getPlugin('style', $style['type']); $uses_fields = $style_plugin && $style_plugin->usesFields(); if (!$uses_fields) { $build['fields'][] = array( @@ -3139,6 +3141,7 @@ function views_ui_edit_display_form($form, &$form_state) { if (!$view->setDisplay($display_id)) { views_ajax_error(t('Invalid display id @display', array('@display' => $display_id))); } + $display = &$view->display[$display_id]; // Get form from the handler. $form['options'] = array( @@ -4582,12 +4585,12 @@ function views_ui_config_style_form($form, &$form_state) { $form['#section'] = $display_id . '-' . $type . '-style-options'; - $plugin = views_get_plugin('style', $handler->options['style_plugin']); + $plugin = views_get_plugin('style', $handler->options['style']['type']); if ($plugin) { $form['style_options'] = array( '#tree' => TRUE, ); - $plugin->init($view, $view->display[$display_id], $handler->options['style_options']); + $plugin->init($view, $view->display[$display_id], $handler->options['style']['options']); $plugin->buildOptionsForm($form['style_options'], $form_state); } diff --git a/lib/Drupal/views/Plugin/views/access/AccessPluginBase.php b/lib/Drupal/views/Plugin/views/access/AccessPluginBase.php index 738d7123c680c4156580c2059441fc679978842c..a25322339f2dab7e751c1c072b9f817560c6e9eb 100644 --- a/lib/Drupal/views/Plugin/views/access/AccessPluginBase.php +++ b/lib/Drupal/views/Plugin/views/access/AccessPluginBase.php @@ -34,16 +34,12 @@ abstract class AccessPluginBase extends PluginBase { * @param $display * The display handler. */ - public function init(ViewExecutable $view, &$display) { + public function init(ViewExecutable $view, &$display, $options = NULL) { $this->setOptionDefaults($this->options, $this->defineOptions()); $this->view = &$view; $this->displayHandler = &$display; - if (is_object($display)) { - $options = $display->getOption('access'); - // Overlay incoming options on top of defaults - $this->unpackOptions($this->options, $options); - } + $this->unpackOptions($this->options, $options); } /** diff --git a/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php b/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php index 1d2e4fc6b4f25368953edbef281d5078de4ca04f..8cbec066d37b2574ecbeb01efaa0c7c1d118bd51 100644 --- a/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php +++ b/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php @@ -63,16 +63,12 @@ abstract class CachePluginBase extends PluginBase { * @param $display * The display handler. */ - public function init(ViewExecutable $view, &$display) { + public function init(ViewExecutable $view, &$display, $options = NULL) { $this->setOptionDefaults($this->options, $this->defineOptions()); $this->view = &$view; $this->displayHandler = &$display; - if (is_object($display)) { - $options = $display->getOption('cache'); - // Overlay incoming options on top of defaults - $this->unpackOptions($this->options, $options); - } + $this->unpackOptions($this->options, $options); } /** diff --git a/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php b/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php index d58354d0998dcdf953b2e479c921dd430ed6b492..1026ae4a1803b056a0af61ea96a1e8718d483728 100644 --- a/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php +++ b/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php @@ -352,10 +352,8 @@ public function attachTo($display_id) { } */ public function defaultableSections($section = NULL) { $sections = array( - 'access' => array('access', 'access_options'), - 'access_options' => array('access', 'access_options'), - 'cache' => array('cache', 'cache_options'), - 'cache_options' => array('cache', 'cache_options'), + 'access' => array('access'), + 'cache' => array('cache'), 'title' => array('title'), 'css_class' => array('css_class'), 'use_ajax' => array('use_ajax'), @@ -369,10 +367,8 @@ public function defaultableSections($section = NULL) { 'link_display' => array('link_display', 'link_url'), // Force these to cascade properly. - 'style_plugin' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'), - 'style_options' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'), - 'row_plugin' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'), - 'row_options' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'), + 'style' => array('style', 'row'), + 'row' => array('style', 'row'), 'pager' => array('pager', 'pager_options'), 'pager_options' => array('pager', 'pager_options'), @@ -427,21 +423,17 @@ protected function defineOptions() { 'hide_attachment_summary' => TRUE, 'hide_admin_links' => FALSE, 'pager' => TRUE, - 'pager_options' => TRUE, 'use_more' => TRUE, 'use_more_always' => TRUE, 'use_more_text' => TRUE, 'exposed_form' => TRUE, - 'exposed_form_options' => TRUE, 'link_display' => TRUE, 'link_url' => '', 'group_by' => TRUE, - 'style_plugin' => TRUE, - 'style_options' => TRUE, - 'row_plugin' => TRUE, - 'row_options' => TRUE, + 'style' => TRUE, + 'row' => TRUE, 'header' => TRUE, 'footer' => TRUE, @@ -523,12 +515,14 @@ protected function defineOptions() { 'access' => array( 'contains' => array( 'type' => array('default' => 'none'), - ), + 'options' => array('default' => array()), + ), ), 'cache' => array( 'contains' => array( 'type' => array('default' => 'none'), - ), + 'options' => array('default' => array()), + ), ), 'query' => array( 'contains' => array( @@ -536,12 +530,6 @@ protected function defineOptions() { 'options' => array('default' => array()), ), ), - // Note that exposed_form plugin has options in a separate array, - // while access and cache do not. access and cache are legacy and - // that pattern should not be repeated, but it is left as is to - // reduce the need to modify older views. Let's consider the - // pattern used here to be the template from which future plugins - // should be copied. 'exposed_form' => array( 'contains' => array( 'type' => array('default' => 'basic'), @@ -554,21 +542,17 @@ protected function defineOptions() { 'options' => array('default' => array()), ), ), - - // Note that the styles have their options completely independent. - // Like access and cache above, this is a legacy pattern and - // should not be repeated. - 'style_plugin' => array( - 'default' => 'default', - ), - 'style_options' => array( - 'default' => array(), - ), - 'row_plugin' => array( - 'default' => 'fields', + 'style' => array( + 'contains' => array( + 'type' => array('default' => 'default'), + 'options' => array('default' => array()), + ), ), - 'row_options' => array( - 'default' => array(), + 'row' => array( + 'contains' => array( + 'type' => array('default' => 'fields'), + 'options' => array('default' => array()), + ), ), 'exposed_block' => array( @@ -738,8 +722,8 @@ public function getOption($option) { * @return bool */ public function usesFields() { - $name = $this->getOption('style_plugin'); - $plugin = $this->getPlugin('style', $name); + $style = $this->getOption('style'); + $plugin = $this->getPlugin('style', $style['type']); if ($plugin) { return $plugin->usesFields(); } @@ -759,15 +743,6 @@ public function getPlugin($type = 'style', $name = NULL) { static $cache = array(); if (!isset($cache[$type][$name])) { switch ($type) { - case 'style': - case 'row': - $option_name = $type . '_plugin'; - $options = $this->getOption($type . '_options'); - if (!$name) { - $name = $this->getOption($option_name); - } - - break; case 'query': $views_data = views_fetch_data($this->view->storage->base_table); $name = !empty($views_data['table']['base']['query class']) ? $views_data['table']['base']['query class'] : 'views_query'; @@ -778,15 +753,7 @@ public function getPlugin($type = 'style', $name = NULL) { $name = $options['type']; } - // access & cache store their options as siblings with the - // type; all others use an 'options' array. - if ($type != 'access' && $type != 'cache') { - if (!isset($options['options'])) { -// debug($type); -// debug($options); - } - $options = $options['options']; - } + $options = $options['options']; } if ($type != 'query') { @@ -1089,15 +1056,16 @@ public function optionsSummary(&$categories, &$options) { 'desc' => t('Change the title that this display will use.'), ); - $name = $this->getOption('style_plugin'); + $style_options = $this->getOption('style'); + $name = $style_options['type']; $style_plugin = views_get_plugin_definition('style', $name); - $style_plugin_instance = $this->getPlugin('style', $name); + $style_plugin_instance = $this->getPlugin('style'); $style_summary = empty($style_plugin['title']) ? t('Missing style plugin') : $style_plugin_instance->summaryTitle(); $style_title = empty($style_plugin['title']) ? t('Missing style plugin') : $style_plugin_instance->pluginTitle(); $style = ''; - $options['style_plugin'] = array( + $options['style'] = array( 'category' => 'format', 'title' => t('Format'), 'value' => $style_title, @@ -1107,17 +1075,18 @@ public function optionsSummary(&$categories, &$options) { // This adds a 'Settings' link to the style_options setting if the style has options. if ($style_plugin_instance->usesOptions()) { - $options['style_plugin']['links']['style_options'] = t('Change settings for this format'); + $options['style']['links']['style_options'] = t('Change settings for this format'); } if ($style_plugin_instance->usesRowPlugin()) { - $name = $this->getOption('row_plugin'); + $row_options = $this->getOption('row'); + $name = $row_options['type']; $row_plugin = views_get_plugin_definition('row', $name); $row_plugin_instance = $this->getPlugin('row', $name); $row_summary = empty($row_plugin['title']) ? t('Missing style plugin') : $row_plugin_instance->summaryTitle(); $row_title = empty($row_plugin['title']) ? t('Missing style plugin') : $row_plugin_instance->pluginTitle(); - $options['row_plugin'] = array( + $options['row'] = array( 'category' => 'format', 'title' => t('Show'), 'value' => $row_title, @@ -1126,7 +1095,7 @@ public function optionsSummary(&$categories, &$options) { ); // This adds a 'Settings' link to the row_options setting if the row style has options. if ($row_plugin_instance->usesOptions()) { - $options['row_plugin']['links']['row_options'] = t('Change settings for this style'); + $options['row']['links']['row_options'] = t('Change settings for this style'); } } if ($this->usesAJAX()) { @@ -1493,17 +1462,12 @@ public function buildOptionsForm(&$form, &$form_state) { break; case 'access_options': - $access = $this->getOption('access'); $plugin = $this->getPlugin('access'); $form['#title'] .= t('Access options'); if ($plugin) { $form['access_options'] = array( '#tree' => TRUE, ); - $form['access_options']['type'] = array( - '#type' => 'value', - '#value' => $access['type'], - ); $plugin->buildOptionsForm($form['access_options'], $form_state); } break; @@ -1532,17 +1496,12 @@ public function buildOptionsForm(&$form, &$form_state) { } break; case 'cache_options': - $cache = $this->getOption('cache'); $plugin = $this->getPlugin('cache'); $form['#title'] .= t('Caching options'); if ($plugin) { $form['cache_options'] = array( '#tree' => TRUE, ); - $form['cache_options']['type'] = array( - '#type' => 'value', - '#value' => $cache['type'], - ); $plugin->buildOptionsForm($form['cache_options'], $form_state); } break; @@ -1609,20 +1568,21 @@ public function buildOptionsForm(&$form, &$form_state) { $form['field_language']['#markup'] = t("You don't have translatable entity types."); } break; - case 'style_plugin': + case 'style': $form['#title'] .= t('How should this view be styled'); $form['style_plugin'] = array( '#type' => 'radios', '#options' => views_fetch_plugin_names('style', $this->getStyleType(), array($this->view->storage->base_table)), - '#default_value' => $this->getOption('style_plugin'), + '#default_value' => $style['type'], '#description' => t('If the style you choose has settings, be sure to click the settings button that will appear next to it in the View summary.'), ); - $name = $this->getOption('style_plugin'); - $style_plugin = $this->getPlugin('style', $name); + $style_plugin = $this->getPlugin('style', $style['type']); if ($style_plugin->usesOptions()) { $form['markup'] = array( - '#markup' => '<div class="form-item description">' . t('You may also adjust the !settings for the currently selected style.', array('!settings' => $this->optionLink(t('settings'), 'style_options'))) . '</div>', + '#prefix' => '<div class="form-item description">', + '#suffix' => '</div>', + '#markup' => t('You may also adjust the !settings for the currently selected style.', array('!settings' => $this->optionLink(t('settings'), 'style_options'))), ); } @@ -1630,19 +1590,19 @@ public function buildOptionsForm(&$form, &$form_state) { case 'style_options': $form['#title'] .= t('Style options'); $style = TRUE; - $type = 'style_plugin'; - $name = $this->getOption('style_plugin'); + $style_plugin = $this->getOption('style'); + $name = $style_plugin['type']; case 'row_options': if (!isset($name)) { - $name = $this->getOption('row_plugin'); + $row_plugin = $this->getOption('row'); + $name = $row_plugin['type']; } // if row, $style will be empty. if (empty($style)) { $form['#title'] .= t('Row style options'); - $type = 'row_plugin'; } - $plugin = $this->getPlugin(empty($style) ? 'row' : 'style'); + $plugin = $this->getPlugin(empty($style) ? 'row' : 'style', $name); if ($plugin) { $form[$form_state['section']] = array( '#tree' => TRUE, @@ -1650,19 +1610,20 @@ public function buildOptionsForm(&$form, &$form_state) { $plugin->buildOptionsForm($form[$form_state['section']], $form_state); } break; - case 'row_plugin': + case 'row': $form['#title'] .= t('How should each row in this view be styled'); $form['row_plugin'] = array( '#type' => 'radios', '#options' => views_fetch_plugin_names('row', $this->getStyleType(), array($this->view->storage->base_table)), - '#default_value' => $this->getOption('row_plugin'), + '#default_value' => $row['type'], ); - $name = $this->getOption('row_plugin'); - $row_plugin = $this->getPlugin('row', $name); - if ($row_plugin->usesOptions()) { + $row_plugin_instance = $this->getPlugin('row', $row['type']); + if ($row_plugin_instance->usesOptions()) { $form['markup'] = array( - '#markup' => '<div class="form-item description">' . t('You may also adjust the !settings for the currently selected row style.', array('!settings' => $this->optionLink(t('settings'), 'row_options'))) . '</div>', + '#prefix' => '<div class="form-item description">', + '#suffix' => '</div>', + '#markup' => t('You may also adjust the !settings for the currently selected row style.', array('!settings' => $this->optionLink(t('settings'), 'row_options'))), ); } @@ -2128,7 +2089,7 @@ public function validateOptionsForm(&$form, &$form_state) { } foreach ($this->view->display as $id => $display) { - if ($id != $this->view->current_display && ($form_state['values']['display_id'] == $id || (isset($display['new_id']) && $form_state['values']['display_id'] == $display['new_id']))) { + if ($id != $this->view->current_display && ($form_state['values']['display_id'] == $id || (isset($display->new_id) && $form_state['values']['display_id'] == $display->new_id))) { form_error($form['display_id'], t('Display id should be unique.')); } } @@ -2216,10 +2177,12 @@ public function submitOptionsForm(&$form, &$form_state) { break; case 'access_options': - $plugin = views_get_plugin('access', $form_state['values'][$section]['type']); + $plugin = $this->getPlugin('access'); if ($plugin) { + $access = $this->getOption('access'); $plugin->submitOptionsForm($form['access_options'], $form_state); - $this->setOption('access', $form_state['values'][$section]); + $access['options'] = $form_state['values'][$section]; + $this->setOption('access', $access); } break; case 'cache': @@ -2237,10 +2200,12 @@ public function submitOptionsForm(&$form, &$form_state) { break; case 'cache_options': - $plugin = views_get_plugin('cache', $form_state['values'][$section]['type']); + $plugin = $this->getPlugin('cache'); if ($plugin) { + $cache = $this->getOption('cache'); $plugin->submitOptionsForm($form['cache_options'], $form_state); - $this->setOption('cache', $form_state['values'][$section]); + $cache['options'] = $form_state['values'][$section]; + $this->setOption('cache', $cache); } break; case 'query': @@ -2277,14 +2242,15 @@ public function submitOptionsForm(&$form, &$form_state) { case 'group_by': $this->setOption($section, $form_state['values'][$section]); break; - case 'row_plugin': + case 'row': // This if prevents resetting options to default if they don't change // the plugin. - if ($this->getOption($section) != $form_state['values'][$section]) { - $plugin = views_get_plugin('row', $form_state['values'][$section]); + $row = $this->getOption('row'); + if ($row['type'] != $form_state['values'][$section]['type']) { + $plugin = views_get_plugin('row', $form_state['values'][$section]['type']); if ($plugin) { - $this->setOption($section, $form_state['values'][$section]); - $this->setOption('row_options', array()); + $row = array('type' => $form_state['values'][$section]['type']); + $this->setOption($section, $row); // send ajax form to options page if we use it. if ($plugin->usesOptions()) { @@ -2293,14 +2259,15 @@ public function submitOptionsForm(&$form, &$form_state) { } } break; - case 'style_plugin': + case 'style': // This if prevents resetting options to default if they don't change // the plugin. - if ($this->getOption($section) != $form_state['values'][$section]) { - $plugin = views_get_plugin('style', $form_state['values'][$section]); + $style = $this->getOption('style'); + if ($style['type'] != $form_state['values'][$section]['type']) { + $plugin = views_get_plugin('style', $form_state['values'][$section]['type']); if ($plugin) { - $this->setOption($section, $form_state['values'][$section]); - $this->setOption('style_options', array()); + $row = array('type' => $form_state['values'][$section]['type']); + $this->setOption($section, $row); // send ajax form to options page if we use it. if ($plugin->usesOptions()) { views_ui_add_form_to_stack('display', $this->view, $this->display['id'], array('style_options')); @@ -2309,14 +2276,22 @@ public function submitOptionsForm(&$form, &$form_state) { } break; case 'style_options': - $style = TRUE; + $plugin = $this->getPlugin('style'); + if ($plugin) { + $style = $this->getOption('style'); + $plugin->submitOptionsForm($form['style_options'], $form_state); + $style['options'] = $form_state['values'][$section]; + $this->setOption('style', $style); + } + break; case 'row_options': - // if row, $style will be empty. - $plugin = $this->getPlugin(empty($style) ? 'row' : 'style'); + $plugin = $this->getPlugin('row'); if ($plugin) { - $plugin->submitOptionsForm($form['options'][$section], $form_state); + $row = $this->getOption('row'); + $plugin->submitOptionsForm($form['row_options'], $form_state); + $row['options'] = $form_state['values'][$section]; + $this->setOption('row', $row); } - $this->setOption($section, $form_state['values'][$section]); break; case 'exposed_block': $this->setOption($section, (bool) $form_state['values'][$section]); diff --git a/lib/Drupal/views/Plugin/views/display/Feed.php b/lib/Drupal/views/Plugin/views/display/Feed.php index dbc2ab38a99eec8efd8fc8c66edf3d14d906d329..5b9de864066422f60880ba294eeeeb87886baf31 100644 --- a/lib/Drupal/views/Plugin/views/display/Feed.php +++ b/lib/Drupal/views/Plugin/views/display/Feed.php @@ -52,8 +52,8 @@ public function init(ViewExecutable $view, &$display, $options = NULL) { // which we don't know until init(). $row_plugins = views_fetch_plugin_names('row', $this->getStyleType(), array($view->storage->base_table)); $default_row_plugin = key($row_plugins); - if ($this->options['row_plugin'] == '') { - $this->options['row_plugin'] = $default_row_plugin; + if (empty($this->options['row']['type'])) { + $this->options['row']['type'] = $default_row_plugin; } } @@ -92,7 +92,7 @@ public function render() { } public function defaultableSections($section = NULL) { - if (in_array($section, array('style_options', 'style_plugin', 'row_options', 'row_plugin'))) { + if (in_array($section, array('style', 'row'))) { return FALSE; } @@ -114,14 +114,12 @@ protected function defineOptions() { $options['displays'] = array('default' => array()); // Overrides for standard stuff: - $options['style_plugin']['default'] = 'rss'; - $options['style_options']['default'] = array('description' => ''); + $options['style']['contains']['type']['default'] = 'rss'; + $options['style']['contains']['options']['default'] = array('description' => ''); $options['sitename_title']['default'] = FALSE; - $options['row_plugin']['default'] = ''; - $options['defaults']['default']['style_plugin'] = FALSE; - $options['defaults']['default']['style_options'] = FALSE; - $options['defaults']['default']['row_plugin'] = FALSE; - $options['defaults']['default']['row_options'] = FALSE; + $options['row']['contains']['type']['default'] = ''; + $options['defaults']['default']['style'] = FALSE; + $options['defaults']['default']['row'] = FALSE; return $options; } diff --git a/lib/Drupal/views/Plugin/views/row/RowPluginBase.php b/lib/Drupal/views/Plugin/views/row/RowPluginBase.php index 2e6348e8acfcf5aa88c5a59654c5c331bd368e9c..2e4fe83f0efa9d8adfc4799126268bdecd9ad6cd 100644 --- a/lib/Drupal/views/Plugin/views/row/RowPluginBase.php +++ b/lib/Drupal/views/Plugin/views/row/RowPluginBase.php @@ -47,8 +47,8 @@ public function init(ViewExecutable $view, &$display, $options = NULL) { $this->view = &$view; $this->displayHandler = &$display; - // Overlay incoming options on top of defaults. - $this->unpackOptions($this->options, isset($options) ? $options : $display->getOption('row_options')); + // Overlay incoming options on top of defaults + $this->unpackOptions($this->options, $options); } /** diff --git a/lib/Drupal/views/Plugin/views/style/StylePluginBase.php b/lib/Drupal/views/Plugin/views/style/StylePluginBase.php index 4bcc5a08b534290c616a74d6cdb66dea6e1849a2..8f110673c92d037f4427c3065df5c2ef05a81039 100644 --- a/lib/Drupal/views/Plugin/views/style/StylePluginBase.php +++ b/lib/Drupal/views/Plugin/views/style/StylePluginBase.php @@ -95,10 +95,9 @@ public function init(ViewExecutable $view, &$display, $options = NULL) { $this->view = &$view; $this->displayHandler = &$display; - // Overlay incoming options on top of defaults - $this->unpackOptions($this->options, isset($options) ? $options : $display->getOption('style_options')); + $this->unpackOptions($this->options, $options); - if ($this->usesRowPlugin() && $display->getOption('row_plugin')) { + if ($this->usesRowPlugin() && $display->getOption('row')) { $this->row_plugin = $display->getPlugin('row'); } diff --git a/lib/Drupal/views/Plugin/views/wizard/WizardPluginBase.php b/lib/Drupal/views/Plugin/views/wizard/WizardPluginBase.php index add64cea14e6ba8b0e4168641a6af3dc2952a119..d62f7edf1904a13bc1b4aa35b9c9d34c4a18cbe0 100644 --- a/lib/Drupal/views/Plugin/views/wizard/WizardPluginBase.php +++ b/lib/Drupal/views/Plugin/views/wizard/WizardPluginBase.php @@ -609,7 +609,7 @@ protected function build_display_options($form, $form_state) { protected function alter_display_options(&$display_options, $form, $form_state) { foreach ($display_options as $display_type => $options) { // Allow style plugins to hook in and provide some settings. - $style_plugin = views_get_plugin('style', $options['style_plugin']); + $style_plugin = views_get_plugin('style', $options['style']['type']); $style_plugin->wizard_submit($form, $form_state, $this, $display_options, $display_type); } } @@ -669,8 +669,8 @@ protected function default_display_options() { $display_options['query']['type'] = 'views_query'; $display_options['exposed_form']['type'] = 'basic'; $display_options['pager']['type'] = 'full'; - $display_options['style_plugin'] = 'default'; - $display_options['row_plugin'] = 'fields'; + $display_options['style']['type'] = 'default'; + $display_options['row']['type'] = 'fields'; // Add a least one field so the view validates and the user has a preview. // The base field can provide a default in its base settings; otherwise, @@ -856,7 +856,6 @@ protected function default_display_sorts_user($form, $form_state) { return $sorts; } - /** * Retrieves the page display options. * @@ -873,11 +872,11 @@ protected function page_display_options(array $form, array &$form_state) { $page = $form_state['values']['page']; $display_options['title'] = $page['title']; $display_options['path'] = $page['path']; - $display_options['style_plugin'] = $page['style']['style_plugin']; + $display_options['style'] = array('type' => $page['style']['style_plugin']); // Not every style plugin supports row style plugins. // Make sure that the selected row plugin is a valid one. $options = $this->row_style_options(); - $display_options['row_plugin'] = (isset($page['style']['row_plugin']) && isset($options[$page['style']['row_plugin']])) ? $page['style']['row_plugin'] : 'fields'; + $display_options['row'] = array('type' => (isset($page['style']['row_plugin']) && isset($options[$page['style']['row_plugin']])) ? $page['style']['row_plugin'] : 'fields'); // If the specific 0 items per page, use no pager. if (empty($page['items_per_page'])) { @@ -918,8 +917,8 @@ protected function block_display_options(array $form, array &$form_state) { $display_options = array(); $block = $form_state['values']['block']; $display_options['title'] = $block['title']; - $display_options['style_plugin'] = $block['style']['style_plugin']; - $display_options['row_plugin'] = isset($block['style']['row_plugin']) ? $block['style']['row_plugin'] : 'fields'; + $display_options['style'] = array('type' => $block['style']['style_plugin']); + $display_options['row'] = array('type' => isset($block['style']['row_plugin']) ? $block['style']['row_plugin'] : 'fields'); $display_options['pager']['type'] = $block['pager'] ? 'full' : (empty($block['items_per_page']) ? 'none' : 'some'); $display_options['pager']['options']['items_per_page'] = $block['items_per_page']; return $display_options; @@ -939,8 +938,8 @@ protected function block_display_options(array $form, array &$form_state) { protected function page_feed_display_options($form, $form_state) { $display_options = array(); $display_options['pager']['type'] = 'some'; - $display_options['style_plugin'] = 'rss'; - $display_options['row_plugin'] = $form_state['values']['page']['feed_properties']['row_plugin']; + $display_options['style'] = array('type' => 'rss'); + $display_options['row'] = array('type' => $form_state['values']['page']['feed_properties']['row_plugin']); $display_options['path'] = $form_state['values']['page']['feed_properties']['path']; $display_options['title'] = $form_state['values']['page']['title']; $display_options['displays'] = array( @@ -971,8 +970,6 @@ protected function page_feed_display_options($form, $form_state) { */ protected function setDefaultOptions($options, DisplayPluginBase $display, DisplayPluginBase $default_display) { foreach ($options as $option => $value) { - // @todo: Wouldn't it be possible to call set_override and set_option - // instead. // If the default display supports this option, set the value there. // Otherwise, set it on the provided display. $default_value = $default_display->getOption($option); diff --git a/lib/Drupal/views/Tests/Comment/WizardTest.php b/lib/Drupal/views/Tests/Comment/WizardTest.php index e27339a2d3b0db80c2a480323ca5bd905b4485bd..03d53f6fe172d0d499989be4f423e06ed60e36e0 100644 --- a/lib/Drupal/views/Tests/Comment/WizardTest.php +++ b/lib/Drupal/views/Tests/Comment/WizardTest.php @@ -72,7 +72,8 @@ public function testCommentWizard() { $view = views_get_view($view['name']); $view->initDisplay(); $view->initHandlers(); - $this->assertEqual($view->display_handler->getOption('row_plugin'), 'comment'); + $row = $view->display_handler->getOption('row'); + $this->assertEqual($row['type'], 'comment'); // Check for the default filters. $this->assertEqual($view->filter['status']->table, 'comment'); diff --git a/lib/Drupal/views/Tests/Plugin/AccessTest.php b/lib/Drupal/views/Tests/Plugin/AccessTest.php index 3eb899b9f1a605674a62685b21e916d0256393cb..1a2d034b4949e8e5efd8ab85e2dd1396ab493976 100644 --- a/lib/Drupal/views/Tests/Plugin/AccessTest.php +++ b/lib/Drupal/views/Tests/Plugin/AccessTest.php @@ -69,7 +69,7 @@ function testAccessPerm() { function testAccessRole() { $view = $this->createViewFromConfig('test_access_role'); - $view->displayHandlers['default']->options['access']['role'] = array( + $view->displayHandlers['default']->options['access']['options']['role'] = array( $this->normal_role => $this->normal_role, ); diff --git a/lib/Drupal/views/Tests/Plugin/CacheTest.php b/lib/Drupal/views/Tests/Plugin/CacheTest.php index 20f98348b662bc3db89eb0962b464face847adb7..683f6302a3b6ebb3c4b44ba2b958b085af0449a2 100644 --- a/lib/Drupal/views/Tests/Plugin/CacheTest.php +++ b/lib/Drupal/views/Tests/Plugin/CacheTest.php @@ -88,8 +88,10 @@ function testTimeCaching() { $view = $this->getView(); $view->display_handler->overrideOption('cache', array( 'type' => 'time', - 'results_lifespan' => '3600', - 'output_lifespan' => '3600', + 'options' => array( + 'results_lifespan' => '3600', + 'output_lifespan' => '3600' + ) )); $this->executeView($view); @@ -108,8 +110,10 @@ function testTimeCaching() { $view = $this->getView(); $view->display_handler->overrideOption('cache', array( 'type' => 'time', - 'results_lifespan' => '3600', - 'output_lifespan' => '3600', + 'options' => array( + 'results_lifespan' => '3600', + 'output_lifespan' => '3600' + ) )); $this->executeView($view); @@ -127,6 +131,7 @@ function testNoneCaching() { $view = $this->getView(); $view->display_handler->overrideOption('cache', array( 'type' => 'none', + 'options' => array() )); $this->executeView($view); @@ -146,6 +151,7 @@ function testNoneCaching() { $view = $this->getView(); $view->display_handler->overrideOption('cache', array( 'type' => 'none', + 'options' => array() )); $this->executeView($view); @@ -164,7 +170,9 @@ function testHeaderStorage() { $view->storage->name = 'test_cache_header_storage'; $view->display_handler->overrideOption('cache', array( 'type' => 'time', - 'output_lifespan' => '3600', + 'options' => array( + 'output_lifespan' => '3600' + ) )); $view->preview(); diff --git a/lib/Drupal/views/Tests/Plugin/StyleMappingTest.php b/lib/Drupal/views/Tests/Plugin/StyleMappingTest.php index 97882922de5544721716860b20e18649c35a857d..d68857a5bcdd443f985d5c8fb6bcca981fde6fa8 100644 --- a/lib/Drupal/views/Tests/Plugin/StyleMappingTest.php +++ b/lib/Drupal/views/Tests/Plugin/StyleMappingTest.php @@ -36,7 +36,7 @@ public function testMappedOutput() { $this->assertTrue(strpos($output, 'job') === FALSE, 'The job field is added to the view but not in the mapping.'); $view = $this->getView(); - $view->displayHandlers['default']->options['style_options']['mapping']['name_field'] = 'job'; + $view->displayHandlers['default']->options['style']['options']['mapping']['name_field'] = 'job'; $output = $this->mappedOutputHelper($view); $this->assertTrue(strpos($output, 'job') !== FALSE, 'The job field is added to the view and is in the mapping.'); } diff --git a/lib/Drupal/views/Tests/Plugin/StyleTest.php b/lib/Drupal/views/Tests/Plugin/StyleTest.php index a6fc58f97908fe72447e48a86c8aad863cefa9e5..1c4f628bbbebd572bd458d12d6517b02e6762766 100644 --- a/lib/Drupal/views/Tests/Plugin/StyleTest.php +++ b/lib/Drupal/views/Tests/Plugin/StyleTest.php @@ -29,7 +29,9 @@ public static function getInfo() { */ public function testStyle() { $view = $this->getView(); - $view->display_handler->setOption('style_plugin', 'test_style'); + $style = $view->display_handler->getOption('style'); + $style['type'] = 'test_style'; + $view->display_handler->setOption('style', $style); $view->initDisplay(); $view->initStyle(); $this->assertTrue($view->style_plugin instanceof \Drupal\views_test_data\Plugin\views\style\StyleTest, 'Make sure the right style plugin class is loaded.'); @@ -43,8 +45,12 @@ public function testStyle() { // This run use the test row plugin and render with it. $view = $this->getView(); - $view->display_handler->setOption('style_plugin', 'test_style'); - $view->display_handler->setOption('row_plugin', 'test_row'); + $style = $view->display_handler->getOption('style'); + $style['type'] = 'test_style'; + $view->display_handler->setOption('style', $style); + $row = $view->display_handler->getOption('row'); + $row['type'] = 'test_row'; + $view->display_handler->setOption('row', $row); $view->initDisplay(); $view->initStyle(); $view->style_plugin->setUsesRowPlugin(TRUE); diff --git a/lib/Drupal/views/ViewExecutable.php b/lib/Drupal/views/ViewExecutable.php index 685783153ec06b1926cc666f8e7cdbedebb922e1..4639ca938ba2ba7039f1be141bd27ff5823cca0d 100644 --- a/lib/Drupal/views/ViewExecutable.php +++ b/lib/Drupal/views/ViewExecutable.php @@ -787,8 +787,9 @@ public function initStyle() { } if (!isset($this->plugin_name)) { - $this->plugin_name = $this->display_handler->getOption('style_plugin'); - $this->style_options = $this->display_handler->getOption('style_options'); + $style = $this->display_handler->getOption('style'); + $this->plugin_name = $style['type']; + $this->style_options = $style['options']; } $this->style_plugin = views_get_plugin('style', $this->plugin_name); diff --git a/lib/Views/comment/Plugin/views/wizard/Comment.php b/lib/Views/comment/Plugin/views/wizard/Comment.php index 1171de935d6357ca01c34825362b288f9b6f6f82..dd67c520e329715b4d6bce41d6f596899d46d070 100644 --- a/lib/Views/comment/Plugin/views/wizard/Comment.php +++ b/lib/Views/comment/Plugin/views/wizard/Comment.php @@ -127,8 +127,8 @@ protected function block_display_options(array $form, array &$form_state) { protected function display_options_row(&$display_options, $row_plugin, $row_options) { switch ($row_plugin) { case 'comment': - $display_options['row_plugin'] = 'comment'; - $display_options['row_options']['links'] = !empty($row_options['links']); + $display_options['row']['type'] = 'comment'; + $display_options['row']['options']['links'] = !empty($row_options['links']); break; } } diff --git a/lib/Views/node/Plugin/views/wizard/Node.php b/lib/Views/node/Plugin/views/wizard/Node.php index 979cb4a39db62d4cb72dee97ff444c14bda4d68b..74da6acb377113b375d3ce6a54644582fbe488a6 100644 --- a/lib/Views/node/Plugin/views/wizard/Node.php +++ b/lib/Views/node/Plugin/views/wizard/Node.php @@ -219,23 +219,23 @@ protected function block_display_options(array $form, array &$form_state) { protected function display_options_row(&$display_options, $row_plugin, $row_options) { switch ($row_plugin) { case 'full_posts': - $display_options['row_plugin'] = 'node'; - $display_options['row_options']['build_mode'] = 'full'; - $display_options['row_options']['links'] = !empty($row_options['links']); - $display_options['row_options']['comments'] = !empty($row_options['comments']); + $display_options['row']['type'] = 'node'; + $display_options['row']['options']['build_mode'] = 'full'; + $display_options['row']['options']['links'] = !empty($row_options['links']); + $display_options['row']['options']['comments'] = !empty($row_options['comments']); break; case 'teasers': - $display_options['row_plugin'] = 'node'; - $display_options['row_options']['build_mode'] = 'teaser'; - $display_options['row_options']['links'] = !empty($row_options['links']); - $display_options['row_options']['comments'] = !empty($row_options['comments']); + $display_options['row']['type'] = 'node'; + $display_options['row']['options']['build_mode'] = 'teaser'; + $display_options['row']['options']['links'] = !empty($row_options['links']); + $display_options['row']['options']['comments'] = !empty($row_options['comments']); break; case 'titles_linked': - $display_options['row_plugin'] = 'fields'; + $display_options['row']['type'] = 'fields'; $display_options['field']['title']['link_to_node'] = 1; break; case 'titles': - $display_options['row_plugin'] = 'fields'; + $display_options['row']['type'] = 'fields'; $display_options['field']['title']['link_to_node'] = 0; break; } diff --git a/tests/views_test_config/config/views.view.test_access_none.yml b/tests/views_test_config/config/views.view.test_access_none.yml index f40fbf0be1a0636424f1bf3eaf9db64c0281bc33..79019ef9f79c59a3e092fea1254c173a45e7f71c 100644 --- a/tests/views_test_config/config/views.view.test_access_none.yml +++ b/tests/views_test_config/config/views.view.test_access_none.yml @@ -14,8 +14,10 @@ display: type: basic pager: type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_access_perm.yml b/tests/views_test_config/config/views.view.test_access_perm.yml index 09064e27d5daad9fd2536ebb46793d49a6551f16..f509323b434483bae2d11ad8e7a0f6f7fbb8adc8 100644 --- a/tests/views_test_config/config/views.view.test_access_perm.yml +++ b/tests/views_test_config/config/views.view.test_access_perm.yml @@ -7,16 +7,19 @@ display: default: display_options: access: - perm: 'views_test_data test permission' type: perm + options: + perm: 'views_test_data test permission' cache: type: none exposed_form: type: basic pager: type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_access_role.yml b/tests/views_test_config/config/views.view.test_access_role.yml index 2ac737a8d27645a388e29b972fd1a77e0224eb7a..3d2b4d98fd46b20914aa65a427b1c9979ee3541f 100644 --- a/tests/views_test_config/config/views.view.test_access_role.yml +++ b/tests/views_test_config/config/views.view.test_access_role.yml @@ -14,8 +14,10 @@ display: type: basic pager: type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_aggregate_count.yml b/tests/views_test_config/config/views.view.test_aggregate_count.yml index ce2a72587c58af3da5b2ad777ee68b392b5b234a..7a4224790a48a61728f056aafc6921d45e744e21 100644 --- a/tests/views_test_config/config/views.view.test_aggregate_count.yml +++ b/tests/views_test_config/config/views.view.test_aggregate_count.yml @@ -44,8 +44,10 @@ display: options: query_comment: '0' type: views_query - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_argument_default_fixed.yml b/tests/views_test_config/config/views.view.test_argument_default_fixed.yml index a0a4e57c2d4596a2cec68affd2bb43e420898bca..061b2097c627eb91a0b8102f42376015f7a63503 100644 --- a/tests/views_test_config/config/views.view.test_argument_default_fixed.yml +++ b/tests/views_test_config/config/views.view.test_argument_default_fixed.yml @@ -43,8 +43,10 @@ display: items_per_page: '10' offset: '0' type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_comment_user_uid.yml b/tests/views_test_config/config/views.view.test_comment_user_uid.yml index babe7fae54a947b4c42bb3a839584096d0943972..4dca1cd32d7a30d68ac627898769ade1de50cbf1 100644 --- a/tests/views_test_config/config/views.view.test_comment_user_uid.yml +++ b/tests/views_test_config/config/views.view.test_comment_user_uid.yml @@ -35,8 +35,10 @@ display: options: query_comment: '0' type: views_query - row_plugin: node - style_plugin: default + style: + type: default + row: + type: node display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_destroy.yml b/tests/views_test_config/config/views.view.test_destroy.yml index 16a4c4b3f1f9f47e8dc30690fd4a048807b6c345..a28c6b11550143644e0b8a7420fd20c9cefae2ce 100644 --- a/tests/views_test_config/config/views.view.test_destroy.yml +++ b/tests/views_test_config/config/views.view.test_destroy.yml @@ -131,7 +131,6 @@ display: id: uid table: comment relationship: cid - row_plugin: fields sorts: last_comment_name: field: last_comment_name @@ -141,7 +140,10 @@ display: field: last_comment_timestamp id: last_comment_timestamp table: node_comment_statistics - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_field_get_entity.yml b/tests/views_test_config/config/views.view.test_field_get_entity.yml index 269b4b23519ada86400745fd6768dd8aeac29845..5ba2fc94b078237dc57c53c858f17fa214ccd315 100644 --- a/tests/views_test_config/config/views.view.test_field_get_entity.yml +++ b/tests/views_test_config/config/views.view.test_field_get_entity.yml @@ -50,9 +50,11 @@ display: relationship: nid required: '0' table: node - row_plugin: fields sorts: { } - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default @@ -60,4 +62,3 @@ display: human_name: test_field_get_entity name: test_field_get_entity tag: default - diff --git a/tests/views_test_config/config/views.view.test_field_tokens.yml b/tests/views_test_config/config/views.view.test_field_tokens.yml index 62f37e06037ab8f21ec159d644e5a9d9e20f26de..01431a6b702f9d62f5998b529f3313733f6b575a 100644 --- a/tests/views_test_config/config/views.view.test_field_tokens.yml +++ b/tests/views_test_config/config/views.view.test_field_tokens.yml @@ -16,8 +16,6 @@ display: type: full query: type: views_query - row_plugin: fields - style_plugin: default fields: name: id: name @@ -35,6 +33,10 @@ display: id: job table: views_test_data field: job + style: + type: default + row: + type: fields display_plugin: default display_title: Defaults id: default diff --git a/tests/views_test_config/config/views.view.test_filter_date_between.yml b/tests/views_test_config/config/views.view.test_filter_date_between.yml index a2a268a35d5444ba011f7f4e75ae2bad4d535e7f..71f4b2f256598c5ccaed069cca562752307ee149 100644 --- a/tests/views_test_config/config/views.view.test_filter_date_between.yml +++ b/tests/views_test_config/config/views.view.test_filter_date_between.yml @@ -28,8 +28,10 @@ display: options: query_comment: '0' type: views_query - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_filter_group_override.yml b/tests/views_test_config/config/views.view.test_filter_group_override.yml index 639edb709414486f7cca95eb2b8a0dcdc4346a53..379eff630c846088598cf66f2c5867c9dfda978c 100644 --- a/tests/views_test_config/config/views.view.test_filter_group_override.yml +++ b/tests/views_test_config/config/views.view.test_filter_group_override.yml @@ -34,8 +34,10 @@ display: type: full query: type: views_query - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_filter_groups.yml b/tests/views_test_config/config/views.view.test_filter_groups.yml index ecc4fde2c5a46c7094b4056f1b6c7cc7f43ba546..d71c02e1c809abc81ec08fc99379a69436f9e36b 100644 --- a/tests/views_test_config/config/views.view.test_filter_groups.yml +++ b/tests/views_test_config/config/views.view.test_filter_groups.yml @@ -54,15 +54,17 @@ display: type: full query: type: views_query - row_plugin: node sorts: created: field: created id: created order: DESC table: node - style_plugin: default title: test_filter_groups + style: + type: default + row: + type: node display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_filter_node_uid_revision.yml b/tests/views_test_config/config/views.view.test_filter_node_uid_revision.yml index 39007b817a3d35c1fb123da771791614aa7cbf6b..69000ec69d19337ed316c911ad1ee502b16d83e0 100644 --- a/tests/views_test_config/config/views.view.test_filter_node_uid_revision.yml +++ b/tests/views_test_config/config/views.view.test_filter_node_uid_revision.yml @@ -32,19 +32,15 @@ display: table: node value: - '1' - sorts: - nid: - id: nid - table: node - field: nid - order: asc + sorts: { } pager: type: full query: type: views_query - row_plugin: fields - sorts: { } - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_glossary.yml b/tests/views_test_config/config/views.view.test_glossary.yml index 648972fd9aff1a2495da4449464f6f9ac67c7a9c..33045e575a7ab3dd0c2a3dc8ed5ee8b2a1a121c3 100644 --- a/tests/views_test_config/config/views.view.test_glossary.yml +++ b/tests/views_test_config/config/views.view.test_glossary.yml @@ -35,8 +35,10 @@ display: type: full query: type: views_query - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_group_by_count.yml b/tests/views_test_config/config/views.view.test_group_by_count.yml index ae3fe63cbe6251ca7c5182aa172e599073ccb563..7ea0ab80c7d6a0658a2716d4ecd21a5b63ef6fb4 100644 --- a/tests/views_test_config/config/views.view.test_group_by_count.yml +++ b/tests/views_test_config/config/views.view.test_group_by_count.yml @@ -47,8 +47,10 @@ display: group_by: '1' pager: type: some - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_group_by_in_filters.yml b/tests/views_test_config/config/views.view.test_group_by_in_filters.yml index e7fb952d5d9b17aad36fd50ee73ceb5a5d975f3c..c494b095e9eaadcac3ef6557916c68c50f2253de 100644 --- a/tests/views_test_config/config/views.view.test_group_by_in_filters.yml +++ b/tests/views_test_config/config/views.view.test_group_by_in_filters.yml @@ -40,8 +40,10 @@ display: group_by: '1' pager: type: some - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_pager_full.yml b/tests/views_test_config/config/views.view.test_pager_full.yml index 74b85a4d447f786eb78fd01f4d281edbc3e1714d..08be354c67c0985333a33627e90eef8c1b7eedc9 100644 --- a/tests/views_test_config/config/views.view.test_pager_full.yml +++ b/tests/views_test_config/config/views.view.test_pager_full.yml @@ -18,8 +18,10 @@ display: items_per_page: '5' offset: '0' type: full - row_plugin: node - style_plugin: default + style: + type: default + row: + type: node display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_pager_none.yml b/tests/views_test_config/config/views.view.test_pager_none.yml index b77148473c9ffa1244e5347771646d7b2fab9b40..7b2031611986427d67d82185b73ca64a17745e1e 100644 --- a/tests/views_test_config/config/views.view.test_pager_none.yml +++ b/tests/views_test_config/config/views.view.test_pager_none.yml @@ -14,8 +14,10 @@ display: type: basic pager: type: none - row_plugin: node - style_plugin: default + style: + type: default + row: + type: node display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_pager_some.yml b/tests/views_test_config/config/views.view.test_pager_some.yml index cffa993f73fa34f824782b5222925b246243732d..d9ecda50f46b0446f1d88709a18a2b5e6878c50d 100644 --- a/tests/views_test_config/config/views.view.test_pager_some.yml +++ b/tests/views_test_config/config/views.view.test_pager_some.yml @@ -17,8 +17,10 @@ display: items_per_page: '5' offset: '0' type: some - row_plugin: node - style_plugin: default + style: + type: default + row: + type: node display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_plugin_argument_default_current_user.yml b/tests/views_test_config/config/views.view.test_plugin_argument_default_current_user.yml index 7a713ae40ca4e5869e535f7192da96207b5d7e0a..54180b6612d7a2d1c6242759d0333da54e1bd910 100644 --- a/tests/views_test_config/config/views.view.test_plugin_argument_default_current_user.yml +++ b/tests/views_test_config/config/views.view.test_plugin_argument_default_current_user.yml @@ -43,8 +43,10 @@ display: items_per_page: '10' offset: '0' type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_store_pager_settings.yml b/tests/views_test_config/config/views.view.test_store_pager_settings.yml index f8852559679d983ca6f964a730a8fc85bdaa3938..0c4acfe11cb168f6f067894b0eb5cbfda165084f 100644 --- a/tests/views_test_config/config/views.view.test_store_pager_settings.yml +++ b/tests/views_test_config/config/views.view.test_store_pager_settings.yml @@ -14,8 +14,10 @@ display: type: basic pager: type: none - row_plugin: node - style_plugin: default + style: + type: default + row: + type: node display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_taxonomy_node_term_data.yml b/tests/views_test_config/config/views.view.test_taxonomy_node_term_data.yml index b3e4ef55a7de0443710d04e9757c5b52836377ab..2cecd63a4d6cba0a24cd4cf814314d341ead0020 100644 --- a/tests/views_test_config/config/views.view.test_taxonomy_node_term_data.yml +++ b/tests/views_test_config/config/views.view.test_taxonomy_node_term_data.yml @@ -54,8 +54,10 @@ display: table: node vocabularies: tags: '0' - row_plugin: node - style_plugin: default + style: + type: default + row: + type: node display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_user_relationship.yml b/tests/views_test_config/config/views.view.test_user_relationship.yml new file mode 100644 index 0000000000000000000000000000000000000000..096fa1624218a849d68e55aa88ea08523c8a5fe6 --- /dev/null +++ b/tests/views_test_config/config/views.view.test_user_relationship.yml @@ -0,0 +1,102 @@ +api_version: '3.0' +base_table: node +core: '8' +description: '' +disabled: '0' +display: + default: + display_options: + access: + type: perm + cache: + type: none + exposed_form: + type: basic + fields: + name: + alter: + absolute: '0' + alter_text: '0' + ellipsis: '1' + external: '0' + html: '0' + make_link: '0' + nl2br: '0' + replace_spaces: '0' + strip_tags: '0' + trim: '0' + trim_whitespace: '0' + word_boundary: '1' + element_default_classes: '1' + element_label_colon: '1' + empty_zero: '0' + field: name + hide_alter_empty: '0' + hide_empty: '0' + id: name + link_to_user: '1' + overwrite_anonymous: '0' + table: users + title: + alter: + absolute: '0' + alter_text: '0' + ellipsis: '0' + html: '0' + make_link: '0' + strip_tags: '0' + trim: '0' + word_boundary: '0' + empty_zero: '0' + field: title + hide_empty: '0' + id: title + label: '' + link_to_node: '1' + table: node + uid: + alter: + absolute: '0' + alter_text: '0' + ellipsis: '1' + external: '0' + html: '0' + make_link: '0' + nl2br: '0' + replace_spaces: '0' + strip_tags: '0' + trim: '0' + trim_whitespace: '0' + word_boundary: '1' + element_default_classes: '1' + element_label_colon: '1' + empty_zero: '0' + field: uid + hide_alter_empty: '0' + hide_empty: '0' + id: uid + link_to_user: '1' + table: users + pager: + options: + items_per_page: '10' + type: full + query: + options: + query_comment: '0' + type: views_query + title: test_user_relationship + style: + type: default + row: + type: fields + options: + default_field_elements: '1' + hide_empty: '0' + display_plugin: default + display_title: Master + id: default + position: '0' +human_name: test_user_relationship +name: test_user_relationship +tag: default diff --git a/tests/views_test_config/config/views.view.test_view_argument_validate_numeric.yml b/tests/views_test_config/config/views.view.test_view_argument_validate_numeric.yml index 13c4d2c60bbfb53b92c44cc4f500a041683b21df..446aa63bd4b043aa4f13080683c5f93b606d3bc5 100644 --- a/tests/views_test_config/config/views.view.test_view_argument_validate_numeric.yml +++ b/tests/views_test_config/config/views.view.test_view_argument_validate_numeric.yml @@ -24,8 +24,10 @@ display: type: basic pager: type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_view_argument_validate_php.yml b/tests/views_test_config/config/views.view.test_view_argument_validate_php.yml index 4a0cf1ea909747169871150f2a0661079432de2b..9c81616cd247ffc2c8c821738dcd961e90ade877 100644 --- a/tests/views_test_config/config/views.view.test_view_argument_validate_php.yml +++ b/tests/views_test_config/config/views.view.test_view_argument_validate_php.yml @@ -24,8 +24,10 @@ display: type: basic pager: type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_view_argument_validate_user.yml b/tests/views_test_config/config/views.view.test_view_argument_validate_user.yml index ac98d9056b2c8e45a1a4340708fd11de0718a5c2..2750f437e4489c83ac872ce9552a8bb1b7ed91b2 100644 --- a/tests/views_test_config/config/views.view.test_view_argument_validate_user.yml +++ b/tests/views_test_config/config/views.view.test_view_argument_validate_user.yml @@ -24,8 +24,10 @@ display: type: basic pager: type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_view_delete.yml b/tests/views_test_config/config/views.view.test_view_delete.yml index 7b19ccfc25e2c4c0460bb3af3b5f15ca0979f7f5..ca28db84c29d8d7aea603b03ba93e9d0c6610748 100644 --- a/tests/views_test_config/config/views.view.test_view_delete.yml +++ b/tests/views_test_config/config/views.view.test_view_delete.yml @@ -16,8 +16,10 @@ display: type: full query: type: views_query - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Defaults id: default diff --git a/tests/views_test_config/config/views.view.test_view_fieldapi.yml b/tests/views_test_config/config/views.view.test_view_fieldapi.yml index 0d9acbb7cc684e875d6f6a0859520c145bb2b966..fe2ecc0b4458f8c3193bc4ab0d50d9d3ddd13968 100644 --- a/tests/views_test_config/config/views.view.test_view_fieldapi.yml +++ b/tests/views_test_config/config/views.view.test_view_fieldapi.yml @@ -17,17 +17,14 @@ display: type: none exposed_form: type: basic - fields: - nid: - field: nid - id: nid - table: node pager: type: full query: type: views_query - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default @@ -35,4 +32,3 @@ display: human_name: test_view_fieldapi name: test_view_fieldapi tag: default - diff --git a/tests/views_test_config/config/views.view.test_view_pager_full_zero_items_per_page.yml b/tests/views_test_config/config/views.view.test_view_pager_full_zero_items_per_page.yml index b0dc441e0a55974aeb39ba353edeab5fb75f57ad..5b909ea4c626656e1b2c7e49c7887d62262649bc 100644 --- a/tests/views_test_config/config/views.view.test_view_pager_full_zero_items_per_page.yml +++ b/tests/views_test_config/config/views.view.test_view_pager_full_zero_items_per_page.yml @@ -34,8 +34,10 @@ display: items_per_page: '0' offset: '0' type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_config/config/views.view.test_views_handler_field_user_name.yml b/tests/views_test_config/config/views.view.test_views_handler_field_user_name.yml index b3f17187d9f71fcc7d7fcc3a4a7697718c0bca9e..48522e05f15dac1115fad815dca48d27d696b285 100644 --- a/tests/views_test_config/config/views.view.test_views_handler_field_user_name.yml +++ b/tests/views_test_config/config/views.view.test_views_handler_field_user_name.yml @@ -37,8 +37,10 @@ display: options: query_comment: '0' type: views_query - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_access_dynamic.yml b/tests/views_test_data/config/views.view.test_access_dynamic.yml index 8b40c46f22ad607c6260573745d97047f3eeb8fd..a78537d44b272b14d251228ff8cd33195af4bce3 100644 --- a/tests/views_test_data/config/views.view.test_access_dynamic.yml +++ b/tests/views_test_data/config/views.view.test_access_dynamic.yml @@ -14,8 +14,10 @@ display: type: basic pager: type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_access_static.yml b/tests/views_test_data/config/views.view.test_access_static.yml index c76e541cda1ce4b76121282ac53d08853192d777..cd3a94c5df093bd1c77d7f3e1d34bb454922164a 100644 --- a/tests/views_test_data/config/views.view.test_access_static.yml +++ b/tests/views_test_data/config/views.view.test_access_static.yml @@ -14,8 +14,10 @@ display: type: basic pager: type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_argument_default_current_user.yml b/tests/views_test_data/config/views.view.test_argument_default_current_user.yml index f28f4ae85d12d9d4d16bdc4f2b6e1a2e0476be93..3cf754dfb7e207e149c0035273b980fd134967d4 100644 --- a/tests/views_test_data/config/views.view.test_argument_default_current_user.yml +++ b/tests/views_test_data/config/views.view.test_argument_default_current_user.yml @@ -40,8 +40,10 @@ display: items_per_page: '10' offset: '0' type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_click_sort.yml b/tests/views_test_data/config/views.view.test_click_sort.yml index 0a8ff5c5f30e593f0a5644e8d140ea73a3960fb2..8aa2eb247abb9f72865b4ecb60b54a41a839dcaa 100644 --- a/tests/views_test_data/config/views.view.test_click_sort.yml +++ b/tests/views_test_data/config/views.view.test_click_sort.yml @@ -24,17 +24,18 @@ display: type: none cache: type: none - style_plugin: table - style_options: - info: - id: - sortable: 1 - default_sort_order: asc - name: - sortable: 1 - default_sort_order: desc - created: - sortable: 0 + style: + type: table + options: + info: + id: + sortable: 1 + default_sort_order: asc + name: + sortable: 1 + default_sort_order: desc + created: + sortable: 0 display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_exposed_admin_ui.yml b/tests/views_test_data/config/views.view.test_exposed_admin_ui.yml index d150630e4f43c33c53c9827ed5567f17ff559d8b..d73dfb879751e7f611b728bd7ae49335b659d023 100644 --- a/tests/views_test_data/config/views.view.test_exposed_admin_ui.yml +++ b/tests/views_test_data/config/views.view.test_exposed_admin_ui.yml @@ -25,16 +25,18 @@ display: table: node pager: type: full - row_options: - comments: '0' - links: '1' - row_plugin: node sorts: created: field: created id: created table: node - style_plugin: default + style: + type: default + row: + type: node + options: + comments: '0' + links: '1' display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_field_classes.yml b/tests/views_test_data/config/views.view.test_field_classes.yml index e65f920e93e0a215e9213e768f7be6c84e6cc38f..d2fe5b2a7e0e5bc32932d5bcc2edeab17175a6d3 100644 --- a/tests/views_test_data/config/views.view.test_field_classes.yml +++ b/tests/views_test_data/config/views.view.test_field_classes.yml @@ -15,7 +15,8 @@ display: id: id table: views_test_data field: id - style_plugin: html_list + style: + type: html_list display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_field_output.yml b/tests/views_test_data/config/views.view.test_field_output.yml index f52d30f630bbf86f382eba2881412e64813392ea..6d0d73f10551da4785637c626433b12f61180709 100644 --- a/tests/views_test_data/config/views.view.test_field_output.yml +++ b/tests/views_test_data/config/views.view.test_field_output.yml @@ -15,11 +15,12 @@ display: id: name table: views_test_data field: name - style_plugin: html_list + style: + type: html_list display_plugin: default display_title: Master id: default position: '0' -human_name: "" +human_name: '' name: test_field_output tag: '' diff --git a/tests/views_test_data/config/views.view.test_filter.yml b/tests/views_test_data/config/views.view.test_filter.yml index 99d0dad48c9e0f7723c8a4dee881f56edf2687fe..3f11e837802a3dc73cccf2f7693fa6b5c8ba92a8 100644 --- a/tests/views_test_data/config/views.view.test_filter.yml +++ b/tests/views_test_data/config/views.view.test_filter.yml @@ -27,9 +27,11 @@ display: table: views_test_data query: type: views_query - row_plugin: fields - style_plugin: default use_more_always: '0' + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_filter_in_operator_ui.yml b/tests/views_test_data/config/views.view.test_filter_in_operator_ui.yml index 5b91ec25594b8a3ebfc082c4991432f3e4751177..a68c79056336ff81b08856850907a66937c0b9d3 100644 --- a/tests/views_test_data/config/views.view.test_filter_in_operator_ui.yml +++ b/tests/views_test_data/config/views.view.test_filter_in_operator_ui.yml @@ -26,8 +26,10 @@ display: table: node pager: type: full - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_rename_reset_button.yml b/tests/views_test_data/config/views.view.test_rename_reset_button.yml index 900f26de6de2d79d070a053f1a656d0468368fa6..e03d6663d4469372040b464b5c36127d8187fe79 100644 --- a/tests/views_test_data/config/views.view.test_rename_reset_button.yml +++ b/tests/views_test_data/config/views.view.test_rename_reset_button.yml @@ -31,11 +31,13 @@ display: options: query_comment: '0' type: views_query - row_options: - comments: '0' - links: '1' - row_plugin: node - style_plugin: default + style: + type: default + row: + type: node + options: + comments: '0' + links: '1' display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_style_mapping.yml b/tests/views_test_data/config/views.view.test_style_mapping.yml index 62763cb3f4a2b6ff2387e4a303f77f68ec17ee22..30d4dd92838d71a3822c2137ce72fa8217ce56ee 100644 --- a/tests/views_test_data/config/views.view.test_style_mapping.yml +++ b/tests/views_test_data/config/views.view.test_style_mapping.yml @@ -39,15 +39,16 @@ display: order: ASC relationship: none table: views_test_data - style_options: - mapping: - name_field: name - numeric_field: - age: age - title_field: name - toggle_numeric_field: '1' - toggle_title_field: '1' - style_plugin: mapping_test + style: + type: mapping_test + options: + mapping: + name_field: name + numeric_field: + age: age + title_field: name + toggle_numeric_field: '1' + toggle_title_field: '1' display_plugin: default display_title: Master id: default diff --git a/tests/views_test_data/config/views.view.test_views_groupby_save.yml b/tests/views_test_data/config/views.view.test_views_groupby_save.yml index 269b106beb93931b1536464540041068533c866f..05f9b5cc861e562277bee282aae6630f62f5dad8 100644 --- a/tests/views_test_data/config/views.view.test_views_groupby_save.yml +++ b/tests/views_test_data/config/views.view.test_views_groupby_save.yml @@ -14,8 +14,10 @@ display: type: basic pager: type: none - row_plugin: fields - style_plugin: default + style: + type: default + row: + type: fields display_plugin: default display_title: Master id: default